RFC: increasing diversity of our contributor pool

As some of you know, part of our funding proposal to CZI was for funds to increase participation of underrepresented groups at our code sprints (and in our contributor pool more generally).  Due to the global SARS-CoV-2 pandemic, the fall 2020 code sprint in Seattle is postponed, and it is unclear whether a spring 2021 sprint will be possible / whether people will feel comfortable enough with air travel to make the journey.  This issue is for brainstorming ways to recruit and retain a diverse pool of contributors, without relying on (subsidies to attend) in-person code sprints.  @britta-wstnr and I have been chatting a bit about this; here is a summary of our ideas so far:

Prominent public statements that we welcome all new contributors.  Locations might include the main homepage, the GitHub README, the MNE-Analyze email footer, and/or including a slide and verbal statement in any MNE-Python-related talks/trainings done by core devs.
Designated "ambassadors" who are willing to work directly with new contributors a little bit more than the usual PR review. Ambassadors should be willing to exchange a few emails or videoconference with new contributors to answer questions, give guidance, even do a little screen sharing or pair programming as appropriate.
Designated "mentors" who would commit to a certain number of hours/week for a defined period, and get matched with an "intern" to work one-on-one with during that period. It may or may not be possible to provide stipends for the mentor and/or the intern for this option.

The goals for new contributors are flexible and expected to vary depending on the new contributors' past experiences and current interests, but generally will include some of:

developing comfort and fluency using git / GitHub
understanding Python package installation (i.e., different ways to install MNE-Python and its dependencies, upgrading, etc)
learning best (or "good enough") practices for scientific programming & scientific software development (documentation, testing, deprecation cycles, etc)

Please weigh in here if you have alternatives or additions to suggest, want to express support or lack of support for any ideas already mentioned, or have other related comments to share. We are very much open to other ideas. Also please tag anyone you think should see this but who might not get auto-notified without an @-mention.

tagging @SophieHerbst and @dnacombo
cc @peircej @opyh

an idea... have like office hours 1H every week or every two weeks to onboard
people or ask questions in a video chat. What you know people it's always
easier to work together

Thank you for the summary, @drammock.
I think what we should add to the first point (Prominent public statements) is to also make clear that diversity is a value of the MNE-Python community and that we believe it contributes to our joint goals.
To essentially go beyond "diversity just for the stats" or other negative descriptors that can often be associated with quotas or similar - to show that we believe in the positive effects of a diverse contributor pool and therefore actively work on increasing the representation of underrepresented groups.

we believe in the positive effects of a diverse contributor pool

:100:

Just a comment as I was passing by. I think it might be a good time to review what issues are truly "easy", which ones are "good first issues" etc. Something I've found helps new contributors is to give them progressively harder issues. If you accidentally take up an issue that's too hard, it's going to discourage future contributions.

Hi folks,
great to see this happening! :-)
My 3 cents:

inverse the balance and strongly highlight contributions of the
minorities (even if in the grand scheme of things they are smaller). By
default, biases favor so strongly the majority that the regular pat on the
back for a minority is not effective enough. The bragging needs to be 2 or
3 times louder for minorities...

What is effective is to be fact-oriented: count the ratio of selected
minorities in MEG/EEG/... and compare with your current pool. Then state
out loud: there is 30% of women in the field, we want 30 % of women
contributors - who is up for it?; there is 5 % of Chinese users, we want 5%
of contributors etc...  In other words, pro-actively seek and invite them.

Build a system of mentorship: the youngest arrival is paired with a more
senior for a few months (perhaps what Daniel referred to as ambassadors).

Cheers,
Virginie van Wassenhove
https://brainthemind.com/ https://brainthemind.com/
On Wed, Sep 9, 2020 at 2:34 AM Mainak Jas<EMAIL_ADDRESS>wrote:

Just a comment as I was passing by. I think it might be a good time to
review what issues are truly "easy", which ones are "good first issues"
etc. Something I've found helps new contributors is to give them
progressively harder issues. If you accidentally take up an issue that's
too hard, it's going to discourage future contributions.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/issues/8221#issuecomment-689225936,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABYMUIUWL3DNHZMPJFAFUADSE3ETDANCNFSM4RAI2WZQ
.

Great initiative and great suggestions above! Something I would think might help too, is to offer small hands-on technical tutorials for new contributors (~2h with an experienced programmer, possibly virtual but interactive) to help people get up to speed and increase their confidence for instance:

how to use git / github
principles for clean coding in python
introduction to the mne architecture
logic behind the testing (CIs and stuff)

@SophieHerbst do you mean something like a regular little hands-on lecture new contributors can sign up for? I think that's a great idea!

@britta-wstnr yes, something shorter than a full workshop (to be integrated in one's daily schedule more easily), which targets the skills specifically needed to contribute to mne python.

something shorter than a full workshop, which targets the skills specifically needed to contribute to mne python.

I like this idea a lot. Perhaps we could start with the framework of The Carpentries lessons and tailor then to our needs.

I just opened my first issue at the NeuroKit2 repo – and got a friendly automated welcome message from a bot! Interesting idea!
https://github.com/neuropsychology/NeuroKit/issues/392#issuecomment-738694192

😄 - except for the meme I like this idea!

😄 - except for the meme I like this idea!

Yes :)
One could then even include a link to our forum and such.

That's great - even though it's automated, getting an immediate friendly response is a nice touch.
Mike

On 4/12/2020, at 23:11, Richard Höchenberger<EMAIL_ADDRESS>wrote:
😄 - except for the meme I like this idea!
Yes :)
One could then even include a link to our forum and such.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

--
Michael R. MacAskill, PhD		66 Stewart St
Research Director,			Christchurch 8011
New Zealand Brain Research Institute	NEW ZEALAND
Senior Research Fellow<EMAIL_ADDRESS>Te Whare Wānanga o Otāgo ki Ōtautahi	Ph:   +64 3 3786 072
University of Otago, Christchurch	http://www.nzbri.org/macaskill

@peircej recently posted "[on] improving Equality, Diversity and Inclusivity (EDI) in our community"
I believe this is a valuable read:
https://discourse.psychopy.org/t/on-improving-equality-diversity-and-inclusivity-edi-in-our-community/18356

ICYMI: we've just announced the first MNE-Python office hours.  Details here. 🚀

ICYMI: we've just announced the first MNE-Python office hours.  Details here. 🚀

Applications are open for the MNE-Python New Developers Code Sprint!  Please share widely.  Stipends are available for accepted applicants, with priority given to participants from groups underrepresented in neuroscience. More info here: https://mne.discourse.group/t/save-the-date-15-19-march-mne-python-code-sprint/2684/5?u=drammock

Can mne_news tweet about it?

I put a tweet request (via slack) earlier today... I don't even know who else has access to that account other than @agramfort
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, February 15, 2021 12:37 PM, Britta Westner<EMAIL_ADDRESS>wrote:

Can mne_news tweet about it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

In all fairness this sounds like an effort to replicate the software carpentry model into electrophysiology with a smattering of equitable diversity that IMHO already exists in the MNE ecosystem. I am curious as to what the MNE-Analysis-mail-list crowd  thinks of this?
At the end of the day folks need to work with electrophysiology data that's first and foremost representatively sampled, and yes ideally analyzed by a culture of curiosity as @agramfort suggests rather than some independent monolith based on distributions of race and gender as suggested by @virvw in niche open source sci-computing communities. Seems like putting the horse behind the carriage. That's just my .000000000001 alt coin

Now this can be a really long and extensive discussion! 👌
My understanding is that the primary focus of this initiative is to try and encourage more people of all backgrounds to contribute to MNE. The first step to this is try to create a welcoming environment for people of various backgrounds.
I have a couple of female close friends who are working in "tech"; and shared some of their impressions and, indeed, issues when joining male-dominated working environments with me. Without going into too much detail, what they found was that certain "guy-things" were well-established (and never reflected upon), which simply made them feel uncomfortable (and, really – quite a bunch of those were plainly unprofessional!). This is not a great experience, and I believe if we can find ways to identify and reduce such issues, it will be beneficial to everybody.
I'm not sure what you're referring to when mentioning "diversity in human intelligence"? I don't think we have a lack of human intelligence in the project (what is that in the context of MNE, anyway?); but we all have different sets of skills, preferences, and requirements. Trying to find a common ground, some kind of consensus among us all, helps us create a product that is indeed useful to many more people than one that were tailored only to the needs of a few. By increasing the diversity of our contributor pool, this aspect can be emphasized and strengthened even more – leading to an overall better product.
And that's just about the quality of the end product – I haven't even talked about the valuable inter-personal exchanges that sometimes emerge beyond filing, reviewing, and merging pull requests! Now you can say what you want, but to me, an open-source project is also a sort of a social hub that helps me interact, get to know, and forces me to understand different kinds of people – sometimes pushing me outside of my comfort zone. I very much appreciate that, and I'm looking forward to seeing much, much more of that.

@hoechenberger good luck finding that 🦄 friend

Thanks @hoechenberger for your very elaborate answer!
May I add that it furthermore has been shown that diverse groups benefit scientific research and innovation (e.g. AlShebli et al., 2018, Nat Comm; Hofstra et al., 2020, PNAS), so it will lead to a "better product", as @hoechenberger also has hinted at.
I do not believe that diversity in any scientific field has to be a unicorn: but to get there we need change, and I love that MNE-Python is actively taking steps to bring such change!

thanks (sincerely) for questioning our ideas, @ktavabi (we are scientists, after all!)

In all fairness this sounds like an effort to replicate the software carpentry model into electrophysiology

Maybe.  SWC offers good infrastructure and support for lesson development, and there are efforts underway on at least five other carpentries-style lessons related to neuroimaging.  Personally I don't think it makes sense right now for MNE-Python to do a user-focused lesson like that, since I think we have if anything an excess of user-facing tutorial material that needs to be streamlined, and it's already nicely formatted.  But I can see the value in what @SophieHerbst suggests: a very short course (~2 hours, instead of 2 days like a typical SWC workshop) that remixes / cherry-picks the parts of the SWC git curriculum that are most relevant for OSS contribution in general --- and for MNE-Python contribution in particular --- and supplements that with additional info like how to run our tests, how our CIs work, etc.

...with a smattering of equitable diversity that IMHO already exists in the MNE ecosystem.

