Long compilation times when registering usertype with lots (>50) of member functions.

I have a class which has a lot of member functions. I pass them all in usertype constructor but that probably generates huge template intantiations of some functions. This causes CPP file in VS2015 to compile for 3-4 minutes while consuming 1.5 gigabytes of RAM.
What I need is ability to register functions one by one, not all at once. I realize that this may not be the most efficient way to do this, but compilation times are very important for me, more that runtime performance when registering this stuff.
I propose something like:
usertype<SomeClass> ut("SomeClass");
ut.add_function("someFunc", &SomeClass::someFunc);
...

The old system used a few less template instantiations. I'm going to have to spend some time to analyze the templates we instantiate and see if I can slim down / crush a few things. This is going to take me a long time to do, so I apologize in advance: there won't be a quick fix.

Neat, anything I can help with?
And btw, maybe even if we keep number of template instantuations to minimum, compiler may still have problems with really long types of tuples?
Do you actually need to have types of ALL functions at once at all times? Passing them one by one should achieve the same thing (though it may be slower and less convenient, but at least stuff will compile much faster).

Maybe. Problem is, if you don't have all the functions/variables in one place -- or a way to refer to them -- then you cannot do things like override the __index metamethod in order to use that to call functions statically and such, because you need to make sure every function/variable can be retrieved through the __index C-Function you registered into Lua.
 What work is done at compile-time is not done at runtime, hence better performance, and performance is the thing we, as programmers, are striving for.
Compilation times do not exist, what exists is performance. You compile once and perform forever. You do not want to sacrifice performance for compilation time.

Not to be rude, but have you considered that 50 members might be too many? Perhaps if you slimmed down the class it'd help compile-time performance?

I have a class which acts like a wrapper around game objects.
Yes, I could have used free functions for that, but I find it easier to write someGuy:setAnimation("someAnimation") then setAnimation(someGuy, "someAnimation").
You can argue with that example, but I think there may be other uses of class with lots of member function.
Compilation times are very important for me because I make a game and speed of iteration depends on compilation times. Having to wait for 3-4 minutes (sometimes even more) each time I make a small change in wrapper function is not something I want to do...
Runtime performance for registration was never a problem with other Lua/C++ libs. It took some milliseconds during game loading time and didn't perform that much worse than free functions.

@ThePhD so, if I understand correctly, the problem is that you have to check if user passes only functions or only members when registering usertype so you can use __index metamethod for speeding things up? Or maybe there are some other reasons why you have std::tuple?

If you have problem with long type names, this presentation about Boost.DI offers a way to reduce compile times making the compiler use smaller type names in some cases. Apparently long type names generated by templates (e.g. tuples of dozens of elements) are one of the primary things that slow down compilation. The technique proposed in the presentation works well for Clang but is a bit harder to use in GCC.
Anyway, you can use Louis Dionne's metabench to estimate compile times. You can also read his presentation Metaprogramming for the brave where he presents indices-based tricks to reduce compile times (almost always better than template recursion). If you use these, don't hesitate to use Xeo's O(log n) implementation of std::index_sequence since some compilers only have a slower O(n) implementation (GCC prior to version 6). If you target the most recent Clang, use their implementation though, it's O(1) thanks to compiler intrinsics.
That's pretty much what you can do to reduce compile times: using even more template tricks to reduce the overhead of other template tricks. Good luck.

Btw, with LuaBridge I get 1 mb .obj file when I register a huge class (VS 2015 Update 3). With sol2 it's ~22 mb. O:
That shows how much of template stuff is generated, I think.

The bigger the object file, the better performance.

@Morwenn I didn't know you could actually shorten names at compile-time. That's probably going to be of a big help.
The other thing I need to do is strip the internal make_regs function, which basically lists the tuple twice thanks to having to apply the indices trick twice.

Unfortunately, we have to support GCC as far back as 4.9, and clang as far back as... was it 3.3 or 3.4? Either way, I'm probably going to come to regret it, but basically I support (Latest version of Visual Studio), and then every version of g++ / clang++ that can match that.

What I want to add here is that code, where I create a new_usertype with (in my case) > 28 member functions registered, wont compile until I activate -ftemplate-depth=1024 compiler flag. So the current implementation auf new_usertype seems to easily cap the default template-depth (of 900 I think). Anyone else experiencing that?

I experienced that with older compilers @Ung0d . I'm going to be pushing an update that should vastly reduce the number of template instantiations done, but I'm not exactly sure if it'll save you.
For what it's worth, later versions of Clang and g++ up the natural limit to 1024 by default (they anticipate more code using templates).

@EliasD Can you give the latest commit a try? I tried some new template techniques that didn't involve deep recursion, and you might get some better compile times / object file sizes.
Note that the single-header-file is also included in the repository now, at https://github.com/ThePhD/sol2/blob/develop/single/sol/sol.hpp

I'm using gcc 5.3, wouldn't call that old.
About the latest commit: I dont depend on -ftemplate-depth=1024 anymore now so there is definitely a difference. Cant really tell something about compile time, it wasnt that slow before on my machine. Just wondered about the required flag.

@ThePhD going to check it out soon. :)
And btw, is it still not possible to provide interface for adding member functions one by one?
Suppose I register class SomeClass:
class SomeClass {
    void f(int);
};

// Args = string, void SomeClass::*(int)
sol::new_usertype<SomeClass>("SomeClass", "f", &SomeClass::f);

but then I add new member function int SomeClass::f2(int) and want to register it:
// Args = string, void SomeClass::*(int), string, int SomeClass::*(int)
sol::new_usertype<SomeClass>("SomeClass", "f", &SomeClass::f, "f2", &SomeClass::f2);

Now template instantiation of new_usertype function has to recompile including all the stuff it shares it's variadic template arguments with. That's because Args argument pack has changed.
If it's possible to add one function per function call then there'd be less template stuff to generate (no stuff to generate at all if I add member function with the same signature as the one that was already added).
Something like this:
auto usertype = sol::new_usertype<SomeClass>("SomeClass");
usertype.addFunction("f", &SomeClass::f);
userType.addFunction("f2", &SomeClass::f2);
userType.addFunction("f3", &SomeClass::f3);
// if decltype(f3) == void SomeClass::*(int), then there'll be no new stuff for compiler
// to genenerate as first call already instantiates template function with the same type

If I understand correctly, users need to add all member functions / properties at once for you to be able to check if user added only properties or only member functions to optimize stuff with __index meta-method stuff. Yep, it's hard to make interface which will be able to do this if you let users add functions in several calls, but I think there's something that we can come up with.
Is there any other stuff I'm missing?

There is no way to make add_function work with the current inferface, without either reworking the entire internals of usertype (for the third time) or adding additional runtime overhead penalty. add_function is a runtime expression, and thusly would require us to concatenate its types to the tuple usertype currently represents in your example and then return a new usertype with the additional information appended to the internal tuple.
The other way would be to accept the runtime penalty (how we were doing it before) and simply take the performance hit for performing type erasure (e.g., behind a virtual function call). However, that would essentially be reverting to the older way of doing metatables, which I specifically re-engineered for the speed.

If you do not register any member variables, you may be able to get away with something like we do in the tests here. If you notice on line 753 and below, we pull out the metatable and manipulate things directly. If you like, you could potentially add items directly into the metatable: however, if the __index metamethod is overriden (.e.g, when you add variables to the mix), then this technique won't exactly work.

Tried this out, it worked, awesome! (Yeah, I'm still going to test how it perform with lots of member variables, but a bit later, sorry)
Am I doing this right?
class Test {
public:
    void f() { ... }
    void g() { ... }
private:
};

...

lua.new_usertype<Test>("Test", sol::constructors<sol::types<>>());
sol::table test_table = lua["Test"];
test_table["f"] = &Test::f;
test_table["g"] = &Test::g;
// or just test_table.set("f", &Test::f, "g", &Test::g);
// hopefully it won't generate as much template stuff as new_usertype. :)

But still, I think that run time overhead when registering stuff is not that important because it happpens so quick no matter what method you use (need to benchmark this to be sure).
I completely understand the complexity of the situation and don't want to demand too much, but that was the only reason at this moment which was stopping me from using sol2 in my main project. (anyway, it looks like using meta-table approach is going to solve my problem).
Maybe it's worth mentioning this technique somewhere in the docs, btw. It's not very safe, but there are some things in sol (like sol::function without error checking) which are not safe and okay to use if you know what you do. :)

The method you speak of doesn't work in Lua or with the Lua C API. In many cases, we need to get a reference to "this" for properties (e.g., non-static member variables). If you put an index of an index, the first argument isn't the userdata (the "this" pointer) anymore, it's the table that lookup failed on (in your example, it would give us f_mt as the "this" object, not someTable).
In our previous version, we already took an unacceptable amount of overhead compared to the theoretical maximum obtained by a heavily templated, macro-laden Lua binding called OOLua, as well as compared to luwra. While we have more features than both of those frameworks combined, we were not the fastest in all categories. The recent improvements detailed here helped change that.

Oh, alright, guess situation is a lot more difficult, than I've thought.
What kinda sucks is that OOLua probably has pretty fast compilation times. Macros sucks a lot, but sometimes they're much faster to do something what you have to do with lots of templates (not advocating for templates, ha-ha)
Btw, am I missing final performance when I'm registering member functions through metatables or this approach alright?
(And I've tried to test the speed of compilation with new version of sol2, but compiler runs out of available heap space, even though I have 2 GB of RAM available at the time of compilation. :S)

You might be taking a performance hit (serialization and deserialization of member function pointers through Lua can either cost nothing or cost a lot: the variance is pretty high), and you're definitely taking a storage size hit (there's registration overhead per-function now, instead of just once for all functions). It probably won't matter enough to matter.

Note that we have made a more official version for this @eliasdaler, called "simple_usertype", which can be registered using the function lua.new_simple_usertype( ... );. All variable calls are turned into their function equivalents, among other things. Still working to write the docs for it, but it should get you the quick compile time speeds you want without too much (if any) runtime penalty.

Thanks so much for this! Now it doesn't feel like a hack over existing system. :D
Will totally use it for heavier types! :)

Btw, am I doing something wrong here? This doesn't work, Lua says that Test.new is nil
struct Test {
    Test(int x) : x(x) {}
    void f() { std::cout << "Bark" << std::endl; }
    void g() { std::cout << "Bork" << std::endl; }
    int x;
};

