Segfault on Linux at runtime.

It's curious that it doesn't seem to occur on playground, but here's the listing:
use "debug"

actor Main
  new create(env: Env) =>
    let a: AA = AA
    inspecta(consume a)

  be inspecta(a: AA val) =>
    Debug.out("in inspecta")

struct iso AA

If you change the receiver refcap from val to iso or tag it executes fine.
Here's the backtrace with val:
[nix-shell:~/projects/pony/test]$ lldb ./test
(lldb) target create "./test"
Current executable set to './test' (x86_64).
(lldb) run
Process 24552 launched: '/home/red/projects/pony/test/test' (x86_64)
Process 24552 stopped
* thread #2, name = 'test', stop reason = signal SIGSEGV: invalid address (fault address: 0x18)
    frame #0: 0x000000000040cf6a test`ponyint_gc_markimmutable + 106
test`ponyint_gc_markimmutable:
->  0x40cf6a <+106>: movq   0x18(%r13), %r13
    0x40cf6e <+110>: testq  %r13, %r13
    0x40cf71 <+113>: je     0x40cfa0                  ; <+160>
    0x40cf73 <+115>: movq   0x20(%r14), %rdi
(lldb) bt
* thread #2, name = 'test', stop reason = signal SIGSEGV: invalid address (fault address: 0x18)
  * frame #0: 0x000000000040cf6a test`ponyint_gc_markimmutable + 106
    frame #1: 0x000000000040e4b8 test`ponyint_mark_done + 24
    frame #2: 0x0000000000408b02 test`ponyint_actor_run + 242
    frame #3: 0x000000000041181f test`run_thread + 447
    frame #4: 0x00007ffff7fb3e9e libpthread.so.0`start_thread + 206
    frame #5: 0x00007ffff7d7749f libc.so.6`__GI___clone + 63

Any advice on how to proceed welcomed.

I was able to reproduce this on macOS by running the resulting binary with --ponygcinitial 1.