I respectfully disagree that it already exists here. The MNE-Python contributor pool is overwhelmingly male and predominantly white/caucasian americans or europeans: git shortlog -nse and some googling of contributor names should hopefully convince you...  I don't know how everyone self-identifies but guessing based on appearances I would say that 19 of top 20 MNE-Python contributors (or 46 of top 50) are male, and at least 15 of top 20 are caucasian/white. So to my eyes the imbalance clearly exists, and as @hoechenberger and @britta-wstnr mentioned, such imbalances can reinforce and perpetuate themselves by normalizing practices that make minority participants feel unwelcome, and repairing those imbalances can actually yield better results/products.

At the end of the day folks need to work with electrophysiology data that's first and foremost representatively sampled, and yes ideally analyzed by a representative culture of curiosity as @agramfort suggests rather than an independent monolith based on distributions of race and gender as suggested by @virvw in what is effectively a niche open source sci-computing community.

I strongly agree that data diversity is a big problem for biomedical science, across the board (because it results in people getting different quality of treatment from healthcare / different levels of reward from their society's investments in science). But the grant that I wrote and was awarded was for supporting open source scientific software, not for fixing the biased data problem. I can't legally spend that money on something else.

To this aging user, honestly this seems like we're putting the horse behind the carriage. Meaning we're considering using moneys from the philanthropic arm of what is essentially a corporate monopoly on AI algorithms to increase diversity in human intelligence? Or am I missing something?

I don't quite follow the horse/carriage analogy here (something about AI making better humans, instead of vice-versa?).  But I do think you are missing at least one point: what we are discussing is not an effort to "increase diversity in human intelligence". We are discussing ways to make this developer community better reflect the communties that we live in and serve.

Fine, fine. "Product" it is then. This is more rationalization than decision making. But we should take some safeguards, against future (n)pandemics, no? Additional biometrics? No, that'd be overkill. The Chinese would hate that.
Where do I sign up for office hours with Alex?

Fine, fine. "Product" it is then. This is more rationalization than decision making.

I'm not sure I follow you here.

But we should take some safeguards, against future (n)pandemics, no? Additional biometrics? No, that'd be overkill. The Chinese would hate that.

Again, not sure I understand.

Where do I sign up for office hours with Alex?

Office hours are twice monthly on our Discord server, and are hosted by whichever MNE-Python core devs are available that day. See here for more details.  You just missed one this morning, and the usual office hours on 19 March will be superseded by the code sprint, so the next one will likely be 2 April.

I'm not sure I follow you here.
Sorry I forgot the qualifier "better product"

Again, not sure I understand. Your remarks here could be interpreted to imply something untoward about Chinese people or the Chinese government. If so, this would violoate our code of conduct. Please consider this a gentle reminder to choose your words carefully
Ummm, interpretation is in the eye of the beholder Dan. It's your money, it stipulates you do(x). Good luck. I look forward to witnessing the fruits of your effort. Maybe we'll discord on discord homie. That's all folks.

I thought this was an interesting thread on Twitter, started by Guido van Rossum, asking

How can I say "we would especially love to hear from women, Latinx and Black candidates" without sounding, how do I say this, "bigoted"? This subject is so touchy that the standard phrasing on our career site doesn't even fit in a tweet. :-)

https://twitter.com/gvanrossum/status/1405298970838978563?s=21
Takeaway for me was: it's probably best to reach out to marginalized communities directly.


Train model for face recognition

Hi @justadudewhohacks, thanks for your awesome works. I'd like to get help in how to train my own model for my images so that I can recognize the faces within new dataset. It's great if you can show me some examples on this.
Thanks,
Phi

I've had the answer over here. Again excellent works, thank you so much!
https://itnext.io/face-api-js-javascript-api-for-face-recognition-in-the-browser-with-tensorflow-js-bcc2a6c4cf07


chore(main): release 1.26.31

:robot: I have created a release beep boop
1.26.31 (2023-10-07)
Bug Fixes

remove newline 4 (f0c54e6)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aidanaden/canvas-sync/releases/tag/v1.26.31 :sunflower:


Keeper scripts need to be updated for wormhole

Describe the bug
Keepr scripts were not updated with the wormhole upgrade. This is preventing aggregate roots from being propagated because:

Keepr calls propagate with the Multichain args
RootManager gracefully handles error when calling BnbHubConnector.send()
propagateCooldown is reset
Lighthouse runs, and runs into an unworkable task.

To Reproduce
Steps to reproduce the behavior:

Trigger propagate via keepr
Watch Wormhole failure

Additional context
kLP credits have been unbound until the scripts are updated to ensure proper gelato fallbacks.

pr r4r: https://github.com/connext/connext-keeper-scripts/pull/9


Warn against running from source as root in README

This was discussed in IRC yesterday.
Basically, npm pre/post scripts are not executed when running as root. There are ways to do so, but this goes beyond what the README should say.
Also, we should not be held responsible for someone messing up their system while running code that is deemed not prod-ready.

Will this show up on npm?

@xPaw, if you're talking about the package page, then yes, just like it is today.

@xPaw, @YaManicKill, I updated the PR based on your comments. Good to go?


Bioblitz project aggregating obs based on posted_on rather than observed_on (I think)

This bioblitz project http://www.inaturalist.org/projects/cormorant-week-jan-3-9 has the aggregator turned on and is including several obs which seem to have been added by the aggregator (project_observation.user_id=nil) that were POSTED during the bioblitz time interval but not OBSERVED during that interval...
[2558340, 2552761, 2550398, 2550088, 2550358, 2549728, 2558345, 2558637, 2558899, 2559306, 2559311, 2559328, 2559475, 2559477, 2559484, 2559493, 2559494, 2559490, 2559496, 2559514, 2559580, 2560168, 2560745, 2560775, 2563246, 2560880, 2561042, 2552091, 2561947, 2561953, 2562434, 2562490, 2563320, 2563068, 2563252]
Is that whats going on? Can't figure out how else they were added. I didn't think we were capable of detecting obs POSTED during an interval with the current search API....

Not sure if this is related to the above, but here's another glitch where the user's membership stats don't reflect the one project_observation (ie says 0 in several places)
http://www.inaturalist.org/projects/cormorant-week-jan-3-9/members

http://www.inaturalist.org/projects/cormorant-week-jan-3-9/contributors/scubale

Any insight into this? Here's another way to see the discrepancy:
http://staging.inaturalist.org/observations?d1=2016-01-03T00:00:00-08:00&d2=2016-01-10T00:00:00-08:00&taxon_id=71268
vs.
http://staging.inaturalist.org/observations?project_id=cormorant-week-jan-3-9

There were some observations in the project which were observed outside the BioBlitz window, but they had been added by users before that privilege was revoked. Scott said there was at least one he thought was deleted and came back, but I can't confirm that. I tried on Staging and using the "Remove" option from the project list on observations show did seem to work for me.
Not sure exactly what happened with the counts. There are delayed jobs to update a cached observation count on ProjectUser, so it is possible we are failing to call that method during some create/update/delete. I manually reset the counts with:
```Project.find(5935).project_users.each{ |pu| ProjectUser::update_observations_counter_cache_from_project_and_user(5935, pu.user_id) }``
The only users that were wrong were scubale and tiwane which first reported 0, then reported 1 after updating the cached count. Ultimately not much was resolved here. If we can get more data maybe we can track down the operation that's causing counts to get out of sync.

Do you think this is resolvable, or is there more we can do now?

think this is resolved


Recycle bin text issue (EXPOSUREAPP-10539)

This PR addresses Exposureapp-10539.
Inside the RecycleBin Screen:
Expected result:

on top: "Alle endgültig entfernen"
on the certificate: "Endgültig entfernen" (already there)

PR will be closed. Decision was made to use the 2.14 translations with 2.14


Missing the ability to lock down a node, and force new calls to be initialized on a different one

I'm currently experimenting with running LiveKit in a Kubernetes environment, and I'm load testing it heavily.
I'm using a Redis instance to balance the rooms, and it all works well until we hit CPU limits.
The scenario is:

We have CPU requests/limits set, which means our pods cannot use e.g. more than 3.5CPUs.
We have HPA enabled, so new pods come up depending on the current avg CPU usage of the pods.

New clients connect via LB, and if one of LK pods is currently running at e.g. >95% CPU, then it would be advisable for new rooms to be created on ANOTHER node, instead of the busy one. But, at the moment, I don't see a way to do that without altering the source code in some way.
So, I feel like there is no way to tell a specific node "do not accept new rooms" at runtime. This can cause a lot of chaos in autoscaling environments because already-busy nodes will keep receiving new rooms 🤔
Is this a currently missing feature?
Thanks!

Have you checked out the sysload node selector? It allows you to set a max per-CPU load to stop assigning new rooms onto the node.
Feel free to re-open if it doesn't work for you.

Ah! That can be a good solution, thank you very much :) Definitely missed that config entry!


Caton when bounding box appears

when start and some bounding box appear, device stay caton status and program should be restarted and  again caton...

when bounding box num >=3 this will happen


[Improvement] Remove warnings when compiling Gravitino

What would you like to be improved?

Remove the warnings. This is required by https://www.bestpractices.dev/en

Hey @justinmclean I would like to work on this issue. Can you assign it to me?

Sure - this issue is quite old so the warning may have changed since then.


Challenges with _count and total in HAPI

Keith Boone: I'm working on pagination in my server (not using PaginationProvider), returning a Bundle. It appears that HAPI is rewriting the bundle I return and changing the value of Total to -1 (one of my test cases is for _count=-1, which seems to be related). I suspect I need to return an IBundleProvider or something, but thought I would mention the weird behavior.
Keith Boone: Issue appears to be in BaseMethodBinding.toResourceList() method.
Keith Boone: Tracked it back to BaseResourceReturningMethodBinding. doInvokeServer(IRestfulServer<?> theServer, RequestDetails theRequest)
where:
Integer count = RestfulServerUtils.extractCountParameter(theRequest);
...
And then:
bundleFactory.addRootPropertiesToBundle(null, theRequest.getFhirServerBase(), linkSelf, null, null, count, getResponseBundleType(), lastUpdated);
BUT: count is clearly not theTotalResults, and in fact, there's really no way to know what that value SHOULD be based on the response unless Bundle.total is populated.
I'll log a bug for this, and see what I can do to work around it.
To Reproduce
Steps to reproduce the behavior:
Create a ResourceProvider that returns a Bundle that does not populate total, and supports _count, and pass in a _count value to the query.
The _count value is used for the Bundle.total (even though that's not right).
Expected behavior
Total should be not be altered from what was returned.
Environment (please complete the following information):

HAPI FHIR Version: 4.0.1
OS: N/A (but I'm testing on Windows 10 and deploying to Linux Docker containers)

Additional context
See https://chat.fhir.org/#narrow/stream/179167-hapi/topic/Challenges.20with.20_count.20and.20total.20in.20HAPI
Total should not be overwritten, even when not present.  The HAPI Server has NO clue what the right value should be, and cannot know.

Workaround follows:

Add RequestDetails theDetails to your query method if not already present.

Add this before you return the bundle.  It removes _count from theDetails so it won't be changed.
 // This is a hack to work around https://github.com/jamesagnew/hapi-fhir/issues/1585
 // We remove the _count parameter from theDetails so that total is not modified.
 Map<String, String[]> params = new HashMap<String, String[]>(theDetails.getParameters());
 if (params.remove(Constants.PARAM_COUNT) != null) {
     // Remove _count parameter from the current request details
     theDetails.setParameters(params);
 }

 return bundle;

Thanks for this issue report. I ran into the same bug where the HAPI server code was adding a total (an incorrect one at that) when my Bundle didn't have one before. This report helped me work-around the issue.


Splitting tables and stored procedures into sub-directories

Hello,
Is there an option to create a sub directory for each group of scripts.
I would like to have the following directory structure

my-db\tables\my_table.sql
my-db\storedprocedures\my_stored_procedure.sql

When a i reproduce this structure skeema detects a DROP.
Thank you.

All objects in the same logical schema must be placed in the same directory.
It is possible that more flexible subdir placement may be supported in the future, but there are no concrete plans for this yet.

It might simplify the organization of the files rather than having all the items mixed up.
In the meantime, I'll organize my scripts with subdirectories and just before running skeema, i'll move everything to the same level in a temporary directory.
Thank you!

Sounds like a good workaround.
Just for background, natively supporting this would be pretty complex to implement -- several weeks of fulltime effort. Until very recently, all of the filesystem-related logic assumed a 1:1 mapping between subdirs and logical schemas. As of the latest release, there is now limited support for multiple logical schemas in a single subdir, but not vice versa. Allowing a single logical schema to span multiple subdirs would greatly affect all of the dir parsing code, fs dumping code, and subdir walking code.
The company who generously sponsored the development of the stored proc support was fine with everything in one subdir, so that's how it was implemented. This is one of the benefits of sponsoring open source development: a sponsored feature will be implemented in a way that matches the sponsor's use-case / preferences :)
Normally I'd keep this open as a feature request issue, but the broader concepts are being tracked in an older/larger issue, see 2nd bullet of https://github.com/skeema/skeema/issues/22#issuecomment-459907251


Improve validation of VPC id

It is mentioned in the documentation that the format for VPC id is <project_name>/<VPC_UUID>, however this format is not validated and causes a somewhat confusing error when specified without the project name section:
^[[1m^[[31mError: ^[[0m^[[0m^[[1mrpc error: code = Unavailable desc = transport is closing^[[0m

It would improve user experience if when an invalid VPC id is specified that an informative error is printed.

Improved validation is available in the new release v.1.3.1 https://github.com/aiven/terraform-provider-aiven/releases/tag/v1.3.1


Starter Clout - Phone number validation issue.

There is a bug in the phone number registration process, very minor, but would affect people selecting "Isle of Man" the validation forces use of numbers starting 1624.
However, 1624 is a landline in the Isle of Man.
The mobile prefix should start with a 7 (e.g. 7624) instead - i believe there are now some additional codes for IOM Mobiles now too - would need to check with the telecom provider there.
I suspect this is an issue with the service though?

Looks like it should really just be validated the same a UK mobile - check http://www.area-codes.org.uk/mobile/index.php
+44 7624 ###### - is definitely Isle of Man (and the most widely used).
but there appear to be others as well:-
+44 7418 4#####
+44 7452 0#####
+44 7452 1#####
+44 7452 2#####
+44 7452 3#####
+44 7452 4#####
+44 7452 5#####
+44 7452 6#####
+44 7457 6#####
+44 7924 ######

It's serious issue, phone number does not registered many times on this platform


preInstallDependencies should also inject dependencies in non-Eta projects

The injectDependenciesEta task is added to all non-Eta projects in the build and injects the dependencies for all project dependencies in that given project. When preInstallDependencies = true, this injection should happen before the task graph is constructed or you'll get strange errors similar to this:
Execution failed for task ‘:ffigen:injectDependenciesEta’.
> Cannot change dependencies of configuration ‘:ffigen:compile’ after it has been included in dependency resolution.

Fixed in 0.6.6.


Uncaught TypeError: Cannot read property 'getPath' of undefined

[Enter steps to reproduce below:]

...
...

Atom Version: 1.0.0
System: Ubuntu 14.04.2
Thrown From: convert-to-utf8 package, v0.2.4
Stack Trace
Uncaught TypeError: Cannot read property 'getPath' of undefined
At /home/ioan/.atom/packages/convert-to-utf8/lib/convert-to-utf8.coffee:25

TypeError: Cannot read property 'getPath' of undefined
  at Object.module.exports.open (/home/ioan/.atom/packages/convert-to-utf8/lib/convert-to-utf8.coffee:25:18)
  at atom-workspace.<anonymous> (/home/ioan/.atom/packages/convert-to-utf8/lib/convert-to-utf8.coffee:14:75)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/atom/resources/app.asar/src/command-registry.js:241:29)
  at CommandRegistry.handleCommandEvent (/opt/atom/resources/app.asar/src/command-registry.js:3:61)
  at CommandRegistry.module.exports.CommandRegistry.dispatch (/opt/atom/resources/app.asar/src/command-registry.js:156:19)
  at EventEmitter.<anonymous> (/opt/atom/resources/app.asar/src/window-event-handler.js:70:30)
  at emitOne (events.js:77:13)
  at EventEmitter.emit (events.js:166:7)

Commands
  5x -7:23.2.0 core:backspace (atom-text-editor.editor.is-focused)
     -6:49.7.0 settings-view:open (atom-text-editor.editor.is-focused)
  2x -6:37.1.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:00.7.0 convert-to-utf8:utf-8 (div.settings-view.pane-item)

Config
{
  "core": {}
}

Installed Packages
# User
color-picker, v2.0.7
convert-to-utf8, v0.2.4

# Dev
No dev packages

Open the file first, then choose the menu item to convert. No such error happens.


Fix circular dependency issue between common and contract utility libraries

Details
Circular dependency issue when importing common-utilities into contract utilities.
Common utilities should not depend on any other package so we should look to see if it's importing contract-utilities.
Reported here:
https://discord.com/channels/709210493549674598/951186621397618708/1006800638316924938

https://github.com/HausDAO/daohaus-monorepo/pull/645


[QUESTION] Several remote libraries exported at the same port not refreshed since version 0.22.0 (working on 0.20.0)

Hello,
I've got a project using many remote libraries that is executing fine but for some reason Robot Code version 0.22.0 and above resolve keywords just for the first library in Settings. Version 0.20.0 was able to resolve keywords for all remote libraries.

Desktop (please complete the following information):

VS Code 1.74.3
RobotCode Version 0.22.0 to 0.25.1
OS: Windows (for the sample project), Linux
Python 3.8.5 (64-bit)
RobotFramework 4.0.1

remote_libs.zip
This is a sample project where I can reproduce the issue. To be able to use remote keywords I'm starting a remote keywords server with python.exe .\keywords\remote_library.py
The file robotremoteserver.py is just a quick patch to https://github.com/robotframework/PythonRemoteServer so that I can export several remote libraries at the same TCP port.
I'm not sure if there is some issue with the remote keyword server patch or the issue is related to changes between Robot Code 0.20.0 and 0.22.0.
Thank you very much,

He,
in RobotCode 0.22 I introduced libdoc caching to speedup loading of libraries and resources, per default everything is cached. If you have libraries that returns different keywords depending on the arguments you give (like in your case the Remote library) you can disable caching for that library. Search in the settings for you workspace for the setting robotcode.analysis.cache.ignoredLibraries

Here you can add the remote library to the list of ignored libraries. For robotframework builtin libraries, you have to give the full module name, in your case robot.libraries.Remote
Another possibility is to create library wrappers for your Remote library versions like:
file: RemoteActuator.py
from robot.libraries.Remote import Remote

class RemoteActuator(Remote):
    pass

file: RemoteDevice.py
from robot.libraries.Remote import Remote

class RemoteDevice(Remote):
    pass

Put these files somewhere in you python path / lib folder.
And then to change your imports like this:
*** Variables ***

${PLC_REMOTE_HOST} =  http://<IP_ADDRESS>:8270

*** Settings ***

Library  RemoteActuator  ${PLC_REMOTE_HOST}/Actuator  WITH NAME  Actuator
Library  RemoteDevice  ${PLC_REMOTE_HOST}/Device    WITH NAME  Device

Now your Libraries have different names and RobotCode can distinguish them. A side effect is that you no longer have to start the remote servers once the libraries have been cached.
To refresh your library execute the command "RobotCode: Clear Cache and Restart Language Servers" by pressing F1

Thank you! both options are working great.


NullPointerException in ValuePartitionExecutor, when null value in the partition key

Hi,
I am currently working with Siddhi v3.0.4.
Following is my test program and you will be able to find that I injected a null-included event (3th event). And the null value is for the symbol and also the symbol is the key for value partition in the query.
    // Creating Siddhi Manager
    SiddhiManager siddhiManager = new SiddhiManager();

    String executionPlan = "" +
        "define stream cseEventStream (symbol string, price float, volume long); " +
        "partition with (symbol of cseEventStream)" +
        " begin " +
        " @info(name = 'query11') " +
        " from cseEventStream[volume < 150] " +
        " select symbol,price " +
        " insert into outputStream ;" +
        " end; ";

    //Generating runtime
    ExecutionPlanRuntime executionPlanRuntime = siddhiManager.createExecutionPlanRuntime(executionPlan);

    executionPlanRuntime.addCallback("outputStream", new StreamCallback() {
        @Override
        public void receive(Event[] inEvents) {
            EventPrinter.print(0L, inEvents, null);
        }
    });

    //Retrieving InputHandler to push events into Siddhi
    InputHandler inputHandler = executionPlanRuntime.getInputHandler("cseEventStream");

    //Starting event processing
    executionPlanRuntime.start();

    //Sending events to Siddhi
    //try {
    inputHandler.send(new Object[]{"IBM", 700f, 100l});
    inputHandler.send(new Object[]{"WSO2", 60.5f, 200l});
    inputHandler.send(new Object[]{null, 50f, 100l});
    inputHandler.send(new Object[]{"GOOG", 50f, 30l});
    inputHandler.send(new Object[]{"IBM", 76.6f, 400l});
    inputHandler.send(new Object[]{"WSO2", 45.6f, 50l});
    Thread.sleep(500);

    //Shutting down the runtime
    executionPlanRuntime.shutdown();

    //Shutting down Siddhi
    siddhiManager.shutdown();

And the execution result is following:
 Jan 25, 2016 2:55:12 PM com.lmax.disruptor.FatalExceptionHandler handleEventException
 SEVERE: Exception processing: 5 IndexedEvent{streamIndex=0, event=Event{timestamp=1453701312805, data=[WSO2, 45.6, 50], isExpired=false}}
 java.lang.NullPointerException
    at org.wso2.siddhi.core.partition.executor.ValuePartitionExecutor.execute(ValuePartitionExecutor.java:32)
    at org.wso2.siddhi.core.partition.PartitionStreamReceiver.receive(PartitionStreamReceiver.java:189)
    at org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:142)
    at org.wso2.siddhi.core.stream.StreamJunction.access$000(StreamJunction.java:44)
    at org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:312)
    at org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:39)
    at org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:59)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:166)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:149)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:119)
    at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Exception in thread "Siddhi-3aab83cb-5578-418d-9c2a-1091ac3e5491-executor-thread-0" java.lang.RuntimeException: java.lang.NullPointerException
    at com.lmax.disruptor.FatalExceptionHandler.handleEventException(FatalExceptionHandler.java:45)
    at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:147)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
    at org.wso2.siddhi.core.partition.executor.ValuePartitionExecutor.execute(ValuePartitionExecutor.java:32)
    at org.wso2.siddhi.core.partition.PartitionStreamReceiver.receive(PartitionStreamReceiver.java:189)
    at org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:142)
    at org.wso2.siddhi.core.stream.StreamJunction.access$000(StreamJunction.java:44)
    at org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:312)
    at org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:39)
    at org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:59)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:166)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:149)
    at org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:119)
    at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
    ... 3 more

... 3 more
I found that the PartitionStreamReceiver checks whether the currentKey from partitionExecutor.execute(nextEvent) is null or not. However the partitionExecutor.execute(nextEvent) throws NullPointerException. Following is the relevant part of source of PartitionStreamReceiver.java (line 189 ~ 191).
                String currentKey = partitionExecutor.execute(nextEvent);
                if (currentKey != null) {
                    if (key == null) {

So I tried to change the ValuePartitionExecutor.java, from
public String execute(ComplexEvent event) {
    return  expressionExecutor.execute(event).toString();
}

to
public String execute(ComplexEvent event) {
    String result = null;
    try {
       result =  expressionExecutor.execute(event).toString();
    } catch(NullPointerException e) {
        result = null;
    }
    return result;
}

And then I got no errors, but the null-included event is not emitted also.
I don't know if the NullPointerException can be regarded as a bug or not.
However If null values in symbol in the above query are not allowed intentionally in Siddhi, I should check all incoming events to see if it contains null value.

Hi,
As you mentioned PartitionStreamReceiver checks if the partition value is null (line 190). If the key is null that event will be dropped. Hence event with null symbol is not emitted after your change to ValuePartitionExecutor.java.
You have to  check all incoming events to see if it contains null value since PartitionStreamReceiver drops events that has the partition key as null.
Thanks for pointing out the NullPointerException. We will fix this in next siddhi release.
Thanks,
Sachini

Handling NullPointerException is fixed in commit : 432a07a9cb5deb7731f22a90c42cdfd3909c3fb6


Drag and Drop mouse Input

Description
Implementing a drag-and-drop mouse input feature in a game allows players to interact with in-game objects, elements (towers here) by clicking and dragging them using the mouse cursor.
In this implementation the player should be able to drag a tower of his choice from the towers display box and place in in the game screen to facilitate his game play
Dependencies

[ ] tower team for the data input on the types of tower  (team2)
[ ] implementation of the display box for the dragging option ( #108 )

Milestones
List of sub-features you intend to have done and in Master by the end of the sprint.

[ ] implementing the one mouse function among the 7 functions to be able it click in the display box , preferably
the function input (sep 8)
[ ] implementing the second mouse function to be able to drag the tower from the display box (sep 9)
[ ] positioning and spawing of the tower according to the user selection (sep 9)
[ ] test by implementing and play many positing of towers  (Sep 10)

Completion Deadline: sep 11
Documentation

Main description of feature
User documentation
...

Members

Jigyasu mittal (@JigyasuMittal)
Rahul Sagar Pabba (@rahulsagar500)

This ticket closed, feature implemented in #207


Rely on swap.target in tests once upstream bug in systemd is fixed

https://bugs.freedesktop.org/show_bug.cgi?id=86930
For discussion see #5202

Should be fixed as part of systemd upgrade, see #6671

systemd isn't making it this round; punting

It looks like this refers to this line; can someone uncomment it and test?


Deprecate :phoenix atom as predefined plugin

📖 Description and reason
Following @paveltyk’s suggestion in #28, let’s favor the use of CredoNaming.Check.Consistency.ModuleFilename.Plugins.Phoenix as our predefined plugin instead of the opaque :phoenix atom.
:phoenix is still supported for backward-compatibility.
🦀 Dispatch
#dispatch/elixir

@remi why do you want to limit plugins to only predefined plugins with when plugin in @plugins ? How do you feel about allowing any module that provides Behavior to be used? That will allow for greater flexibility.

Will you please bump a version for new changes?

@remi why do you want to limit plugins to only predefined plugins with when plugin in @plugins ? How do you feel about allowing any module that provides Behavior to be used? That will allow for greater flexibility.

Oh wait, that’s not what I wanted to do at all 🤦♂ That doesn’t make sense. Let me fix this.

👍

@paveltyk 2.1.0 was just released!
https://hex.pm/packages/credo_naming/2.1.0


Bad entry in block

I've been syncing the chain for the past two days and then the client crashed with the following error:
neo>  Unhandled Exception: Neo.IO.Data.LevelDB.LevelDBException: Corruption: bad entry in block    at Neo.IO.Data.LevelDB.NativeHelper.CheckError(IntPtr error)    at Neo.IO.Data.LevelDB.DB.Write(WriteOptions options, WriteBatch write_batch)    at Neo.Implementations.Blockchains.LevelDB.LevelDBBlockchain.Persist(Block block)    at Neo.Implementations.Blockchains.LevelDB.LevelDBBlockchain.PersistBlocks()    at System.Threading.Thread.ThreadMain_ThreadStart()    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) [1]    4392 abort (core dumped)  dotnet neo-cli.dll /rpc
If i try to restart the client it crashes immediately with:
*** Error indotnet': malloc(): smallbin double linked list corrupted: 0x00007f99402d1580 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f9a311947e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x82651)[0x7f9a3119f651]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7f9a311a1184]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_Znwm+0x18)[0x7f9a31a94e78]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm+0x69)[0x7f9a31b26499]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm+0x63)[0x7f9a31b27833]
/usr/lib/x86_64-linux-gnu/libleveldb.so(_ZNK7leveldb6Status8ToStringB5cxx11Ev+0xad)[0x7f9a1c5157ed]
/usr/lib/x86_64-linux-gnu/libleveldb.so(+0x12fef)[0x7f9a1c4defef]
/usr/lib/x86_64-linux-gnu/libleveldb.so(leveldb_write+0x39)[0x7f9a1c4df3e9]
[0x7f99b930c609]
======= Memory map: ========
00400000-00418000 r-xp 00000000 08:05 549786                             /usr/share/dotnet/dotnet
00618000-00619000 r--p 00018000 08:05 549786                             /usr/share/dotnet/dotnet
00619000-0061a000 rw-p 00019000 08:05 549786                             /usr/share/dotnet/dotnet
0255e000-025b8000 rw-p 00000000 00:00 0                                  [heap]
025b8000-025b9000 ---p 00000000 00:00 0                                  [heap]
...`
following with some memory mapping..
anything i can do or do i have to start syncing from the beginning?

I ran into this issue as well. Not during syncing but during normal operation. My node has been running for over a month but now it keeps crashing with the same error as OP.

What version of LevelDB are you using? What plugins do you have installed?

If the problem persist, please reopen the issue


Narrow down the scope of ReST parsing.

Closes #4086. This patch decorates docutils functionality so as to ignore every directive and role that is not directly relevant to RobotFramework. Alternative to error suppression (through report_level configuration, see https://github.com/robotframework/robotframework/issues/2093).

To put things in context, I'm using RobotFramework for RPA and attempting to use the same ReST file to describe the automation and to layout its output in a document. Thus, not all files that'd be required to render the ReST file are present when at the time it is parsed by RobotFramework.
This patch allows RobotFramework to pick up what it needs from the ReST and nothing else.

Could you clarify why this change is needed? More precisely, how is this better than what was done in #2093? It might be best to submit a separate issue explaining that. We anyway want to have issues for tracking purposes.
On a quick look the code looks ok but lacks tests. If we decide to add this, I'll review the PR more closely.

Could you clarify why this change is needed? More precisely, how is this better than what was done in #2093?

In the situation I described above, #2093 won't do. Parsing a .. csv-file:: directive with a :file: uri that points to a nonexistent file raises. But beyond my specific use case, with this patch there's less to process and there's no need to silently ignore any warnings or errors.

We anyway want to have issues for tracking purposes.

Got it. I took a look at the CONTRIBUTING guidelines and it wasn't clear to me whether you always had a tracking issue or not. I'll open one ASAP.

On a quick look the code looks ok but lacks tests. If we decide to add this, I'll review the PR more closely.

I did extend one of the acceptance tests. Would you like to have a unit test for  read_rest_data()? There's none at the moment.

So this fix is more general than what we have? Sounds good to me. I missed that you had modified test data in this regard. Didn't know csv-file import caused problems.

As I commented #4086, this PR needs to be Python 2 compatible if we want it in RF 4.1.2. Looking at the code the only problem is __wrapped__ that's not set by functools.wraps in Python 2. That ought to be pretty easy to handle:
from robot.utils import PY2

...

@functools.wraps(directives.directive)
def directive(*args, **kwargs):
    ...

@functools.wraps(roles.role)
def role(*args, **kwargs):
    ...

if PY2:
    directive.__wrapped__ = directives.directive
    role.__wrapped__ = roles.role

directives.directive = directive
roles.role = role

@pekkaklarck suggestion applied in https://github.com/robotframework/robotframework/pull/4085/commits/35393bcd23ee315152807177ecb11c62547c7a17.

@pekkaklarck acceptance tests for ReST format parsing pass locally for Python 2.7.18 and Python 3.8.10 using docutils 0.9 and docutils 0.17.1.
Could we fire up the workflows in this PR?

Thanks for the PR @hidmic!


Get new comments from a page created after an specific date

Hello,
I need to get new comments from a page created after an specific date.
I used :
Connection<Comment> myFeed = client.fetchConnection("page/feed", Comment.class, new Parameter[] { Parameter.with("since", date) });

But this doesn't return the desired results.
How could we build the filter for those new comments? Can we get posts from its update time?
Thanks.

Interesting question, but I have no answer to this atm. If you find a solution, that doesn't contain the usage of the realtime updates, I'd like to hear it :smile:

Moved to the Facebook By Design milestone and close this issue, because we cannot do anything about it. it's a decision Facebook made.


Update branch version to match pom version

Update the version so that blazar will build branches with the correct version that matches the pom version

Replaced by #1821


Swarm new navigation for 1.10

For 1.10 we are changing the taxonomy to product-specific menus.  The items on this menu **will change ** (especially in regards to the create a swarm) when Rolfe finishes his work. I want to merge this PR so he can rebase against it.

Adding new navigation
Moving API to top level

Signed-off-by: Mary Anthony<EMAIL_ADDRESS>

@mgoelzer @vieux @aluzzardi @abronan @rolfedh

LGTM

LGTM


Do not allow concurrent performance runs.

Summary:
This should avoid the piling of performance benchmarks jobs in case the
NUC is busy.

Other places we schedule runs e.g. every 30min and also limit each run with timeout 30m so that they never overlap. But if this works better

Once the tests run faster we should do it. They do have a one hour timeout.


Missing header file in wrap_g77_abi_c.c

When compiling scipy/_build_utils/src/wrap_g77_abi_c.c, I get an error because the header file Accelerate/Accelerate.h is not found.
Simply removing the include line makes it compile again. Is this include line needed?

The include statement is not there in the development version.

Sorry, didn't check and used bundled 0.15.1


Restart votes check player count and ghost levels

About the PR
Follow on from the restart vote abuse issue raised on: #23404. I used the ideas on PJB's comment, suggesting a min player count required to cast votes and people alive. It set it to disable over 20 players unless 75% of them are ghosts, but can be altered easily in cvar.
Essentially:

Less than 20 players - can call vote
More than 20 players of those players if 75% are ghost roles, can call vote.

Why / Balance
Because I'm already over seeing the restart vote 3-10 times almost every round. Its just being abused by people that are dead and don't want to let the round play out. Messages from admins as a deterrent are ineffective.
Technical details
Before the restart vote is started two checks are done, if the total player count is less than the restart_max_players cvar, vote is allowed. If it is above that, then it checks sessions for attached entities and if they have the ghost component they are deemed to be a ghost and then a percentage is calculated if that percentage is greater than the restart_ghost_percentage then the vote is allowed.
Media

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

Breaking changes
I don't think so...
Changelog
:cl: Repo

fix: Round restarts require minimum ghost levels on populated servers.

Maybe a check for how many players are alive would help as well. I've seen a few rounds where singularities and other large disasters happen where they simply couldn't get to the communication's console in time and are stuck without a way to end the round other than a restart.
Sure if enough players leave they can still call for a vote, but that's not exactly ideal. (unless I'm stupid and it already does that)