int main()
{
    sol::state lua;
    lua.new_simple_usertype<Test>("Test",
        sol::constructors<sol::types<int>>(),
        "f", &Test::f,
        "g", &Test::g);
    try {
        lua.script("local t=Test.new(42); t:f()");
    }
    catch (sol::error& e) {
        std::cout << e.what() << std::endl;
    }
}

I herped the derp. Fixing now.

Should be all fixed now, with some tests to make sure I don't make the same mistake.

Nice, thanks :)


AttributeError: 'DistMultModule' object has no attribute 'margin'？

AttributeError: 'DistMultModule' object has no attribute 'margin'

Are you trying to use DistMult as the discriminator? This isn't supported.

thanks


[communicator-kafka] Upgrade to kafka 9.0.0

I have reason to believe current kafka communicator is not stable.
Maybe kafka 9.0.0 has better consumer api.

Coding finished, not tested


Normalising rotation matrices

This is fix for #184. Handles the issue by ensuring all rotation matrices are normalised using scipy Rotation class.
In future (an enhancement), I would think we could use that class to take a rotation matrix, and output a quaternion (not limited to this, but this is my first guess) for stable molecule manipulation.

To solve the issue with this test (1 molecule (metal_cage_m4l6_tetrahedron-metal_cage_m4l6_tetrahedron0) failing the get_plane_normal test for two random atom_id inputs, which passed on multiple local Ubuntu machines), I have changed the molecule that is failing to a different molecule based on the input building blocks.

How come the iron complex was replaced with the fake complex?

Retracting my previous comment because the issue is visible in an existing test case.


manifest unknown

Hi! I'm trying to pull the singularity image but I get this error:
singularity pull  --name nfcore-proteomicslfq-1.0.0.img docker://nfcore/proteomicslfq:1.0.0

WARNING: pull for Docker Hub is not guaranteed to produce the
WARNING: same image on repeated pull. Use Singularity Registry
WARNING: (shub://) to pull exactly equivalent images.
Docker image path: index.docker.io/nfcore/proteomicslfq:1.0.0
ERROR MANIFEST_UNKNOWN: manifest unknown
Cleaning up...
ERROR: pulling container failed!

Any idea?
Thanks!

Hi!
I think since the PR for 1.0.0 is not yet merged to master, there is no official 1.0.0 tag yet.
You will need to resort to :dev for now. I am still waiting on a last review from the core team.

@jpfeuffer where do I have to modify the tag from 1.0.0 to dev? I mean, on wihch config file? Thanks

@rolivella The 1.0.0 release was just approved and will happen very very soon.
Then you will not have to worry about this :)
We can update you when it is ready.

But to answer your question briefly without sufficient detail:
https://github.com/nf-core/proteomicslfq/blob/dev/nextflow.config#L135
This is where the Docker and therefore also the Singularity container (which uses the Docker container) is defined.
nf-core uses a dev specifier for non-release versions. This is what @jpfeuffer was hinting at.

@rolivella please try again.
https://hub.docker.com/layers/nfcore/proteomicslfq/1.0.0/images/sha256-5fc60f80febe6fb0ce91fcc5198998105ba41d3c3a7df0332ffd441ee8ce98bd?context=explore
It should be available now!

@Zethson now it works, thanks!