Ok, here's the problem:
* thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
    frame #0: 0x00000001000118e7 test_red`mark_local_object(ctx=0x0000000108fff848, chunk=0x0000000108fff680, p=0x0000000108fd4d40, t=0x0000000000000000, mutability=1) at gc.c:200:26
   197 	  {
   198 	    // Mark in our heap and recurse if it wasn't already marked.
   199 	    if(!ponyint_heap_mark(chunk, p))
-> 200 	      recurse(ctx, p, t->trace);
   201 	  } else {
   202 	    // Do a shallow mark. If the same address is later marked as something that
   203 	    // is not opaque, it will recurse.
Target 0: (test_red) stopped.
(lldb) bt
* thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
  * frame #0: 0x00000001000118e7 test_red`mark_local_object(ctx=0x0000000108fff848, chunk=0x0000000108fff680, p=0x0000000108fd4d40, t=0x0000000000000000, mutability=1) at gc.c:200:26
    frame #1: 0x000000010001263a test_red`ponyint_gc_markimmutable(ctx=0x0000000108fff848, gc=0x0000000108ffeca8) at gc.c:655:7
    frame #2: 0x00000001000146e0 test_red`ponyint_mark_done(ctx=0x0000000108fff848) at trace.c:73:3
    frame #3: 0x0000000100007f13 test_red`try_gc(ctx=0x0000000108fff848, actor=0x0000000108ffec00) at actor.c:301:3
    frame #4: 0x00000001000074f1 test_red`ponyint_actor_run(ctx=0x0000000108fff848, actor=0x0000000108ffec00, polling=false) at actor.c:373:7
    frame #5: 0x000000010001f1ef test_red`run(sched=0x0000000108fff800) at scheduler.c:957:23
    frame #6: 0x000000010001e7a1 test_red`run_thread(arg=0x0000000108fff800) at scheduler.c:1007:3
    frame #7: 0x00007fff5f0712eb libsystem_pthread.dylib`_pthread_body + 126
    frame #8: 0x00007fff5f074249 libsystem_pthread.dylib`_pthread_start + 66
    frame #9: 0x00007fff5f07040d libsystem_pthread.dylib`thread_start + 13

The issue is here
https://github.com/ponylang/ponyc/blob/773f76b7c21a33acd206ac101b1dccda8afd163a/src/libponyrt/gc/gc.c#L649-L655
In particular, line 654 tries to take the pony_type of p, but this cast results in a null pointer, because a struct doesn't have a type at runtime. Then, inside mark_local_object:
https://github.com/ponylang/ponyc/blob/773f76b7c21a33acd206ac101b1dccda8afd163a/src/libponyrt/gc/gc.c#L198-L200
It tries to dereference this NULL pointer, leading to the segfault.
As to why the example doesn't segfault when AA iso or AA tag is used, it's because those types are not marked as "immutable", so the check on line 649 doesn't succeed, and mark_local_object is never called on the struct.

This code using the built-in Pointer type also segfaults:
use @pony_ctx[Pointer[None]]()
use @pony_alloc[Pointer[U8] val](ctx: Pointer[None], size: USize)

actor Main
  new create(env: Env) =>
    inspect(@pony_alloc(@pony_ctx(), 1))

    be inspect(a: Pointer[U8] val) => None

So, in theory, tuples would have the same problem but... hehe the compiler prevents you from giving them an object capability and viola! they aren't "immutable objects" as part the gc is concerned. The same is not the case for struct.
This isn't important to solving the problem, but a bit of checking I did as part of working on "what's the correct fix here?"

Tuples are an interesting idea... and I'm kinda blown away by how clever the compiler is in that regard.
This code for example works...
type TestType is (I32 val, Pointer[I32] ref, Pointer[I32] tag)

actor Main
  new create(env: Env) =>
    env.out.print("Oof")

    let p0: Pointer[I32] ref = Pointer[I32]
    let p1: Pointer[I32] tag = Pointer[I32]
    let s: TestType = (I32(0), p0, p1)

    let q: TestType tag = s

... but if you change the last line to ...
    let q: TestType val = s

... the compiler is so freaking smart in finding this:
Error:
/home/red/projects/pony/test3/main.pony:11:25: right side must be a subtype of left side
    let q: TestType val = s
                        ^
    Info:
    /home/red/projects/pony/test3/main.pony:1:28: Pointer[I32 val] ref is not a subtype of Pointer[I32 val] val: ref is not a subcap of val
    type TestType is (I32 val, Pointer[I32] ref, Pointer[I32] tag)
                               ^
    /home/red/projects/pony/test3/main.pony:1:46: Pointer[I32 val] tag is not a subtype of Pointer[I32 val] val: tag is not a subcap of val
    type TestType is (I32 val, Pointer[I32] ref, Pointer[I32] tag)
                                                 ^
    /home/red/projects/pony/test3/main.pony:9:12: (I32 val, Pointer[I32 val] ref, Pointer[I32 val] tag) is not a pairwise subtype of (I32 val, Pointer[I32 val] val, Pointer[I32 val] val)
        let s: TestType = (I32(0), p0, p1)

... and this answers a different crash that I found that I assumed was the same bug.  Now I know that the compiler is capable of this I'll open up a second issue to illustrate it.

This is going to be difficult to fix without taking a seriously nasty hit.
So, there's only one time when we don't know the type of an object and need it.
When we are tracing an immutable object that is on the heap. The garbage collector keeps everything in an object map. We do not store the type with the object in the map because except for this one case that no one has triggered until @redvers did, we do not need it. To fix this problem with the design we currently have would mean adding an additional field for the type to each object map entry. The object map is very tuned (as it needs to be because its constantly being accessed). We'd be adding potentially a large amount of additional memory usage in Pony programs and potentially blowing up cache lines for something we've never needed until now. That's a shitty trade-off; a trade-off I don't want to make.
This entire bug is fixed by not allowing the struct in question to be the root of an object graph.
use "debug"

actor Main
  new create(env: Env) =>
    let a: WrappedAA iso = recover iso WrappedAA end
    inspecta(consume a)

  be inspecta(a: WrappedAA val) =>
    Debug.out("in inspecta")

class WrappedAA
  struct AA

won't crash. (Run both it and the original in this issue with --ponygcinitial 1 to force a garbage collector run before exit and guarantee a crash in the case of the original.
We could modify the compiler to try and detect when a user is allocating an immutable struct on the heap and tell them "Hey! wrap that!" and refuse to compile. However, that compiler analysis might miss some cases and then kaboom. Still, there's no messing with the object map which is "a very very good thing".
What I'm working through now after talking with Sylvan is what both he and I think is a good trade-off if we can pull it off. In general, the rule would be "all structs are refs". You cannot put a reference capability on a struct. Which means, we have no issues. Structs were designed to be an interface point with C code, not something that we pass around and use as the basis of object graphs. If we did this, then there could never be a struct iso or struct val and then we don't need to mess with object map for something that is rarely used. However, we do have at least one struct in the standard library that this wouldn't work for: Pointer. It has box, ref, and tag methods to allow for various levels of access. To account for this, we'd need to make Pointer a class and special case it in the compiler like we do for number types. There might be other struct types that could be problematic with this scheme, I'm still going through the standard library to analyze.
I'd also like to schedule some synchronous conversation with @redvers so go over his code to make sure that the "you have to wrap the struct" result of the "can't put ref capabilities on a struct" wouldn't cause other issues with this use case. I believe from everything I've seen so far in the standard library that we should be good with this approach, but I do need more time to verify.
Sylvan and I both feel that this last approach is the best in terms of:

not touching object map
hewing closely to how structs were envisioned being used when they were introduced to Pony.

Note, there's a small mistake in @ergl's write up of the problem:

In particular, line 654 tries to take the pony_type of p, but this cast results in a null pointer, because a struct doesn't have a type at runtime.

The cast doesn't result in a null pointer, it results in a pony that is pointing to some memory that is not a Pony type header so when we go to get the trace field, we do not get what we expect and things end poorly. In the end, this doesn't matter much but it is important to understand the details of the issue.
You can see this in the stack trace:
EXC_BAD_ACCESS (code=1, address=0x18)

That's not a NULL pointer. It has an address; an address that is junk as far as our code is concerned.

tl;dr: The example above was the minimal code required to trigger the bug, not really representative of the code I was writing at the time.  I opened the bug as a crash at runtime is considered a bug - not because it affects the application that I'm writing.
Re-writing Pointer as a class seems like a poor candidate for Risk <--> Reward for a bug that took almost 10 years for someone to stumble across.
The longer version:
The functionality I was trying to achieve was to have a class that wrapped a struct so that:

When the developer wanted to access a field, they could use a method instead of direct access which would be able to do things like type conversation: (Pointer[U8] -> String for example).
When the wrapped class fell out of scope, I could use the class' _final() method to call the C-FFI free calls to release the memory.

Fundamentally - should I store the NullablePointer[Struct] in the class, or just the Struct?
Storing the Struct made the most sense as it meant that just the constructor could be partial to check for a null pointer.  If I stored the NullPointer[Struct] then every field access would have to be partial resulting in massively more code the user would have to write.
But that struct being directly passed into final() was considered illegal due to viewpoint adaption in my case (it must be sendable).  Changing the struct to a val solved that.
In the end it was all for naught as I discovered that there were some classes (eg: Array) that don't have a from_cpointer() val constructor so it was not possible for me to use that route even if I wanted to as I couldn't get the data out of the Pointer[Pointer[U8]] if I tried.
My solution?  I store both.
One for deconstruction, the other for garbage collection.  As they both point to the same address my concern about doubling the memory-usage was unfounded.

@redvers I strongly disagree with...

Re-writing Pointer as a class seems like a poor candidate for Risk <--> Reward for a bug that took almost 10 years for someone to stumble across.

This is a runtime crash that happened to be on a path that no one exercised until now. It could have happened to anyone at any point and still can. Runtime crashes are bad and destroy the primary proposition of safety for Pony. It needs to be fixed and the other options are worse in terms of the Pony Philosophy.

Changing Pointer to be a class have zero impact on user code if we do it correctly.
Changes to not all ref types on structs would potentially break some user code but only if they are doing struct tag as pretty much everything else should be crashing (and so probably doesn't exist)

One of the key points of the Pony philosophy is that we should make the implementation of the compiler/runtime harder to maintain if that has serious benefits to the users. And in this case, not touching object map has serious wins for all Pony users/programs.
It's some work to fix this with the proposed solution, but I think it is far and away the best fix and we can not leave this bug unfixed. Runtime crashes are unacceptable.

Agreed 110% - My intent wasn't to suggest leaving the bare wires exposed.
Apparently I edited out my alternate proposed suggestion which I thought could be potentially less disruptive.  Upon deeper review I realized that it probably wouldn't cover all the cases so removed it from the comment (but not that previous clause).
(My proposal was going to be to just block the parser from parsing a struct val).
Interesting that you're seeing different results to me.  I only saw the crash on val, tag (as your example) I could not get a crash from.

Regarding the proposed solution from Sean and Sylvan, I think it generally makes sense.
I have a few discrete thoughts about it:

In truth, Pointer is neither a class nor a struct - it doesn't really act like either and it's already a one-of-a-kind special case everywhere. So changing the keyword we use to declare it doesn't matter too much - the keyword is still a lie. Again, the goal would be to have it keep the same behavior it has now, so user code should not be impacted "if we do it right" as Sean said.
Honestly in my heart of hearts I'd prefer we just call it a pointer rather than a class or a struct in its declaration, but I don't want to add a new reserved word to Pony that can't be used as a variable/member name (in the Mare dialect, this problem is avoided by the : symbol prefixing all declarations, so the namespaces of declarator keywords and variable/member names do not overlap).

I think the "struct can only be a ref" idea needs a bit more clarity. I agree with the idea generally in that I think it's a reasonable restriction given what the goals of struct are in Pony, but we need to pin down exactly what cases we are preventing and how we are checking for it.
For example, even if I am disallowed from declaring a variable/member as having a type of MyStruct val, I can still have a MyStruct ref that is within an object graph that viewpoint-adapts it as having an effective type of MyStruct val as seen from the root of that graph. However, Sean's statements above implied that this bug only happens when it's at the root of the object graph. So maybe that's okay in a safety sense, but we'd still need to ensure we can clearly communicate to the Pony programmer exactly what the restrictions are in a concise and coherent way.

As a mostly unrelated note I have been toying recently with ideas of adding stack-allocated types as a feature, and you can find some thoughts from me about this in the most recent sync call.
I only mention this because sometimes when newcomers see the struct keyword in Pony their mind goes to stack-allocated types, whereas the Pony concept of struct is not really that, but rather a "pointer to a C-compatible struct with no object header".
The stack-allocated types I am proposing, would be a pass-by-value instead of pass-by-reference type more akin to a Pony tuple or C struct (not a struct pointer). And these types would be shallowly-immutable. That is, they would have only let fields, but the fields could be of any capability. So just like a Pony tuple, you'd have to totally replace the full struct each time you wanted to update at least one field. This is less flexible than we could be in an ideal world, but it's kind of a compromise because I didn't want to add a lot more complexity to the type system akin to Rust's borrow checker.
I'm trying to think if this can help solve the issue or close some remaining feature gap we might have if we pursue the "only ref structs" solution. But at this point I can't find a way that it actually helps. So I'm just mentioning it in case it sparks an idea for someone. And I'll keep thinking about if there is some good way to tie it into fixing this problem.

After discussing more in Zulip right now I'm thinking the best course of action would be to leave Pointer alone and just prevent behavior definitions from having a struct as a parameter.
It seems like that fully solves the issue in a simple way that shouldn't break any programs that are working today.
Unless there's something I'm missing or some other way a struct might be traced as a root.

Unless there's something I'm missing or some other way a struct might be traced as a root.

I first triggered the bug by having a struct as a class field and then trying to use it in a _final() call.  I set the struct to val as _final() mandated that everything there had to be sendable.

I first triggered the bug by having a struct as a class field and then trying to use it in a _final() call. I set the struct to val as _final() mandated that everything there had to be sendable.

Its these sorts of "o right and there" scenarios that lead Sylvan and I to the Pointer idea

Do we trace the fields used in a _final() call as object roots? Is that what y'all are referring to?

@jemc it would appear so from @redvers comment. I would have to check.

@redvers - can you show a minimal repro for the _final case that triggers this bug without a behavior call?

Maybe?
Let me see if I can recreate one.

I was unable to create a minimal example using final, so I'm not sure what is going on there.

I'm unable to either which is odd.  In my defense I had a witness :-) ... but unless/until it's able to be reproduced I'd leave it to the side.

I think @jemc it would be reasonable to try and solve with your suggestion and if we find ourselves playin whack-a-mole over time, of moving to the "pointer" plan.

Sounds good!
So to recap, the plan would be to add the following check:

For every actor behavior, for each parameter in it, we check the type of the parameter.
If the type of the parameter is a struct, we show a compilation error to the user that prevents it.

If anyone is wondering about interfaces/traits or union types and if they could potentially be hiding a struct secretly within, recall that this is already prevented by existing checks, which do not allow a struct to be a subtype of abstract types like that.


[Wave 6: Tags] Restore tags UI to be non-hierarchical

Problem
In https://github.com/Expensify/App/issues/31753 we modified the display of tags in the tags selector to match the display of categories, e.g. a Parent: Child option would be split on the colon and displayed indented like
Parent
    Child

However, this is a departure from the behavior of tags on OldDot, and we need to revert the change on NewDot so that it matches OldDot.
Additional context in Slack
Solution
Revert https://github.com/Expensify/App/pull/32337 and retest to verify tags of the format Parent: Child display on one line.
Once deployed, we need to also ensure a regression test is added to TestRail to cover the behavior.

Regression test requested in https://github.com/Expensify/Expensify/issues/345784

Hello, Im Artem from Callstack and can take this issue!

How's this coming @waterim?

Will create a Draft today/tomorrow

@amyevans created a PR with revert, will open it tomorrow after internal review

perfect

@amyevans Opened a PR

Closing this out now since there's nothing left to do and no payments required, and I'm headed OOO!


Source maps support

Fix #584

+1 ... will review and try to get it out the door in the next week or so.

It would also be possible to just let this option to the user. If you
require('source-map-support').install();

anywhere in your project, the source maps work just as well (tested with typescript), and you wouldn't introduce a new dependency. It would be nice to hint at this option in the documentation, though.

Any update on this?

This needs to be behind a flag. Will consider it for the 3.x release line.

After considering this it was decided that it is an option best left up to the user, but mentioned in our documentation. A PR against README.md would be welcomed.


Upon Compiling, Multiple Executables are Generated

As title states, multiple executables of the same program are created. An example would be:
.\OpenKh\bin\Debug\net472\OpenKh.Tools.LevelUpEditor.exe
Also present at:
.\OpenKh\OpenKh.Tools.LevelUpEditor\obj\Debug\net472\OpenKh.Tools.LevelUpEditor.exe
I'm unsure if this is actually an error at compile time, but it seems unnecessary and strange nonetheless, taking up unnecessary disk space. Executables between both locations are functionally identical, only the lattermost won't run immediately after compiling due to the missing library files in the folder. Supplying the libraries or moving the exe into a folder with the libraries allows it to run.

Good question! the obj/ folder is an intermediate folder used by Visual Studio on compile time. After compilation, all the useful objects will be copied into bin/ and not moved. This is the default Visual Studio behaviour.
The content in bin/ is the one used for distribution. If you want to free-up space, you can execute a "Clean solution" from Visual Studio, or run the command `git clean -xdf" from any terminal/command prompt.


Camera detecting part of bar code

You need to give a lot more details that just "camera detecting part of bar code".
What happened versus what you expected, type of barcode, example images, your phone model, etc.


Rename "video" -> "section"

Not sure if the term "video" is intended, or just a small oops overlooked during the transition of the course.

The term "video" in fact also appears in a couple of other places during the course. Also, I figured that "lesson" might be the most suitable replacement term, but that's just my personal preference 😉

@floscha the term "lesson" suits better :). I'll replace the others too.

Ahhh, perfect – thanks so much! 🙏

Coolio, you're welcome :)


[Fuzzing] Add a build config option which enables Clang source-based code coverage

This maybe used to quickly verify the code coverage of a modified test locally (e.g. fuzzer).
Example:
# Build and run target; the raw profile will be written to $LLVM_PROFILE_FILE when the program exits
$ bazel build --config=dbg --config=fuzzer_asan --config=coverage //test/core/end2end/fuzzers:api_fuzzer
$ LLVM_PROFILE_FILE="api_fuzzer.profraw" bazel-bin/test/core/end2end/fuzzers/api_fuzzer test/core/end2end/fuzzers/api_fuzzer_corpus/*

# Create coverage report
$ llvm-profdata-14 merge -sparse api_fuzzer.profraw -o api_fuzzer.profdata
$ llvm-cov-14 report ./bazel-bin/test/core/end2end/fuzzers/api_fuzzer --instr-profile=api_fuzzer.profdata

Sample report: https://gist.githubusercontent.com/yijiem/b9d2a8662f9b7a82df4a9d33cd5d3b39/raw/f94e444f2558aeb9cd8e1997cb27dbcad1ae7f2c/gistfile1.txt
One trick is that the binary needs to be statically linked, e.g. specify linkstatic = 1 on the BUILD target.
See https://clang.llvm.org/docs/SourceBasedCodeCoverage.html for more info.

Can I suggest adding a script somewhere?
tools/fuzzing/generate_coverage_report.sh //path/to/fuzzer
... I'm not usually very good at remembering more than one command to type in

Can I suggest adding a script somewhere?
tools/fuzzing/generate_coverage_report.sh //path/to/fuzzer
... I'm not usually very good at remembering more than one command to type in

+1 to Craig's suggestion

Can I suggest adding a script somewhere?
tools/fuzzing/generate_coverage_report.sh //path/to/fuzzer
... I'm not usually very good at remembering more than one command to type in

Done. PTAL.


Web app using Django and an Android app

Hello @prajwalkr,
Thanks for a great project. I really wanted to see how far I can go with extending this Python app to a mobile application. This PR (inspired by #3) includes a basic Android application which utilizes an API to solve a Sudoku by clicking its picture. I used Django to create the API endpoint sudoku/solve/. To use your code, I had to refactor a few functions. Rest assured, your code still works for anyone who wants to experiment with just the Python scripts.
I acknowledge that I have made a lot of changes to the fork, but I have tried my best to include informative READMEs to avoid confusion. Please let me know what you think and feel free to recommend any changes or ask any questions you may have.
Thank you! 😄

Hi @ymittal This is a cool idea but tons of file changes.  ;-)  I could not really find/understand the API that you speak of.  Are you solving the sudoku on the Android device or are you connecting to a server that is solving the sudoku remotely.  If the former, then what are the hardware / RAM requirements on the Android?  If the latter, it might be easier to consume all these changes if you created a separate repo called SnapSudokuAndroid that just included the mobile app.  This repo could then remain focused on the server side of the equation.

Hi @cclauss, definitely understandable! I am solving the sudoku by requesting a server. The main API code can be found in SnapSudoku/sudoku/views.py. I can move the Android app to a different branch on my repository, but really all of Android code is in the android folder. What are your thoughts, @prajwalkr?

Hi @ymittal,
The neural network used to classify digits is not good enough for real life images. I had implemented this project with a vanilla neural network so that I did not need to include any 3rd party libraries. To implement this project for real life images, we need to move on to Convolutional Neural Network, using Keras (Python library).
Further, have you implemented the Django app such that SnapSudoku can just be used as a module that is just imported and called?

Can Keras be run on a mobile phone?  Seems doable but difficult/ limited... http://talc1.loria.fr/users/cerisara/posts/tflow/
My sense is that for now the client / server model is the best approach.  This means that we have three or four code bases to create / manage:

SnapSudoku - the image to solved puzzle conversion module running in the server
The Django server that acccepts images from clients and returns to them solved puzzles
Android client app
iOS client app

Hi @prajwalkr,
I have not. It's definitely a good idea though. What else, if anything, would you like changed?

@prajwalkr, done! Please have a look at the latest project structure.

@prajwalkr @cclauss are we moving forward?

@prajwalkr, any update on commits done by @ymittal ?


Question : Distinct on widget rather then globaly

Hi,
I would like to know if it's possible to distinct the query at widget level or to undistinct at widget level ?
Use case :
My index represents all the offers of my shop. Unfortunatly, i have to use this index to build my search UI for listing products.
my datas are structured like this :
[
  {
    merchant: {
        id : 1,
        name: "Merchant 1"
     },
    product: {
        id: 1,
        name: "Product 1",
        category: "Category 1"
    },
    price: 50
  },
  {
    merchant: {
        id : 2,
        name: "Merchant 2"
     },
    product: {
        id: 1,
        name: "Product 1",
        category: "Category 1"
    },
    price: 50
   },
  {
    merchant: {
        id : 1,
        name: "Merchant 1"
     },
    product: {
        id: 2,
        name: "Product 2",
        category: "Category 1"
    },
    price: 100
   },
  {
    merchant: {
        id : 2,
        name: "Merchant 2"
     },
    product: {
        id: 2,
        name: "Product 2",
        category: "Category 1"
    },
    price: 100
   },
]

I have to use the distinct = 1 to show only the two products. I have to use also facetAfterDistinct = true otherwise the count is not good for the refinement category.
The actual result is :
nb Hits = 2 (Product 1 and Product 2)
Categories List :

Categorie 1 (2) <--- If facetAfterDistinct = false the count will be 4 (wrong because we want 2 like the hits)

Merchant List :

Merchant 1 (2)  <--- there is no "Merchant 2" because of facetAfterDistinct=true, if we use facetAfterDistinct=false, there is the two merchants.

The distinct parameter keep the first data of all products but we would like to have all merchants available for refinement...
We would like this result :
nb Hits = 2 (Product 1 and Product 2)
Categories List :

Categorie 1 (2)

Merchant List :

Merchant 1 (2)
Merchant 2 (2)

So is it possible to bypass the distinct at widget level ? or facetAfterDistinct ?
Maybe you have a better idea ?
Thanks

Nobody ?

Hi @fvoverscan, sorry for the delayed answer. You can imagine the way how InstantSearch.js works with this: one instance / one request to Algolia. This is not true but you got the idea. That's why you cannot provide distinct at the widget level because each widget is one "parameter" of the search.
With the given record structure I'm not sure this is something achievable. But why do you have to duplicate the content for both the merchant and the product? You can store all the merchants inside the product. Then you can to declare the merchants.name as facet, it should solve the issue.

I'm closing this issue because it's inactive since a while. Feel free to open a new one!


add missing rpm macros on CentOS Stream 9 - otherwise building fails

Some how the systemd macros are not pulled in anymore automatically and thus need to present explicitly.

I pushed new images to:

lest/centos-rpm-builder:stream9
ghcr.io/lest/centos-rpm-builder:stream9


Editor: Metadata window doesn't round up and selecting an unknown option causes a crash.

When accessing the Metadata, the list doesn't round up and tries to access unknown options if you continue going down.

Pressing Enter in this stage causes an index out of range error, resulting a crash:

you're never gonna believe it
it's actually because the options limit is set to index 4 (but it's 0-indexed)
Fixed in next commit


Vickel: Watch northwoodroofing.com

Vickel requests the watch of the watch_keyword northwoodroofing\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

northwoodroofing\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Rejected by Dragonrage in Charcoal HQ. Reason: 'duplicated'


System responsiveness

I noticed that after applying all the tweaks on the left side menu, for example opening task manager or file explorer etc. and then closing it, closes it longer and kind of lags the application. Usually closing task manager takes a second, and with the tweaks applied it takes around 4 seconds. I believe that setting the services to manual makes the closing time longer but im not 100% sure. Will there be an option to keep the system fast and at the same time removing all unnecessary crap from running in the background, like a menu where you can select what services to affect.

Hi @fifeku could you provide more information about the Operating system you're using and the version so we can investigate and provide more information with details.
Here's the info we need
Operating System:
Version and Build of OS:
Type of Storage is being used for OS, HDD or SSD (we need this info due the recent problem of Windows 11 March Update 2023) Source: https://www.windowscentral.com/software-apps/windows-11/windows-11-march-2023-patch-tuesday-update-may-cut-your-ssd-speed-in-half
About the services there's no setting affecting the speed of computer but telling to the system to only use the service when you open a program or doing some tasks like download windows updates. About the services selection, the project already carefully selects the services and set to manual, so we don't need to worry about any trouble in the system and before any publish/commit @ChrisTitusTech test everything and also other members that contribute to the project test as well.

OS: tested both on Windows 11 Pro 22H2 Moment 2 update and Windows 10 Pro 64-bit.
Version is the newest one available, i can check later with winver.
Storage: Samsung Evo Plus 970 1TB Nvme SSD
I am aware of the SSD speed 50% cut problem, but i did a couple of tests, i installed both Windows 10 and Windows 11 in a virtual machine without using the toolbox, everything ran fast and smooth, apps are closing really fast, after the toolbox and applying all the changes on the left side menu (only this was done, no other tweaking or anything else) after restarting the system the apps took way longer to close and lagged when closing, i will post this interaction to youtube, because i can't really explain it i think.

I get what did you are trying to say, but we need a little bit information about "after applying all the tweaks on the left side menu" could you share the selection of tweaks, so I can investigate and others too

I just confirmed my theory, after only checking the box Set services to manual, the same thing happened i don't exactly know what's causing the issue but i would like to reduce the service number since 120 at boot is a lot, but i don't want to sacrifice my operating system's speed for that.

Hi @fifeku check the services here, and could you apply the services manual tweak again and them before restarting the OS, go to services.msc and them go to SysMain change from Manual to Automatic and Windows Search from manual to automatic (delayed start) and see if this is the cause of the issue

I just tried that and the issue still remains, it has to be some sort of service that i don't know manages window launching or something, genuinelly i have no idea.

In the video you provide you apply the minimal and not just set services to manual, did you try just setting to manual the services? If yes, I will exclude some services and attach a script and you take a look and test to see if the performance is affected

So, I review the list and comment out some services, test and see if the issue is fixed or still present
set_services-to-manual.zip
The services that I comment out is due the fact is disabled by default, is in manual state by default or is automatic by default, so we don't to configure the services in manual already or even enable the services is disabled by default, the services that is in automatic I change 5 services and should fix the problem, you can see more details below

Services that is already in manual state

#"CaptureService_48486de"                                    # Optional screen capture functionality for applications that call the Windows.Graphics.Capture API.
#"PerfHost"                                                              # Remote users and 64-bit processes to query performance.
#"RetailDemo"                                                          # Demo Mode for Store Display
#"seclogon"                                                              # Secondary Logon (Disables other credentials only password will work)
#"XblAuthManager"                                                 # Xbox Live Auth Manager (Disabling Breaks Xbox Live Games)
#"XblGameSave"                                                      # Xbox Live Game Save Service (Disabling Breaks Xbox Live Games)
#"XboxNetApiSvc"                                                   # Xbox Live Networking Service (Disabling Breaks Xbox Live Games)
#"XboxGipSvc"                                                         # Xbox Accessory Management Service
#"SharedAccess"                                                      # Internet Connection Sharing (ICS)
#Hyper-V services
#"HvHost"
#"vmicguestinterface"
#"vmicheartbeat"
#"vmickvpexchange"
#"vmicrdv"
#"vmicshutdown"
#"vmictimesync"
#"vmicvmsession"

Services that is in automatic state

#"cbdhsvc_48486de"                                               # Clipboard Service
#"SysMain"                                                               # Analyses System Usage and Improves Performance
#"WpnService"                                                         # WpnService (Push Notifications may not work)
#"WSearch"                                                              # Windows Search
#"FontCache"                                                           # Windows Font cache

Services that is in disabled state by default

#"NetTcpPortSharing"                                             # Net.Tcp Port Sharing Service
#"RemoteAccess"                                                     # Routing and Remote Access
#"RemoteRegistry"                                                   # Remote Registry

I just ran that script and the issue still remains.  Only when closing the task manager.

Oh nevermind, the script didn't execute properly. It works. Thanks you so much for help! Im going to close the issue.


DX: Add upgrade guide link when next Major is available

inspired by https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/5696#issuecomment-938523856
just asking for opinions about this idea.
if you like it, I will adjust the tests

good idea :+1:


Palindrome-Checker in Javascript

This is a very basic project in javascript, for a complete beginner like me : )
Building a simple palindrome checker is great practice for working with strings and manipulating them with JavaScript. Plus, checking for palindromes can be a lot of fun!
i will be using some animation and will try to make my project  responsive and easy to deal.
Requirements: some javascript, html and css
=>It can be apply for whole statement not only for a particular string
Thank you!

hey @urvashi-code1255 please assign this to me  will try my best .
Thank you!

@Aarti002 Pallindrome Checker Exist.
If you want to modify or add new feat to this particular project let me know I will assign it to you.

sure i would try to add some animation to it, please assign it to me
Thank you!
On Sat, Mar 27, 2021, 17:43 Rajat Kumar @.***> wrote:

@Aarti002 https://github.com/Aarti002 Pallindrome Checker Exist.
If you want to modify or add new feat to this particular project let me
know I will assign it to you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Vishal-raj-1/Awesome-JavaScript-Projects/issues/385#issuecomment-808723342,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQ3EQQ4C7SORBRAULGACXF3TFXDYHANCNFSM4ZDGJ63A
.

@Aarti002 Any update?, Kindly reply within 2 days or I have close it.

i'm really very sorry i just forgot about this one , i will show by tonight itself @harshgupta20

can you add label tag in it @harshgupta20 ?

@991rajat @ridsuteri can I work??

sorry @Amit366 , it's resolved now :)


Private global namespace

Hello!
First of all thank you for your project.
I have deployed Portus at our own environment and was able to connet it with our private docker registry. And I found that I cannot change permission access for global namespace.
I need configure restricted access to our docker registry. So that everybody could pull/push docker images to/from registry only after authentication.
Can I do such behavior using Portus?
Thanks.

Right now this is not possible.
As discussed with issue https://github.com/SUSE/Portus/issues/279 we are open to the introduction of a "protected" level in addition to "public" and "private".

Maybe instead of protected a better name would be internal, since it would reflect better the purpose of this policy.

I've changed the title to reflect better what's this feature actually about :)

Within the context of this ticket, I think an internal or protected setting makes sense. I think it should be specific to each namespace, and I think that the basic concept is correct. From a naming perspective, I do think internal makese sense for me, but frankly protected makes just as much sense. If other services (gitlab?) use protected, then I'd suggest using that.

Just to summarize the discussion (even if it would be clear for involved people) and to add a possible piece for documentation:
Namespaces carry an attribute according to their policy for read access. Read access is required to

pull images from the namespace
search for images (once a search endpoint in registry with sufficient access control is available)
listing of and search for namespaces and respositories at the web UI
The following access policies are implemented
a private namespace is accessable only by team members
a protected namespace is accessable by any authenticated account
a public namespace is accessable without any authentication
The policy for each name space is configured by the owner role of the team owning the namespace or by the user for his personal namespace.

As a special case the global namespace can only have the access policy protected or public.
BTW: I don't like the term internal if not only for the fact that private is kind of internal as well.

Namespaces carry an attribute according to their policy for read access

For now, this is relegated to teams. Team admins assign which kind of policy do members have onto the belonging namespaces. @diranged has proposed (and I agree with him) that namespaces should be the one regulating the access policy, not teams (thus, teams would merely become bags of users). This will not be implemented for 2.1 though, because it's too disruptive.

As a special case the global namespace can only have the access policy protected or public.

I think that we never discussed this specific case actually :) I think it's fine to allow admins to set the global namespace as protected (note that push access would still be allowed only for admins).

Namespaces carry an attribute according to their policy for read access

This is relegated to teams. Team admins assign which kind of policy do members have
onto the belonging namespaces.

Whether a namespace is public or not is defined at the namespace level (I doubble-checked - look at pic from doc.
At team level there is a defintion of additional rights (write access for all kinds of namespaces and read access for private namespaces)

As a special case the global namespace can only have the access policy protected or public.

I think that we never discussed this specific case actually

I was more stating, that the global namespace could not be a private one. But just strike protected

Seems like I miss-understood what you were saying, sorry :sweat_smile:


Problem with disabling non-existing Tasks

Hi,
I have no idea why, but the Task "XblGameSaveTaskLogon" does not exist in our 1709 Enterprise Deployment.  Capturing an image fails with an error message if we try to disable a non-existing task.
For testing purposes we replaced in sysprep PS1 the Script Line 164 with the following code:
 $taskExists = Get-ScheduledTask | Where-Object {$_.TaskName -like "XblGameSaveTaskLogon" }
 if ($taskExists) { Disable-ScheduledTask -TaskName XblGameSaveTaskLogon -ErrorAction SilentlyContinue }

Maybe you could add this kind of check for every task you are trying to disable?

Nevermind, our MDT Capture Process came to a stop because another script also throwed some errors. Your script Windows10SysPrepDebloater.ps1 does indeed shows up with several errors, but the Capture process does not seem to care and still goes on.
Windows10SysPrepDebloater.log:
<![LOG[In \\W2012R2EVALMHI\MDTBuildLab$\Scripts\Windows10SysPrepDebloater.ps1:171 Zeichen:5
+     Get-ScheduledTask -TaskName XblGameSaveTaskLogon | Disable-Schedu ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]LOG]!><time="10:26:58.000+000" date="05-03-2018" component="TaskSequencePSHost" context="" type="3" thread="" file="TaskSequencePSHost">
<![LOG[ObjectNotFound: (XblGameSaveTaskLogon:String) [Get-ScheduledTask], CimJobException]LOG]!><time="10:26:58.000+000" date="05-03-2018" component="TaskSequencePSHost" context="" type="3" thread="" file="TaskSequencePSHost">


handle action order/dependency

Goal
Allow the business logic to identify dependencies between actions if any and apply them in any order.
Problem
When there is a reliable connection to the server the actions are applied in order they are received. But when the connection is intermittent, the client send a batch of actions and the server handles them in reverse order (newest action first), which has great benefits but doesn't count for the business logic having any preference.
For example:
on the client the following actions are created

C1: create user
C2: update user.name to "john"

in case of a good connection, the server handles C1 then C2, resulting in a valid user object.
in case of a bad connection the server receives a batch of [C2, C1] and handles C2, then C1 which might result in invalid user object.
Expectation
Either the server allows the for specifying the order to process actions, or it supplies the batch of actions to the handler and shift the responsibility to the business logic to figure out.

Fixed https://github.com/logux/logux-sync/commit/c914c556ac2db7de588cadbac6e118fb4296f9f1

I will need a day to fix Jest 22 problems and release fix

Released in Logux Sync 0.2.3.


Detection not woking correctly

If am start the record  its detect continuously. when am not pressing any keys ,its detect something ,Can you fix the issues to detect when i am pressing any key

Sorry for the late reply :(
The return value is considered to be the piano key with the closest probability value to white noise.
You could use the following APIs appropriately to distinguish closer piano keys.
Map<String, String> getNotesDetail(List<dynamic> event) {
    Map<String, String> result = Map();
    event.forEach((element) {
      result['key'] = getNoteName(element["key"]);
      result['frame'] = element["frame"].toString();
      result['onset'] = element["onset"].toString();
      result['offset'] = element["offset"].toString();
      result['velocity'] = element["velocity"].toString();
    });
    return result;
  }


dma: define and document the source and dest adjust enum.

This is used in #6306 to make the driver more readable.
Signed-off-by: Michael Hope<EMAIL_ADDRESS>

Codecov Report

Merging #6615 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #6615      +/-   ##
==========================================
- Coverage   53.51%   53.51%   -0.01%
==========================================
  Files         437      437
  Lines       41420    41420
  Branches     7935     7935
==========================================
- Hits        22165    22164       -1
- Misses      16038    16039       +1
  Partials     3217     3217

Impacted Files
Coverage Δ

kernel/posix/pthread.c
69% <0%> (-0.5%)
:arrow_down:

Continue to review full report at Codecov.

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

Friendly ping!  This is a small documentation change.


Jenkins docker

@LeeTL1220 I probably did the PR wrong (did it against master). Let me know a better way.

(this also serves as the autotesting for gatk-protected with PRs)

eval test please

eval this please

eval test please

eval test please

eval test please

eval test please

eval test please

eval test please

@davidbernick Do you need me to do something here?  It is still failing.

@davidbernick Or is this just to kick off the jenkins?

eval test please


How to tweak css

Hi,
I installed Isso using pip install isso. It has been installed into /usr/local/lib/python2.7/dist-packages/isso. There is a css/isso.css style file, but it doesn't control anything, because in js/embed.dev.js (and js/embed.min.js) there is a line defining styles:
define("text!app/../../css/isso.css",[],function(){return"#isso-thread * {\n ...

So, I can change styles there and it works, but it is very awkward. How can I use isso.css instead? And why do I have files which are very different from files in master branch? Maybe It will be easier just to reinstall isso from source?

You can disable Isso's CSS using <script src="..."

Arrgh, it's worth reading the documentation! Thanks and sorry for the stupid question.


How to get multiple message send by ws server one after another.

Currently by using websockets i only receive the first message i dont receive other message which are send by the ws server after sometime. How do i get that?

With the limited amount of info you provided, this looks like the first question of the FAQ: https://websockets.readthedocs.io/en/stable/faq.html

Am sorry but am new to websocket.
The browser sends a json file to ws server,then the browser receives 3 json which send one by one by ws server.
I want to make a client that can work like the browser.

You're also new to asyncio and that's the bigger concern here.
The answer to your question is also in the FAQ; look at "How do I do two things in parallel?"
Please do a little bit of homework before asking for support.


WIP Feature/init

This aims to reduce boilerplate needed to bootstrap common projects. Will start by Golang.
The template itself needs more work.
Right now I am getting found unexpected end of stream at the last line of the template.

This is an interesting idea. It reminds me of https://github.com/audreyr/cookiecutter
We could maybe create some templates for cookiecutter and suggest using it from the docs?
If we add our own init, I think the templates should be external. Maybe it could use gist or github to fetch them? Keeping them external will make it easier for people to use their own without having to add a bunch of templates to dobi.

I was thinking on a gist. Then it would be easy to assing a flag to set your custom gist url
dobi init golang --gist http:/....

I push though the IDE and it somehow messed stuff on my commits...

I think this will be cool. I'm going to look into it more this weekend. I'd like to be able to do dobi init dnephin/go-template` or something like that, when I create a new repo.
What do you mean by your IDE messes up your commits?

I'm back to wondering if the best way to implement this would be just some pattern for running cookiecutter (or something similar) in a container.

https://github.com/cescoferraro/go-dobi-cutter
This works
docker run -it   -v $PWD:/src/app -w /srv/app python:2 pip install cookiecutter && cookiecutter https://github.com/cescoferraro/go-dobi-cutter.git
This works but the project folder get owned by root
mount=source:
bind: .
path: /srv/app
image=python:
image: python
tags: ["3"]
job=golang-init:
use: python
mounts: [source]
interactive: true
working-dir: /srv/app
command: bash -c -E "cookiecutter https://github.com/cescoferraro/go-dobi-cutter.git"

Ya, that's an issue we have to deal with for a lot of tasks. We could assume user 1000, but that won't always be correct. I don't know of any way to deal with that without an entrypoint script that creates the user with the passed in uid.

This happens here too with things like dobi deps, but could be easily solved with user: "{user.uid}".
But pip needs more permissions to run

Just started the cookie cutter way

I will start off a new branch. I can implement the url flag but I dont think we need it. Instead we could just validate whenever or not the --filename flag is a URL. Then we could issue the req, get the responseś slice of bytes and toss into LoadFromBytes. I can submit a PR.
But that does not solve the init, that conceptually has to create some files on the fs. We should run init with the same approach of passing everything through the dobi's engine, You are right, we should be DRY.
But we would still need a tool to actually templating those files. cookiecutter does seem like a a nice fit.
THe #55 would help here to make sure this the dobi-cookiecutter job runs with as the right user/permissions.
The init routine shoud create a  generic dobifile like
meta:
    include: ["{{ .dirname }}/*.yaml"]

Get the []bytes from a template ilke the below, and pass the result through LoadFromBytes
var initModel :=`
mount=source:
    bind: .
    path: /srv/app

image=cookkie:
    image: init-image
    steps:
      - FROM: python:3
      - RUN: pip install cookiecutter
      // set a user somehow
      - RUN: user{{.user}}:{{.uid}}

job=init:
    use: cookkie
    mounts: [source]
    interactive: true
    working-dir: /srv/app
    command:  cookiecutter {{.cookieFlag}}
`

and run the cookicutter task to create the {{.dirname}} folder of a repo we gould pass like
dobi init --cookie github.com/me/cutter
What do you think?

Sorry I haven't responded here in a while. I've thought a bit more about this init problem.  Ultimately I don't think it's a dobi concern. dobi should strive for a concise config, but initialising a new repo is best left to other tools.
dobi is only used as a way to "package" those tools with a docker image and run configuration. dobi isn't specifically designed as a package manager. https://github.com/bfirsh/whalebrew is much better suited to that problem.
So an ideal way to provide repo initialization might be with a whalebrew package for cookiecutter, and some cookiecutter templates for different languages, which include a dobi.yaml.
However, with the --url option on dobi it should still be possible to do something similar, but I don't think we should add any features specifically for this use case. We could even do it with the existing -f flag, it just wouldn't support remote configs yet.
Once we have --url we can add to the docs about how to use it to initialize repos, by pointing at example configs. If you're interested in submitting a PR for this, it would be greatly appreciated.
Thanks again for bringing up this idea!


Added bitHUmen provider

Hi,
What is the reason that this is still not merged?
Should I correct something?
Is it does not merged because of the two commits? Should I separate them into two pull requests?
Thanks,
Gabor

I'm rejecting this because of missing settings, but I manually merged it into the next version.
Thanks for your contribution.


B 19017 int

B-19017
Summary
Under Current & New Duty Station fields, add the zip code at the end of the name to match the rest of the list:

PPPO West Point/ USMA - USA (GBLOC BGAC)
PPPO USAG Miami - USA (GBLOC CLPK)

this script was already ran in staging/loadtest envs- this is just CM'img the code to ensure any rebaseline doenst lose the update

Are they duty_location_id uuids the same across all envs?

yes they are- i did a little research on this
UUIDs should be generated prior to inserting in a migration file- to ensure contunuity across envs
https://transcom.github.io/mymove-docs/docs/backend/setup/database-migrations#writing-migrations

UUIDs should be generated prior to inserting in a migration file- to ensure contunuity across envs

Sweet, that is good to hear.


remove Linux GPU unittest from CircleCI

They were ported in #6804. There were some teething issues, but they have been running smoothly since at least one month now (https://github.com/pytorch/vision/issues/6957#issuecomment-1398258611).
cc @seemethere

Just to confirm, are we sure that the removed GPU job is fully covered by GA already (in terms of Python version, etc)?

Nope, coverage is not exactly the same:
https://github.com/pytorch/vision/blob/cd3324639372c6a10b50703dc8262418f8a83144/.circleci/config.yml#L1344-L1365
https://github.com/pytorch/vision/blob/cd3324639372c6a10b50703dc8262418f8a83144/.github/workflows/test-linux-gpu.yml#L18-L20
For both we test Python 3.8, but on CircleCI we also test 3.9 and 3.10 on the main and nightly branch, but not on PRs. I think this is intentional, but let's wait for Nova on that.

And are we also sure that removing the CPU unittest job isn't going to affect the doc build (I remember discussing it with you recently)

Yes, I'm sure. I was wrong back then. The docs workflow depends the build workflow
https://github.com/pytorch/vision/blob/cd3324639372c6a10b50703dc8262418f8a83144/.circleci/config.yml#L1302-L1312
And that one is untouched by this PR. On main
$ grep unittest_linux_cpu .circleci/config.yml | wc -l
1

Meaning, this job is only defined, but never used. For that, it needs to show up in any group at the bottom of the file. Preferably here
https://github.com/pytorch/vision/blob/cd3324639372c6a10b50703dc8262418f8a83144/.circleci/config.yml#L1339

I've opened #7374 to keep track of handling the "main only" workflows later.


[GoodID]: Claim from multiple pools

Description
We want a solution which makes it possible to claim from mulitple pools in one transaction.
For this permission to claim has to delegated/extended to a smart-contract
Possible solutions

[ ] Update UBI contract and add additional contract which has given permission to claim from all pools available
[ ] Connect and address to a existing whitelisted address to be able to claim on behalf of
[ ] Was there a third?

unstale

@L03TJ3 do you need any further guidance on this from a UX / requirements perspective?
Should we link this to the GoodID epic?

@decentralauren Just the design ready in figma would be sufficient. This ticket was for doing the smart-contract work which we will not do right now, so likely can be closed

@L03TJ3 added the figma file for reference (above) and closing


Estimation of "0.5" story points ends up with 5

When selecting an effort of 0.5 story points, the value in PBI is set to 5.

We are working to resolve the problem as quickly as possible.
Thank you for your patience


Issues with nodemon

When I use nodemon in my project with the simpl.db, every change I do in my database, nodemon detects a file change and restarts the app.
Is there a solution for this?
Thanks!

I resolved by simply ignoring the database.json file with nodemon src/bot.js --ignore 'database.json'
Sorry for the inconvenience


[BETA] The navbar "Map" link does not work from the User Profile / Settings page

Issue Description

Go to https://beta.freecodecamp.org/en/settings
Click on the "Map" link in the navbar.
Nothing happens. The href attribute is set to #.

Screenshot

Thanks for reporting this issue, I have already addressed this in #16743

Sorry about the dup issue. I did search open issues but didn't find that one. Closing as dup.

@tchaffee it is not a duplicate, I found whilst working it that area and just patched it as I went. We should keep this issue open just incase my PR does not get merged, in which case this will still be an issue


1.0.54 - Index of mouse click in cooking table is off

I crafted the new cooking table and ran into the following issue:
I scroll down once and hover the kiwi juice:

I click it, and it properly shows the recipe:

Finally, to craft it I have to click on the cell + 1 (in this case, one to the right):

If I scroll one more down, the offset has to be +2 for it to craft the correct recipe. I suspect that it will be +3 for another tick of the scroll wheel.
While I am not familiar with your code, I think the issue comes out of this function https://github.com/blay09/CookingForBlockheads/blob/master/src/main/java/net/blay09/mods/cookingbook/client/GuiRecipeBook.java#L256

You can use ![](URI) to embed imgur images :)
e.g.
![](http://i.imgur.com/NvApRCP.png)

Gotcha @bakaxyf, updated the post with embedded images :)


custom toolbox，the show property don't work

Version
5.0.2
Steps to reproduce
jsut custom the toolbox, in the feature, use show property
What is expected?
echarts 5.0.2
What is actually happening?
show don't work

no

Hello @767683528 . please provide a online reproduction.
I see that the toolbox running normally
https://echarts.apache.org/examples/zh/editor.html?c=line-marker

Hi I mean the custom toolbox, in the feature, it has a property "show", it don't work! just see the enclosure。
------------------ 原始邮件 ------------------
发件人:                                                                                "apache/echarts"                                                                                @.>;
发送时间: 2021年4月8日(星期四) 下午3:23
@.>;
<EMAIL_ADDRESS>主题: Re: [apache/echarts] custom toolbox，the show property don't work (#14618)
Hello @767683528 . please provide a online reproduction.
I see that the toolbox running normally
https://echarts.apache.org/examples/zh/editor.html?c=line-marker
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi @767683528 ,I may still not understand your confusion, sorry

Hi dear, In the last email, I put a picture in the attachment, which you can understand!
------------------ 原始邮件 ------------------
发件人:                                                                                "apache/echarts"                                                                                @.>;
发送时间: 2021年4月8日(星期四) 下午3:45
@.>;
<EMAIL_ADDRESS>主题: Re: [apache/echarts] custom toolbox，the show property don't work (#14618)
Hi @767683528 ,I may still not understand your confusion, sorry
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

toolbox: {
        show: true,
        feature: {
            myBack: {
               show: false,
               title: '返回',
               icon: 'path://M473.2 276.9v-133c-4-18.4-11.7-27-20.2-30.3-17.2-6.7-37.8 8.5-37.8 8.5L95.9 395.4c-70.1 48.4-4.8 84.7-4.8 84.7L405.5 751c62.9 46 67.7-24.2 67.7-24.2V603.4c319.3-99.2 449.9 297.5 449.9 297.5 12.1 21.8 19.3 0 19.3 0 123.4-595-469.2-624-469.2-624z m0 0',
               iconStyle: {
                   color: "#1aaef6",
                   borderColor: "#1aaef6"
               },
               onclick: function() {

               }
           }
        }
    },
Hi, look this, I set the property show: false, but I still can see the icon in the toolbox, you try it.
------------------ 原始邮件 ------------------
发件人:                                                                                "apache/echarts"                                                                                @.>;
发送时间: 2021年4月8日(星期四) 下午3:45
@.>;
<EMAIL_ADDRESS>主题: Re: [apache/echarts] custom toolbox，the show property don't work (#14618)
Hi @767683528 ,I may still not understand your confusion, sorry
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for the feedback. Related to #14405. Here is a PR #14408 to fix it.


Nested components do not get validated properly

Things to check

[X] I have searched the existing issues for this bug
[X] To rule out a caching problem I made sure the bug also happens in an incognito tab

Bug type
Component
Component name
MudForm
What happened?
I have a reproduction case here: https://github.com/baynezy/MudBlazorIssue
My main issue is that I have a custom component
https://github.com/baynezy/MudBlazorIssue/blob/master/MudBlazorIssue/Components/FrequencySelector.razor
https://github.com/baynezy/MudBlazorIssue/blob/master/MudBlazorIssue/Components/FrequencySelector.razor.cs
that if I add it inline:
<MudItem xs="12">
    <FrequencySelector
        ForFrequency="() => AddHeartbeatSettingViewModel.Frequency.Value"
        ForTimeUnit="() => AddHeartbeatSettingViewModel.Frequency.TimeUnit"
        Disabled="@(!AddHeartbeatSettingViewModel.IsEnabled)"
<EMAIL_ADDRESS><EMAIL_ADDRESS></MudItem>

Then the validation works perfectly. However, if I use the same component in a loop the validation does not fire.
@if (AddHeartbeatSettingViewModel.Pester.Intervals.Count > 0)
{
    for (var i = 0; i < AddHeartbeatSettingViewModel.Pester.Intervals.Count; i++)
    {
        var localCount = i;
        <FrequencySelector
            ForFrequency="() => AddHeartbeatSettingViewModel.Pester.Intervals[localCount].Value"
            ForTimeUnit="() => AddHeartbeatSettingViewModel.Pester.Intervals[localCount].TimeUnit"
            Disabled="@(!AddHeartbeatSettingViewModel.IsEnabled)"
<EMAIL_ADDRESS><EMAIL_ADDRESS>    }
}

I have narrowed this down to the AddHeartbeatSettingViewModelValidator.ValidateValue() method that I am calling from my MudForm:
<MudForm @ref="_form"
   Validation="@(AddHeartbeatSettingViewModelValidator.ValidateValue)"
   Model="@AddHeartbeatSettingViewModel"
   @bind-Errors="@_errors">

When I debug that function:
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
    var result = await ValidateAsync(ValidationContext<TModel>.CreateWithOptions((TModel)model, x => x.IncludeProperties(propertyName)));
    return result.IsValid ? Array.Empty<string>() : result.Errors.Select(e => e.ErrorMessage);
};