Maybe a check for how many players are alive would help as well. I've seen a few rounds where singularities and other large disasters happen where they simply couldn't get to the communication's console in time and are stuck without a way to end the round other than a restart.

I put this on the issue too but I'll also add it here as an alternative.
Could have a "hidden counter" that requires multiple people to try to start a restart vote before it actually starts one and poses it to the whole server.
That way you can still restart if there's a fuckup on a 60 person server, but Johnny Just Died can't make a restart vote for no reason.

Maybe a check for how many players are alive would help as well. I've seen a few rounds where singularities and other large disasters happen where they simply couldn't get to the communication's console in time and are stuck without a way to end the round other than a restart.
Sure if enough players leave they can still call for a vote, but that's not exactly ideal. (unless I'm stupid and it already does that)

Honestly I was trying to just no effort this one 😓But I have reworked it again now an now it has the ghost check too.

Ill update the OP too with new details but the gist is this now:

Less than 20 players - can call vote
More than 20 players of those players if 75% are ghost roles, can call vote.

I put this on the issue too but I'll also add it here as an alternative.
Could have a "hidden counter" that requires multiple people to try to start a restart vote before it actually starts one and poses it to the whole server.
That way you can still restart if there's a fuckup on a 60 person server, but Johnny Just Died can't make a restart vote for no reason.
This is probably fine though.