@Zethson while processing a HeLa QC file (827M) I got this error:
N E X T F L O W  ~  version 20.07.1
Launching `nf-core/proteomicslfq` [elegant_fermat] - revision: eb5f7a004c [dev]
NOTE: Your local project version looks outdated - a different revision is available in the remote repository [43c77e50c9]
----------------------------------------------------
                                        ,--./,-.
        ___     __   __   __   ___     /,-._.--~'
  |\ | |__  __ /  ` /  \ |__) |__         }  {
  | \| |       \__, \__/ |  \ |___     \`-._,-`-,
                                        `._,._,'
  nf-core/proteomicslfq v1.0.0
----------------------------------------------------

Pipeline Release  : dev
Run Name          : elegant_fermat
Max Resources     : 30 memory, 4 cpus, 10h time per job
Container         : singularity - nfcore/proteomicslfq:1.0.0
Output dir        : ./results
Launch dir        : /nfs/users/pr/qsample/test/proteomicslfq
Working dir       : /nfs/users/pr/qsample/test/proteomicslfq/work
Script dir        : /users/pr/qsample/.nextflow/assets/nf-core/proteomicslfq
User              : qsample
Config Profile    : singularity
Config Files      : /users/pr/qsample/.nextflow/assets/nf-core/proteomicslfq/nextflow.config, /nfs/users/pr/qsample/test/proteomicslfq/nextflow.config
----------------------------------------------------
[ef/ac5298] Submitted process > raw_file_conversion (1)
[43/bd3f33] Submitted process > output_documentation
[b5/9a2514] Submitted process > get_software_versions
Error executing process > 'raw_file_conversion (1)'

Caused by:
  Process `raw_file_conversion (1)` terminated with an error exit status (255)

Command executed:

  ThermoRawFileParser.sh -i=190219_Q_QC02_01_01_100ng.raw -f=2 -o=./ > 190219_Q_QC02_01_01_100ng.raw_conversion.log

Command exit status:
  255

Command output:
  (empty)

Command wrapper:
  /usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  /bin/ps: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory
  /bin/basename: missing operand
  Try '/bin/basename --help' for more information.
  id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  /etc/profile.d/vim.sh: line 4: [: : integer expression expected
  /usr/bin/lua: error while loading shared libraries: libm.so.6: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/lua: error while loading shared libraries: libm.so.6: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/lua: error while loading shared libraries: libm.so.6: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/ps: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory
  /usr/bin/basename: missing operand
  Try '/usr/bin/basename --help' for more information.
  mkfifo: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory
  mkfifo: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory

Work dir:
  /nfs/users/pr/qsample/test/proteomicslfq/work/ef/ac52984b68e9d89ab65e736487f2b3

Tip: when you have fixed the problem you can continue the execution adding the option `-resume` to the run command line

Execution cancelled -- Finishing pending tasks before exit
-[nf-core/proteomicslfq] Pipeline completed with errors-

I presume that I've to allocate more memory so I changed the base.config file in this way:
params {
  // Defaults only, expecting to be overwritten
  max_memory = 30
  max_cpus = 4
  max_time = 10.h
}

But I still got this error...what can I do?
Thanks!

Yes, I think you need to increase the allocated memory.
Some things:

a small documentation can be found here: https://nf-co.re/proteomicslfq/1.0.0/usage#custom-resource-requests
a pure numeral "30" will set the maximum memory to 30 bytes I think. Not sure what singularity on a local computer does with that (probably requests a minimum that it needs to function instead). You should use the suffix ".GB" in e.g. "30.GB".
the max_* parameters are only used to limit the memory that each process can request, such that the pipeline does not stall on e.g. HPC schedulers, when no such big node is available. To actually increase the memory for certain types of processes, you need to set the attributes for the processes directly. The defaults can be found here:
https://github.com/nf-core/proteomicslfq/blob/master/conf/base.config#L25
and can be overwritten with a custom config file by copying the lines and adapting the numbers. And then using this config file with e.g. "-c myconfig.conf".  (Editing base.config should work too of course but is a bit discouraged).
on local computers, assigning memory can be difficult. I think nextflow only knows about the maximum memory of your computer. So it will try to spawn as many containers with different processes as possible (according to the configuration for this process type, e.g. if the process requests 4.GB and you have 16.GB RAM, it will spawn 4 processes at the same time). If, however, you have other large processes running there, it might cause problems such as this or random OOM kills. In this case, you have to limit both max_memory and process.max_forks

Thanks a lot @jpfeuffer , now I see how it works!

Sorry to bother you again, but I get another execution error:
N E X T F L O W  ~  version 20.07.1
Launching `nf-core/proteomicslfq` [nauseous_lamarck] - revision: eb5f7a004c [dev]
NOTE: Your local project version looks outdated - a different revision is available in the remote repository [43c77e50c9]
----------------------------------------------------
                                        ,--./,-.
        ___     __   __   __   ___     /,-._.--~'
  |\ | |__  __ /  ` /  \ |__) |__         }  {
  | \| |       \__, \__/ |  \ |___     \`-._,-`-,
                                        `._,._,'
  nf-core/proteomicslfq v1.0.0
----------------------------------------------------

Pipeline Release  : dev
Run Name          : nauseous_lamarck
Max Resources     : 30 GB memory, 4 cpus, 10h time per job
Container         : singularity - nfcore/proteomicslfq:1.0.0
Output dir        : ./results
Launch dir        : /nfs/users/pr/qsample/test/proteomicslfq
Working dir       : /nfs/users/pr/qsample/test/proteomicslfq/work
Script dir        : /users/pr/qsample/.nextflow/assets/nf-core/proteomicslfq
User              : qsample
Config Profile    : singularity
Config Files      : /users/pr/qsample/.nextflow/assets/nf-core/proteomicslfq/nextflow.config, /nfs/users/pr/qsample/test/proteomicslfq/nextflow.config
----------------------------------------------------
[a8/77d645] Submitted process > raw_file_conversion (1)
[9f/74b618] Submitted process > get_software_versions
[5a/c3431d] Submitted process > output_documentation
[4f/3f23cb] Submitted process > search_engine_comet (1)
[2a/d455a5] Submitted process > index_peptides (1)
[4e/1feb5a] Submitted process > extract_percolator_features (1)
[93/31b0e8] Submitted process > percolator (1)
[37/b71c29] Submitted process > idscoreswitcher_to_qval (1)
[ba/d87053] Submitted process > idfilter (1)
[d8/2944e1] Submitted process > proteomicslfq (1)
Error executing process > 'proteomicslfq (1)'

Caused by:
  Process `proteomicslfq (1)` terminated with an error exit status (3)

Command executed:

  ProteomicsLFQ -in 190219_Q_QC02_01_01_100ng.mzML \
                -ids 190219_Q_QC02_01_01_100ng_comet_idx_feat_perc_switched_filter.idXML \
                -design test.tsv \
                -fasta shotgun_hela.fasta \
                -protein_inference aggregation \
                -quantification_method feature_intensity \
                -targeted_only true \
                -mass_recalibration false \
                -transfer_ids false \
                -protein_quantification unique_peptides \
                -out out.mzTab \
                -threads 4 \
                -out_msstats out.csv \
                -out_cxml out.consensusXML \
                -proteinFDR 0.05 \
                -debug 0 \
                > proteomicslfq.log

Command exit status:
  3

Command output:
  (empty)

Work dir:
  /nfs/users/pr/qsample/test/proteomicslfq/work/d8/2944e18d344b13ca3951b593247cf0

Tip: you can try to figure out what's wrong by changing to the process work dir and showing the script file named `.command.sh`

Execution cancelled -- Finishing pending tasks before exit
-[nf-core/proteomicslfq] Pipeline completed with errors-

I checked the work dir but all .log, .err, etc. are empty. Any idea?
Thanks!

Hmm all empty sounds strange.
If the exit code is from our tool, it means INPUT_FILE_CORRUPT. Maybe both facts plus the usage of a shared file system hints at problems with the NFS? At least our NFS sometimes has some hiccups. Did you try to run the command again? You can use "-resume", then it just resumes the last failed process but in this case it might be better to generate the intermediate files again?
By the way, did you intend to only pass one file? In case you tried to use wildcards, you need to wrap them in quotes '--input /folder/foo*.mzML' such that they do not get pre-expanded by your shell.

@jpfeuffer there's an error in the TSV file. At the ProteomicsLFQ process work folder there's this message:
Error: Unable to read file (Error: Missing column header: Fraction in: test.tsv)
In my test.tsv I've only:
190219_Q_QC02_01_01_100ng.raw
Which is the file I want to process, and I'm not using wildcards. What header do I have to add? I cannot find this information in the documentation: https://nf-co.re/proteomicslfq/1.0.0/parameters#main-parameters-spectra-files
Thank you.

Hi!
Ok, in case you only have one file, you don't need wildcards.
Yes, the documentation for the experimental design parameter was already updated in the development branch. You always need a full experimental design in this format.

Fraction_Group
Fraction
Spectra_Filepath
Label
MSstats_Condition
MSstats_BioReplicate

1
1
190219_Q_QC02_01_01_100ng.mzML
1
QC
1

Remember MSstats probably should be disabled, since it does not make sense for one file.

@jpfeuffer it works, thanks! Just a last question. Where I can find the total numbers of identified peptides and proteins? I've seen the list of ids at results/proteomics_lfq/out.csv but does the pipeline give the totals? There's also this file at msstats_results.csv but gave me a wrong result because it only found:
# of Protein                 3
# of Peptides/Protein     1-15

My nextflow command is:
nextflow run nf-core/proteomicslfq -with-trace  --skip_post_msstats -bg --expdesign test.tsv -profile singularity --input 'incoming/*.raw' --database '/users/pr/qsample/qcmass/blastdb/shotgun_hela.fasta' -resume -r dev > proteomicslfq.log
I disabled msstats as you mentioned in a previous comment that it does not make sense for one file.

I don't think there is a prominent number somewhere. Your best option is probably to enable the QC report, if you do not want to parse the mzTab or csv output.

Can we close this issue @rolivella ?

@ypriverol yes, thanks.


[WIP] Use new Youtube controller

..as featured in PyChromecast 2.3.0.
The new controller is both faster and more stable than the one we are currently using. It's missing clear_queue functionality though, and thus this is still WIP.

Hey, do you use PyCharm, and if yes, do you have a license for it?

Nope, I use vscode (and do not have a PyCharm license).

Ah, if you want one, I can give you one.

That's very generous of you, but I don't feel like this is the time for me to switch editor.


Documentation and example project is not enough

I don't think the documentation and example project is enough to be able to integrate search into an existing website.
The current viable path seems to be to copy the example site and build on that.
My path is to integrate search into a Hugo website with Docsy theme. That, I think, is not possible.
I posted question on Stackoverflow but I don't expect an answer there.
https://stackoverflow.com/questions/76169755/how-to-use-hugo-icons-modules-and-fix-cant-evaluate-field-vendors-in-type-str
I you can help me fix this I will provide you with a Dutch translation for https://github.com/hugomods/search/issues/122#issue-1695302677

Thanks for being interested in this, the error was caused by the Bootstrap's config, I made a PR for Docsy, will provide a working example after the patch was merged.

Integrate guide: https://hugomods.com/en/blog/2023/05/integrate-docsy-with-the-search-module/.
You don't have to wait for the patch to be merged, but you'll need to pay attention to the sequence of imported modules (the guide has mentioned this).


Mute/stop video running in background

Hi everybody !
I am making an application which uses the Video component.
I have this problem. The application works fine,  but when I run / switch other application, I hear the Video sound all the time in background.  The same problem is when I blank the screen. How can I detect that the screen has been blanked, or there has been a switch to another application ?

to detect when the app go in background you can do :
var LAppEventSvc: IFMXApplicationEventService;
if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(LAppEventSvc)) then
LAppEventSvc.SetApplicationEventHandler(MyApplicationEventHandler);


Schedule item icons

This PR simply adds the missing illustrations for schedule items:

Screenshot

Social

Coffee break

Registration

Note: "other" events now have no icon

Beautiful! 💯


botany gaming but LONGER

About the PR

make all plants take longer to mature and also increase their lifespan as well as idk if i did it correctly but i doubled the nutriment/water numbers too in the hopes it would increase their longevity as well but i cant tell i'm math deaf :trollface:
Why / Balance

LRP-paced plants suck I can't RP without my damn plants dying, also the times could definitely be increased more but i dont understand the code behind the maturation rate
Technical details

values in a prototype
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

You know who to blame when botany breaks


Allow bind method to serialize to generic type instead of dynamic

Add the ability to use the bind method with a generic rather than a dynamic data type.

Hey @brianfeucht - this is a community library so we're not really actively developing features. But if you'd like to contribute we're certainly looking for pull requests.


Remaining TODO items for enabling two-factor authentication

Now that we've merged #5753, Zulip has all the infrastructure for 2-factor authentication, but there's more work we need to do before we can turn the feature on in production.
Here's the outstanding TODO list for 2FA in Zulip:

[x] Clean up the monkey-patching hack in TwoFactorLoginView
[ ] Send something upstream that would help us not monkey-patch in TwoFactorLoginView that makes it possible to pass this parameter in or similar.
[ ] Decide what we want to do with the hack in start_two_factor_auth.
[ ] Do a careful audit through the various login/auth code paths for ways to skip 2FA, add tests for them, and then fix any issues we find.  For example, I suspect we need @otp_required in our API decorators for JSON routes (probably answer is "yes").
[ ] Style the various templates/pages we need to style to make it look reasonable and consistent with the rest of Zulip.
[ ] Figure out how we want to integrate 2FA into the mobile apps (blocked on: #17939).
[ ] Once those are done, have folks try it out on chat.zulip.org and make a new list.

I'll start work on this from tomorrow.

This is Priority High, but it hasn't had any activity for over a year?

@khionu that's correct.  We use "priority: high" to keep track of things that are important and we'd like to have someone work on soon.  There are hundreds of issues in that category, and not all of them actually get resources.  2FA has been of less interest than one might expect because many organizations use SSO with a third-party tool that provides 2FA, but I'd still very much like to see it happen soon.  I'm guessing @mateuszmandera will end up finishing the implementation in the next month or so, since he just finished fixing most of our other high priority authentication issues.

+1 any more recent updates on this? I think if you disable user/pass and rely on SSO 2FA that can give you some relief for now but i would be ideal for zulip native 2FA

@stanzheng It's on my TODO list with a bunch of other authentication-related things, but there's several urgent things first. Should get to this soon-ish hopefully though!

An upstream PR has been merged that allows overriding the redirect URL, so the monkey-patch in TwoFactorLoginView can be implemented properly.

Nice, that will simplify things significantly.
@mateuszmandera for this project, I think if we can get this into a somewhat cleaner state, it'd be nice to hand off the visual work make this in line with our design standards to @majordwarf or @SiddharthVarshney while you work on the logic.

Working on it

Are there any plans to support Webauthn/FIDO2 security keys where a browser is available?

Are there any plans to support Webauthn/FIDO2 security keys where a browser is available?

That would be a separate issue

Are there any plans to support Webauthn/FIDO2 security keys where a browser is available?

#20111

The current 2FA plans involve using https://github.com/Bouke/django-two-factor-auth, which probably determines what protocols we'll support at least at first.

:weary: That doesn't support FIDO. https://github.com/Bouke/django-two-factor-auth/issues/437

FIDO support was just merged into django-two-factor-auth!


move CRDs to helm 3 location

This PR is a

[x] Feature Implementation
[ ] Bug Fix
[ ] Documentation

What this PR does / why we need it:
Prevent deletion of CRDs when reinstalling the chart. Use the official Helm 3 way to handle CRDs (https://helm.sh/docs/chart_best_practices/custom_resource_definitions/). This will not longer upgrade CRDs using helm but it also won't delete CRDs when reinstalling the chart. This will prevent accidential data loss during reinstall.
Which issue(s) this PR fixes
This fixed accidential dataloss on reinstall.
Merge Checklist:

[x] New feature

[ ] Tests
[ ] Documentation

[ ] SVCat CLI flag
[ ] Server Flag for config

[ ] Chart changes
[ ] removing a flag by marking deprecated and hiding to avoid
breaking the chart release and existing clients who provide a
flag that will get an error when they try to update

/assign @piotrmiskiewicz

I'm sorry for the delay
/ok-to-test


Fix dependencies

bootstrap, font-awesome, jquery, qunitjs - devDependencies!
It's allows to use cropper as npm package with any version of jQuery

OK. Thanks!


Add MSBuild metadata to set LiteClient for client generation.

I realized there's no public property to set to enable the lite_client option, so I'm adding one. The alternative is to set _GrpcOutputOptions directly, would you prefer that instead @jtattermusch? It's prefixed with _ so I figured it's a private property that's not meant to be set.

ping @jtattermusch

ping @jtattermusch to merge.


Beta.FreeCodeCamp.org is down - 502 Bad Gateway

Challenge Name

beta.freecodecamp.org
Issue Description

Beta is down again for the second time this evening. Quincy corrected it the first time but now getting errors again 502 Bad Gateway
Browser Information

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

@QuincyLarson @BerkeleyTrue

It appears that the site has been going down a few times. I think we should integrate with https://sentry.io so it helps us pinpoint these issues without much effort. I'm happy to take that task.

Thanks for reporting @mstellaluna
It's back up now.
Happy Coding

@BerkeleyTrue @QuincyLarson  re-opening its down again.. same error

@mstellaluna Thanks for the heads-up. I just messaged @BerkeleyTrue and we're going to get it back up as quickly as possible.

Looks like it's back up?

I had mentioned above that we should integrate with sentry. Any thoughts on that?

Thanks for the suggestion, @theoutlander. We have an open source tool that watches for outages and calls us. We just haven't configured it to run on beta.freecodecamp.org

Nice. I didn't know that. People testing it were not sure what was going on, so I figured access to a dashboard might be nice.

Looks like it's up again 🙌  Can this be closed?

@theoutlander Thanks for the feedback. We may be able to build some sort of status page in the future.


Task canceled exception

This exception will happen after the bot disconnect and reconnect again, it will cancel all the tasks after the re connection. you can work around it by adding a checker if the task was canceled and reassign it again but the bot wont listen to any other commands.
System.Threading.Tasks.TaskCanceledException
  Message=A task was canceled.
  Source=System.Private.CoreLib
  StackTrace:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at TehGM.Wolfringo.WolfClient.<SendAsync>d__72`1.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

Hi, The connection tasks are indeed canceled after disconnection (but before Disconnected event is raised). They are also canceled and token is recreated just before Connected event is raised. This behaviour is intended, as no connection tasks can really be executed until the client reconnects.
I am not entirely sure what exactly you're trying to - could you please advise? What do you mean b saying that bot won't listen to any other commands?

After the bot disconnect and reconnect automatically. all tasks are canceled and the bot never listen to commands such as (&display Chess scores) for example.

Yes, I was just able to replicate the issue. I'll investigate it.

@sa9St Upon investigation, I found why the bot no longer receives messages - it's actually a mistake in my example on how to handle a welcome message when not using Hosting package. Following workaround should solve the issue:
private static async void OnWelcome(WelcomeEvent message)
{
    if (message.LoggedInUser == null)
    {
        await _client.LoginAsync(/* username and password */);
    }
    else
    {
        await _client.SendAsync(new SubscribeToPmMessage());
        await _client.SendAsync(new SubscribeToGroupMessage());
    }
}

The reason why it didn't work after reconnection is cause LoginAsync actually sends these 2 messages internally - and after reconnection, user is automatically logged in, so LoginAsync is not called in my original example. I'll update example, and later see about having some helper method like "SubscribeAllAsync" to make this simpler.
Visual Studio still reports exception, but in my tests it appears it's not breaking anything and doesn't even appear in logs. I'll see if there's something simple I can do to prevent it, but it's likely just internal cancellation handling - do let me know if it breaks the bot for you, but I think everything will be fine.

Documentation updated in f9f2226.

i believe your right i didn't even see this code or even debug it ,now it make more sense. i will test it and replay back. thanks.

Hi, After the reconnection this error will show up even if was surrounded by try and catch it will stop completely from responding to users commands.
TehGM.Wolfringo.MessageSendingException
  HResult=0x80131500
  Message=Server responded with non-success status code: 500 (InternalServerError)
  Source=Wolfringo.Core
  StackTrace:
   at TehGM.Wolfringo.WolfClient.<SendAsync>d__72`1.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at NewWolfApp.Program.<OnWelcome>d__5.MoveNext()

Hi. This error is different - it means that WOLF servers had error when processing a message. Knowing WOLF servers, it's unfortunately bound to happen sometimes.
My suggestion is to try it again at different time.

Problem is solved. i will close this issue. thank you

Yes - when message.LoggedInUser is null, you need to use _client.LoginAsync - but I assume you simply removed that line to hide credentials, in which case it's okay. In afef693 I made so the else part will not be needed - this will be a part of a future version. For now (until version after 0.3.3 is released), this workaround is the correct way.
I am not able to replicate this. Does this error happen every time after reconnection, or did it happen once? If just once, I am willing to bet it was one of these times where WOLF server broke.

Yes - when message.LoggedInUser is null, you need to use _client.LoginAsync - but I assume you simply removed that line to hide credentials, in which case it's okay. In afef693 I made so the else part will not be needed - this will be a part of a future version. For now (until version after 0.3.3 is released), this workaround is the correct way.
I am not able to replicate this. Does this error happen every time after reconnection, or did it happen once? If just once, I am willing to bet it was one of these times where WOLF server broke.

hey , yes i removed the function to hide my credentials.
the bot was running for 8 hours it happened : 4 times in total of the 8 hours.
during that time no errors happened and it's running smoothly even tho i am putting a heavy test on it. thank you for your clarification.

this problem is solved.


Improving use of external clock

Improve changes enabling use of an external clock in MAPL, introduced with PR #610
Description

This change improves MAPL's ability to use an externally-provided clock by:

Creating a copy of the external clock to protect it from local state changes. For instance, the clock is advanced by MAPL internally and this will change the external clock's state, too, if a reference is used instead of a copy
Setting the heartbeat to the external clock's time interval, and ignoring settings from the cap's resource file

This PR also sets the number of time steps to 1 when MAPL is driven by an external clock, addressing an issue preventing MAPL from advancing its components. Advancing MAPL components by one time step at the time allows an external driver to more precisely control MAPL's time-dependent state.
NOTE: This PR adds to the latest changes introduced with PR #611, and should be merged after PR #611.
Related Issue

Motivation and Context

This change fixes a bug in the earlier implementation of MAPL's ability to use an externally provided clock (see PR #610).
It also improves the overall reliability and behavior of the previous implementation in UFS applications.
How Has This Been Tested?

The change was tested within NOAA's UFS-GOCART application
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Trivial change (affects only documentation or cleanup)

Checklist:

[ ] I have tested this change with a run of GEOSgcm (if non-trivial)
[x] I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
[x] I have updated the CHANGELOG.md accordingly following the style of Keep a Changelog

@rmontuoro Does this have everything in your other PR?

@rmontuoro Does this have everything in your other PR?

Yes, @mathomp4. This PR is up-to-date with PR #611


go get latest fails

When trying to use go get github.com/go-quicktest/qt@latest get an error reporting that the module has been declared as github.com/frankban/quicktest
❯ go get github.com/go-quicktest/qt@latest
go<EMAIL_ADDRESS>parsing go.mod:
        module declares its path as: github.com/frankban/quicktest
                but was required as: github.com/go-quicktest/qt

Work around for this is to explicitly use go get with a version
❯ go get<EMAIL_ADDRESS>go: added github.com/go-quicktest/qt v0.0.2
go: upgraded github.com/google/go-cmp v0.5.5 => v0.5.7
go: upgraded github.com/kr/pretty v0.2.1 => v0.3.0
go: upgraded github.com/kr/text v0.1.0 => v0.2.0
go: added github.com/rogpeppe/go-internal v1.6.1

This is because @rogpeppe or @frankban mistakenly pushed some old v1 tags from https://github.com/frankban/quicktest to this new repository, so proxy.golang.org is remembering them forever, unfortunately.
I think this issue should be kept open until @latest is fixed; I imagine the best we could do is retract those "latest" versions, now that https://github.com/golang/go/issues/53594 is fixed for the upcoming Go 1.19.

It seems that I was finally able to fix this with https://github.com/go-quicktest/qt/pull/13
go get github.com/go-quicktest/qt@latest should now successfully install v0.1.0.
Please reopen if you encounter further problems.


about titanic

As everything work well, I've a simple question :
Is it possible to have percentage of chance to survive and the class "yes/no" ?
if i i add a passenger to predict, then if i have 3,
I'll to have a max percentage of 100 and for example
passenger 1 : 25%
passenger 2: 12%
passenger 3 : 73%
is it the last of softmaxlayer ?

You can try:
network.layers.get(network.layers.size()-1).output;
to get the output of the last layer.

It's what I already do.
But I'm asking to make a sort of ranking layer


Bug: /otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /otelcol-custom)

Once I create the image using cloud build I get the following issue
arjunvijay@cloudshell:~/.../gke/simple (arjun-demo-123)$ kubectl logs otel-collector-97fd46647-rhhg4 -n $OTEL_NAMESPACE
/otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /otelcol-custom) /otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by /otelcol-custom)

After updating the version from 0.75 to 0.86 for OTEL it still gives errors

arjunvijay-macbookpro:simple arjunvijay$ kubectl logs otel-collector-d89ff6984-n9snc -n $OTEL_NAMESPACE
exec /otelcol-custom: no such file or directory

@damemi Can you please help me here

Sorry, damemi is out.  I'll take a look.

Which sample did you apply, and which collector did you apply?

Hi @dashpole I have rerun entire thing with everything rolled back to main branch. I still get the same error
arjunvijay-macbookpro:simple arjunvijay$ kubectl logs otel-collector-d89ff6984-p522m -n otel-collector
/otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /otelcol-custom)
/otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /otelcol-custom)

What kind of GKE cluster are you running it on?

I am running GKE Autopilot

gcloud auth login
gcloud container clusters create-auto builder-bug --region us-east1
git clone https://github.com/GoogleCloudPlatform/opentelemetry-collector-builder-sample.git
cd opentelemetry-collector-builder-sample
make setup-artifact-registry
cd build/local
make docker-build
make docker-push
cd ../../deploy/gke/simple/
export GCLOUD_PROJECT=<the Google Cloud project ID to which your IAM service account belongs>
export PROJECT_ID=<your Google Cloud project ID>
gcloud iam service-accounts create otel-collector --project=${GCLOUD_PROJECT}
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member<EMAIL_ADDRESS>\
    --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member<EMAIL_ADDRESS>\
    --role "roles/cloudtrace.agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member<EMAIL_ADDRESS>\
    --role "roles/monitoring.metricWriter"
gcloud iam service-accounts add-iam-policy-binding<EMAIL_ADDRESS>\
    --role roles/iam.workloadIdentityUser \
    --member "serviceAccount:${GCLOUD_PROJECT}.svc.id.goog[otel-collector/otel-collector]"
export OTEL_NAMESPACE=otel-collector
kubectl create namespace $OTEL_NAMESPACE
kubectl create serviceaccount otel-collector -n otel-collector
kubectl annotate serviceaccount otel-collector \
    --namespace $OTEL_NAMESPACE \
<EMAIL_ADDRESS>kubectl create configmap otel-config --from-file=./otel-config.yaml -n $OTEL_NAMESPACE
kubectl apply -f manifest.yaml -n $OTEL_NAMESPACE
kubectl logs deployment/otel-collector -n otel-collector

Output of kubectl logs shows success exporting, and does not contain any errors:
2023-10-04T19:23:34.416Z        info    service/telemetry.go:90 Setting up own telemetry...
2023-10-04T19:23:34.489Z        info    service/telemetry.go:116        Serving Prometheus metrics      {"address": ":8888", "level": "Basic"}
2023-10-04T19:23:34.609Z        info    exporter@v0.75.0/exporter.go:286        Development component. May change in the future.        {"kind": "exporter", "data_type": "traces", "name": "logging"}
2023-10-04T19:23:34.611Z        warn    loggingexporter@v0.75.0/factory.go:109  'loglevel' option is deprecated in favor of 'verbosity'. Set 'verbosity' to equivalent value to preserve behavior.      {"kind": "exporter", "data_type": "traces", "name": "logging", "loglevel": "debug", "equivalent verbosity level": "Detailed"}
2023-10-04T19:23:34.612Z        info    memorylimiterprocessor@v0.75.0/memorylimiter.go:149     Using percentage memory limiter {"kind": "processor", "name": "memory_limiter", "pipeline": "traces", "total_memory_mib": 512, "limit_percentage": 65, "spike_limit_percentage": 20}
2023-10-04T19:23:34.613Z        info    memorylimiterprocessor@v0.75.0/memorylimiter.go:113     Memory limiter configured       {"kind": "processor", "name": "memory_limiter", "pipeline": "traces", "limit_mib": 332, "spike_limit_mib": 102, "check_interval": 1}
2023-10-04T19:23:34.614Z        info    exporter@v0.75.0/exporter.go:286        Development component. May change in the future.        {"kind": "exporter", "data_type": "metrics", "name": "logging"}
2023-10-04T19:23:34.616Z        info    exporter@v0.75.0/exporter.go:286        Development component. May change in the future.        {"kind": "exporter", "data_type": "logs", "name": "logging"}
2023-10-04T19:23:34.621Z        info    service/service.go:129  Starting otelcol-custom...      {"Version": "1.0.0", "NumCPU": 2}
2023-10-04T19:23:34.621Z        info    extensions/extensions.go:41     Starting extensions...
2023-10-04T19:23:34.621Z        info    internal/resourcedetection.go:136       began detecting resource information    {"kind": "processor", "name": "resourcedetection/gke", "pipeline": "traces"}
2023-10-04T19:23:34.631Z        info    internal/resourcedetection.go:150       detected resource information   {"kind": "processor", "name": "resourcedetection/gke", "pipeline": "traces", "resource": {"cloud.account.id":"dashpole-gke-dev","cloud.platform":"gcp_kubernetes_engine","cloud.provider":"gcp","cloud.region":"us-east1","host.id":"3356598686790455806","host.name":"gk3-builder-bug-default-pool-4ff3ccc3-5pb9","k8s.cluster.name":"builder-bug"}}
2023-10-04T19:23:34.632Z        info    prometheusreceiver@v0.75.0/metrics_receiver.go:255      Starting discovery manager      {"kind": "receiver", "name": "prometheus/self", "data_type": "metrics"}
2023-10-04T19:23:34.632Z        info    prometheusreceiver@v0.75.0/metrics_receiver.go:243      Scrape job added        {"kind": "receiver", "name": "prometheus/self", "data_type": "metrics", "jobName": "otel-collector"}
2023-10-04T19:23:34.633Z        info    prometheusreceiver@v0.75.0/metrics_receiver.go:289      Starting scrape manager {"kind": "receiver", "name": "prometheus/self", "data_type": "metrics"}
2023-10-04T19:23:34.633Z        warn    internal/warning.go:51  Using the <IP_ADDRESS> address exposes this server to every network interface, which may facilitate Denial of Service attacks        {"kind": "receiver", "name": "otlp", "data_type": "logs", "documentation": "https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks"}
2023-10-04T19:23:34.633Z        info    otlpreceiver@v0.75.0/otlp.go:94 Starting GRPC server    {"kind": "receiver", "name": "otlp", "data_type": "logs", "endpoint": "<IP_ADDRESS>:4317"}
2023-10-04T19:23:34.633Z        warn    internal/warning.go:51  Using the <IP_ADDRESS> address exposes this server to every network interface, which may facilitate Denial of Service attacks        {"kind": "receiver", "name": "otlp", "data_type": "logs", "documentation": "https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks"}
2023-10-04T19:23:34.634Z        info    otlpreceiver@v0.75.0/otlp.go:112        Starting HTTP server    {"kind": "receiver", "name": "otlp", "data_type": "logs", "endpoint": "<IP_ADDRESS>:4318"}
2023-10-04T19:23:34.634Z        info    service/service.go:146  Everything is ready. Begin running and processing data.
2023-10-04T19:23:41.649Z        info    MetricsExporter {"kind": "exporter", "data_type": "metrics", "name": "logging", "#metrics": 16}
2023-10-04T19:23:41.650Z        info    ResourceMetrics #0
Resource SchemaURL: https://opentelemetry.io/schemas/1.6.1
Resource attributes:
     -> service.name: Str(otel-collector)
     -> service.instance.id: Str(<IP_ADDRESS>:8888)
     -> net.host.port: Str(8888)
     -> http.scheme: Str(http)
     -> cloud.provider: Str(gcp)
     -> cloud.account.id: Str(dashpole-gke-dev)
     -> cloud.platform: Str(gcp_kubernetes_engine)
     -> cloud.region: Str(us-east1)
     -> k8s.cluster.name: Str(builder-bug)
     -> host.id: Str(3356598686790455806)
     -> host.name: Str(gk3-builder-bug-default-pool-4ff3ccc3-5pb9)
ScopeMetrics #0
...

I am not able to reproduce your issue.  Can you follow the steps above exactly (filling in the project), and let me know if you are still able to reproduce the issue?

let me try this @dashpole

I followed the above steps and get the following error. I ran this from cloud shell. you can checkout my activity from cloud shell here
arjunvijay@cloudshell:~/opentelemetry-collector-builder-sample/deploy/gke/simple (arjun-demo-123)$ kubectl logs deployment/otel-collector -n otel-collector/otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /otelcol-custom)
/otelcol-custom: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /otelcol-custom)

Let me try from cloud shell.  Based on https://github.com/golang/go/issues/58550 this has something to do with the CGO_ENABLED and the go version.  I'm also going to try updating the collector version and go version to see if that helps.

One other question while I work on the above: Did you enable any options when you created your GKE Autopilot cluster?

No Used your command gcloud container clusters create-auto builder-bug --region us-east1

I was able to reproduce this in cloud shell, so that seems to be part of the issue.

Using cloud build from the cloud shell does not help


[Request] Auto-redeem rewards when a player receives one / on the RewardCheck time

It's a little tedious having to constantly do /redeemrewards. It'd be useful if player's would simply just receive their reward - if they are eligible - every time the RewardCheck time is met.
E.g

RewardCheck: 60
AutoRedeem: True

if (player.eligible() == true){
    player.redeem()
}

As of right now, players do actually redeem it automatically after every check. Although the players will have to wait for the check timer to actually hit 0, which I didn't like as well but had no other option due to my implementation at that time.
I've been working on a new custom playtime system that will allow me to get rid of the whole rewardCheck setting and give players their reward on the exact time it was achieved.

Yeah I actually noticed a few hours after opening this that it was automatic, apologies.
I saw you begun editing the system too. I downloaded the source and wondered what the heck was happening when everything was commented out lol. I look forward to the rewritten version.

I should probably start working with branches ya haha


Doesn't work on actual device (weird ouput)

So I changed the code to avoid the crash caused by trying to store every models in memory.
I get weird outputs :

wave gives a green background
rain_princess gives some kind of glitchy result

There seems to be GPU implementation issue on the iOS device.
https://forums.developer.apple.com/thread/97040
You can try to make the model only run on CPU but it will take way longer than expected.
let options = MLPredictionOptions()
options.usesCPUOnly = true
let outoptions.usesCPUOnly = true
let outFeatures = try! model.prediction(from: input, options:options)

Also could you share the work you did to fix that crash?


WG Meeting with new merged team (Ratify? Initial Planning, etc.)

When: Monday, May 18th at 19:00 UTC (Proposed)
Goals:

Introductions
Ratification of merger by io.js Website WG (if needed)
Discussion on what repos are needed by the new org.

rename the existing website repo to something io-specific #356
locations for the node.js website, new "merged" foundation website, etc.

Plan around the merge messaging for existing channels
Initial discussion on goals for the "merged website.

+1 I can make that.

Should we be pulling node-website people into this too?

My instinct would be yes. I assumed they had been pinged via the parallel
ticket re: merge.
On May 14, 2015 5:50 PM, "Jeremiah Senkpiel"<EMAIL_ADDRESS>wrote:

Should we be pulling node-website people into this too?
—
Reply to this email directly or view it on GitHub
https://github.com/iojs/website/issues/352#issuecomment-102203247.

I probably can't make it Monday because my wife is graduating from grad school but I'll definitely read the minutes once they are published :)

Pinging @robertkowalski @geek as they have missed the reference to this on the other thread.
Will there be other volunteers joining us with the merger? Are you two available on Monday or should we all find another time?
I'd like at least some new representation for the first WG meeting, but if not, we can always vote to confirm the merger and discuss high level merge logistics (without getting in to specifics until we get both teams integrated for the first combined meeting.)

sorry - sadly don't have time this monday - next week wednesday 17 UTC?

Wednesday May 20th @robertkowalski ?

27th
On Sun, May 17, 2015 at 11:01 PM, Sean Ouimet<EMAIL_ADDRESS>wrote:

Wednesday May 20th @robertkowalski https://github.com/robertkowalski ?
—
Reply to this email directly or view it on GitHub
https://github.com/nodejs/website/issues/352#issuecomment-102857848.

I am flying on the 27th but if it works better for the team to meet that day, let that not be a blocker. I can also post up a Doodle poll with some proposed times?
FYI many of us seem to be in mountain time by pure coincidence. Although I'll be back to CET (UTC+2) after the 27th.

Will there be a "regular" website meeting as well? I think it would be good to quickly go through the existing issues and determine, what has still to be addressed for the current iojs.org website, what will be turned into tasks for the new nodejs.org site and what will be closed.

Not today, but how about this week? Shouldn't take too long.

I can't make today, maybe Wednesday if we are doing a thing, but I wouldn't consider myself a priority to have.

Wednesday as in 2 days from now? Perfect for me. That might work well to get the ball rolling, and then we can try to get @robertkowalski and the other new team members to come in a week later. At least we can ratify/clean house on old issues for now, as suggested by @therebelrobot

+1 works for me. Was just coming here to try to find a hangout link.

Sounds correct. I'll try to pass any thoughts I have ahead of the 27th meeting as I won't be available at the time. But I'll be here this week.

Just a quite point of process: you don't need to "ratify" anything if there's been a thread with no dissent. The only time you need to bring things to a vote is when there isn't an easy consensus.

I really need to start checking issues more regularly because I was totally sitting on the hangout or a few minutes before realizing it got pushed a week!

Wait, is this meeting on right now? Calendar fail.


Fix unit tests on bitrise

Updated the PR to include the bitrise.yml update @bootstraponline

build passed!


K9-Mail fails emailprivacytester.com Meta-refresh test - data is being leaked.

Expected behaviour
If the user receives an email from emailprivacytester.com and opens it, no information should leak to the service.
Actual behaviour
A webpage is opened and the "meta-refresh" remote tracker is triggered. This can allow an attacker to load a malicious webpage.
The meta-refresh tag puts the following into the html :

My result:
https://emailprivacytester.com/e72483a201897d0b
Steps to reproduce

Go to emailprivacytester.com and enter your email address.
Open the email in K9-mail
Look at the test webpage on your PC and see that the meta-refresh test failed.

Environment
K-9 Mail version: 5.107
Android version:5.1.1
Account type (IMAP, POP3, WebDAV/Exchange): IMAP

See #712

Is this in the current alpha by any chance?


CIV-6537 Refactor Judicial Rectial Text

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)
[ ] Screenshot attached for the Evidence of manual testing
[ ] Functional, Smoke and API tests have been run locally
[ ] Full gradle build and run tests with coverage have been completed (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-6537
https://tools.hmcts.net/jira/browse/CIV-6542
Change description
CIV-6537
Refactor the recital field on both With and Without Notice applications
CIV-6542

Remove Order to end date field for Extend time
Rename Order to end date field for Stay the claim to "Order for Stay to End"

Testing branch and instruction
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

[ ] @automatemm  to fix UI test in GA CCD for judicial recital text


Arrow function without brackets for a single parameter

Is it possible in one of the next versions of dart to implement a shorthand syntax for => functions?
The abbreviation is that for functions => with one parameter, it is not necessary to use parentheses around the parameter.
Much like in javascript.
void main() {
  var list1 = [1, 2, 3];

  list1.map((i) => i + 1); // current version
  list1.map(i => i + 1);   // a new version
}

I'll defer to the existing language issue.


feat(amdgpu): try to build in single binary

Description
This PR tries to build into the single binary also hipblas support
Partly related to #1592

works!


Only start consuming conversation stream when conversation has been loaded

Description
See parent issue: https://github.com/dust-tt/tasks/issues/387.

This PR improves the efficiency and reliability of our conversation stream consumption by implementing a conditional operation that delays the stream initiation until the conversation data becomes available. The goal is to avoid unnecessary network requests and potential performance issues. Without this solution, each event within the stream calls mutateConversation, ultimately triggering repetitive fetch operations for the conversation data.
With the introduction of a conditional check, we now ensure that the conversation stream only starts once we have successfully retrieved the conversation, and we only call mutateConversation if the event is not already in the conversation.
Without the fix

With the fix

Risk
It might slow down a bit the consumption of the stream since it requires the fetch conversation call to be done. I will monitor the performance of this endpoint. Safe to rollback.

Deploy Plan

@spolu (not urgent) It can't be done in the server side props since this a component an not a page and we don't want to do props drilling here 🙃.

Tested on front-edge, works like a charm.


Are there any better/more current/working OSX installation instructions?

Hey all,
Trying to install dlv on OSX 10.11.3 and having a hell of a time just getting it running.

This is off the master branch
followed the OSX instructions here (https://github.com/derekparker/delve/wiki/Building) however to explicity restate them:

created the cert as outlined.  Called it 'delve'.
rebooted
git cloned the delve repo
ran GO15VENDOREXPERIMENT=1 CERT=delve make install from the root of the cloned directory.
got this:

go build -ldflags="-s -X main.Build=c66c6408a5f32e84cc3955fe97302ad6d78df24e" github.com/derekparker/delve/cmd/dlv
can't load package: package github.com/derekparker/delve/cmd/dlv: cannot find package "github.com/derekparker/delve/cmd/dlv" in any of:
	/Users/amatheson/.gvm/gos/go1.5/src/github.com/derekparker/delve/cmd/dlv (from $GOROOT)
	/Users/amatheson/Code/research/delve/src/github.com/derekparker/delve/cmd/dlv (from $GOPATH)
make: *** [build] Error 1

yes, I'm using GVM to manage my go envs.
Go envs look like so:
$ echo $GOPATH
/Users/amatheson/Code/research/delve
$ echo $GOROOT
/Users/amatheson/.gvm/gos/go1.5

So, may have gotten it going now on OSX without having to git clone.

from you current GOROOT

go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
codesign -s delve bin/dlv

you should now be able to bin/dlv debug something.go

This seems like a GOPATH issue to me, is the layout of /Users/amatheson/Code/research/delve correct, with a src dir, etc?

delve has no src folder in the repo

@Nuclearfossil right, so your $GOPATH should not be set to the Delve repo location, it should be set to a valid Go workspace directory. See https://golang.org/doc/code.html#GOPATH.

I'm very confused.  How does that build the dlv binary?

OK. So it doesn't put it into $GOROOT/bin, it puts it into each Go Project.
That could stand more clarification in the docs.

Going to close this as not a Delve issue. I think you have your local setup configured incorrectly. Your $GOPATH should include a src, pkg and bin directory, into which Delve will be installed. make install will install into $GOPATH/bin. Programs that you build yourself should never end up in $GOROOT/bin, that's for the go tool, etc.

I would disagree, I don't want to rebuild delve each time I create a new
project, which is what you're saying with this response.
On Mar 14, 2016 8:35 AM, "Derek Parker"<EMAIL_ADDRESS>wrote:

Going to close this as not a Delve issue. I think you have your local
setup configured incorrectly. Your $GOPATH should include a src, pkg and
bin directory, into which Delve will be installed. make install will
install into $GOPATH/bin. Programs that you build yourself should never
end up in $GOROOT/bin, that's for the go tool, etc.
—
Reply to this email directly or view it on GitHub
https://github.com/derekparker/delve/issues/454#issuecomment-196370482.

That is only a symptom of using GVM (as far as I can tell). I haven't used it before, but the typical Go development setup is a single $GOPATH where all your source is stored in $GOPATH/src and programs are compiled into $GOPATH/bin. Please refer to: https://golang.org/doc/code.html#Workspaces.

Yes, for one project. I have many projects on the go which requires
changing the go path multiple times during the day. This means that for
each project you must rebuild and re sign the delve executable. That feels
incredibly wasteful imo.
On Mar 14, 2016 8:43 AM, "Derek Parker"<EMAIL_ADDRESS>wrote:

That is only a symptom of using GVM (as far as I can tell). I haven't used
it before, but the typical Go development setup is a single $GOPATH where
all your source is stored in $GOPATH/src and programs are compiled into
$GOPATH/bin. Please refer to: https://golang.org/doc/code.html#Workspaces.
—
Reply to this email directly or view it on GitHub
https://github.com/derekparker/delve/issues/454#issuecomment-196374618.

@Nuclearfossil no, in a typical setup you would not change your $GOPATH at all. You have a single $GOPATH which holds all of your projects. You don't need a $GOPATH per project. What your doing is closer to something like https://getgb.io/ which takes a project based approach to building Go programs.

Yeah, that's very close to what I'm working with.  Using a single $GOPATH
and stuffing everything into it will not work for our organization (each
project has dependencies on separate external docker services such as
redis, kafka, zookeeper, etc) and what you propose simply will not work at
that scale. eg: project A requires redis, project b require
Zookeeper/kafka. For dev/test environments, they would need to be separate
and NOT live in the src folder as you suggest.
I would seriously suggest that you consider the option of adding
installation steps (on OSX at least) which centralizes the delve binary to
either $GOROOT or another mechanism.
-Ash
On Mon, 14 Mar 2016 at 08:48 Derek Parker<EMAIL_ADDRESS>wrote:

@Nuclearfossil https://github.com/Nuclearfossil no, in a typical setup
you would not change your $GOPATH at all. You have a single $GOPATH which
holds all of your projects. You don't need a $GOPATH per project. What
your doing is closer to something like https://getgb.io/ which takes a
project based approach to building Go programs.
—
Reply to this email directly or view it on GitHub
https://github.com/derekparker/delve/issues/454#issuecomment-196377395.

I've created this issue to track this, we can continue discussion there.


Ccx0037

Test Jira: https://jira.corp.adobe.com/browse/OPT-12902
I need the lottie file published to enable QA.
Test URLs:

After: https://ccx0037--express-website--adobe.hlx.page/express/blocks/template-list/scrollbutton.lottie

@davidnuescheler not sure how to satisfy the helix-psi-check. This URL gets me the lottie file: https://ccx0037--express-website--adobe.hlx.page/express/blocks/template-list/scrollbutton.lottie
And I'm able to get the animation to work by running my test code in the console.  But I can't get Target to run on that domain, so I need this one file published to proceed with QA.


Why image name is forced to i

is there a technical reason why the image must be i for sending the events through get ?
https://github.com/snowplow/snowplow-javascript-tracker/blob/master/src/js/out_queue.js#L89
i.e it seems to me that it will not affect in a lot of place the code to make it  by default i and being able to customize it if needed. (for example in my case it's easier to filter access logs in GCP stackdriver, if i can say  "filter http logs that contains 'my_image_for_snowplow.png' " (as well as being self explained for ops guys who may wonder what this image is used for )

No other than it's tracker protocol supported by our collectors. There's some discussion around allowing different paths for requests but, for the time being, we've mostly stuck with supporting the routes that are used by design.

yes but you agree with me that  permitting user to override it would not affect current user (that rely on i) being the default ?

i.e if i make a PR in that direction, will it be accepted ?

IIRC, it was originally "ice.png" back in the day and they merely shortened it to i:
https://github.com/snowplow/snowplow/blob/master/3-enrich/scala-common-enrich/src/test/scala/com.snowplowanalytics.snowplow.enrich.common/loaders/collectorPayloadSpecs.scala#L37
I think making it as short as possible meant we could stuff more characters into each GET request.

This isn't currently possible as our collectors only support /i for GET requests. Should we choose to decide to allow for custom paths on /i then this feature will be implemented in the trackers much like custom POST paths have been now that the collectors support them.


Bug fix for x1143

Display of  Flagged labware section  for events that is not associated with SGPs
Removed Flagged labware section from labware details page

Which bit of this solves the problem where the flagged-box was not showing up when it should?

The issue was that the code, which displays the flagged labware section (lines 263 to 289), was within the condition uniqueWorkNumbers > 0. This condition would fail for events like 'Flag labware,' which is not associated with any SGP's. Therefore, it has been taken out of that condition. I hope this makes sense.


Use getter functions to specify system info and @eval in __init__() to correct if misspecified

This PR is following the strategy outlined by staticfloat here.
VectorizationBase still relies on a great deal of @generated functions. These now no longer access global constants or directly query system information themselves (which would risk those values getting baked into the @generated function).
Instead, they take arguments describing system information with types.
E.g.,
julia> using VectorizationBase

julia> VectorizationBase.register_size()
static(64)

julia> typeof(ans)
StaticInt{64}

register_size() will be redefined if the value is incorrect, thus all methods calling register_size will recompile to reflect the updated value, and then call the @generated functions with new parameter values.

Codecov Report

Merging #46 (b7fa4f2) into master (6a2ee6b) will decrease coverage by 1.80%.
The diff coverage is 56.47%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   59.84%   58.03%   -1.81%
==========================================
  Files          34       34
  Lines        3384     3396      +12
==========================================
- Hits         2025     1971      -54
- Misses       1359     1425      +66

Impacted Files
Coverage Δ

src/promotion.jl
33.84% <12.00%> (-21.52%)
:arrow_down:

src/llvm_intrin/conversion.jl
66.14% <27.27%> (-4.02%)
:arrow_down:

src/llvm_intrin/integer_fma.jl
62.85% <42.85%> (-7.15%)
:arrow_down:

src/llvm_intrin/memory_addr.jl
62.33% <43.64%> (+1.69%)
:arrow_up:

src/llvm_intrin/intrin_funcs.jl
50.00% <52.00%> (-5.77%)
:arrow_down:

src/llvm_intrin/verf.jl
60.00% <54.54%> (-40.00%)
:arrow_down:

src/early_definitions.jl
61.29% <55.76%> (-1.55%)
:arrow_down:

src/strided_pointers/stridedpointers.jl
40.97% <66.66%> (+3.95%)
:arrow_up:

src/topology.jl
72.44% <69.76%> (+36.85%)
:arrow_up:

src/llvm_intrin/masks.jl
57.70% <76.92%> (-8.11%)
:arrow_down:

... and 17 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #46 (b7fa4f2) into master (6a2ee6b) will decrease coverage by 1.80%.
The diff coverage is 56.47%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   59.84%   58.03%   -1.81%
==========================================
  Files          34       34
  Lines        3384     3396      +12
==========================================
- Hits         2025     1971      -54
- Misses       1359     1425      +66

Impacted Files
Coverage Δ

src/promotion.jl
33.84% <12.00%> (-21.52%)
:arrow_down:

src/llvm_intrin/conversion.jl
66.14% <27.27%> (-4.02%)
:arrow_down:

src/llvm_intrin/integer_fma.jl
62.85% <42.85%> (-7.15%)
:arrow_down:

src/llvm_intrin/memory_addr.jl
62.33% <43.64%> (+1.69%)
:arrow_up:

src/llvm_intrin/intrin_funcs.jl
50.00% <52.00%> (-5.77%)
:arrow_down:

src/llvm_intrin/verf.jl
60.00% <54.54%> (-40.00%)
:arrow_down:

src/early_definitions.jl
61.29% <55.76%> (-1.55%)
:arrow_down:

src/strided_pointers/stridedpointers.jl
40.97% <66.66%> (+3.95%)
:arrow_up:

src/topology.jl
72.44% <69.76%> (+36.85%)
:arrow_up:

src/llvm_intrin/masks.jl
57.70% <76.92%> (-8.11%)
:arrow_down:

... and 17 more

Continue to review full report at Codecov.

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

fixes #39

fixes #39

Fixes https://github.com/JuliaLinearAlgebra/Octavian.jl/issues/7?

Also, edit the title to reflect we're no longer using Preferences?

Also, you can still run CI on Julia 1.

Yes, using functions makes it a lot easier to spoof and will cause dependent functions to recompile.
This does have the limitation that we cannot actually query cpu information inside @generated functions.
For this reason, I follow the pattern of making the @generated pieces a core, with a wrapper that calls the query functions and passes the results as type information.
For this reason, all the query functions return their result as a type, for easy use in the generated functions.


Add "emptyview_" prefix to strings and dimensions

Prefix strings resources and dimensions resources with emptyview_, avoiding conflict/unwanted overrides when using the library

Thank you for your contribution. But about the errors  isn't it better users to override and customize them? These are just defaults.

Hi @santalu,
The "problem" is that you provide, IMO, too "generic" named strings/dimensions.
It's highly probable to have a string error_connection_not_found (as example) defined in a project.
By prefixing, it's more safe:

developers will not have strange behaviour if they doesn't import library in "correct order"
it will be easy to find which strings/dimensions to override, because they are prefixed


Goto Function

Hi,
I embed the Readium in my web application. I have my own Goto Page UI to some #id of the document. Please advise where to refer the API Docs. As user click my UI I would like the Readium to navigate the param page.
Please advise.

The ReadiumJS "cloud / web reader" implements a similar "goto" feature, which is basically a URL query string that serializes the JSON syntax of the openPageRequest parameter of the openPackageDocument() function:
https://github.com/readium/readium-js-viewer/blob/develop/src/js/EpubReader.js#L1111
https://github.com/readium/readium-js-viewer/blob/develop/src/js/EpubReader.js#L156
https://github.com/readium/readium-js/blob/develop/js/Readium.js#L96


Node.js Foundation Outreach Meeting 2019-09-17

Time
UTC Tue 17-Sep-2019 16:00 (04:00 PM):

Timezone
Date/Time

US / Pacific
Tue 17-Sep-2019 09:00 (09:00 AM)

US / Mountain
Tue 17-Sep-2019 10:00 (10:00 AM)

US / Central
Tue 17-Sep-2019 11:00 (11:00 AM)

US / Eastern
Tue 17-Sep-2019 12:00 (12:00 PM)

London
Tue 17-Sep-2019 17:00 (05:00 PM)

Amsterdam
Tue 17-Sep-2019 18:00 (06:00 PM)

Moscow
Tue 17-Sep-2019 19:00 (07:00 PM)

Chennai
Tue 17-Sep-2019 21:30 (09:30 PM)

Hangzhou
Wed 18-Sep-2019 00:00 (12:00 AM)

Tokyo
Wed 18-Sep-2019 01:00 (01:00 AM)

Sydney
Wed 18-Sep-2019 02:00 (02:00 AM)

Or in your local time:

http://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Outreach+Meeting+2019-09-17&iso=20190917T16
or http://www.wolframalpha.com/input/?i=04PM+UTC%2C+Sep+17%2C+2019+in+local+time

Links

Minutes Google Doc: https://docs.google.com/document/d/17kMvyX5RetsVOoo9InCgw3GG4X59Hto-craoB8IuM-o/edit

Agenda
Extracted from outreach-agenda labelled issues and pull requests from the nodejs org prior to the meeting.
nodejs/outreach

[Node.js] New Community Page #24

Invited

Outreach Members: @nodejs/outreach

Observers/Guests
Feel free to follow along on the YouTube live stream, or attend meeting as a guest
by calling in to Zoom, using the links below. If you will be attending as a guest,
please comment on this issue to let us know you'll be joining.
Notes
The agenda comes from issues labelled with outreach-agenda across all of the repositories in the nodejs org. Please label any additional issues that should be on the agenda before the meeting starts.
Joining the meeting

Link for participants: https://zoom.us/j/526318636
For those who just want to watch: https://www.youtube.com/nodejs-foundation

I won't be able to make since I am on the road traveling. If anyone else wants to give it a shot, please do.


[BugFix] generate statistics for empty iceberg table

What type of PR is this：

[x] bug
[ ] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #6840
Problem Summary(Required) ：
return  statistics for empty iceberg table, and record is zero.

@DorianZheng , plz  review it.
I want to add  ut,  maybe add in  generate optimizedPlan,  but how to contruct iceberg table.

run starrocks_fe_unittest

run starrocks_fe_unittest

plz add ut

done,       I mock  currentSnapshot function to  return null  to  generate IcebergFileStats

[FE PR Coverage Check]
:disappointed: fail : 1 / 17 (05.88%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/external/iceberg/cost/IcebergTableStatisticCalculator.java
1
17
05.88%
[70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 86, 225, 226]

run starrocks_admit_test

run starrocks_admit_test

@Mergifyio backport branch-2.4


Redirects extension

Note that wpilibsuite/sphinxext-linkcheckdiff no longer works due to internal Sphinx changes. https://github.com/wpilibsuite/frc-docs/blob/main/.github/workflows/CI.yml#L86 is what frc-docs uses now.

Note that wpilibsuite/sphinxext-linkcheckdiff no longer works due to internal Sphinx changes. https://github.com/wpilibsuite/frc-docs/blob/main/.github/workflows/CI.yml#L86 is what frc-docs uses now.

Thanks for letting us know @TheTripleV . I implemented a manual diff check of our own in #301 . I didn't want it to do it the way frc-docs does since if you make a change in the same file but don't cause the error the linkchecker will still throw an error. It is a lot messier than your implementation though.


bench: 1.35.3 Plutus

benchmark is being re-run for:

additional confirmation
gauge potential jitter in metrics


Tabular Data: support array of dicts

Description
An array of dicts would allow columns with different lengths (for charts)
[ { "a": [...], "b": [...] }, { "c": [.....] } ]
would be handled as
[ DataFrame( { "a": [...], "b": [...] } ), DataFrame( { "c": [.....] } ) ]
And accessed with
<|{data}|chart|...|x=0/a|y=1/c|z=0/b|...|>
Acceptance Criteria

[ ] Ensure new code is unit tested, and check code coverage is at least 90%
[ ] Propagate any change on the demos and run all of them to ensure there is no breaking change
[ ] Ensure any change is well documented

from src.taipy.gui import Gui
data = [{
"temperatures": [[17.2, 27.4, 28.6, 21.5],
[5.6, 15.1, 20.2, 8.1],
[26.6, 22.8, 21.8, 24.0],
[22.3, 15.5, 13.4, 19.6],
[3.9, 18.9, 25.7, 9.8]],
"cities": ["Hanoi", "Paris", "Rio de Janeiro", "Sydney", "Washington"]
}, {
"seasons": ["Winter", "Summer", "Spring", "Autumn"]
}]
md = """
<|{data}|chart|z=0/temperatures|y=0/cities|x=1/seasons|type=heatmap|>
"""
Gui(md).run(use_reloader=False)


Create index with custom Prefixes missing ":"

Create index with custom Prefixes missing ":"
It's lead to search out rows from other tables witch names same Prefixes key.
If add ":" in DocumentAttribute.Prefixes , this will be the key format like key::id (double ":")

Hi @29654761 - that's by design, the typical namespace pattern in Redis is divided by a single :, the Prefix is used for two things

Scoping the domain of the index (so any keys that start with the prefix are indexed)
When the keynames are generated at insertion by Redis OM, it DOES add an : between the prefix and the Id.

Not sure what the general purpose of having a double : is? If it's really needed, you can always add it to the prefix.

Hi @29654761 - that's by design, the typical namespace pattern in Redis is divided by a single :, the Prefix is used for two things

Scoping the domain of the index (so any keys that start with the prefix are indexed)
When the keynames are generated at insertion by Redis OM, it DOES add an : between the prefix and the Id.

Not sure what the general purpose of having a double : is? If it's really needed, you can always add it to the prefix.

The problem is:
add colon to DocumentAttribute.Prefixes, The key will be key:::id.
If don't add colon to DocumentAttribute.Prefixes, The index will no colon, it lead to search out wrong results

@29654761 Can you provide a more concrete example of this? I'm having a hard time groking what you're talking about here or why there would be an issue - your prefix should just be the prefix - it's not a required field because Redis OM will just use whatever the fully-qualified class-name is without a prefix, and if you do add a prefix - then it will just use that, and when it creates the key - prepend a colon to the Id that it uses.

@29654761 Can you provide a more concrete example of this? I'm having a hard time groking what you're talking about here or why there would be an issue - your prefix should just be the prefix - it's not a required field because Redis OM will just use whatever the fully-qualified class-name is without a prefix, and if you do add a prefix - then it will just use that, and when it creates the key - prepend a colon to the Id that it uses.

HI @slorello89
Sorry for my poor English.
for example:
There are two tables:
[Document(StorageType = StorageType.Json, Prefixes = new[] { "persion" })]
public class Persion
{
        [RedisIdField]
        public Ulid id { get; set; }
        [Indexed]
        public string name { get; set; }
        ...
}

[Document(StorageType = StorageType.Json, Prefixes = new[] { "persion_man" })]
public class PersionMan
{
        [RedisIdField]
        public Ulid id { get; set; }
        [Indexed]
        public string name { get; set; }
        ...
}

Now I wan to search in table "persion_man":
var table=redis.RedisCollection<PersionMan>();
await table.FirstOrDefaultAsync(e=>e.name=="John");

but I search out the row in table "persion"
Another way If I change the prefixes
[Document(StorageType = StorageType.Json, Prefixes = new[] { "persion:" })]
public class Persion

[Document(StorageType = StorageType.Json, Prefixes = new[] { "persion_man:" })]
public class PersionMan

It can get correct rows, but the key insert into redis wiil be like this:
persion::{id}

@29654761 - I do think the library is doing the right thing here. The default behavior (if you don't have a prefix) is to append a : to the end of the string. But in this case you are supplying the prefix, so collisions need to be managed on your applications end. It's a little weird that it adds the extra : at insertion if you add the : but it looks like everything still works as far as I can tell (seems all the sets and gets still work appropriately).
The change you are suggesting would be a breaking change so not sure we want to integrate it.
Hope this helps!

Hi
Why is it not mentioned in the documentation that "prefix one" should not be a subset of "prefix other"?

@29654761 - I do think the library is doing the right thing here. The default behavior (if you don't have a prefix) is to append a : to the end of the string. But in this case you are supplying the prefix, so collisions need to be managed on your applications end. It's a little weird that it adds the extra : at insertion if you add the : but it looks like everything still works as far as I can tell (seems all the sets and gets still work appropriately).
The change you are suggesting would be a breaking change so not sure we want to integrate it.
Hope this helps!

Hi
OK. But why is it not mentioned in the documentation that "prefix one" should not be a subset of "prefix other"?
This is confusing.


[Migration end] Update to snapshot 7094152

Let's migrate to alpha11

Let's migrate to alpha11

Done, thank you

Done, thank you


Not rendered charts after update to 3.5

Hey,
i recently update my project to ChartJs version 3.5 from 3.4.1.  My issue is that the most of the charts are not rendered, its width and height is 0px. Some charts are sometimes visible, but it is random.
Some environment description:

Project is large & complex
Project is in framework Angular 11

Concepts like lazy loading, data caching, etc are implemented, that means chart data or config is runtime updated

Charts are responsive

First parent of  chart have fixed height set through css, style height is dependent on place of usage and screen size

Width is not direct set, most of the time it is flexed by screen width, it is responsive this way

Custom made plugins are used

I tried to find solution for this issue, but there is no error, no warning, no info... just nothing includes charts.
When i change responsible to false and set some width/height on canvas it works, but that is not what i need.
Simulate exact state of project into codepen is imposible in the short amount of the time and project cannot be shared.
My question is if you have any tips, what changed between 3.4.1 and 3.5 to create this issue?
I think that it is bug, but i am not 100% sure about it.
Thanks for the help.

Off hand, I'm not sure what would cause this. What browser are you using?
@kurkle do you think this could have been caused by the isAttached changes?

OS: Windows 10 pro, browser Chrome, for Firefox it was same

Some thoughts on this (though I don't think we can solve this without some kind of codepen). If you inspect the canvas in the DOM tree, does it have a size? If you set responsive: false, does that change things?

When i change responsible to false and set some width/height on canvas it works, but that is not what i need.

It could be a lot of things. Since there is nothing we can debug, you'll have to do it yourself.
Some things you could try:

Set min-width to the container (small enough so it does not mess with layout), and see if that helps.
Disable the custom plugins to make sure those aren't the issue
maintainAspectRatio: false (you probably have that already?)
inspect chartInstance.attached boolean value
provide a snapshot of the chartInstance properties, like:

Could also be same issue as https://github.com/chartjs/Chart.js/issues/9471, are you attaching the charts with 2 or more levels of containers?

I found out that meta._clip returns undefined so clip.disabled throws exception during render (at chart.esm.js:5618).
Probably default clip options are not set or wrongly passed at some place.

I have planned investigation for this week or next one if delayed, so it will come.

@etimberg @kurkle @TomaszP1987 any news?

@PavolSvidran sorry, I was on vacation the last few weeks. I had some trouble getting the reproduce to work in FireFox, but it seems to reproduce in Chrome. The problem is definitely related to the canvas size (in 3.5.1 it shows as size (0,0).
I feel like this might have been related to https://github.com/chartjs/Chart.js/issues/9471
Is there any way to test the dev code from the master branch?

I did some testing on the chart.attached property. During create in v3.4.x chart.attached is true whereas in v3.5.x chart.attached is false. I think this should be solved using the latest dev code, but we'd want to confirm before closing this

Closing per my previous message; this will be fixed once 3.6.0 is released


Tag workflow enhancements - Implied pages & auto-creation

Please Select if your Request is Either something new or an Enhancement

[ ] Enhancement of an existing Feature.
[X] Request of a new feature.

Please select the area your request applys to. (Multiple selections are Possible)

[X] UI
[ ] Workbench
[ ] Publishing
[ ] Pods
[ ] Markdown
[ ] Hierarchy
[ ] Graph
[ ] Misc (Choose this if your not sure)

Is your feature request related to a problem? Please describe
At the moment, the preferred approach to implement Tags in a vault is to use a wiki-styled link prefixed with tags, e.g. [[tags.tagA]] per https://wiki.dendron.so/notes/8bc9b3f1-8508-4d3a-a2de-be9f12ef1821.html
This however requires us to create a page for this link if any of the features that a tag usually provides are requested:

Display all known tags.
See what pages are linked to what tags.

The normal flow of a tag in other programs tends to be that the act of defining the tag already provides the above functionality.
Creating a page requires us to go away from the current page introducing context-loss and adding overhead.
In an ideal flow we would merely have to define a tag link for all functionality around it to work.
This introduces another issue in that if a user forgets to create the page, there is no overview showing all defined tags, requiring the user to go through all pages to see what tags exist and create pages for them.
Describe the solution you'd like
Functional solution

Display all known tags.

At the moment the Tree View already shows the parent pages of hierarchical wiki links if those parent pages do not exist.
We could augment it to also show undefined pages for which links to exist.

See what pages are linked to what tags.

If the Tree view already shows linked-to (tags) pages which don't exist, the user can simply create the page and see the list.
Alternatively, a separate pane could be made specifically for tags that shows all tags discovered in the project - with linked pages as leafs in the tree.
Technical solution
Auto creation of pages for wiki-links that start with tags. is a solution.

I'd go one step further and decouple tags completely from note files. Viewing all tagged pages via the backlinks view is quite awkward. It would really help my usecase of tags if in the seperate window you mentioned could be displayed and grouped according to their hierarchy in the actual notes tree.

Then Tags would need to be either defined in another way or schemas need a way to declare something as a tag.

I'd like to add a +1 for reworking tags. I see the logic in implementing them as pages. Backlinks can be used to find the notes with those tags. The existing refactoring tools can be used to rename tags. That said, having to remember to create a page for each tag feels like an easy point of failure. I'd much rather tags are handled more like they are in other systems. I'd love to see a tag explorer that had the ability to find notes with a tag, rename a tag, etc.
One thing that I do like about the existing tag implementation is that it lends itself very well towards hierarchical tags, like status.incomplete. I wouldn't want to lose that.

Is there an Update on this?


ISSUE-3710: Program to check valid date

Why:
This PR implements the ruby program to check if a given date is valid.
Closes #3710
What's being changed:
program/check-valid-date/CheckValidDate.rb is added.

Hi @grraghav120
Could you please review this?

Hi @grraghav120
Any update on this?


Branch 2.1

Fix Execution Plan:
Remove unnecessary steps of sort from execution plan:
df.sort(...).count()
It should not do the sort! It should be absolutely fast if underlying data is partitioned with known count (such as parquet read).

Can one of the admins verify this patch?

@rkarimi close this please


[T3A3][F11-A2]Teo Ming Yi

Split Address into 4 classes

Ready for review

Some comments added. Please close the PR after reading comments :+1: Well done, simple and clean execution, however for this round of execution since this task is simple it is ok to do the changes and push all in 1 commit however, in future commits do take note to commit after each significant changes instead of all in one :)