GPL?

Nice implementation!
GPL is a mistake though, this code has no business being licensed under GPL - it's not software, it's more like a library, or some code snippet.
Per the terms of GPL, anyone using this in their project must also license their project under GPL and make the source code available to anyone that asks - and that sucks, unless everything you ever do is open-source; people using this code are likely going to just outright ignore the license, or dig up and use a less-optimal version of it that is more permissively licensed.
This was the original implementation and feedback, posted 2018/08/24 under CC-BY-SA (with attribution required as per Stack Exchange terms of service):
https://codereview.stackexchange.com/q/202414/23788
This article was published 2018-09-11 without an explicit license:
https://rubberduckvba.wordpress.com/2018/09/11/lazy-object-weak-reference
Also: https://www.vtsoftware.co.uk/tools/weakreference.cls
Consider switching to an MIT license, GPL isn't appropriate for this.

Thanks for taking the time to explain. Needless to say I haven't read the license(s) in full. It's time I did.
By looking at the first 2 links it seems to me that you are the author of both. So I do not understand your initial (edited out) statement: "I don't care that people take my VBA stuff, make it better and then claim it as their own", since it's still you. Were you reffering to the general idea of the MIT license?
I also do not care about who or how uses this particular code or any other VBA repositories I have posted. So MIT seems the way to go. I will read the licenses and update accordingly. Thanks!

Since you have not replied to my question, I have decided to read your initial comment again.
Here is what I think.
By writing “I don't care that people take my VBA stuff, make it better and then claim it as their own - your implementation looks more robust” I believe you have insinuated that I have done just that i.e. take your stuff.
I did not know how to react to this. Since I respect your work and contribution to the VBA community (Rubberduck which I have used), I decided to write the below which I hope you will read.
Because I named my class/repository “WeakReference”?
I learned about Weak References by coding in Swift. See my commits here: https://github.com/hansguntersson/DDE-xcode/commits?author=cristianbuse.
Because I left a comment on your article saying “Thank you”?
The only reason I posted a comment on your article was so that people can find my solution. Basically, I wanted to take advantage of your article’s page ranking on Google (first on my browser). I viewed it as advertisement.
Because I used “RtlMoveMemory” API?
The idea that you can use “CopyMemory” API to get an Object from a memory address is something that I first saw in 2017, here: https://www.rondebruin.nl/win/s2/win015.htm. I believe article is dated 2011 (downloadable file certainly is). I used the idea over the last years to retrieve the Excel Ribbon after loss of state (which is safe as there will always be a Ribbon Object in memory while the host Application is running, Excel in my case). I could have used the same code wrapped in a class to get something similar with what you have mentioned in your 2018 article. That is, I knew this before you wrote it. I did not use this approach because it crashes the host Application if the memory pointer is invalid and I saw no way to check if the memory address is still valid without using APIs like “IsBadReadPtr” which is obsolete. Also, slow if called many times.
Until a month ago, I continued to break reference cycles manually in VBA by using a “TerminateRefs” method in the “child” class that is called before the “parent” is set to nothing. Crude and still prone to leaks as state could be lost before the method is called. But faster than the copy memory approach.
I spent a couple of weeks trying to find a decent workaround for a x64 bug with the custom class enumerations in VBA (i.e. marking a method/property with attribute -4 (DISPID_NEWENUM) so that the class can be iterated using For Each … Next) which I still have not figured how to avoid yet (you are probably not aware of this bug – I can expand – it probably affects your work as well) and accidently stumbled across the “VariantCopy” function which intrigued me.
I started reading a lot about Variant and then a lot about COM. And then while re-reading the same documents (mainly Microsoft docs sites) repeatedly I came up with the idea that I could retrieve an object from its memory address by using Variants and manipulating the VarType. Of course, this was exciting for me. I quickly put everything else on hold and started looking into my idea.
Initially I used a faked Variant/String by manipulating a remote BSTR structure (faked of course with a Long for Length, an Integer for the VarType acting as a 2-byte character and a trailing Null) to change the data type of a Long to Object (by assigning character codes corresponding to the desired VarType) and that worked but in certain cases was still crashing Excel (the Application I was testing on) because when strings in VBA (pointers to BSTR structures) go out of scope, memory is still reclaimed. I wasn’t aware of the VT_BYREF flag back then.
And then I remembered seeing the VT_BYREF flag when reading about Variants. I imagined that I could use it outside of a method scope and then started testing the idea. It worked.
It took me 2-3 weeks to do this (more than 100 hours) all on my own reading Microsoft documentation (which I have referenced in the class) and about COM to even come up with the ideas. Not to mention testing all the dead ends. All code written from scratch.
I was not even planning to create a Weak Reference class. It just happened.
I have mentioned the technique (copying 4/8 bytes – a memory address - into a temporary object) you also happened to use, in the introduction section of my code as “The easiest solution (not the one implemented in this class…”. I have also explained why it is not used.
My solution is unique, and the idea came naturally by going through the steps mentioned above. Moreover, the remote VT approach solved the case when the referenced object has been already erased so that the Weak Reference class returns Nothing without ever crashing.
I, for certain, did not learn/heard about the Weak Reference concept from you or your articles. Same applies for copying the address bytes into a temporary uncounted/unmanaged Object to get the referenced Object back by using CopyMemory API (not even used in my repository).
I was astonished by your suggestion that I improved on your “VBA stuff”. It is clearly a different beast. Yes, I took advantage of your article to get publicity (if you want to call it that way). I see no harm in that.
I believe that you should keep my comment on your article (https://rubberduckvba.wordpress.com/2018/09/11/lazy-object-weak-reference/)  because it has the same purpose as your work. To help others.

I'm sorry I initially posted that original comment without first seeing the
code; I did the only sensible thing to do: retract, and now apologize.

I've had other code outright ripped off CC-BY-SA on Code Review before,
unilaterally relicensed and all rights claimed without a shred of credit
anywhere. I make everything I do public and permissively licensed, up for
grabs if you will, but a permissive license doesn't equate public domain.
Again, I'm sorry I wrongly assumed that's what was going on here, and
hope the people that use your code and build on top of your work and
research, respect your license terms - GPL makes that hard to do though!
Cheers!
On Thu., Jul. 9, 2020, 01:51 Cristian Buse<EMAIL_ADDRESS>wrote:

Since you have not replied to my question, I have decided to read your
initial comment again.
Here is what I think.
By writing “I don't care that people take my VBA stuff, make it better and
then claim it as their own - your implementation looks more robust” I
believe you have insinuated that I have done just that i.e. take your stuff.
I did not know how to react to this. Since I respect your work and
contribution to the VBA community (Rubberduck which I have used), I decided
to write the below which I hope you will read.
Because I named my class/repository “WeakReference”?
I learned about Weak References by coding in Swift. See my commits here:
https://github.com/hansguntersson/DDE-xcode/commits?author=cristianbuse.
Because I left a comment on your article saying “Thank you”?
The only reason I posted a comment on your article was so that people can
find my solution. Basically, I wanted to take advantage of your article’s
page ranking on Google (first on my browser). I viewed it as advertisement.
Because I used “RtlMoveMemory” API?
The idea that you can use “CopyMemory” API to get an Object from a memory
address is something that I first saw in 2017, here:
https://www.rondebruin.nl/win/s2/win015.htm. I believe article is dated
2011 (downloadable file certainly is). I used the idea over the last years
to retrieve the Excel Ribbon after loss of state (which is safe as there
will always be a Ribbon Object in memory while the host Application is
running, Excel in my case). I could have used the same code wrapped in a
class to get something similar with what you have mentioned in your 2018
article. That is, I knew this before you wrote it. I did not use this
approach because it crashes the host Application if the memory pointer is
invalid and I saw no way to check if the memory address is still valid
without using APIs like “IsBadReadPtr” which is obsolete. Also, slow if
called many times.
Until a month ago, I continued to break reference cycles manually in VBA
by using a “TerminateRefs” method in the “child” class that is called
before the “parent” is set to nothing. Crude and still prone to leaks as
state could be lost before the method is called. But faster than the copy
memory approach.
I spent a couple of weeks trying to find a decent workaround for a x64 bug
with the custom class enumerations in VBA (i.e. marking a method/property
with attribute -4 (DISPID_NEWENUM) so that the class can be iterated using
For Each … Next) which I still have not figured how to avoid yet (you are
probably not aware of this bug – I can expand – it probably affects your
work as well) and accidently stumbled across the “VariantCopy” function
which intrigued me.
I started reading a lot about Variant and then a lot about COM. And then
while re-reading the same documents (mainly Microsoft docs sites)
repeatedly I came up with the idea that I could retrieve an object from its
memory address by using Variants and manipulating the VarType. Of course,
this was exciting for me. I quickly put everything else on hold and started
looking into my idea.
Initially I used a faked Variant/String by manipulating a remote BSTR
structure (faked of course with a Long for Length, an Integer for the
VarType acting as a 2-byte character and a trailing Null) to change the
data type of a Long to Object (by assigning character codes corresponding
to the desired VarType) and that worked but in certain cases was still
crashing Excel (the Application I was testing on) because when strings in
VBA (pointers to BSTR structures) go out of scope, memory is still
reclaimed. I wasn’t aware of the VT_BYREF flag back then.
And then I remembered seeing the VT_BYREF flag when reading about
Variants. I imagined that I could use it outside of a method scope and then
started testing the idea. It worked.
It took me 2-3 weeks to do this (more than 100 hours) all on my own
reading Microsoft documentation (which I have referenced in the class) and
about COM to even come up with the ideas. Not to mention testing all the
dead ends. All code written from scratch.
I was not even planning to create a Weak Reference class. It just happened.
I have mentioned the technique (copying 4/8 bytes – a memory address -
into a temporary object) you also happened to use, in the introduction
section of my code as “The easiest solution (not the one implemented in
this class…”. I have also explained why it is not used.
My solution is unique, and the idea came naturally by going through the
steps mentioned above. Moreover, the remote VT approach solved the case
when the referenced object has been already erased so that the Weak
Reference class returns Nothing without ever crashing.
I, for certain, did not learn/heard about the Weak Reference concept from
you or your articles. Same applies for copying the address bytes into a
temporary uncounted/unmanaged Object to get the referenced Object back by
using CopyMemory API (not even used in my repository).
I was astonished by your suggestion that I improved on your “VBA stuff”.
It is clearly a different beast. Yes, I took advantage of your article to
get publicity (if you want to call it that way). I see no harm in that.
I believe that you should keep my comment on your article (
https://rubberduckvba.wordpress.com/2018/09/11/lazy-object-weak-reference/)
because it has the same purpose as your work. To help others.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cristianbuse/VBA-WeakReference/issues/1#issuecomment-655916481,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABL4HBBJRY6HQGNLNZMH2Y3R2VLHJANCNFSM4OTVZJ7Q
.

Thanks Mathieu!
It means a lot to me. You are somebody I look up to. I am really glad you do not have a bad impression about me.
I've just updated all my repositories to MIT license. Thanks for your time!
Sincerely,
Cristian

I'm not sure you remember this, but I did mention a certain bug here and I am sure you've read my comment. I did not say more back then except "it probably affects your work as well". Well, I've managed to get some time to write about it. I could surely use your vast expertise on this. Question is on Stack

Hi again Matt. Apologies I keep pinging you here. I have another issue with VBA that I belive you will find interesting. Question on Stack.
Is there another way i could use to reach you in the future? Also, please let me know if you would like me to stop pinging you!
Thanks!

@cristianbuse no problem whatsoever! I get the email notifications and read them always, although I might not have the time to respond (or might forget to do it later... my apologies); this experimentation and research you're doing is very helpful in many ways, and I'm keeping an eye on these posts, so thanks for these pings - I likely wouldn't have seen that SO post for a couple more days, if at all!

Great. Will use the email from now on. Many thanks! Cheers!


Fix singletons

Ok, this makes it really hard to write tests in the debugger branch, I'm having to resort to approaches such as using transpiling the code using browserify and running it in VM, which doesn't sound very pretty :)
So far, I was able to identify these:

dataOffset in https://github.com/francisrstokes/16bitjs/blob/master/src/assembler/preprocessor/get-data-table.js#L15
labelOffset in https://github.com/francisrstokes/16bitjs/blob/master/src/assembler/preprocessor/stages/replace-labels.js#L1

I moved them into a closure, and that actually fixed the cpu issue in debugger branch. But, then I noticed the assembler (main) test started failing. Not sure, where this one is coming from. I'll look into it later.

In both these cases you can just reset these variables to zero when the exported function is called. That or rewrite the reduce in both in terms of a regular for loop (that will probably result in nicer code in the end)

I am resetting the values now assembler and vm seem to work fine, all tests are passing except this one (assembler/index.js):
This emits slightly different output than the previously expected, not sure why, is this normal?
  1) assembler (main step)

  29 passing (24ms)
  1 failing

  1) assembler/assembler (main) assembler (main step):

      AssertionError: expected [ 513, 10, 2561, 61, 97, 98, 99, ... ] to deeply equal [ 257, 10, 2561, 61, 0, 0, 0, 0, ... ]
      + expected - actual

      -{"0":513,"1":10,"2":2561,"3":61,"4":97,"5":98,"6":99,"7":100,"8":101,"9":0,"10":85}
      +{"0":257,"1":10,"2":2561,"3":61,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0}

      at Proxy.assertEqual (node_modules/chai/lib/chai/core/assertions.js:1012:19)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at Context.it (tests/assembler/assembler/index.js:25:36)

It looks like it should be correct. Looking at the test array there's no way that could ever be right. If you work out what the instructions would be:
MVV A, 2, 0 -> 10 00 00 0001
JMR A ->  00 00 1010
...
You can see that the test was just wrong.Array should be [513, 10, 2561, 61, 'a'.charCodeAt(0), 'b'.charCodeAt(0), 'c'.charCodeAt(0), 'd'.charCodeAt(0), 'e'.charCodeAt(0), 0, 0x55, 0]

💯   😺   Can we merge this?


Cannot create multiple emulator instances per process

Issue summary
Getting "Cannot create multiple emulator instances per process" when calling retro.make function in Google cloud.
Here is the code:
env = retro.make(game='Airstriker-Genesis', state='Level1')
obs = env.reset()
while True:
obs, rew, done, info = env.step(env.action_space.sample())
env.render()
if done:
obs = env.reset()
And the call stack:
RuntimeError                              Traceback (most recent call last)
 in ()
----> 1 env = retro.make(game='Airstriker-Genesis', state='Level1')
2 obs = env.reset()
3 while True:
4     obs, rew, done, info = env.step(env.action_space.sample())
5     env.render()
/usr/local/lib/python3.6/dist-packages/retro/init.py in make(game, state, **kwargs)
118         else:
119             raise FileNotFoundError('Game not found: %s. Did you make sure to import the ROM?' % game)
--> 120     return RetroEnv(game, state, **kwargs)
/usr/local/lib/python3.6/dist-packages/retro/retro_env.py in init(self, game, state, scenario, info, use_restricted_actions, record)
96         # emulator, ensure that unused ones are garbage-collected
97         gc.collect()
---> 98         self.em = retro.RetroEmulator(rom_path)
99         self.em.configure_data(self.data)
100         self.em.step()
RuntimeError: Cannot create multiple emulator instances per process
System information

[Operating system]
Google collaborative environment
[Python version]
3
[Gym Retro version]
latest using pip

I had to restart the kernel. It is fixed.


Arduino and cmake support

I made the following changes:

support to include as Arduino library
support to build and download library with cmake
support for c++

I provide some intregration of your library in my Arduino AudioTools:

Here is a test that I built on my desktop
And one for ESP32 Arduino

Hey thanks, this nice! I have never tried out an Arduino, although I have used ESP32's and tons of RPi's.
I tried the cmake file and it doesn't seem to generate an executable (just the library). Is that easy to add? I guess it wouldn't make sense on an Arduino, but certainly on some other platforms.

Good point: I extended the cmake to build both, an executable and the library.
On the ESP32 it seems to work only with LOOKAHEAD 0 and NOISE_SHAPING_OFF

Good point: I extended the cmake to build both, an executable and the library.

Great!

On the ESP32 it seems to work only with LOOKAHEAD 0 and NOISE_SHAPING_OFF

I don't explicitly mention this, but the encoder is really not intended as an embedded target. It achieves the quality through a lot of complex and costly stuff, including possibly deep recursion. The idea is that the encoding would be done offline to generate canned audio. The decoder, on the other hand, is very embedded-friendly. I'm not why the noise shaping would not work as that's pretty simple.
That said, if the encoder is used without lookahead, then it should be fine.


Suggestion*

Add a config option to disable to book on login. Couldn't find one there.

The config option exists, but its part of the GuideAPI config (GuideAPI adds a config for every book added through it). Also, the books that you're referring to (Mysterious Journal and Technician's Manual) are added by Crossroads, not Essentials.