Most of the votes get spammed by several people from what I've seen, I just updated it again with this ghost percentage  addition, will be enough or it needs this 3rd criteria of stacking votes to trigger.

gamer solution disable restart votes if you died up to 10m ago, prevents i died pls restart

Admins discussing this in their meeting

We'd also like a more comprehensive system in the future.

We'd also like a more comprehensive system in the future.

I will leave the more comprehensive system to you. 🤔 This will solve the spam for now. but still cover the great majority of issues where restarts are required.
The Tribe has spoken, please bring me your torch...

We'd also like a more comprehensive system in the future.

I will leave the more comprehensive system to you. 🤔 This will solve the spam for now. but still cover the great majority of issues where restarts are required. The Tribe has spoken, please bring me your torch...

I'll see what I can do.

@metalgearsloth Is this something that can come out of the 'Do not merge'? Was it just the admin meeting holding it back?


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

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


Payments go to your node - how is a self-custodial wallet implemented?

I didn't find the answer to my question in your wiki, so I decided to ask here.
My question is as follows. Everywhere you claim that the wallet is completely self-custodial. But at the same time, the first payment goes to your node (an invoice is issued from it and it is the recipient).
What is self-custody here? What prevents you from taking all the first funds for yourself, since the recipient is your node? Ok, at first I thought it might be because the first payment creates a channel and the recipient
is temporarily you, but in this case, the custodial is temporarily you, and then the funds will go to the channel, as you claim, open to me.
But the second small payment also went on the invoice issued to your node! And the recipient is your node again! You don't write about it anywhere in the wiki.
In this case, how do I control the funds and where is the channel open to me? Or I don't understand something, but I haven't found any information about it anywhere.