I see that propertyName is an empty string for the properties of the component in the loop. Whereas they are not for the inline component.
Am I doing something wrong?
Expected behavior
Component should validate regardless of it being added in a loop or not.
Reproduction link
https://github.com/baynezy/MudBlazorIssue
Reproduction steps

Clone this repository
Run the project
Open side navigation if it's not already open
Click on the "Nested Component Issues" link
Click on Enabled
Click on "Add Interval" button
Click on "Create Heartbeat Setting"
Note that inline validation only shows on the first interval, but not on the second interval

Relevant log output
No response
Version (bug)
7.15.0
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On which operating systems are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

Thats not a bug, thats expected C# behaviour. To be fair I did also got tricked by this. But when you think about it, it all makes sense. Look at this example:
@foreach (var item in _lambdas)
{
    <p>@item()</p>
}

@code {
    private List<Func<string>> _lambdas = [];

    protected override void OnInitialized()
    {
        for (int i = 0; i < 10; i++)
            _lambdas.Add(() => i.ToString());
    }
}

This will output 10 times 10 and not 123456789. Why? Because you are using a lambda and not a fixed value that you pass to your component. So what will happen:

You loop runs through and generate lambdas
At the end the variable i is set to AddHeartbeatSettingViewModel.Pester.Intervals.Count
The subcomponent is rendered and the lambda is executet. With the current value of i