oh oops, I thought I put this on the Crossroads issues. Thanks


Actually u should report that to discord so they can fix it and u will probably get a bug hunter batch and some money maybe

its not a bug


ci: optimize nix ci time with store cache and nixbuild/nix-quick-install-action

Should be drop-in replacement that gives us nix-community/cache-nix-action

Using 8 GB for `/nix/store` if `/nix/store` usage is higher, then a garbage collection job is called before cache persistence is done to make sure that we're caching at most 8 GB of store.

Erases github_access_token - unsure how this affects the overall CI

I also just realized 8 GB of cache for nix/store might be too much
https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions
Though I'm not sure what 500 MB refers to and how gh actions cache works deep down. I'm happy to decrease the cache size down on notice.


Make change Priority work with ReqMgr2

When changes the priority need to update workqueue priority as well. (check whether we can get the directly from reqmgr db instead of updating workqueue)

Hmm, I'm almost sure priority updates also get propagated to workqueue.
About your second comment, I don't really understand it. You mean get it from reqmgr couch db, right?

yes. I think if we don't have to get it from wq but get it from reqmgr couch db it will be better but if it is too complicate to change it, we might not do that.


Azure ResourceManager DnsResolver Readme Issue

Section link:

Suggestion:
1.Add Link:  https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/CONTRIBUTING.md
2.Add Link: https://opensource.microsoft.com/codeofconduct/
3.Add Link: https://opensource.microsoft.com/codeofconduct/faq/
@scottaddie and @archerzz for notification.

same as https://github.com/azure/azure-sdk-for-net/issues/27736

Fixed: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/README.md#contributing


feat: Functor.mapDerivedCategory is a triangulated functor

In this PR, it is shown that an exact functor between abelian categories induces a triangulated functor between the corresponding derived categories.

[x] depends on: #14084

bors merge


Multiple Actions Per Page

Is there anyway to have multiple actions per page? I understand that the useServersideMutation function could accomplish this, but wiring a form into that is not that elegant or graceful. I looked over the docs and I didn't seem to see any way to accomplish this, but I also didn't see anything specifically stating this wasn't possible.
I would like to continue to use forms but have multiple actions on one page (I.E. an admin dashboard with CRUD operations). This is a major drawback of Remix and was hoping to see some solution on Rakkas.
Thanks!

There is an undocumented useFormMutation function that decouples form actions from pages. There are a few remaining rough edges but I'm hoping that they will replace route-based actions in the feature. Here's a (crude) usage example: https://stackblitz.com/edit/github-5kdqbg?file=src%2Froutes%2Findex.page.jsx
Apart from that, you can use API routes to define POST handlers or you can use hidden inputs to differentiate between actions on the same route.

That looks awesome! I really appreciate you making an example too. Thanks!


Halfling Alternate Trait Bug

Describe the bug
The Halfling alternate trait 'Blessed' references sacrificing the 'Fearless' trait in the alternate trait description, but seems to be looking at the 'Halfling Luck' trait mechanically as the actual pre-requisite and presumably trade off.
To Reproduce
Steps to reproduce the behavior:

Create a new halfling character and proceed to the Alternate Trait portion.
Select 'Hasty' and you will notice that 'Blessed' is still available despite 'Hasty' forfeiting the Fearless trait.