I have encountered other strange problems for which it is necessary to create a ticket in the right way, but I do not want to waste my energy on this.

A channel is displayed that is not known how to close (and is there actually this channel?). I only see channel balances. There is no other information besides this, there are no interface buttons to close the channel cooperatively.

I can't send funds to another wallet. I have tried many nodes to receive, including the popular wallet Wallet of Satoshi. And everywhere Mutiny gives an error - no route found. That is, my funds are on the node's side https://amboss.space/node/03aefa43fbb4009b21a4129d05953974b7dbabbbfb511921410080860fca8ee1f0 , from which invoices were issued.

From everything I conclude that at the moment I can not withdraw my funds (on-chain or lightning) in any way. I recommend everyone to use this strange "self-custody" wallet with great caution.
I haven't looked at its code, but it looks like it's a scam project.


update build.yml : execute on PR too

Similar to what Wave and Nextflow do:

https://github.com/seqeralabs/wave/blob/master/.github/workflows/build.yml
https://github.com/nextflow-io/nextflow/blob/master/.github/workflows/build.yml

And to what I implemented yesterday for wave-cli and fusion.
What I had noticed is that PRs with single commit would not trigger the workflows, resulting for instance in skipped CI tests.

UPDATE: in the Checks tab, I see that the with this modification,

Lint markdown gets executed twice (undesirable)
"Tower CLI continuous build" gets executed, which was not the case before

Please feel free to review / ditch as needed.
Hope this can help team :-)


Attestation upon worker failure

Currently, attestation is only executed as part of the initSQLContext call, which is only called once. Therefore, if a worker fails and a new worker is spawned, the driver will not re-attest the worker. This is still secure since, without attestation, the enclave cannot get the client's private key, but will trigger an exception when it tries to process data.

Addressed in #170.


title truncated

The string text of the title got truncated somehow at the end of the 22nd character
The width of the custom stage is 1280. More than enough space.
I wonder why ?

Oh yes it is a bug (sortof) the tile is actually a lable which has some specific width.
However, the label can be resized as you may wish through its ID


[LeftNav] Rename onChangeRequest to onRequestChange

The goal is to make the property name coherent with the Dialog component.
In the Dialog component we have an onRequestClose property.
@subjectix Are you ok with this change?

Yes absolutely :+1: :+1:
Thanks.


Docs: Updated/Fixed Developer guide for Music Command

Resolves #28
Updated to fix the indentation/formatting. Slightly tweak Activity Diagram image size

Coverage remained the same at 89.219% when pulling 20a2092fee71f3339433bf45f29153b69de63b17 on hanselblack:DeveloperGuide into 5c74d2e2664ed6c2b2020d0540cbcefd9887181f on CS2103AUG2017-W11-B4:master.

Coverage remained the same at 89.219% when pulling 410f92a5097f8c7f6ac10f7565ab84c86ee2036a on hanselblack:DeveloperGuide into 5c74d2e2664ed6c2b2020d0540cbcefd9887181f on CS2103AUG2017-W11-B4:master.


Ability to override getter/setter for specific model properties?