How do you avoid that? Use foreach or create a local varialbe in the loop that holds the data you want to work with, and use this value then in your lambda.

Sorry for my previous answer :( But now I got another idear to your problem. Its the For-Parameter.
This parameters is evaluated via reflection which name the field has to assign error messages.
And my gues is, because in the loop all your For's ends with Value, the form does not know which of all Value-Fields the error should be assigned?

Thanks @Wasserwecken for your help. Do you think that is a bug or am I doing something wrong?

Hi, first guess: think about foreach loop instead for better readability as long as you do not need the index.
Second: have you tried to only render for a collection of 1 Element? If that works possibly it is needed to add the @key for the framework to be able to identify the elements.
May you check for this?

Thanks @Wasserwecken for your help. Do you think that is a bug or am I doing something wrong?

I dont want to say that :D. But as I said, its probably because the form has ambigous field names.
Have you tried to use the Validation on the Field itself?

@GrexyLoco

first guess: think about foreach loop instead for better readability as long as you do not need the index.

That made no difference sadly. I am about to try your second idea.

@GrexyLoco - I tried using key:
 @if (AddHeartbeatSettingViewModel.Pester.Intervals.Count > 0)
  {
      var frequencyCount = 0;
      foreach (var frequencyModel in AddHeartbeatSettingViewModel.Pester.Intervals)
      {
          <FrequencySelector
              @key="@($"pester_{frequencyCount++}")"
              ForFrequency="() => frequencyModel.Value"
              ForTimeUnit="() => frequencyModel.TimeUnit"
              Disabled="@(!AddHeartbeatSettingViewModel.IsEnabled)"
<EMAIL_ADDRESS><EMAIL_ADDRESS>      }
  }

However, that doesn't change the problem.
I have done more investigation with the debugger. It seems that the issue is that the Func<object, string, Task<IEnumerable<string>>> being passed to Validation on MudForm is getting an invalid path to the member.
<MudForm @ref="_form"
             Validation="@(AddHeartbeatSettingViewModelValidator.ValidateValue)"
             Model="@AddHeartbeatSettingViewModel"
             @bind-Errors="@_errors">

If I debug that code for the inline component I am getting Frequency.Value and Frequency.TimeUnit respectively, but for the dynamic components I am just getting Value and TimeUnit. If I run the validator on the view model directly then I get Pester.Intervals[0].Value which is correct.
So I believe there is a bug with how MudForm.Validate() is handling dynamic components' property names.

Ah... my first guess was just for better readability.
The second: i just realized you are using MudForm. I got rid of it, because it has limited functionality and i met some issues, also with complex validation.
As you may also see in documentation when i remember correctly. So i would recommend to use EditForm component for advanced validation instead.
But i can not say if this is a Bug or missuse directly, so its just a recommendation. Sorry i cant help solve your issue with MudForm!

but for the dynamic components I am just getting Value and TimeUnit.

Yo, this is what I am telling you ;). Because the field identifer is internaly evaluated by the For-Property.
I did not debug the code but there are two major problems for you:

your lambdas in the loop are all ending with the property Value and TimeUnit, they will all have the same name.
Because you are using an array index access, the field identifier cannot be evaluated and you get an empty string.

 But even if you fix that, all your fields would have the same name, then errors would be shared accross the fields.
Why am i assuming all of that? Because of the code:
Here is your validation method call:
https://github.com/MudBlazor/MudBlazor/blob/759f81464d4ed1662d2db7846aebb13f0610ed43/src/MudBlazor/Base/MudFormComponent.cs#L509
And the Lambda expects only Properties:
https://github.com/MudBlazor/MudBlazor/blob/aa723c2ce9aefb18b56875ab8675e67336e1d75c/src/MudBlazor/Extensions/ExpressionExtensions.cs#L19-L26
I assume your goal is to show individual errors for each item in your list?
You can use the Error and ErrorText to show your message manually:
<MudTextField Error="true" ErrorText="Hello" />


freeform object is not created correctly in plugin-ts

What version of kubb is running?
2.17.0, but works the same with 3.0.0-alpha.20
What platform is your computer?
macos
What version of external packages are you using(@tanstack-query, MSW, React, Vue, ...)
irrelevant
What steps can reproduce the bug?
There are two ways to express a "freeform object" in OpenAPI: either add additionalProperties: true or additionalProperties: {} to the entity with type object (source).
The plugin-ts does perfectly fine with former way and generates
freeformObject: {
    [key: string]: any
}