Expected behavior
'Blessed' should list 'Fearless' as the required trait and not 'Halfling Luck'
Screenshots
Additional context

this should be fixed next release


Add run in terminal button to markdown viewer when a code block's language is a shell language

We need to be very careful that we don't allow markdown previews to run shell scripts without user interaction or allow running script in a potentially confusing way. In untrusted workspaces we should either disable this entirely or at least get user confirmation with a preview of the script to be run
I suggest adding the button using a script that runs after the markdown has been rendered. You can add the script here:
https://github.com/microsoft/vscode/blob/8c363b460b5f6a1e2a153bac71ad7c581929011f/extensions/markdown-language-features/package.json#L743
Checkout https://github.com/mjbvz/vscode-markdown-mermaid/blob/master/markdownPreview/index.ts for a more complete example of a script that runs on init and after updates to the md preview


Docs entry

This PR mainly moves the doc/ overview into the doc index and adds links to software READMEs.
I sneaked in a change to the Hugo version check.
And some minor fixes to links.

Thanks @gkelly for the review!

I'm not in love with having to click one more level down to get to the interesting bits,
but it is in line with our way of layering the documents. I'm fine with the change, but
it might emphasize some of the documentation feature requests that @imphil and
others have suggested.

I agree, one more level is not ideal, but with adding the software part it felt like a better structure.
But maybe we can agree that the doc/ folder is special and should live in the top level, but then the doc/_index.html should maybe redirect to /index.html? Have to check how this can be done.
I stared to look into the features and while doing this I noticed the inconsistencies and just wanted to clean up a bit.

But maybe we can agree that the doc/ folder is special and should live in the top level, but then the doc/_index.html should maybe redirect to /index.html? Have to check how this can be done.

I had a look at how this could be done with Hugo, but did not find a good solution.
They have "aliases" but from my understanding this does not work as due to the sub-folders the automatically created redirect will be overwritten.
So we either go with an additional hierarchy or we keep the original and put a link to the root at doc/_index.md.

But maybe we can agree that the doc/ folder is special and should live in the top level, but then the doc/_index.html should maybe redirect to /index.html? Have to check how this can be done.

I had a look at how this could be done with Hugo, but did not find a good solution.
They have "aliases" but from my understanding this does not work as due to the sub-folders the automatically created redirect will be overwritten.
So we either go with an additional hierarchy or we keep the original and put a link to the root at doc/_index.md (like towoe@a961100).

I think I'm fine with this change (would like to hear from @asb and/or others)
but it does put a bit more emphasis on those other doc enhancements (TOC
and breadcrumbs, etc) to help navigate better.

@gkelly can you have another look and approve if OK?


Update Mocha to latest version

@jamarw were the @types upgraded at all? It might be worth seeing if we can get latest on that too.

@jamarw were the mocha types upgraded at all? It might be worth seeing if we can get latest on that too.

Good call, small change but we should still have the latest.


Staking Demo Feedback

Problem

[x] It would be great to add some explainer information next to the fields in the staking popup. I.e. - declining the reward - what does it actually mean? What will happen to my reward? etc
like a question mark with a tooltip
[x] Change “Payed Reward” to “Paid Rewards”?
[x] Change “Transactions That Payed Reward” to “Staking Rewards Transactions”?
[x] Change "Decline Reward" = false to "Rewards Acceptance” to be either “Accepted" or Declined”?

Solution
See above
Alternatives
No response

a/ when the user has selected to stake to another account, the following message is displayed next to it:
"Rewards will now be paid to that account.".
b/ the table is titled "Recent Staking Rewards Transactions"
c/ in the account details, we display either "Rewards:  Accepted or "Rewards:  Declined"


Feature Request: Color results by respone code