Hi,
Is there a way to override a getter/setter for specific properties on a model? My use case is that for a property like email address, I want to ensure that when it is set or retrieved, it always sets/retrieves the email in lowercase so I can do a valid comparison.
Is this possible?
Thanks!
James

Hi @jamesdixon, this is not core but I've written some code for myself that does this. Hopefully it will give you an idea of how it should work.
I've just compiled this from CoffeeScript and cleaned up and simplified the output, but it isn't tested. Hopefully you'll get the idea.
// processors.coffee
// Helper methods for common data transformations.

var isAbsoluteUrl = require('is-absolute-url');
var _ = require('lodash-node');

module.exports = {
  trim: function(string) {
    if (!_.isEmpty(string)) {
      return string.trim();
    }
  },
  absoluteUrl: function(urlString) {
    var trimmed;
    if (_.isEmpty(urlString)) {
      return urlString;
    }
    trimmed = urlString.trim();
    if (isAbsoluteUrl(trimmed)) {
      return trimmed;
    } else {
      return "http://" + trimmed;
    }
  },
  lowerCase: function(string) {
    if (!_.isEmpty(string)) {
      return string.toLowerCase();
    }
  }
};

// processor-plugin.js
// A plugin that adds processor support for Model.

var processors = require('./processors');

module.exports = function(bookshelf) {
  var proto = bookshelf.Model.prototype;

  bookshelf.Model = bookshelf.Model.extend({
    set: function(key, value, options) {
      var processedKey, self = this;

      if (key == null) return this;

      if (this.processors != null) {
        if (_.isObject(key)) {
          processedKey = _.transform(key, function(result, value, key) {
              result[key] = self.processAttribute(value, key);
            };
          });
          return proto.set.call(this, processedKey, value, options);
        }
        value = this.processAttribute(value, key);
      }
      return proto.set.call(this, key, value, options);
    },

    processAttribute: function(value, key) {
      var processes;
      if (this.processors != null && this.processors[key] != null) {
        processes = this.processors[key]
      }
      if (_.isEmpty(processes)) {
        return value;
      }
      if (!_.isArray(processes)) {
        processes = [processes];
      }
      _.each(processes, function(process) {
        var func;
        if (_.isString(process)) {
          func = processors[process];
          if (func == null) {
            throw new Error("Unknown processor `" + process + "`");
          }
        } else {
          func = process;
        }
        value = func(value);
      });
      return value;
    }
  });
};

// bookshelf.js

// init knex etc...

var bookshelf = Bookshelf(knex);
bookshelf.plugin('./processer-plugin');
module.exports = bookshelf;

// user.js
// Example use.

var bookshelf = require('./bookshelf')

module.exports = bookshelf.Model.extend({
  tableName: 'users'
  processors: {
    email: ['lowercase', 'trim'],
    homepage: 'absoluteUrl',
    name: 'trim',
    age: function(age) { return Math.max(0, age); }
  }
});

I'd actually like to see this tested and added as a core plugin, since it seems useful. Let's leave this issue open in case someone wants to do it.

Note that the above code only changes "setters", but so long as all your data is entering the DB through Bookshelf you should be fine.

@rhys-vdw this is fantastic! going to give it a shot. thank you!

@jamesdixon If there are any bugs tell me and I'll update the comment for future reference.

@rhys-vdw will do!

The project leadership of Bookshelf recently changed. In an effort to advance the project we close all issues older than one year.
If you think this issue needs to be re-evaluated please post a comment on why this is still important and we will re-open it.
We also started an open discussion about the future of Bookshelf.js here https://github.com/bookshelf/bookshelf/issues/1600. Feel free to drop by and give us your opinion.
Let's make Bookshelf great again


FAISS similarity_search not work

hi, i am trying use FAISS to do similarity_search, but it failed with errs:

db.similarity_search("123")
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.10/site-packages/langchain/vectorstores/faiss.py", line 207, in similarity_search
docs_and_scores = self.similarity_search_with_score(query, k)
File "/usr/local/lib/python3.10/site-packages/langchain/vectorstores/faiss.py", line 176, in similarity_search_with_score
embedding = self.embedding_function(query)
File "/usr/local/lib/python3.10/site-packages/langchain/embeddings/openai.py", line 279, in embed_query
embedding = self._embedding_func(text, engine=self.query_model_name)
File "/usr/local/lib/python3.10/site-packages/langchain/embeddings/openai.py", line 235, in _embedding_func
return self._get_len_safe_embeddings([text], engine=engine)[0]
File "/usr/local/lib/python3.10/site-packages/langchain/embeddings/openai.py", line 193, in _get_len_safe_embeddings
encoding = tiktoken.model.encoding_for_model(self.document_model_name)
AttributeError: module 'tiktoken' has no attribute 'model'

anyone can give me some advise?

Probably you should reinstall tiktoken

Probably you should reinstall tiktoken

Thanks, this worked! Upgrading and downgrading didn't seem to help.


Deploy solution outside master account

Issue #, if available:
Description of changes:
Deploys the solution into a workload account instead of the organizations master account, and uses a least-privilege cross-account role as per AWS best practice.
Also adds AWS account name to alerts not just account ID.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Yep seeing the same thing. TBH given the nature of the notifications I'd be happy extending the invocation schedule out to 80-90 minutes to let the function go cold and force a new session each time, but it should certainly be configurable


feat(root): add action to check for tasks in PR description not compl…

Summary of the changes
Added 'check-tasks-completed' action to check there are no tasks in PR description which are not completed.
I have tested this by adding an uncompleted task to a PR description. The action fails, but then when you click on the checkbox on the task to mark it as done, it runs again and passes (and vice versa).
Related issue
#866

Approved. Presume we won't close this issue until we've added the DoD?


Shift cursor focus back to first group after second is closed without saving

VSCode Version: Version 1.28.1 (1.28.1)
OS Version: macOS 10.13.6 (17G65)

Steps to Reproduce:

Open two groups. In the second one, type something, then close it, then choose Don't save.
Cursor will not be moved back to the first group. Whereas if you close the second group when its only file has no text, then the cursor moves back to the first group, as it probably should.

Does this issue occur when all extensions are disabled?: Yes

Good catch 👍


The data has not been updated since June 5

Hi, thank you for keeping the project running.
I warn you that the data has not been updated since June 5.
According to the guide, if it takes three or more days to update, should be notified.
Regards
David

Should be working now. Thanks


Not able to apply CA policy to app using Linked sign-on

Cannot apply CA policies to applications utilizing linked sign-on. This should be noted so that customers understand this limitation and why.

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

ID: e5b78894-32c2-6712-6699-f3c87d40b1d7
Version Independent ID: dd791c15-d43b-b203-a93f-a8ec33c519b0
Content: Cloud apps or actions in Conditional Access policy - Azure Active Directory
Content Source: articles/active-directory/conditional-access/concept-conditional-access-cloud-apps.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

@manorris6
Thanks for your feedback!
The doc does state that a Conditional Access Policy cannot be applied to a client (public/private) application.

Link
Can you confirm if you'd like this to be more clear? Or if you want to make sure Linked sign-on is included in that note?

@JamesTran-MSFT
Ideally a quick mention of Linked sign-on specifically would help. If someone is setting up Linked sign-on for the first time and simply following the available documentation to configure it, they very likely will not know that public/private client is referring to their scenario.
In the current case that prompted this request, MFA is required for all users signing into the application. The customer was then under the impression that it was not possible due to there being no mention in the CA article or artcle that outlines Linked sign-on of this limitation in regards to Linked sign-on.

@manorris6
Thank you for the clarification!
I'll assign this issue to the author so they can decide where to place your doc-update request.

The linked sign-on document already covers this. https://docs.microsoft.com/azure/active-directory/manage-apps/configure-linked-sign-on#before-you-begin
#please-close

The linked sign-on document already covers this. https://docs.microsoft.com/azure/active-directory/manage-apps/configure-linked-sign-on#before-you-begin
#please-close


[DONOT MERGE]: Proof of Concept Anvil Default small widget vertical alignment

Proof of concept for widget vertical alignment

Changes

Added anvil-widget-wrapper class to AnvilFlexComponent
Removed min-height from AnvilFlexComponent and default to "var(--sizing-12)"
Wrapped FlexLayout in styled component, and used the css has and not functions to conditionally add margins to other widgets if any of the anvil-widget-wrapper within have a label.
Updated default min height of WDSMenuButtonWidget
Added a hardcoded error message to the input widgets so that they don't go beyond 2 lines of text. (did not use line-clamp)

/build-deploy-preview skip-tests=true


runQuery argument fails when there are multiple steps with the same name

It's a corner case, but I thought it was worth reporting. When you have 2+ steps with the same name, the runQuery argument only looks for the specified query within the first step. It fails to find a query that is in the second step, for example.

Thanks for flagging! We should probably raise an "ambiguous runQuery argument" error?

I like the idea of an ambiguous runQuery exception!

I'd raise this error only when the step + query combination doesn't point to a single query. In my use case, even though I had multiple steps with the same name, the query name was unique. I'd expect SQL runner to run that query.
Does that make sense?

I guess I would argue that a step should be unique - and that if you had two or more steps with the same name but different operations that you are introducing ambiguity and debug difficulty.  If a step does fundamentally different things then it should have a different name otherwise the step name has lost its meaning.
All that being said I would love to hear the use-case for having multiple steps with the same name?

I used it to run queries that belong to the same context, but are not independent and can't be run in parallel. Quick example is the session data model. Guess it makes sense to have different names, though.
- :name: 02-sessions
    :queries:
      - :name: 02-01-basic
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-01-basic.sql
  - :name: 02-sessions
    :queries:
      - :name: 02-02-geo
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-02-geo.sql
      - :name: 02-03-landing-page
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-03-landing-page.sql
      - :name: 02-04-exit-page
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-04-exit-page.sql
      - :name: 02-05-source
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-05-source.sql
      - :name: 02-06-tech
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-06-tech.sql
      - :name: 02-07-getninjas-data
        :file: gn-snowplow/5-data-modeling/sql-runner/redshift/sql/web-recalculate/02-sessions/02-07-getninjas-data.sql


Absent link name should be omitted

If links name field is NULL, it should be omitted, not shown as "null".

Fixed in #14


How to disable express static middleware?