which is an accurate way to express an object with keys as strings (as per spec) and any kind of values.
The latter way of expressing the same, additionalProperties: {}, has a bug - it generates the following:
freeformObject: object

which basically says that it can be anything except null or undefined, but the compiler doesn't know anything about the value, so doing something like freeformObject['someRandomKey'] = 2 throws Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'.
How often does this bug happen?
None
What is the expected behavior?
get
freeformObject: {
    [key: string]: any
}

in both cases
Swagger/OpenAPI file?
providing only the relevant part of the slightly changed petStore.yml you use in your project:
Pet:
      required:
        - name
        - photoUrls
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 10
        name:
          type: string
          example: doggie
        freeformObject:
          type: object
          additionalProperties: {}
        category:
          $ref: 'https://petstore3.swagger.io/api/v3/openapi.json#/components/schemas/Category'
        photoUrls:
          type: array
          xml:
            wrapped: true
          items:
            type: string
            xml:
              name: photoUrl
        tags:
          type: array
          xml:
            wrapped: true
          items:
            $ref: '#/components/schemas/Tag'
        status:
          type: string
          description: pet status in the store
          enum:
            - available
            - pending
            - sold
      xml:
        name: pet

Additional information
So I went on to dig into what was happening and ended up in SchemaGenerator.ts of plugin-oas.
Found the place where it checks for additionalProperties === true and added || !Object.keys(additionalProperties).length, hoping for an easy fix; however, it didn't change a thing.
So I set a breakpoint there and found out that if additionalProperties contains {}, it gets stripped (the object that gets there is just {type: 'object'}, without additionalProperties at all); I went on as high as I saw inside the flow and got convinced to a certain degree that it gets stripped in oas during the initial parsing.
Unfortunately, I didn't have too much time to play with it, and the code there is not the simplest; if you could direct me to where else I can look to find out the root cause I'd be thankful. And thanks for the great project of course!! :)