For example:
2xx - green
3xx - yellow
4xx - red
we can use aurora Sprintf [ResultToSring].(https://github.com/OJ/gobuster/blob/5ca1584c160e417bc7f7364f00bf3e756b0b2f25/gobusterdir/gobusterdir.go#L84)
@OJ wdyt? is that the proper place to implement it?

For example:
2xx - green
3xx - yellow
4xx - red
we can use aurora Sprintf [ResultToSring].(
gobuster/gobusterdir/gobusterdir.go
Line 84 in 5ca1584
func (d GobusterDir) ResultToString(g *libgobuster.Gobuster, r *libgobuster.Result) (*string, error) {
)
@OJ wdyt? is that the proper place to implement it?

@eranchetz Is that working ?

@jaikishantulswani I was hoping for a response before implementing, I will test it later this week and update.

Thanks folks. Yes there's a PR open for it, but needs a little bit more work before it can be landed. Cheers!

This is implemented on the dev branch for now


Use IPsec to protect sleeve overlay connections

Assuming IPsec is used to address #1644, we could extend it to cover sleeve UDP traffic with the following advantages:

Uniformity of approach. We would use the existing NaCl protected control plane mesh to distribute session keys to configure SAs for both sleeve and fast datapath
Further disentanglement of mesh and network router (currently there is a coupling due to the control and data planes using the same session key with disjoint nonces)

I think this is quite independent of #1644.

I think this is quite independent of #1644.

It is, but it's not quite as compelling unless #1644 uses IPsec IMO. This is quite academic though, as the chances of #1644 being implemented without IPsec is effectively nil as far as I am concerned!

This is quite academic though, as the chances of #1644 being implemented without IPsec is effectively nil as far as I am concerned!

Yes, but it might not get implemented at all.


How to do ensemble with ivadomed?

Motivation for the feature

To make model in production more performant, we might want to do ensembling. Eg: Bagging, where multiple models are trained, each with bootstrapped train/validation dataset, and then we fuse all predictions at test time (eg using averaging or STAPLE).
Is there such feature available in ivadomed? How were past ensembling projects performed with ivadomed. Input from @charleygros and @andreanne-lemay would be greatly appreciated 🙏

If it helps, for the Loss ensembles section in the label fusion paper, we trained multiple models with different seeds and then averaged them after all the training was done. There was no special "feature" of ivadomed that was used.

Thank you for chipping in Naga!

we trained multiple models with different seeds and then averaged them after all the training was done.

I thought what was averaged was the predictions, not the models?

Yes, you're right, the predictions from each model were obtained and then averaged.
Hmm, I may have misunderstood your question then. I don't know how we can average "models" because what we are interested in obtaining from each model are its predictions, and we usually average the predictions from different models.

You understood it right-- my question was very pragmatic: is there a feature to do ensemble/bagging with ivadomed, and from what you're saying, the answer is no (ie: the averaging was done 'outside' of ivadomed, using code specific to the label fusion project)-- am i right?

Yes, you're right. Ensembling can't be done with ivadomed right now. We would have to do it on our own by taking ivadomed's predictions.

Yes, you're right. Ensembling can't be done with ivadomed right now. We would have to do it on our own by taking ivadomed's predictions.

I second this, yes


Suggestion: add SkipTrailingRows to the CreateLoadJobOptions Big Query API

It's already possible to skip the first X lines when uploading a .csv file like so:
CreateLoadJobOptions options = new CreateLoadJobOptions
{
    SkipLeadingRows = 11
};

Unfortunately there isnt a function that does the opposite thing: remove lines at the bottom of a file .csv file. Such an option can come handy because some .csv files do have a summary or copyright message at the end of the .csv file. This copyright message might result in unwanted import results in Big Query when using the uploadCsv function. Suggestion:
CreateLoadJobOptions options = new CreateLoadJobOptions
{
    SkipTrailingRows = 2
};

The work "trailing" can be anything as long as it's clear that it skips the last lines of the .csv file.

The .NET client library is really just a wrapper around the BigQuery API - rather than performing this on the client side, I think it would be better for this to be part of the API itself (then exposed as options), and it's not at the moment.
@jcondit may know a suitable place to request this feature.

I've filed a feature request internally; I'm going to close this one now as we won't be doing anything within this repo unless/until the API starts to support it.


New package: SymDoME v1.0.0

Registering package: SymDoME
Repository: https://github.com/danielriveroc/DoME.jl
Created by: @danielriveroc
Version: v1.0.0
Commit: 908688f08ab3bed7c5a4559aac689635158a3df6
Git reference: HEAD

Closed in favor of #118443.


Parcel image feature broken once again

Android 11 problem

Just randomly used FileProvider.getUriForFile... and it just worked again.


[C++][Parquet] ByteArray Reader: Extend current DictReader to supports building a LargeBinary

Describe the enhancement requested
Previously, an issue ( https://github.com/apache/arrow/pull/35825 ) shows that directly read large binary by dict is not supported.
During writing to parquet, we don't allow a single ByteArray to exceeds 2GB. So, any single binary would be less than 2GB.
The parquet binary reader, which is separate into two styles of API, could be shown as below:
class BinaryRecordReader : virtual public RecordReader {
 public:
  virtual std::vector<std::shared_ptr<::arrow::Array>> GetBuilderChunks() = 0;
};

/// \brief Read records directly to dictionary-encoded Arrow form (int32
/// indices). Only valid for BYTE_ARRAY columns
class DictionaryRecordReader : virtual public RecordReader {
 public:
  virtual std::shared_ptr<::arrow::ChunkedArray> GetResult() = 0;
};

The api above, Both of these api don't support read "LargeBinary", however, the first api is able to separate the string into multiple separate chunk. When a BinaryBuilder reaches 2GB, it will rotate and switch to a new Binary. The api below can casting the result data to segments of large binary:
Status TransferColumnData(RecordReader* reader, const std::shared_ptr<Field>& value_field,
                          const ColumnDescriptor* descr, MemoryPool* pool,
                          std::shared_ptr<ChunkedArray>* out)

For Dictionary, though the api returns a std::shared_ptr<::arrow::ChunkedArray>. However, only one dictionary builder would be used. I think we can apply the same way for it.
Pros: we can support read more than 2GB data into dictionary column
Cons: data might be repeated among different dictionary columns. Maybe user should call "Concat" on that
Component(s)
C++, Parquet

cc @pitrou @jorisvandenbossche @felipecrv
Also cc @jp0317 as Dictionary Reader user

More complexly, for array<string>, the string / dictionary - string can be cast to large first, then casting to array. This would cause slightly performance lost only when reading the large binary

BinaryRecordReader already supports this. User needs passing a LargeBinary/LargeString to reading it.
DictionaryRecordReader will only have single builder, which could not storing more than 2GB data. And ListReader will concat underlying ChunkedArray to single Array, so I think we can testing it, but in theory we can read this
However, this proposal may introducing high peak memory and more memcpy than previous patch(because during concat multiple "large" buffer need to be concat together)

However, this proposal may introducing high peak memory and more memcpy than previous patch(because during concat multiple "large" buffer need to be concat together)

Better than not supporting the 64-bit-length strings.

@pitrou What do you think of this? If it's ok I'd like to add this later this month

I'm doing a bit of cleanup before the release and noticed that this was here. @pitrou do you have any thoughts above?


[FEATURE] Explore changing logic to capture thread dump in PA

Is your feature request related to a problem?
Right now we use HotSpotVirtualMachine class here to capture thread dump. We type cast VirtualMachine into HotSpotVirtualMachine and then try to access the method at runtime. This worked okay(with warnings) until JDK 17 came in which doesn't allow this behaviour and resulted in error.
For now we will fix this by adding "add-open" access but we should explore if we can change the logic itself to avoid runtime access of jdk internal classes/methods. As in future JDK versions, even "add-opens" practice maybe disallowed.
What solution would you like?
A clear and concise description of what you want to happen.
What alternatives have you considered?
A clear and concise description of any alternative solutions or features you've considered.
Do you have any additional context?
Add any other context or screenshots about the feature request here.

To be picked up by @@kaushalmahi12 once onboarded

Did some research around this and here's what I have to add :
The description of the issue is misleading, since it points the problem being the typecasting, but infact the problem is the class HotSpotVirtualMachine is *inaccessible

*.

In the above two images you can see the module properties expose only the package com.sun.tools.* and not sun.tools.*  which contains the class HotSpotVirtualMachine
we are solving this issue using --add-opens which is used to open a package and make all its types and members accessible (more on this (https://nipafx.dev/five-command-line-options-hack-java-module-system/#Reflectively-Accessing-Internal-APIs-With--add-opens))
The correct problem statement
Can we avoid using the inaccessible class HotSpotVirtualMachine and hence avoid  --addopens ?

@kiranprakash154
Is there any other way we can get thread dumps, etc in JDK17? We are fundamentally hackng our way to get that information, and might need to do so going forward, or lose the ability to get this information in PA.

Hey @kkhatua,  @kiranprakash154
Is there a reason for not using a MXBean thread dump ( mxBeanObject.getThreadInfo(id/id[], stackTraceMaxDepth ) ?

I explored a bit and found out the following:
Apparently this package and interface were hidden on purpose because they're prone to change and not recommended to be used by external packages.
Most of the command tools providing JVM profiling and dumping rely on it as well, i.e. jcmd, jstat : Example jcmd implementation.
It can be seen in @kiranprakash154 's comment above that this package is explicitly exported to jcmd's package which makes sense as jcmd is also internally packaged tool so it has no problems using it.
On internet, there are not much use cases and examples of mapping JVM-assigned thread id to native thread id's and not even of utilizing native thread id, especially programmatically (usually it is done through command line tools like jcmd).
As much as I could deduce, native thread id is the only information we are currently getting through HotSpotVirtualMachine dumping that we cannot through ThreadMXBean, correct me if I'm wrong.
So far, I haven't been able to find a "non-hacky" way to reformat the existing logic and keep the native id.
One of possible hacks could be Runtime execution of a separate jcmd process and consuming it's output stream (that would by the way result in the same output we're currently getting through HotSpotVirtualMachine). From one side this may not be a bad idea as jcmd is shipped with jdk and will follow the internal implementations and can provide us with relatively stable interface to these functionalities. From the other this is not clean and there are probably consequences of doing things this way inside OpenSearch environment and similar that I'm not aware of so please give your thoughts about it (probably also performance ?).
Second one is even more convoluted and would imply using JNI or JNA to dynamically load code that does a proxy system call and gets native id of a thread, something similar to this, and is of course extremely system specific so proxy calls would vary for every operating system. This dl would have to be dragged around and it would also be hell for deployment, making this option bad imo.
Third option is keeping the current --addopens hack and the fourth one would be dropping this functionality and transitioning to MXBean completely which we're already using for other dumping info.

Hi @Tjofil, Thanks for your detailed findings.
I had worked on this issue last year and documented a few things. Here's some of it that aligns with your recommendations.

I found this bug file (https://bugs.openjdk.org/browse/JDK-8154176?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel&showAll=true) in openjdk to expose getnativeid in ThreadInfo - this unfortunately has not been resolved yet and has concerns over cross platform notion of “native thread id”.

Use Processbuilder and load an Agent into the VM

ProcessBuilder (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ProcessBuilder.html) lets you run commands and produce output into a file.
PA-RCA’s Threadlist.java instead of parsing the input stream (https://github.com/opensearch-project/performance-analyzer-rca/blob/c020cc92151e526385d7d3899b6a4f900d7e7ba0/src/main/java/org/opensearch/performanceanalyzer/jvm/ThreadList.java#L324-L361) we will have to change it to parse this output from a file.
After attaching to the vm, we have to load a jar which does all of these things.

The current thread could sleep for a while until the jar has finished has created a log file.
We also need to have appropriate backoff and retry mechanisms setup.
We will also have to think about rolling log files to reclaim space.

It would look something like this.

cc'ing @khushbr for visibility.

Hey @kiranprakash154,
ProcessBuilder sounds like a good option.
I originally had something like this in mind (simplified):
       ...

ProcessBuilder pb = new ProcessBuilder("jcmd", pid, "Thread.print");
p = pb.start();
try (InputStream in = p.getInputStream()) {
            createMap(in);

       ...

which would replace current approach: https://github.com/opensearch-project/performance-analyzer-rca/blob/c020cc92151e526385d7d3899b6a4f900d7e7ba0/src/main/java/org/opensearch/performanceanalyzer/jvm/ThreadList.java#L191-L192
Process' output is by default piped to an InputStream object from which we can instantly read and keep the rest of parsing process the same. Did you suggest the file writing so we can delay the reading or for some other reason, also what kind of interface would this jar you mentioned use to access the JVM info once it's attached, do we rely on some specific implementation of JVM ?
I'm planning to do this soon and the answer above looks like a good plan.


moment().startOf('day') == moment.startOf('day').endOf('day')

Hey, this code didn't do what I expected because moment().startOf('day') == moment.startOf('day').endOf('day')
The work-around is to use var end = moment().endOf('day') which will fail at midnight.
  function makeTimesForInterval (numMins) {
    var times = [];
    var time = moment().startOf('day');
    var end = time.endOf('day');
    console.log(time);
    console.log(end);

    if (numMins <= 0) throw Error('Your killing me smalls');

    while (time.isBefore(end)) { // one day
      times.push({ display: time.format('h:mm a'), time: time});
      time.add(numMins, 'm');
    }
    console.log(times);
    return times;
  }

moment().startOf('day') == moment().startOf('day').endOf('day') is false and I suspect it would be if you pasted it into your console. Your code doesn't work because startOf and endOf are mutators. This is non-obvious and IMO quite bad, but it's the way Moment works. So:
var time = moment().startOf('day');
var end = time.endOf('day');

time and end aren't different times; they're same time of moment.startOf('day').endOf('day').
The more general issue of immutability in Moment has a long history, see e.g. #1754 and #390.

Yikes whatamess!  Thanks for the help.
moment().startOf('day') == moment().startOf('day').endOf('day')
false
moment().startOf('day').endOf('day')
Moment {_isAMomentObject: true, _isUTC: false, _pf: Object, _locale: Locale, _d: Thu Apr 02 2015 23:59:59 GMT+0700 (ICT)…}
moment().startOf('day')
Moment {_isAMomentObject: true, _isUTC: false, _pf: Object, _locale: Locale, _d: Thu Apr 02 2015 00:00:00 GMT+0700 (ICT)…}

How in the world do you expect this to work??!!
moment().startOf('day') == moment.startOf('day').endOf('day')
LOL
@MichaelJCole

@arled Why are you bothering me about a closed bug from 2015?  Stop criticizing and contribute.


how to config tessdata_best for my mrz project

Hello, I am stuck in the configuration of tessdata_best. By default, my tessaract ocr is using tessdata but I need tessdata_best for accuracy. Can you tell me how to configure tessdata_best in python?
Thanks and regards
FaranKhan.

You won't get better accuracy with tessdata_best. I suggest to use the Tesseract user forum for additional questions.


Added support for parsing classfile version 51 (JDK7). Fix #66

I'm surprised that this issue was discovered only now, because we were missing
support for parsing JDK7 classfile (!) - so not just JDK8 ones.
The fix was to simply extend the ClassfileParser to consider the additional
constants that may appear in the classfile's Constant Pool.  Because the
implementation of ClassfileParser was copied from scalac, we simply applied
here the same fix as in
scala/scala@e78896f#diff-400a2e6482bc824c3840c10ecc43e7b0R140.
We should definitely work on removing this duplication (I'd say it's here for
historical reasons), but doing so is out of the scope of this PR.

@jroper I confirm running mimaReportBinaryIssues on Play 2.4.x branch works with this commit.

@jsuereth @2m @ktoso If anyone of you guys has a time to review this, it'd be greatly appreciated (it's an easy one to review).

Cool! We're hot on your heels. Just bumped 2.12.x to Java 8 and the modules are next.

/cc @lrytz, @retronym FYI

Alright, I've cleaned up the test and this is ready to merge as soon as the PR validator is green again.

All reviewers, we'd like to get this merged asap, so that we can enable mima on our stable branch.

LGTM, code looks good and I did a sanity check on the akka repo as well. :+1:

@ktoso Thanks!


Soft keyboard doesn't appear on iPad when a mouse is connected

on iPadOS 13.4, if an USB mouse is connected, focusing on textfields don't bring up soft keyboards. Disconnect and tap again, soft keyboard appears.

Did you enable the software keyboard (and assistive touch) under the assistive touch accessibility menu?

Hello @xster
I used wireless mouse to tap in textfield running in ipad 15.3 OS version, with which the soft keyboard opened properly.
Can you check if the reported behavior still persists at your end ?


feat: Ofline Fullscreen Media Slides w/caching

Description
Would be nice to "preload" the deck with dynamic network content while you are online and be able to play the deck while offline.
Able to cache media and data to for use offline
Requirements

[ ] Offline Mode
[ ] Cache Media
[ ] Cache Text
[ ] Play fullscreen videos with content overlays
[ ] Display fullscreen images with content overlays
[ ] Content Overlay
[ ] Custom Gestures

Hi @jtkeyva, thanks for the feature request! Yup, it would be a nice feature to have, for sure. Do you have any ideas on how to implement it or how you see the implementation of it? As a workaround, obviously, you can add all the static content as assets to your app so that they will be bundled together with the slides.

hi @mkobuolys well i have not dug into your code so much quite yet but https://pub.dev/packages/advstory does a tremendous job. i see a full other use case for your package to be also a media player, but not sure what your goal or intent is for it.
basically you can create custom "content types" templates and for each slide simply choose a type and it will be formatted...similar to what you do. there is just a lot of overlap and similarity that to me might make sense to merge into a general presentation package.

@jtkeyva The package you provided is basically a page view that could be added to any app. Since it's a page view, it's possible to preload components in the background (basically render them) and show them whenever needed. However, flutter_deck is built in a different view. It's like any other web app, where each slide is a stand-alone page with a custom route. Thus, it's more tricky to preload or cache its content - do not say it's impossible, but much much more tricky.
So just looking at this from the architecture point of view, it's really not that similar as you could think.

got it thank you. i'll dig around a bit more to see how you've built it :)


Default named slot?

Is it possible to have a default named slot element if one is not provided?
Sudo example of what I'm trying to do (this obviously doesnt work)
cotton component
# drawer.html
<c-vars button>
    <button type="button">
        Open
    </button>
</c-vars>

        {{ button }}

{{slot}}

overriding default button
<c-drawer>
      <c-slot name="button">
            <button>
               This overrides the default named slot
            </button>
        </c-slot>

panel content

</c-drawer>

using default button
<c-drawer>

panel content

</c-drawer>

@randallmlough for now no so you'll have to manage it like:
{% if button %}
  {{ button }}
{% else %}
  <button type="button">
    Open
  </button>
{% endif %}

I've considered a cleaner option, this idea would be a major breaking change:

<c-mycomp>
  <template slot="button">..</template>
</c-mycomp>

<c-slot name="button"> I'm default </c-slot>

Essentially flipping the current usage of <c-slot ... > to be the placeholder in the component definition as opposed to the wrapping element defining the slot content. This is inspired by Vue and it seems more harmonious with native html + <template></template>

That's okay! I actually tried doing your example before posting, but I must have done something silly in my attempt because it wasnt working so I figured I couldnt access the name of the slot to be used in logic flows. but your example is perfectly fine with me and is doing what I want it to do.
Thanks!


tor-browser: use system install & simplify wrapper

Description of changes
The tor-browser package uses a complex wrapper around the binary that provides some isolation.
I want to start a discussion whether this really adds any benefit.
Some downsides of the wrapper:

it creates and uses a default profile; other profiles cannot be used (see #243605)
it adds quite a bit of complexity
the wrapper differs a lot from the simple one in mullvad-browser

My suggestion would be to use a system installation (by creating a system-install besides the binary) with a simple makeWrapper for the tor-browser package, which also aligns it even more with the mullvad-browser package. If a user really requires more isolation than the default Tor Browser installation, they should probably create their own wrapper. That's just my opinion, though. I'm open to other suggestions.
The Tor Browser directory changes to ~/.tor project/firefox, which is a breaking change (although most Tor Browser users probably don't mind losing their state).
Fixes #91925, fixes #272670
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I just noticed that 23.11 feature freeze is in 3 days, so not sure if we can still get this ready in time.
@panicgh, what are your thoughts on these changes?

Added some finishing touches & personally I'm happy with these changes.
This PR is based on the changes on https://github.com/NixOS/nixpkgs/pull/256934 and should only be merged afterwards.
The new commits in this PR are: 1076d32a31c9cf22ca9abdfd3d5808708d2f2de1 b6d00b155102ad731d7c6ff32cb75e57f38f11c8

The Tor Browser directory changes to ~/.tor project/firefox

So becomes less XDG-Base-Directory-compliant? :frowning_face:

So becomes less XDG-Base-Directory-compliant? ☹

I haven't found a way to change this directory, except via a build flag.
But since this is a binary distribution, I can't change that unfortunately.

The current wrapper seems to manage it somehow. I'm not an expert on how TBB works or all of the tradeoffs you're looking at; I just don't like seeing this thing that I care about regress in order to fix things of dubious relevance to me.

@panicgh your thoughts?

I don't feel competent enough to judge for or against this proposal.

The simplified wrapper fixes some issues like #272670 / #272972.
Another thing I noticed is that it enables support for the compact title bar (on Gnome at least).

One thing I just noticed, that under wayland there is no icon in the kde taskbar.

One thing I just noticed, that under wayland there is no icon in the kde taskbar.

I fixed the desktop file. Seems that on Wayland icon are always derived from desktop fiels:
https://nicolasfella.de/posts/fixing-wayland-taskbar-icons/
But I haven't tested this yet.

@SuperSandro2000
So, is the ~/.local/share/tor-browser/TorBrowser/Data/Browser/ -> ~/.tor project/firefox/ change fine like this?
Should we add a release notes entry?
Any chance we can even backport this, since it also fixes some issues (#91925, #272670)?

So, is the ~/.local/share/tor-browser/TorBrowser/Data/Browser/ -> ~/.tor project/firefox/ change fine like this?
Should we add a release notes entry?

I didn't test it indepth but it seemed to work for me. 😅 I don't know if we break tor logins (forget how they are called) or custom settings

Could we backport this one? This change vastly improves the UX for people who use input methods.

This should have been backported to 23.11 already.

This should have been backported to 23.11 already.

Oops! Thanks for reminding.


cargo config subcommand

Describe the problem you are trying to solve

According to the previous design document, it seems that the delete, set and edit subcommands are currently missing.
I want to try to complete these sub-commands. Please tell me what else needs to be solved?
#9301
https://github.com/rust-lang/cargo/pull/9302#issuecomment-807487505
I want to complete the following three commands step by step.

[ ] Add cargo config delete
[ ] Add cargo config set
[ ] Add cargo config edit

If I want to further improve cargo config, what else can I help? I would be happy to participate in the cargo project.

Cargo currently doesn't have TOML-editing support.  @epage has been working on toml-edit, so maybe they can let you know if there is anything you can help with working on that.

https://github.com/ordian/toml_edit/issues/133 is the tracking issue for getting feature parity for cargo.
We might also need

https://github.com/ordian/toml_edit/issues/128
https://github.com/ordian/toml_edit/issues/192
https://github.com/ordian/toml_edit/issues/205


CocoaPods could not find compatible versions for pod "GoogleDataTransport"

[!] CocoaPods could not find compatible versions for pod “GoogleDataTransport”: In Podfile: firebase_messaging (from .symlinks/plugins/firebase_messaging/ios) was resolved to 15.1.3, which depends on Firebase/Messaging (= 11.2.0) was resolved to 11.2.0, which depends on FirebaseMessaging (> 11.2.0) was resolved to 11.2.0, which depends on GoogleDataTransport (> 10.0)
I need your help please. I'm on this issue for 7 days.
I'm using the latest version of xcode (v16)

@KalybosPro
Please check out these two issues! They are not related to Flutter.
https://github.com/googlesamples/mlkit/issues/877
https://issuetracker.google.com/issues/362452861

This is not a flutter issue. See https://stackoverflow.com/questions/78958362/cocoapods-could-not-find-compatible-versions-for-pod-googledatatransport to see if any of the links helps.
See also https://github.com/flutter/flutter/issues/156367#issuecomment-2398265939
Closing from here as this is not a flutter issue.
Thank you

Ok thanks.


prolonging

can you make it so were able to stay on the ground after a dive slide as long as were still holding ctrl?

doesnt work :(


Host MFE is showing others duplicated MFEs in Client Side

Describe the bug
In our production project, we are experiencing some very strange errors related to the extra loading of MFEs by the MFE Host. To provide context, we basically have our MFE Composer that communicates with MFE Mid, which in turn communicates with the other MFEs (header, content, footer). We have noticed that at certain moments the MFE Content and MFE Footer are appearing duplicated, and this behavior occurs on the client side but the project configured to use server side.
https://github.com/user-attachments/assets/6b083e87-138b-428b-b2ae-61554dcf16c5
We have another project that follows the same architecture and this errors also appears and some MFEs sometimes they are rendered client side, sometimes server side.
Repos:

Composer: https://github.com/MaykonMorais/composer
Mid MFE: https://github.com/MaykonMorais/mid-mfes
MFE Header: https://github.com/MaykonMorais/mfe-header
MFE Content: https://github.com/MaykonMorais/mfe-content
MFE Footer: https://github.com/MaykonMorais/default-mfe

Reproduction
https://composer-psi.vercel.app
Used Package Manager
yarn
System Info
System:
    OS: macOS 14.6.1
    CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
    Memory: 173.57 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.11.1 - ~/.nvm/versions/node/v20.11.1/bin/node
    Yarn: 1.22.22 - ~/.nvm/versions/node/v20.11.1/bin/yarn
    npm: 10.2.4 - ~/.nvm/versions/node/v20.11.1/bin/npm
  Browsers:
    Chrome: 128.0.6613.119
    Edge: 128.0.2739.63
    Safari: 17.6

Validations

[X] Read the docs.
[X] Read the common issues list.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Module federation issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

It means multiple version of react are loading.  Ensure pages have a get initial props and see if that makes it any better. Ensure that all remotes use import from only and not loadRemote

Hi @ScriptedAlchemy , thanks for the quick response!
How can I avoid multiples version of react? Using shared property? Could you show me an example?

Try copying one of my examples and making minimal changes to it.  Since some do not have that

Hi @ScriptedAlchemy
We notice that some MFEs are returning this error message on the server side:
content/content offline TypeError: n.init is not a function     at e7.get (remoteEntry.js:16:577)     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)     at async tx.loadRemote (remoteEntry.js:44:1547)
When this error happen the MFE is only rendered on the client side. Have you experience this error before? What could be causing this?

Yeah if it's a non ssr remote then you need  to prevent hydration errors

Got it! We solved the previous error and it was related to how we loaded emotion library. Now we see another error in our logs
footer/Footer Script execution error: TypeError [ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING]: A dynamic import callback was not specified.
Is there something related about  ESM Modules in Next.js? How can we solve this?

We found a solution removing the mid-mfe from our architecture. Now the host communicates directly with the MFES.


Migration to kubebuilder v4

Description

How Has This Been Tested?

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

Hi, the purpose of this PR is to migrate the manifests to kubebuilder v4 or to enable CI?

Hi, the purpose of this PR is to migrate the manifests to kubebuilder v4 or to enable CI?

This is to migrate the whole project to v4, not just the manifests.

@spolti Please, take another look.

/lgtm


Pin version of cargo-leptos

For my projects, I would like to have cargo-leptos behave more like a regular Rust dependency. This means

Specify its version in Cargo.toml, or a similar file.
Automatically have it installed, and accessible under some command. It is ok if the command ends up being a slightly longer cargo xtask leptos --help , or cargo leptos.rs --help

Number one would let me guarantee that every team member uses the same version of cargo-leptos, instead of "works on my machine". It also guarantees that the CI uses the correct version of cargo-leptos.
Number two means that onboarding new contributors is as frictionless as possible. Repeatedly having to tell people to install cargo-leptos (or trunk), and to keep it up-to-date, is a pain point for me.
And finally, if done well, I could juggle different projects that depend on different versions of cargo-leptos. Usually this happens when one project hasn't updated its dependencies just yet.

I understand this is not viable for anyone but I'd suggest giving nix a try for this. We use nix to pin and provide all dependencies for everyone and it works for all kinds of dependencies, not only rust/cargo-related.

I understand this is not viable for everyone but I'd suggest giving nix a try for this. We use nix to pin and provide all dependencies for everyone and it works for all kinds of dependencies, not only rust/cargo-related.

That would be an amazing solution, if there were a straightforward option for Windows. As me and a lot of my collaborators are in the field of computer graphics, having Windows support is the expectation.
Yes, it's possible with the WSL, but having tried that: It's a significant hurdle. Significant enough to make manual installation attractive again.

It's not a Rust library crate, it's just an ordinary binary CLI tool, so I'm not sure there's a way to do what you're asking from cargo-leptos's end.

I'm suggesting using a cargo script named leptos.rs (or the xtask trick) with code along the lines of
#!/usr/bin/env cargo

//! ```cargo
//! [dependencies]
//! cargo-leptos = { version = "0.2.21" }
//! clap = "4.5.21"
//! tokio = "1.41.1"
//! ```

use cargo_leptos::{config::Cli, ext::anyhow::Result, run};
use clap::Parser;
use std::env;

#[tokio::main]
async fn main() -> Result<()> {
    let args = Cli::parse_from(&env::args().collect());
    run(args).await
}

// Ideally this setup would require even less code (e.g. by having cargo-leptos expose a helper function just for this)

Then I could drop that script into any of my projects and invoke it.
It does re-download and re-compile cargo-leptos for each project, but that is a very worthwhile trade-off in my view.

Ultimately this seems to concern the same issue described in https://github.com/leptos-rs/leptos/pull/3186: Minor versions of wasm-bindgen are incompatible, so two people working on the same project with different versions of cargo-leptos will consistently run into problems.
A solution was also suggested there by @DanielleHuisman

I looked into the cargo-leptos pinning issue a bit more. The only reason the version mismatch exists is because cargo-leptos is compiled with wasm-bindgen-cli-support.
I was using Trunk and didn't experience any issues. Trunk is not compiled with wasm-bindgen-cli, but instead finds the appropriate version to use from Trunk.toml/Cargo.lock/Cargo.toml. It then downloads the right binary to a cache and calls the binary to build the bindings.
Using a similar approach in cargo-leptos would solve the pinning issue. If this sounds like an interesting solution, I'd be happy to make a PR for cargo-leptos.

I figured I'd put my money where my mouth is, and demonstrate that it's absolutely doable with the upcoming cargo-script.
Here is the trunk vanilla demo, tweaked to run with cargo-script.
drunk-demo.zip
To do that, I did the following

I turned Trunk into a library.
I wrote the script below
I started it with cargo +nightly -Zscript trunk.rs serve --open
It works.

Notably, at no point did I have to do cargo install trunk. Furthermore, I can actually pin the correct version of Trunk (not done in this example).
The cargo-leptos stuff should work analogously.
#!/usr/bin/env cargo +nightly -Zscript
---cargo
[package]
edition = "2024"
[dependencies]
trunk = { git = "https://github.com/stefnotch/trunk" }
tokio = { version = "1.42.0" }
---

/// Run with
/// cargo +nightly -Zscript trunk.rs serve --open
///
/// Eventually we will be able to do
/// cargo trunk.rs serve --open
///
/// And in an even nicer future, we can do
/// ./trunk.rs serve --open
#[tokio::main]
async fn main() {
    let a = trunk::run_cli().await;
    println!("{:?}", a);
}

(P.S. Currently Trunk needs extra dependencies on most Windows systems, thanks to OpenSSL and RustTLS demanding some extra dependencies outside of cargo.)

In case anyone finds this interesting: I opened an equivalent issue on the Trunk repository.
https://github.com/trunk-rs/trunk/issues/924


Add discussing-pre-25-0-bitcoin-core-vulnerability-disclosures review to brink/the-bitcoin-development-podcast

This PR adds discussing-pre-25-0-bitcoin-core-vulnerability-disclosures transcript review to the brink/the-bitcoin-development-podcast directory.

@110CodingP cool, thanks for doing this


Add activity_pattern_arrangement

It's a function to visualize the relationships among a set of experimental conditions (activity patterns) as captured by an RDM by arranging the conditions with MDS, isomap, or t-SNE

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 4

Complexity increasing per file
==============================
- pyrsa/vis/activity_pattern_arrangement.py  8

See the complete overview on Codacy


Recognize property with name defined by constant in Object.defineProperty

Search Terms
defineProperty
https://github.com/microsoft/TypeScript/issues/28694 is touching same domain
Suggestion
(Note: I'm using TS in JS files, have basically no knowledge about "pure" TS)
Compiler should recognize prototype property added using Object.defineProperty with name defined not only by string constant but also a string variable, e.g.:
const propName = 'myProp';
Object.defineProperty(Test.prototype, propName, { get: () => 'myVal' });

Playground Link
(included also desired behavior for decorators, but as it's experimental feature, you won't propably even consider it)
I understand it's not always possible to make sure variable with property name is not reassigned during runtime, but it seems that TS compiler can handle detection of "static" variables that have known value during compilation.
Use Cases
This way we could define class properties using "single source" and not duplicating code. For example a class providing access to key-value pairs object in a dotted notation instead of string values for keys, whilst the object can be used for another purpose.
Examples
// i can use these somewhere else, e.g. as a type
export const defaults = {
    one: 1,
    two: 2
}

// properties added in defineProperty
export class Test {
    // i don't want to repeat myself
    one = defaults.one;

    /** @param {keyof defaults} key */
    get(key) {
        return defaults[key];
    }
}
Object.keys(defaults).forEach((key) =>
    Object.defineProperty(Test.prototype, key, { get: () => defaults[key] })
);

const inst = new Test();
inst.one;   // who would not like this?
inst.get('one');    // instead of this

Playground Link
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

How much ugly is this workaround :)?
type extraProps = {
    DecoratedProp: number;
    ExtendedProp: string;
}

function decorator(target: Function) {
    target.prototype.DecoratedProp = 2;
}

@decorator
class Test {
    Prop: number;
    constructor() {
        this.Prop = 1;
    }
}

Object.defineProperty(Test.prototype, 'ExtendedProp', { writable: true });

const DecoratedTest = Test as ((new () => Test & extraProps) & typeof Test);

const inst = new DecoratedTest();
console.log(inst.DecoratedProp);    // outputs "2"
inst.ExtendedProp = 'test';
console.log(inst.ExtendedProp);    // outputs "test"

Playground Link
EDIT: Added a more detailed example with static properties and generics: Playground Link
Is there a way how to make generics work with a single parameter?
JavaScript version: Playground Link (had to remove decorator as it's not working even tho decorator support was enabled)


Add ability to flatten arrays

Issue Description
After some investigation we lack the ability to flatten arrays. This is necessary if we want to do interesting operations such as the equivalent of reshape or view.
Version Information
Master, lastest everything, etc.
Contributing
If @raver119 or someone else can show me the relevant code, I can tackle this.

Nd4j.toFlattened() isn't enough?

Quite possibly, does that match the underlying functionality in the layers mentioned in the links above? If so, I can probably just write a DL4J vertex for this.

In practice, flattening means making a row vector.
However – there are multiple ways to do this: notably C order or F order. That's why we have reshape with order and flatten with order operations (i.e., .toFlattened(char), .reshape(char, int[])).
I would imagine that Tensorflow probably decides on a single order – most likely C – for all operations like this. A DL4J Vertex for this should be straightforward – though keep in mind the performance impact of flattening a C order array to F order and vice versa.

Closing this - seems like we have all the functionality we need


Filtered middleware never run

Hi there,
I'm trying to replace Express with Polka in a small project, and I'm facing an issue where a "filtered" middleware is never run :
const polka = require('polka');
const serveStatic = require('serve-static');

/*
 *
 */

const app = polka();

// Always run, as expected
app.use((req, res, next) => {
  console.log(req.method, req.url);
  next();
});

// Never run, but I expect it to be when navigating to /admin/**/*
app.use('/admin', (req, res, next) => {
  console.log('  @admin!');
  next();
});

// Always run, as expected
app.use(serveStatic(__dirname + '/_static'));

/*
 *
 */

app.listen(4444, () => console.log('Listening on port 4444...'));

It's probably a very silly error but I don't see what I'm doing wrong here.

Hey~! So (current) Polka behaves differently than Express in that the "global middleware" (eg .use(foo)) will always run before anything else, disregarding the order that the application was defined. This has been changed in next version Polka, which went out this weekend in preparation for the 1.0.
As an example, this may be happening in your app:
polka()
  .use((req, res, next) => {
    console.log('1st: ', req.method, req.url);
    next();
  })
  .use('/admin', (req, res, next) => {
    console.log('I will never run');
    next();
  })
  .use(serveStatic(__dirname + '/_static')) // 2nd
  .use((req, res, next) => {
    console.log('3rd – nothing will make it beyond this point');
    res.end('goodbye');
  })

So a curl localhost:4444/admin/foo will execute:
~> 1st: GET /admin/foo
~> (serveStatic)
~> 3rd – nothing will make it beyond this point

As you can tell, this turned out to be more of a problem for express ex-pats than I anticipated, hence the (breaking) change for Polka 1.0 😄

The relevant documentation for this current behavior is here: https://github.com/lukeed/polka#middleware-sequence
Although, I wouldn't get used to it 😉

Thanks for your quick answer!
Though I still don't understand why it's not working. In your example, navigating to /{APP}/users/123 will trigger the users "filtered" middleware that was registered for /users routes, right? So why navigating to /admin/foo doesn't call the /admin middleware in my case too? Both codes are similar yet they behave differently and I don't understand why x)
Good thing it's going to change in 1.0! :)

No problem!
It does/will trigger. What I was poorly illustrating is that there is likely some other global middleware that is running before the /admin group gets executed. And you never see it execute because that global middleware is terminating the response.
I used the example above to show that the last two .use() blocks run before /admin, even though they're defined much later in the application.
Maybe I can help you track this down if you showed me more of the code and/or told me what response you're getting for /admin/foo?

Ok I get it now! No matter the ordrer you register your middlewares, given that use(fn) register global middlewares fn will always run before any filtered middleware like use('/admin', fn).
Hence my /admin middleware not getting executed because serveStatic() probably ends the response once the target file is served. The only case where it doesn't end the response and I see the   @admin log is if the URL targets a file that doesn't exist, then serveStatic() calls next() and this time the filtered middleware is run.
How would you solve this use case with the current version 0.5.2? Is it even possible?
Also, I'm curious : will polkadot also be affected by this breaking change? (I haven't tried it yet so maybe it already behaves totally differently and my question is irrelevant, but asking just in case.)

I would fix it by moving serve-static to its own path. Most of the time, you don't need it running globally (it's slow and induces a significant performance hit too).
Maybe something like this:
polka()
  .use('/assets' serveStatic)
  .use('/admin', ...)

Polkadot doesn't have a router or middleware runner built in, so you would/could arrange it however you'd like! It's not affected by anything in Polka, no :)
There is a polka@next release out btw. It has the ordering changes so it might feel more comfortable/familiar to you

Ok. Thank you!


plot loss l and loss R in the same graph in tensorboard

Will have a look as a first issue

Not particularly nicely solved, as l is treated as step, but tensorboard does not allow for anything else afaik.


chore: cleanup use of simp singlePass option

Of the 18 uses of singlePass, in 3 cases we can just use rw, in 4 cases it isn't needed at all.
In the other 11 cases we are always use it as simp (config := {singlePass := true}) only [X] (i.e. with just a single simp lemma), and that simp call would loop forever (usually failing with a maxRecDepth error, sometimes with heartbeats). I've left these as is.
There's also one case where there was a missing only.

bors merge


rsync command for downloading raw data does not work

Hi,
I tried to use the command
rsync -rlpt -v -z --delete --port=33444 \
rsync.rcsb.org::biounit/coordinates/divided/ ./data/DIPS/raw/pdb

to download the raw data, following the README.md. However, I encountered the error below:
@ERROR: Unknown module 'biounit'
rsync error: error starting client-server protocol (code 5) at main.c(1675) [Receiver=3.1.3]

how could I solve this?
Thanks a lot in advance for any help or hint!

rsync -rlpt -v -z --delete --port=33444
rsync.rcsb.org::ftp_data/biounit/coordinates/divided/ ./DIPS/raw/pdb

overshiki
HI，it changed file path, try this please.

rsync -rlpt -v -z --delete --port=33444
rsync.rcsb.org::ftp_data/biounit/coordinates/divided/ ./DIPS/raw/pdb
https://github.com/octavian-ganea/equidock_public

Hi @zhenpingli
Cool, thanks! This new link indeed works!


feat(jenkins): add DSL for the workflow-e2e-pr job

This job, as mentioned in job description, builds and pushes the
Docker image for workflow-e2e, kicking off the e2e test job on success.

Thanks for the contribution! Please ensure your commits follow our style guide. This code will be tested once a Deis maintainer reviews it.
Your Pull Request can earn you credit at DigitalOcean! See http://docs.deis.io/en/latest/contributing/hacking/#digitalocean-credit for details.


nixos/switch-to-configuration: Fix backslashes in unit names

systemd needs this so special characters (like the ones in wireguard
units that appear because they are part of base64) can be escaped using
the \x syntax.
Root of the issue is that glob() handles the backslash internally
which is obviously not what we want here.
Also add a test case and fix some perlcritic issues in the subroutine.

Motivation for this change
Sorry for introducing the bug, this closes #160445
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg test switchTest
I'm going to merge this rather soon because the unstable channel is currently blocked and we might get this in before it advances again :)


Leader screen not showing when having Extended Diplomacy Ribbon enabled

Describe the bug
Meeting a civ for the first time, or open the leader screen by clicking on another leader's city, won't show the leader screen. Instead, all UI elements are gone and only the map is visible.
To Reproduce
Steps to reproduce the behavior:
Use CQUI and Extended Diplomancy Ribbon, click an AI's city.
Expected behavior
The leader screen should pop up.
General informations

OS: Windows 10
Expansion R+F and GS
Mods:

Better Deal Window
Better Loading Screen
Better Report Screen
CQUI
Environment Skin: Sid Meier's Civilization
Extended Diplomacy Ribbon
Great Works Viewer
Happiness and Growth Indicator
Leugi's Unique District Icons
More Lenses
Radial Measuring Tool
Real Era Tracker
Removable Districts
Starting Scout
Vegetation Variety

Disabling Enhanced Diplomacy Ribbons fixes the problem

See https://github.com/civfanatics/CQUI_Community-Edition/issues/17#issuecomment-639638180
Look through the other comments in that thread. I think this is a duplicate issue. Also note that generally speaking compatibility with other mods may not be always maintained, either for lack of time or because it might break things on CQUI's end.

Duplicate of #17

Ok, I'm sorry. I saw the other issue, but it seemed to be another problem because my ribbon worked at least a bit.

@JPAhnen No worries. The fix I did for that issue should also fix your issue. So if you have time it would be helpful if you followed the instruction in that comment and tried it out. After you try it out you can leave a comment and let us know how it worked out.


Update log-conf to support choreo analytics

Purpose
$subject
Related to https://github.com/wso2/apk/issues/1127

Codecov Report
Patch coverage has no change and project coverage change: +29.25 :tada:

Comparison is base (4818e35) 32.53% compared to head (e39c272) 61.78%.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1227       +/-   ##
===========================================
+ Coverage   32.53%   61.78%   +29.25%
===========================================
  Files         187       24      -163
  Lines       21844     1947    -19897
  Branches     7078     1055     -6023
===========================================
- Hits         7107     1203     -5904
+ Misses      14612      744    -13868
+ Partials      125        0      -125

Flag
Coverage Δ

adapter
?

admin-domain-service
54.61% <ø> (ø)

backoffice-domain-service
?

devportal-domain-service
?

idp-domain-service
80.10% <ø> (ø)

runtime-domain-service
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 163 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


updateauth action from contract

I am unable to generate an authorization from a JSON, so that a contract can send an updateauth  action. Building an authorization requires eosio::chain::public_key_type, which i can't include as eosiocpp wont compile 'float.h'. Any way around this?

You should include public_key_type defined in contracts/eosiolib/types.h and it doesn't require float.h

There is no public_key_type defined in types.h. Only public_key struct. The chain version links to fc::crypto::public_key which has methods for converting a base58 key string to public_key type (data[34])

Anything inside libraries/chain contains dependencies that might not be supported by Web Assembly. I don't think it's safe to include those files.
If you pass the public key to your user-generated action (not the inline action), the abi serializer will automatically convert your public key string to public key type (and I guess this is what usually most of the people do).


Test deployment locally with tmt (from packit branch)

To be able to access secrets and test ansible scripts using github secrets in the testing farm github action I need to create a PR from the packit repo itself (and not from a fork).
This is the reason why the PR is duplicated at the moment.
Should fix #562 #563 #564 #565

check

recheck

+1,135 −7

@majamassarini I meant just changing the branch protection rules to require tests check to be passing

as for the Zuul deployment-tests, can we remove them right now or in a follow-up PR? We should then also configure the new check to be required to pass for merging (in the repo settings).

I have disabled deployment test from zuul. Regarding the required check I thought @lachmanfrantisek prefers not to use the github testing farm integration, but for me it is ok if we want to enable it.

Yes, it is preferred. Though having no (red) CI right now is IMO bit worse, and you have the GH Action ready :shrug: flakey > nothing IMO


fix fix scale of decimalv2 to string (#35222)

Proposed changes
Pick #35222
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Lab 1 - Fibonacci

Fixes #24
Changes proposed in this PR:

Add 01_fib/main.go for printing first 7 digits of Fibonacci series extending to negatives as well
Add 01_fib/main_test.go unit tests the implementation of Fibonacci series in 01_fib/main.go

Codecov Report

Merging #19 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #19   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      2    +1
  Lines           2     17   +15
=====================================
+ Hits            2     17   +15

Impacted Files
Coverage Δ

01_fib/main.go
100% <100%> (ø)

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 f8055b5...03a054b. Read the comment docs.

Click Update branch and locally git pull origin Lab_1 before adding new commits.
Move files to folder 01_fib/mohankrishna

@juliaogris All done! Please review.


stox

https://tools.ietf.org/wg/stox/
Will Xmpp Texting ftw play well with SIP SIMPLE Texting?

I'm not familiar with stox, I'll have to read up.


_active_tasks API should list any replication errors

On iOS we show if the replicator encountered a 401 error, so we know that we need to login. Android does not expose that information. Here's the iOS code for reference:
https://github.com/couchbase/couchbase-lite-ios/blob/master/Source/CBL_Replicator.m#L216

@tleyden
I am running couchbae-lite-android 1.2.0, when I send a push replication to /_replicate with an expired session, I got the replication_id,such as
{"session_id":"repl001"}

, and when I call _active_tasks I don't receive any error info,such as
[{"source":"cblite","target":"http:\/\/<IP_ADDRESS>:4984\/sgdb\/","continuous":true,"status":"Idle","task":"repl001","type":"Replication","x_active_requests":[]}]

I think I should get error info .


[FEATURE REQ] Publish a migration guide for migrating an application to use passwordless connections with SQL Database

Context
The driver of SQL Database has already supported Azure AD authentication. Documentation introducing how to remove passwords from applications and transform them into passwordless connections should be published to help developers with migration.
There's a template worked out by Alex can be found here:

https://github.com/MicrosoftDocs/azure-docs-pr/pull/203348#issuecomment-1205727432
https://github.com/MicrosoftDocs/azure-docs-pr/pull/203348#issuecomment-1203381358

Goal
Publish migration documentation after the feature is enabled. The doc should use contextual tabs to distinguish Java and Spring code and configurations.

Closed in https://github.com/MicrosoftDocs/azure-dev-docs-pr/pull/3590.


Potential problems

[x] This code is constantly performing a look up for the same pair at key 'libraryfolders'. I would suggest getting libFolder["libraryfolders"] once and storing it as a KeyValue& before entering the loop
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L249
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L251

[x] This sounds like it should be handled as an error, rather than sending in the whole kv.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L262

[x] The lengths of these strings are already known from the earlier parse.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L269
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L270

[x] The aforementioned string lengths can be accessed by changing this vector to hold type kvString_t.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L245

[x] The length passed to this should be MAX_PATH, not folder's string length.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L286
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L287

[x] Is this a memory leak? I don't see a call to delete this memory.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L309

This sounds like it should be handled as an error, rather than sending in the whole kv.

Well, I had a hard time deciphering what was asked of me when I removed Source's KeyValues. according to my backtracing, it just shoved the whole key value in there.  Not to mention, that code is on the condition someone is on the old libraryfolders structure, which is very slim in the first place. I don't even remember the old format, let alone how to account for it.

There's not a really great way to fire off an error in here. You could throw an exception, fire an assert, add in error codes, or just use a continue. Passing in the whole kv is most likely to just cause you future problems down the line :P

Is this a memory leak? I don't see a call to delete this memory.

Nope! This is what's being stored in the Game struct for the games vector.
libFolders falls out of scope, these char arrays are deleted by:
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/396c4f72581f31e959156656a8ca9597a8da3c9c/FilesystemSearchProvider.h#L430

[ ] I would suggest against modifying the result of a call to KeyValue::Value, you're more likely to do yourself harm than good.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/8b2710a9db37b5362bc79ff3e6e98eb20ebcdd4f/FilesystemSearchProvider.h#L279

[ ] This could lead to a potential overrun later if this string is not null terminated.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/8b2710a9db37b5362bc79ff3e6e98eb20ebcdd4f/FilesystemSearchProvider.h#L311

[ ] You may want to use a strncpy here for safety fun.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/8b2710a9db37b5362bc79ff3e6e98eb20ebcdd4f/FilesystemSearchProvider.h#L406

[ ] The call to std::remove is just calling the deconstructor on Game, not freeing library. I would suggest iterating over games and freeing the strings rather than adding a deconstructor though--just easier.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/8b2710a9db37b5362bc79ff3e6e98eb20ebcdd4f/FilesystemSearchProvider.h#L444

[ ] If you implement string literal versions of these macros, you can use string literal concatenation to remove some extra unnecessary calls to S_HAppendSlash.
https://github.com/Trico-Everfire/SteamAppPathProvider/blob/8b2710a9db37b5362bc79ff3e6e98eb20ebcdd4f/FilesystemSearchProvider.h#L33

I would suggest against modifying the result of a call to KeyValue::Value, you're more likely to do yourself harm than good.

So... just memcpy?

Sure, memcpy to a buf, strncpy, snprintf, etc. nothing specific required, just dont modify that data. I should probably ensure that string is const.
Post solidify, that memory is all lined up in one huge array, so you're overwriting another string (which is the only reason it's not outright crashing).

This could lead to a potential overrun later if this string is not null terminated.

What do you mean? is pathString not null terminated?

If you implement string literal versions of these macros, you can use string literal concatenation to remove some extra unnecessary calls to S_HAppendSlash.

What do you mean by this? how do I?

This could lead to a potential overrun later if this string is not null terminated.

What do you mean? is pathString not null terminated?

When you memcpy a string into a buffer, and the string is longer than the buffer, the string is truncated but not null terminated.
This is why there's strncpy, but it's a bit of a flawed function itself, as it fills the whole array past the string with zeros. People will often use snprintf or implement their own (like strlcpy) to do what strncpy should do.
Or, save yourself some effort and just null terminate it after the memcpy.

If you implement string literal versions of these macros, you can use string literal concatenation to remove some extra unnecessary calls to S_HAppendSlash.

What do you mean by this? how do I?

If you put strings next to each other like
"Hello" "_" "World"

the compiler will resolve it out like this into one string
"Hello_World"

You can use this to save yourself on a few extra function calls and move some operations to be done at compile time

Seen as resolved.


Upgrade C++ projects from earlier versions of Visual Studio (does not work)

This document does not appear true with my experience. I am trying to run a .dsw/.dsp (vc6 format) project on VS2022. A) If I try and open the project from the home page, .dsp/.dsw are not file types I can search for / open. B) According to this page, when I instead try opening the project file from the file explorer it opens the .dsp file but does not offer to upgrade the project to the current schema.

@zfuller5
Visual C++ 6.0 is now nearly 24 years old and hasn't had an update since 2004. It's been out of extended support since 2008. We don't document anything about it anymore. Officially, we don't support C++ project upgrades from versions older than Visual Studio 2010.
That said, I have it on good authority that upgrades should still work for *.vcproj files from Visual Studio versions before 2010. However, I don't think earlier project files like .dsp or .dsw files have been supported for some time. I haven't tried this myself, but I've heard that It's possible to upgrade your VC6 project if you do it in two steps. You'll need a copy of Visual Studio 2010 (or maybe even 2012), which I believe can upgrade VC6 projects to *.sln and *.vcxproj files. First, you'd upgrade your VC6 project to VS2010 (or 2012). Then you should be able to upgrade the upgraded project in Visual Studio 2022. You'll almost certainly need to make both source and library file changes in your new project to get the code to compile and build in VS2022.  There have been changes to header file names, function signatures, DLLs, and library files in the intervening decades that you'll have to fix. I can't assure you that this process will work, but I figure it's worth a try. The other way to deal with the issue is to copy just the source files into a brand-new project you create in VS2022. You'll have the same kinds of source issues to fix, but who knows, it might be less work overall.
Officially, we neither document nor support this process from VC6, so I'm closing your issue as not requiring a doc change. Best of luck with your upgrade.


manifest_normalise.py script break

manifest_normalise.py breaks on macmini.
works fine on es2 and yujings laptop.
maybe it's an issue with macmini rather than anything else.
if it is workign fine on es2 and laptops then we will be ok
terminal output:
Last login: Thu Aug  6 11:50:47 on ttys002
macminis-mini:~ macmini$ manifest_normalise.py -h
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 8:
Normalises manifests so that they adhere to ifiscripts manifest.
This includes removing lines with hashes.
Removing lines with just whitespace.
Creating a new sidecar called _modified_manifest.md5
The goal is to allow batchaccession to run on the new manifests.
: command not found
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 9: import: command not found
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 10: import: command not found
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 11: import: command not found
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 12: import: command not found
/Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 14: syntax error near unexpected token format='%(asctime)s - %(message)s',' /Users/macmini/ifigit/ifiscripts/manifest_normalise.py: line 14: logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.DEBUG)'
macminis-mini:~ macmini$

Hey - so this was fixed locally on es2 but a problem happened when trying to push to github - so this fix never made its way up there. working on the fix now.

I was able to push the fixes i made a few days ago so an update.py will sort this out now hopefully


clear the current stage

Hi,
I am trying to clear the stage before loading a second protein, I used stage.removeAllComponents();. It seems to work for most representation but not for the cylinder used in DNA cartoon representation. Is that normal, should I use another function to reset/clear the current state of the viewer ?
Thanks in advance

sounds like a bug, I will have a look

Can you provide an example?
I tried http://nglviewer.org/ts2/?load=rcsb://1d66 and issued stage.removeAllComponents() in the console which remoes everything.

I was able to reproduce it in code pen, with two buttons. the first one clear and load a file with dna, the second one clear and load a protein. You should see that the cylinder are still there.
https://codepen.io/coredA/pen/XZQoqR
thanks !

You are using an old version of ngl, use e.g. https://cdn.rawgit.com/arose/ngl/v2.0.0-dev.25/dist/ngl.js
it works with the latest https://codepen.io/arose/pen/xYemQY

Thanks for pointing this to me ! it easily fixed the problem !
I used the code-pen template you provided and it was pointing to the old version! I will try to be more careful next time.
thanks again

And I should update the master branch and the template link...