Hello!
I'm sorry for posting the question here, but still, is it possible to disable Express's static middleware?
There is a question on SO, but it's still has no answer:
http://stackoverflow.com/questions/27338521/disable-sails-js-static-asset-serving
I can't see this middleware in http.middleware.order, probably it's enabled internally somehow?
Thank you!

Answered on SO.  The www middleware serves the static assets, and is documented on the Sails Middleware page.

Oh, sorry, my bad. I think I were just confused by the name )
Thank @sgress454 you for your great contribution and your help!

It'd be nice if you could enable / disable specific middleware without having to overwrite everything.


Customizing control loop frequency

Hi there,
recently, I was trying to increase the control loop frequency in both gazebo and our Unitree robot A1. I found in the software guide that the maximum real-time communication bandwidth is 1kHz. It suddenly occurred to me that in the gazebo codes and even the real-time control codes there are some "sleep" functions called after publishing the joint commands (for instance, the "usleep(1000)" in function "sendServoCmd()" in "unitree_controller/src/body.cpp" for simulation, and the "loop_rate.sleep()" in "unitree_legged_real/src/exe/position_mode.cpp" for real robot).
I know such "sleep" functions are meant to be used to set the control loop at the desired cycle. However, the time for one cycle is instead increased after using the "sleep" function (for example, I want the control loop to be run at 1kHz. But using sleep function reduces the frequency to less than half of it). So I was wondering:

Why do you still use these functions? To make the command-sending more stable?
If I want to increase the frequency, what should I do? Can I just command out the "usleep" function in gazebo, and also the "sleep" functions in control node + LCM server node for controlling the real robot with ROS?

Thanks in advance!
Best

You can definitely remove the sleep function and use ros rate function and use ros rate and its corresponding sleep function. If you don't use any sleep or ros rate functions, the commands are sent to robot as fast as possible and this is not what you want for your control rate. When the computation load in the loop exceeds the desired loop time, the loop will "stuck" there until the computation finishes.  It depends on your use case to see if your controller still works if you have some iterations that takes longer than your loop rate but the ROS rate function needs to wait for your thing to finish before it impose the desired control rate


Editor: page title needs correcting

page title (the one that shows in browser title bar) says "Sinopia Homepage". Change to "Sinopia BFF Editor"

I would say we should just use "Sinopia Editor" in the browser title  bar as BFF is just our shorthand for the BFE.

That's fine but then we need to change the Homepage header link also.


Tabview handle visibility for a tabitem

Is it possible to handle visibility for a tabitem. For example I have 5 tabs with different content and after some action I need to set one tab visibility to false. Is this possible?

It might be a good feature for TabItem.
Currently you can achieve it by defining custom Header Template:
  <material:TabItem Title="Tab Three">
      <material:TabItem.HeaderTemplate>
          <DataTemplate>
              <Button
                  Text="{Binding Title}"
                  Command="{Binding Command}"
                  IsVisible="YOUR_VISIBLE_LOGIC">

              </Button>
          </DataTemplate>
      </material:TabItem.HeaderTemplate>
          <material:TabItem.ContentTemplate>
              <DataTemplate>
                  <!-- Content -->
              </DataTemplate>
          </material:TabItem.ContentTemplate>
      </material:TabItem>

It might be a good feature for TabItem.
Currently you can achieve it by defining custom Header Template:
  <material:TabItem Title="Tab Three">
      <material:TabItem.HeaderTemplate>
          <DataTemplate>
              <Button
                  Text="{Binding Title}"
                  Command="{Binding Command}"
                  IsVisible="YOUR_VISIBLE_LOGIC">

              </Button>
          </DataTemplate>
      </material:TabItem.HeaderTemplate>
          <material:TabItem.ContentTemplate>
              <DataTemplate>
                  <!-- Content -->
              </DataTemplate>
          </material:TabItem.ContentTemplate>
      </material:TabItem>

@enisn  This will still consume the space utilized by the hidden tab

You're right,
I'll implement this feature in the next version
I can't suggest any better workaround except adding & removing tab with code

You're right,
I'll implement this feature in the next version
I can't suggest any better workaround except adding & removing tab with code

Yes. Removing tabs from code behind works for now. :)

@enisn
I see the new version got this issue fix by adding IsVisible property.
But still I could see the space consumed by hidden tab. Is this expected?

Is there a way to add tabs from the code behind? Like akhilvswoodplc said, you can still see the space when it's not visible. I tried removing in the code behind which works, but when trying to re-add a tab, it also just adds a blank space.
In the first option, I tried both insert lines and they just add a blank space. The second option does the same. Binding IsVisible in the XAML did not seem to do anything.
// option 1
if (message.Value)
{
    if (TabItems[2].Title != EvaluationsTab.Title)
    {
        TabItems.Insert(2, EvaluationsTab);
        // TabItems.Insert(2, new UraniumUI.Material.Controls.TabItem() { Title = "Test" });
    }
}
else
    TabItems.RemoveAt(2);

// option 2
if (message.Value)
    TabItems[2].IsVisible = true;
else
    TabItems[2].IsVisible = false;


Filter module improvements

Here's a list of improvements for the filter module:

Add a close icon.
Change the color from surface/secondary to surface/brand-darkest.
Increase the corner radius from 4px to 8px

Design mockup - https://www.figma.com/design/MxA95ZHK5NqGX4ptFQljRJ/⭐-Design-System-3.0?node-id=11252-150699&t=t0yg59Yalnk9uaCM-11

@opoliarush  please complete the review with Ion and close if done


Add integration tests

b/237011649

Awesome! So great to get this finally in!  This looks good but I didn't look into why the tests are failing.


3090 Speed

Im just trying to understand the speed chart and if I'm getting about what I should expect for a 3090.
A 4090 would be getting 01:18s. Im Guessing that means 1min 18sec where Im getting 1min 35sec so 82.11% of the same performance.

While at 768 Im getting 4min 39 sec compared to the 4090s so 56.63% of the same performance.

Great job on the Ruyi-GUI! Well done!
Regarding execution speed, the screenshots do show a significant discrepancy, which confuses me a bit.
There could be many factors affecting execution speed, and I suspect it may be related to the GPU's cache size. For instance, when generating 768 resolution videos, the GPU cache required by the RTX 3090 for calculating Attention might exceed the requirements for using FlashAttention in Torch's scaled_dot_product_attention. As a result, this optimization method may not have been utilized, leading to slower computation speeds.
If possible, could you check whether FlashAttention was enabled on the RTX 3090 when generating 768 resolution videos?

You are correct. Looking in the log I can see
"UserWarning: 1Torch was not compiled with flash attention."
Iv looked for a package for windows 11 that has it compiled but there doesn't seem to be any available and trying to compile it myself ends up in a dependency loop. Altho even with that warning iv managed to run 512, 120 frames  normal mode 0 steps where the 4090 chart says --- for OOM. It does take a hour tho lol.
I tried some other environment builds and so far CU12.4 and Torch24 give the best performance. For 768 resolution 11.56% better.

I made a github repo for the GUI https://github.com/bmgjet/Ruyi-GUI
Altho I wont be making any more changes to it since main reason I wanted it was so I could make a queue of a few jobs to run over night while I wasn't on the computer and it serves it purpose for that.

Yes, the running environment is indeed very complex, especially when it comes to compilation or acceleration. In different running environments, I often notice variations in execution time and memory peaks, but I can't always find the reasons. Therefore, charts may really only serve as references, lol.
At the same time, thank you for creating Ruyi-GUI; I think it's a fantastic project. I will ask my teammates if we can add a community support section in the README and include Ruyi-GUI in it. Of course, all of this would require your approval.

You can use Ryui-GUI how ever you want. The code is not the nicest since Iv only spent an hour and a bit on it.
Maybe a more easier to understand performance metric would be s/it and memory use.
I just finished a run at "512 resolution, 120 frames, normal +7" that ran at 38.26s/it using 23195mb taking 15min 57sec.
So 55.39% the performance of the 4090 in the chart.
If you want me to run the most popular settings to build performance expectation chart I can.
Looking at the spec difference of the 3090 and 4090 I'm probably getting what I should be even with "1Torch was not compiled with flash attention" warning. Since with the big clock speed advantage and a lot more cores on the 4090 it should be about twice the speed of a 3090.

Yes, we are indeed missing data for the RTX 3090. If you could help us improve the performance expectation chart, that would be fantastic! Thank you very much for your assistance.
We use minutes as the unit in our tables because the "s/it" metric only reflects the processing time of the Transformer, while the model requires additional time to execute the VAE. Depending on the video resolution and frame rate, this can add anywhere from several seconds to a few minutes of processing time.
Of course, using "s/it" as a reference can still provide a rough estimate of the expected time, and I believe that’s perfectly acceptable as well.

I don't know how much the other hardware in the computer also effects the performance but I queued up the what Id consider the best settings to use since I don't have the time to run every setting thats listed in the chart.
Also not sure how comparable the times would be since I used a timer my GUI that times between starting the command and the .mp4 file being saved and it averaged the s/it reported. So I could just pull the info from the log.txt.
Looking at the time vs s/it they do seem very close other then at 768 res 120 frames which I suspect the timer was also getting locked up when windows UI was locking up as it swapped vram into system ram.
Here is what I have.
CPU 7950X
Ram 64GB 6200mhz, 30,32,32
NVME 990 Pro
3090 (Water Cooled 500W PL, +1000mhz Vram) Sits about 2.1ghz on core.
Memory usage reported from GPUz logs.
Torch was not compiled with flash attention
Windows 11 Using Python Environment from Forge (webui_forge_cu124_torch24.7z) Feb 5 2024
512
24 frames,normal 0 - 18117mb 1:32s - 3.80s/it
48 frames,normal 0 - 19995mb 4:06s - 9.98s/it
72 frames,normal 0 - 22133mb 9:57s - 23.88s/it
96 frames,normal 10 - 22200mb  12:51 - 30.84s/it
120 frames,normal 7 - 23195mb  15:57 - 38.26s/it
768
24 frames,normal 0 - 22105mb 4:07s - 9.94s/it
48 frames,normal 7 - 22195mb 14:34s - 34.98s/it
72 frames,lowmem 0 - 17998mb 38:29s - 91.99s/it
96 frames,lowmem 0 - 23000mb 1:04:16s - 153.74s/it
120 frames,lowmem 0 - 28195mb 5:29:54s - 797.28s/it (froze system during vram overflows for a few sec each pass)