We were using openapi-format which already strips out some data and preserveEmptyObjects was set to false. This meant that empty objects were removed from the Oas Schema before it was passed to the SchemaGenerator.ts. And that caused that weird issue for you, your solution here will work fine after I remove the experimental format and sorting of openapi-format.
See https://github.com/kubb-labs/kubb/pull/1233

Spectacular, thank you! Shall I open a PR with it then?

@grreeenn If you want to do that, that would be great :)

@stijnvanhulle with great pleasure :) I hope I got all the contribution guidelines right. Also, will it get to v2?


Added Indonesian Localization

Thanks!

Hi, thanks for the PR! I don't have access to my dev machine currently, but I'll test & merge it once possible


Doc: Remove pipeline references

Issue #3712 points out that its unlikely that http1.1 pipelining is not
working. Options were removed for it a while back. Similarly,
support for http 0.9 has been removed.

[approve ci autest]


Ability to specify outputs per-subscription

Is it possible to specify which outputs a specific subscription should be sent to? If not, I'd be interested in opening a feature request for this behavior.
For example:
subscriptions:
  interface_status:
    paths: 'some/path/here'
    outputs:
      - nats
      - prometheus

  bgp_neighbor_state:
    paths: 'some/other/path'
    outputs:
      - nats

outputs:
  nats:
  prometheus:

I'd like to be able to specify that only certain subscriptions are forwarded to our Prometheus instance while other (or all) events go to a NATS instance.
I've attempted to use processors to only allow certain events but was unable to determine which specific filter options to use. processors may be the solution, but I'm unsure of how to view the messages in a raw form so that I could properly match a regex to tags/values/etc. When running gnmic get --path 'the/path' I did not see any tags or other data returned, only the updates field and timestamps/metadata.
Thanks for your assistance and let me know if I can provide any more info. I'm also happy to contribute code with some direction if that's what is needed.

As you said, it's possible using processors.
Processors apply to outputs using the event format.
The event-allow and event-drop processors can be used to allow or filter out messages per output.
processors:
  output1-filter:
    event-allow:
      condition: .tags["subscription-name"] == "sub1"

By adding the above processor to the prometheus output:
outputs:
  prometheus:
    type: prometheus
    event-processors:
      - output1-filter

Only the updates from the subscription sub1 will be available through the prometheus output.
You can apply the same (opposite) logic using the event-drop processor
Both the event-drop and event-allow processors logic can be defined using regexes as well.
But the condition field (a JQ expression) is more flexible since it allows to combine multiple fields to evaluate a single condition.
To view messages in the event format, you have to add the flag --format event when using the cli (It works with get and subscribe cmds but I would recommend using the subscribe command for your tests)
The Prometheus output uses the event format by default, so no extra config is required for the processors to apply.
If you want to use processors under the nats output you have to set the format attribute to event:
outputs:
  nats:
    type: nats
     format: event

All that being said, I wouldn't be against adding an allowed-subscriptions field under all the outputs to explicitly filter out unwanted subscriptions. It will be easier to understand and configure for users and it would apply to all formats.

That's exactly what I needed, the jq formatting with the subscription-name works like I'd expected. Showing me how to --format event was the magic that let me see how this was meant to be filtered.
Thanks so much for your help @karimra !


[v0.5] s4: Fixes 227

Issue:

Port of #390

Validate user retention userattribute fields and settings
[v0.4.s4] Don't allow empty lastLogin user attribute

Problem

Solution

CheckList

[ ] Test

[ ] Docs

@ericpromislow Thanks for the insights! It seems like the required change is not related to this port in any way and should be applied is a separate PR. Then this one can be rebased.

Depends on and needs to be rebased off of #406


Support for sdk2.1.1

I added support for SDK 2.1.1 and added additional tests for that. Also cleaned up some of the sample files that were getting generated that were not correctly deleted or renamed for both SDK 2.1.0 and SDK 2.1.1.

I do also have my in-progress doc for AMP creation.

Thanks @jrosler great contrib!


Defender WSL Plugin for Windows Server

So with the previews of Microsoft Connected Cache with is running on WSL2, and for Enterprises a server installation is the best option.
I like to see that the WSL plugin for Defender also can be used on the Windows server OS (Now only Windows 10 and 11 is supported)

/feature

I am just curious, @IntuneAdmin, is this an issue of official support or are you running into an issue with getting the WSL working on Windows Server? Which Windows Server versions (2022, 2025, etc.) would you like to see supported?


Counterexamples not shown

The dafny.showCounterExample command seems to have no effect. This has been noticed after updating to version 0.11.1 of the plugin and version 2.1.1 of the Dafny server.
OS: MacOS 10.13.4

I can confirm the issue on MacOS 10.14 Beta, plugin version 0.11.1. and Dafny server version 3.5.0 (?). Labelling it as a bug.

While debugging the server on the counterModel request, I was able to get a counter example twice. This happened only by accident and the only similarity between the two successful requests was the huge delay introduced in the server by a breakpoint. It seems that the Dafny binary takes a very long time to calculate the counter example. The example code I used was the one from the README:
method Abs(x: Int)
    returns (y: int)
ensures y >= 0 {
    return x;
}

I read somewhere that showing of counterexamples has been disabled due to
performance concerns, but can be enabled by the setting of a configuration
parameter. Sorry, I can't provide more information now, as I'm somewhere
with very poor internet connectivity.
On Thu, Jun 14, 2018 at 3:55 AM Mario Meili<EMAIL_ADDRESS>wrote:

While debugging the server on the counterModel request, I was able to get
a counter example twice. This happened only by accident and the only
similarity between the two successful requests was the huge delay
introduced in the server by a breakpoint. It seems that the Dafny binary
takes a very long time to calculate the counter example. The example code I
used was the one from the README:
method Abs(x: Int)
returns (y: int)
ensures y >= 0 {
return x;
}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/DafnyVSCode/Dafny-VSCode/issues/23#issuecomment-397205784,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACpL9c_htofqwKQjYFWyVxAuW1CoePVqks5t8hcKgaJpZM4T2w7F
.

Dear Kevin,
You are right. Counterexamples take some time and processing power to generate. Therefore we decided that we should be able to toggle them with VS Code using the function keys. This is intended behaviour and worked well. This was instantaneous for the Abs example that @pipeaesac mentioned earlier in the thread.
Currently (i.e. after the update to the new Dafny version and the new Plugin version), it seems that the counterexamples are no more shown (or maybe just take too long). For me, the counterexample for the Abs example is not shown.
I may be wrong, but this may have something to do with an update to Dafny itself, since the code for processing counterexamples in the plugin does not seem to have changed.
@RustanLeino : Do you know of any changes in Dafny itself that could cause something like this?
Best regards,
Farhad

Is there any update on this? Is there any way to force the counter example to be shown?

Hi ruimaranhao,
Sorry, there is currently nothing further on this issue that I can report. I have added the "help wanted" tag to it, so feel free to look into it if you have the time. Directions for contributing are on the GitHub pages.
Best regards,
Farhad

I added a workaround to the upstream bug that ships with the newest release (v0.14.2).
Could you try if that works for you @ruimaranhao?


Python 3 only

drop Python 2.7 support
don't build Python 2.7 packages for PyPI anymore

looks good!


feat(poetry): convert to v2 tool

Should we use a venv instead?
~venv would be bigger, as it also copies python inside~

We can try out venv if it is easier to handle. We are basically doing the same in a poor mans way.

We can try out venv if it is easier to handle. We are basically doing the same in a poor mans way.

created #635 for venv


Laravel Mix has error while coping the new complied files

It said, "The file could not be found." for the just complied file.
So how do I copy it to a new location after it has been complied?

duplicate #309
Trying to fix it.

Does the output directory exist?

I don't think you can copy sequentially at the moment. The plugin we use performs all the copying asynchronously.

We need support on this. Hmm, let's wait.


Instrument webpack module.js which is not part of the source code

Using latest version of istanbul-instrumenter-loader (v3.0.0) and found the coverage report generated covers node_modules/webpack/buildin/module.js file along with other source code. I think this is unnecessary.
Node version: 7.9.0
OS: macOS Sierra

exclude: [/(tests|node_modules|.spec.js$)/]


highlights

Is there a way to remove these ``` when highlighting a parameter?
Also is there a way to change fore/background of the signature since it doesn't really match anything:

As an example here is how Saga diagnostic looks like:

You can config the way the current parameter highlight by adding
decorator = {"", ""}.  or whatever you think looks good
in the configure
The highlight is provided by neovim itself. It is hard to change unless the flowing windows re-implemented (e.g. lspsaga)

@ray-x I've checked the decorator option but it only defines the symbol, not the color.

So am I correct to say ``` is the only option here?
Regarding fore/background highlighting, do this light foreground and dark background comes from some default floating window settings? No way to change this?

If you want to it be coloured you may need to use backstick
The background is coming from your current colour scheme. I do not know how neovim pick the float window background, but it not controlled by the plugin.  You can change to another scheme that looks less obvious or disable the broader.

Ok. Thank you.


Add wordpress_cloudsql.yaml.template

Fixes #97

The YAML content LGTM, although I'm not completely aware of the context behind this (I assume it's going to be added to the existing wordpress tutorial?).
I agree we should look into merging this with the cloudsql content at some point, but I'm not too sure about the best way to structure everything yet, so that decision can come later if this is time sensitive


add open source gpw required intents to minimal owl

[x] joeferner
[ ] mwizeman joeybrk372 jharwig sfeng88

Testing Instructions:

Following the getting started instructions, make sure that all of the open source gpws requiring intents work (email extractor, phone number extractor, and zip code extractor)

Points of Regression: N/A
CHANGELOG
Added: Missing required intents into minimal owl file for GPWs

@mwizeman done making the changes we discussed


Number of unique voters in each cycle at top of space page

this isnt that interesting to me anymore


Origins forge causes a crash when a spell from mahou tsukai kills something

crash-2023-09-15_18.48.49-server.txt

This is caused by the Additional Entity Attributes Forge port, which is included in Origins Forge.
We also maintain that, so the fix will be done over there.

We were just using an getParam, which throws if it's not there instead of getParamOrNull, which returns null if not present (the expected behavior).
Fixed for next update!


Q: How long must the Phase II transition API be available?

Will Metagrid and intake-esgf ever be updated to use Globus Search and the new Phase II schemas natively?
If yes, then how long after that will we keep the transition API available?

We may want to keep an API around for CMIP5 and some other small legacy projects.  That said, they will be much smaller than the entire CMIP5 so we may have the opportunity to downsize from the entirety of CMIP6


[💡 FEATURE REQUEST]: Custom worker

Plugin
No response
I have an idea!
I have an idea, listen to me!!
Can I customize the worker? Like HTTP, I can define commands, pools, etc
rpc:
  listen: tcp://<IP_ADDRESS>:6001

server:
  command: "php worker.php"

http:
  address: "<IP_ADDRESS>:8080"

worker:
  - name: myWorker
    command: "php my-worker.php"
    pool:
      num_workers: 4

logs:
  level: error

I hope to rely on the resident memory feature of roadrunner to implement my own worker.

Hey @Yurunsoft, this is a good idea. But, from the RR2 POV, this is not a worker (like in the RR1), it's the pool.
We already have similar a proposal: https://github.com/spiral/roadrunner-plugins/issues/36


Can't get live preview working with angular routing and webserver

Hi there,
I have a webserver with a virtualhost set to my application, the routing is handled by angular router. I already have defined my virtualserver name at "Project Settings..." but when I launch Live Preview it sends me to the file location I've opened in Brackets, not letting angular handle the routes which breaks the application.
Is there any way to work with angular and a webserver within Brackets?

Hi,
I'm facing the same issue. Does anyone know the answer?
Thank you!


Gatekeeper still watching the header Authorization even if enable-authorization-header option is false

Title
Gatekeeper still watching the header Authorization even if  enable-authorization-header=false
Summary
I'm using an application with built-in authorization and it sets (by Java Script) the header Authorization: Bearer .... Gatekeeper in this case gives an error  oidc: id token issued by a different provider
Environment

Server: keycloak 20.0.3
Gatekeeper: docker 2.2.0

Expected Results
Gatekeeper passes traffic.
Actual Results
Steps to reproduce
Send a request whith the header Authorization.
Additional Information
I think that with the enable-authorization-header=false, the gatekeeper should ignore the Authorization header that comes from the user and pass it on to the application.

Hi, please check gatekeeper --help, there you see all short descriptions of parameters or in https://gogatekeeper.github.io/gatekeeper/configuration, agree that on github.io it could be describe a little more (will update) but shortly, this options turns off/on adding/removing Authorization header to request to upstream (means your service behind gatekeeper). For your usage (not sure about details) seems that you will need –skip-authorization-header-identity or –skip-token-verification

@p53 thanks a lot.


Union types of sort interface | interface[] and using instanceof Array

In TypeScript playground, the "New Features" option gives this code
type NameOrNameArray = string | string[];

function createName(name: NameOrNameArray) {
    if (typeof name === "string") {
        return name;
    }
    else {
        return name.join(" ");
    }
}

var greetingMessage = `Greetings, ${createName(["Sam", "Smith"]) }`;
alert(greetingMessage);

If I make a type such as
interface Guid {
  toLowerCase:()=>string;
}

(since I'm using TypeLite to get some C# types in my TypeScript I have a Guid type but basically treat Guids as strings so toLowerCase() is enough to discriminate for my purposes).
Anyway, if I then modify the playground code to be
interface Guid {
  toLowerCase:()=>string;
}
type GuidOrGuidArray = Guid | Guid[];

function createGuid(g: GuidOrGuidArray) {
    if (g instanceof Array) {
      //intellisense on g.  should give me array things
      var x = g[0];     //This SHOULD compile
   }
    else {
        //intellisense on g.  should give me toLowerCase() as my only option
        var y = g.toLowerCase();   ///This SHOULD compile
    }
}

Instead I get the type of x to be any and y fails to compile.  In both cases, the popup hint in the playground (and in Visual Studio) gives the indication that the type of g within each branch of the if is still the union type.
You'll note that I switched the if block around so that I'm using instanceof Array rather than typeof === "string".    That's because I've tried it the other way and wasn't surprised that it didn't work since my Guid interface doesn't extend string in any way and typeof [] gives object.
Should this work?  At the moment I'm doing the kludge workarounds...
var x = <Guid[]>g[0];
and
var y = (<Guid>g).toLowerCase();
It'd be :100: if instanceof Array worked to discriminate between the array and non-array in the union type.

I guess it is: #1657 #1708 and #1007 .

Yes, this issue was fixed in #1657.

Thanks for the quick response!  I had read 1657 in the past but didn't realise it wasn't in the 1.4 release.  Apologies for the duplicate.

After updating to the latest code from master (replacing my language service and compiler files used by VS 2013), the inference still isn't 100% correct.  The "g" in the else block is still being seen as the union type rather than the non-array "Guid" type.

The example given by @ahejlsberg in the PR
class Message {
    value: string;
}

function saySize(message: Message | Message[]) {
    if (message instanceof Array) {
        return message.length;  // message of type Message[] here
    }
}

doesn't mention the else clause - am I just looking for something that isn't (won't?) be supported.  No problem if that's the case - just want to be sure.
I can see slightly differing issues & discussions about this
#1957 - this seems to be along the same lines as what I'm looking for.  It references
#1719 - @ahejlsberg mentions that #1007 is the ultimate solution for this.
#1785 - similar
#1587 - similar
I'll keep doing my typecasts for the time being and hope for #1007 to come along or even see the #1719 suggestion to narrow types in else clauses of instanceof checks implemented.

It is by design that the type guard doesn't affect the else block. As described in #1719 the reasoning is that while we know the instance wasn't created by the Array constructor function, it might still implement the Array interface (through structural typing).


Move Overlay?

Is there a way to move the overlay somewhere else on the screen?

Not currently - I'll keep this open as a feature request

+1


Sanity Check on sample GoogleServiceAccount.gs

Please be aware that I HATE opening issues like this one, but after setting up a service account and copying the EXACT example code found here (and spending a number of hours attempting to get it running from a Google Apps Script):
https://github.com/googlesamples/apps-script-oauth2/blob/master/samples/GoogleServiceAccount.gs
I get Error retrieving token: invalid_client, The OAuth client was not found. which is a very general error, and I realize suggests user error, however I've copied the following keys from the downloaded JSON file from the service key:
CLIENT_EMAL = client_email = { from JSON }
PRIVATE_KEY = private_key = {from JSON}
USER_EMAIL = { org primary admin email acct }
Are we sure there hasn't been a breaking change in one of the moving parts here, because I'm at a loss.
/cc @erickoledadevrel

The sample I have setup is still working correctly. I've only been able to reproduce the error by entering an incorrect CLIENT_EMAIL, and it seems that trailing whitespace is enough to break it. Can you double check the value you are setting?

The sample is working for me too. @brianfeister have you already delegated domain-wide authority to the service account ?
I use the same account to create a key and to delegate. But I'm sure that there is no need for this.
I attached screenshots.

@oshliaer Thanks! I wasn't aware of this area of Google Apps admin, I'll look into it. Seems a likely source of the issue.

@erickoledadevrel Nah, no whitespace in the CLIENT_EMAIL

@brianfeister Have you solved your problem?

@brianfeister How are you?
Tomorrow I extended my service with new function which check autoForwarding of users in the domain. And it works fine.

function getService(userEmail) {
  return OAuth2.createService('Service_' + userEmail)
    .setTokenUrl('https://accounts.google.com/o/oauth2/token')
    .setPrivateKey(SCRIPT_PROPERTIES.PRIVATE_KEY)
    .setIssuer(SCRIPT_PROPERTIES.CLIENT_EMAIL)
    .setSubject(userEmail)
    .setPropertyStore(PropertiesService.getScriptProperties())
    .setScope('https://www.googleapis.com/auth/drive')
    .setScope('https://mail.google.com')
    .setParam('access_type', 'offline')
    .setParam('approval_prompt', 'force');
}

function test_gmail_api() {
  var userId =<EMAIL_ADDRESS>  var service = getService(userId);
  if (service.hasAccess()) {
    var url = Utilities.formatString('https://www.googleapis.com/gmail/v1/users/%s/settings/autoForwarding', userId);
    var response = UrlFetchApp.fetch(url, {
      headers: {
        Authorization: 'Bearer ' + service.getAccessToken()
      },
      muteHttpExceptions: true
    });
    Logger.log(response.getContentText());
  } else {
    Logger.log(service.getLastError());
  }
}

Closing due to inactivity.


Setting no funding target yields max int $$$

Took a quick peek at this one today, it looks like it's defaulting to the max value here:
https://github.com/jbx-protocol/juicehouse/blob/main/packages/app/src/components/Create/BudgetForm.tsx#L57
This makes sense as you don't want a cap on your funding.  In the case where there's no funding limit should the dollar value just be hidden or display something along the lines of "No limit"?
https://github.com/jbx-protocol/juicehouse/blob/main/packages/app/src/components/Dashboard/PayoutModsList.tsx#L147-L156

Yep, exactly. I think just "100%" would be strong.


fix accessToken isn't returned in user object

It looks like user object returned by DeviceEventEmitter.addListener is "immutable". The easy solution is create a copy and assign it to this._user property.

Thank you @jmlopezdona using your fork for now

+1 thanks for making this PR, using this as well

Thanks for your fix.
Can you resolve conflicts and update the README part accordingly (https://github.com/devfd/react-native-google-signin#3-user)?

I fixed it in https://github.com/devfd/react-native-google-signin/commit/25b197559509ae267168ba9013cc23e6e2598c7c.
Thanks for the PR anyway!


Remove Browser Header/Footer

I would like to be able to print Leaflet without the default print options (e.g. header, footer). If I add styles from the top answers here or here, then the header and footer disappear when I just print the page. However, when I print via leaflet.browser.print, they still appear. Is there a way to solve this?

Hi, Please provide and example so I can check what is wrong with it.