Thank you for your assistance ~
I think this method of calculating time is reasonable. Initially, I misunderstood that the s/it value was derived from the tqdm progress bar output in the predict_i2v.py script, which only accounts for the time taken by the transformer, and is therefore usually smaller.
I have updated your results on the GitHub page, which can be viewed at gpu_memory_appendix.md.

Left it running over night with some 120 frame 768 res settings.
Looks like it doesnt crash going over the max memory of the GPU it just gets way way slower.
So with 120 frames 768 res the fastest setting is.
low_gpu_mode + 10 steps
This has it using 23222mb, 1:25:02s - 207.41s/it
Which is way better then 5:29:54s - 797.28s/it using low_gpu_mode + 0
Ill try. 120 frames 896 res low_gpu_mode + 1 steps next.
Which you have as 55:50s on the 4090. Im going to guess thats going to be 3 hours on a 3090.

Thank you for your testing. I'm glad to see that the execution time has been reduced for 768 resolution and 120 frames.
I will update the results after testing 120 frames with 896 resolution in low GPU mode and 1 step. I hope it can be done within 2 hours.

What did you get on your 4090 with that setting,
I just tried 120 frames 896 resolution with low memory mode +1 step.
Took 2:29:45 - 356.01s/it

About 55 minutes, using 120 frames 896 resolution low memory mode +1 step.
Based on that, I initially thought it might take around 2 hours on the 3090. In comparison to the results at 768 resolution (with low memory mode and 10 steps), the 4090 takes about 33 minutes, while the 3090 takes approximately 85 minutes. Therefore, 2 hours and 30 minutes might be a more reasonable estimate.


chore: bump actions/checkout to v3

Summary:
A recent Rebase run gave following warning:

Node.js 12 actions are deprecated. Please update the following actions to use Node.js 16: actions/checkout@v2. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.

So, it makes sense to upgrade to actions/checkout@v3.
Changelog:
[GENERAL] [SECURITY] - Bump actions/checkout to v3
Test Plan:

ci should be green + the /rebase command works as usual.

Ping @cortinico since you recently committed to this file  ;)

I'll test the /rebase once the ci is green.

🤦♂ it doesn't ignore code syntax.. trivial equality check ;)


[2.0.0-rc.2] when use v-for with  v-if and v-else, it will render square of the expected number

Vue.js version
2.0.0-rc.2
Reproduction Link
https://jsfiddle.net/WhiteCusp/frfekkf5/3/
Steps to reproduce
just run
What is Expected?
0-aaaa
1-bbbb
2-cccc
What is actually happening?
0-aaaa
1-bbbb
2-cccc
0-aaaa
1-bbbb
2-cccc
0-aaaa
1-bbbb
2-cccc

This looks like a bug to me.
Workaround

This is not a bug, you are doing twice the same loop, one inside the other:

{{item}}

    <component
      v-else
      :is="customItem"
      v-for="(item, index) in data"
      :item="item"
      :index="index">
    </component>

+1 If we use v-if="customItem" instead of v-else it works fine. Looks like it comes from the v-else directive.
DEMO

v-for followed by an element using v-else does not play nice together, because v-if relys on the previous sibling elements v-if result - but there can be more than one, as v-if is evaluated after v-for so evaluated for each item in the loop.
This can lead to unexpected behaviour.

You can surround the element with a template and use the v-if/v-else there:
https://jsfiddle.net/frfekkf5/7/


Add swift package manager support for Xcode 11

When installing over CocoaPods we get warnings, maybe we should introduce some compiler flag for CocoaPods.

@mkj-is co zkusit třeba
spec.exclude_files = [ 'target_files/target1/**', 'target_files/target3/**' ]
https://guides.cocoapods.org/syntax/podspec.html#exclude_files


update signBulkOrder to take in extraCheap param, add test

Codecov Report
Base: 99.01% // Head: 99.05% // Increases project coverage by +0.03% :tada:

Coverage data is based on head (94655db) compared to base (ff80f9b).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##              1.2     #898      +/-   ##
==========================================
+ Coverage   99.01%   99.05%   +0.03%
==========================================
  Files          47       47
  Lines        2642     2642
  Branches      391      391
==========================================
+ Hits         2616     2617       +1
  Misses         25       25
+ Partials        1        0       -1

Flag
Coverage Δ

foundry
74.26% <ø> (ø)

production
100.00% <ø> (ø)

reference
99.83% <ø> (+0.08%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

reference/lib/ReferenceVerifiers.sol
100.00% <0.00%> (+1.92%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Set fade in per brick?

I would like to set the fade in effect per brick. For example I would only like to add the fade in effect to the call to action brick. Is this possible?

Not possible right now and I do not intend to add that. Sorry.


[Compute] Update of Sku APIs

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Howdy, before I get started in earnest looking at this, am I correct in assuming that this is largely a copy of the 2017-03-30 API version? If so, I will focus my review on the second and third commits of this PR.

@marstr you are right -  we requested Hyonho to split the PR into multiple commits. The second commit shows the diff between compute.json swagger of 2017-03-30 and 2017-12-01. The third commit is the new SKU API spec from compute team.

Thanks for confirming @anuchandy, mind sending me a link to the former PR if there are other relevant comments?

@marstr the previous PR is https://github.com/Azure/azure-rest-api-specs/pull/1982, which is still open, need to be closed in favor of this PR. Actually the request to split previous PR into multiple commits was provided over email, looped you into that email thread.

@ravbhatnagar could you take a look please?

New compute spec API version 2017-12-01. Please see the second commit for the diff between this and previous api version

Brand new SKU swagger

Chatted with Anu offline, moving him to be the assignee because he has more context on these changes.

@hyonholee I pushed the tag package-compute-2017-12 to your PR, since I need a tag without ContainerService for @yugangw-msft

@hyonholee Is there any plan to have disks and runCommand in 2017-12-01? For multiapi versionning, it's important to know. Thanks.

@lmazuel There isn't a plan to introduce a new API version for disks or runCommand at this time.

SKU api changes looks good. Signing off!

Compute team will open another PR with explicit MSI removed from the VM model, hence closing this.


[d3d9] Tweak VCache query results

I'm not entirely sure which games relied on this being exposed anyway, but here's a bit more insight into how this obscure query is supposed to work: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/d3d9types/ns-d3d9types-_d3ddevinfo_vcache
Also this is what you get with native 45.23 Nvidia drivers, on Windows XP, with a GeForce 4:
Listing VCache query result:
  ~ vCache Pattern: CACH
  ~ vCache OptMethod: 1
  ~ vCache CacheSize: 16
  ~ vCache MagicNumber: 7

dxvk currently does:
Listing VCache query result:
  ~ vCache Pattern: HCAC
  ~ vCache OptMethod: 1
  ~ vCache CacheSize: 24
  ~ vCache MagicNumber: 20

Since I'm guessing CacheSize refers to the number of internal cached buffers the driver holds, it's probably safe to assume a d3d9-era card reported somewhat higher numbers (hence the doubling in this PR).
As for the :magic_wand: number, allegedly:

Typically, the best values are near CacheSize/2

... whatever that means. So copied over native behavior of CacheSize/2 - 1 here.
As far as I can tell, at least with d3d8, the results are entirely static, so this should be good enough.
I'll undraft this once I figure out what native drivers report these days.

The ATI/AMD results are in:
Native 8.65 ATI drivers, on Windows XP, with a HD 4650:
Listing VCache query result:
  - vCache Pattern:
  - vCache OptMethod: 0
  - vCache CacheSize: 0
  - vCache MagicNumber: 0

Native modern AMD, thanks to @Blisto91:
Listing VCache query result:
  - vCache Pattern:
  - vCache OptMethod: 0
  - vCache CacheSize: 0
  - vCache MagicNumber: 0

Glad to see some consistency. This would indicate the call succeeds, but the d3d8 specs are a bit wonky, in that the call should return S_FALSE if the query is not available (which is NOT a failure code), so d3d9 is probably right to report it as unsupported.
I'll wait until @Blisto91 can test native Nvidia, just to be sure we're not too far off the mark with my assumptions.

Interestingly (thanks to @K0bin for the results), modern Nvidia also 0s things out, at least in d3d8:
Listing VCache query result:
  ~ Response: S_FALSE
  ~ Pattern: 0
  ~ OptMethod: 0
  ~ CacheSize: 0
  ~ MagicNumber: 0

Guess I'll check with my Nvidia FX 5500 and more recent drivers to see if the XP numbers change in any way.

I've checked on the FX 5500 (the most modern Nvidia AGP card I have), with the latest drivers that released for XP before Vista came into the picture (namely 93.71), and the query always returns:
Listing VCache query result:
  ~ vCache Pattern: CACH
  ~ vCache OptMethod: 1
  ~ vCache CacheSize: 16
  ~ vCache MagicNumber: 7

Seems to be a general default, so let's stick to that.


import {xxx} from 'containers' causes weird behaviors during SSR

I recently went into a problem that server side rendering stopped working.
Components were all undefined in the router on node, but everything was fine on client.
After spending about two hours, I finally figured out that it was the
import {xxx} from 'containers'

'containers' happened to be a package's name which I didn't know I had installed, due to the flattened structure of node_modules in npm 3+, and it overrided my components. :(
Changing 'containers' into './containers' fixed the issue
Shall we change all the import paths to avoid unexpected behaviors on SSR?

I had same problem with importing utils/url.js had to change to ./utils/url
import {mapUrl} from 'utils/url.js';

https://github.com/erikras/react-redux-universal-hot-example/blob/master/api/api.js#L6
I think it should be corrected.

If you start using relative paths again you loose the convenience of the webpack aliases, where you don't have to think where components / containers / utils etc is in relation to your current file. But this makes your code prone to naming conflicts like you discovered. That's the price you pay for that convenience I guess. Either be more careful or write relative paths everywhere.

@0x80 in thise case the api is being run outside of webpack configuration and so i think it is valid that the path should be ./utils/url. It works without issue this way where I've changed it in my npm module branch: https://github.com/bdefore/react-redux-universal-hot-example/blob/npm-module/src/api/api.js#L5
@xiaobuu as for the case with containers vs ./containers, i think it is valid to keep it as containers and try to avoid having a naming collision.

@bdefore I agree