Google's "escaped_fragment" is not recommended anymore

The README contains this line:
Prerender adheres to google's _escaped_fragment_ proposal, which we recommend you use.
As I understand this is no longer valid. Google has deprecated their old AJAX crawling scheme on October 14, 2015: https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
So Google does not need the _escaped_fragment_ proposal anymore, right?

Google still crawls using the escaped fragment crawling protocol and we still recommend to serve prerendered pages to Google using it.
Some of our customers have tried to let Google execute their javascript and they have found that Google slows their crawl speed way down when executing the javascript themselves. So for medium/large websites that need to be crawled a lot, it's still recommended to serve prerendered pages to Google in order for Google to crawl through your website at a very fast rate.
Feel free to reopen if you have any questions about that.

Yeah with Google having deprecated escaped_fragment which you seem to be so proud to have adhered to and the first sentence "Google, Facebook, Twitter, Yahoo, and Bing are constantly trying to view your website... but they don't execute javascript." when Google says that actually now it's okay, that Googlebot can use JS, it's very confusing for me.
And so the bottom line is, based on your message, that now prerender.io is useful with Google (which has pretty much a monopoly in the country I'm about to publish my website) only if you have a website large enough because Google may slow down the crawl rate when it has to execute Javascript. But then don't you think you should say that prerender.io is now useful (for Google I don't know for others) for this very precise use case instead of saying that Google cannot execute Javascript ?

Yeah we need to change that. I'm not aware of any published tests showing how well Google can execute and index javascript heavy Single Page Applications of different sizes of websites. Most things I've seen are just one-off tests of a few pages. For that reason, and since Google still crawls the _escaped_fragment_ protocol, we still recommend you use it. Feel free to test Google's execution of javascript on your site and report back!

Yeah okay sure. Javascript support by bots (notably by the one of bing) seems to me to be a very important subject especially now that client side support is more and more used and yet I struggle to fetch informations about it... The website I'm about to launch is most likely not going to be updated a lot. But from my understanding I could still need to use a prerender service depending on Google/Bing' (even though it's a minor web browser I may wanna support it) JS support. Am I right about the current state of JS SEO ?

That's correct. Google is working towards complete javascript execution/indexation but none of the other search engines or social networks seem to be executing javascript for SPAs yet. Bing can execute some javascript but we haven't seen them index any javascript frameworks correctly yet without Prerender.

Oh okay. I've been struggling finding informations about this.

Running 100+ websites on our platform all entirely built with Angular JS and using Prerender and i can confirm that we have great SEO results currently with the prerender service and terrible results without it.
It is still definitely the best approach outside of serverside rendering

How do I remove      ?escaped_fragment=   from the URL of my website ,please thanks .

Just remove the <meta name="fragment" content="!"> tag from your pages and Google won't request the ?_escaped_fragment_= URLs anymore.

escaped_fragment is deprecated
https://developers.google.com/search/docs/ajax-crawling/docs/specification


Support 3.9

Much of this came from the conda-forge blist-feedstock patches once I stumbled across them, thanks to @h-vetinari for that
This addresses a handful of open issues, some of which have fixes in other trees and/or have open PRs here
Overlapping PRs: #92 , #91, #85 (I think #85 may break 2.x but I didn't look too thoroughly)
Issues that it should fix: #81 , #79, #90,
Because there are so many overlapping PRs I don't expect you to sift through this- you may just want to close it. I'm going to keep my fork+branch and use that for now, I needed something for ppc64le system with Python3.9.5 which is how I ended up going down this road. I figured I might as well send what I have upstream (even if it's an amalgamation of things that already have PRs)
The summary:

Fix import breakage on 3.9 as well as soft-fails (DeprecationWarning) on >3, <3.9 - applies to some tests, the package init and the _sortedlist module
Changes required for 3.9 due to PEP-0620 changes; taken from https://github.com/conda-forge/blist-feedstock
Changes for PEP-479 from conda-forge blist-feedstock patches
Remove unnecessary preprocessor macros, from conda-forge blist-feedstock patches

Thanks for this project, it's very nice having something as a drop-in replacement for list for cases where numpy arrays don't quite make sense

Thanks for tagging me here. Unfortunately I believe this repo is completely dead - I've tried to keep up with making it compatible for conda-forge, but patching in new python version support is kind of a gray area I'd normally try to avoid in packaging. The few projects I knew that depended on it have dropped this dependency due to the lack of updates, so it all looks very moribund to me.
As such, I don't care too much what you do here, but I'll just note that I'd have considered it "cleaner" not to rebrand my patches (even though you do reference them), but just take them as-is and then layer your changes on top.

Thanks for tagging me here. Unfortunately I believe this repo is completely dead - I've tried to keep up with making it compatible for conda-forge, but patching in new python version support is kind of a gray area I'd normally try to avoid in packaging. The few projects I knew that depended on it have dropped this dependency due to the lack of updates, so it all looks very moribund to me.

Understood- I entered an issue about a week ago here to confirm the project was unmaintained by he replied that he was in fact still maintaining it- which is why I decided to send these upstream. It's evident of course that 3.9 is not supported- which is understandable, since relatively few projects are using 3.9 and I'm sure development for this project is not funded

As such, I don't care too much what you do here, but I'll just note that I'd have considered it "cleaner" not to rebrand my patches (even though you do reference them), but just take them as-is and then layer your changes on top.

Also understood and agree with you completely. Generally, I wouldn't use the haphazard process I used (applying the patches piecemeal, mixed with some of my own changes) but the way this went was as follows- I know you probably don't care to know all of this, but in case you are curious how this happened-

The blist collections import issues were the first breaking issue when I ported my app to 3.9; these were trivial to fix, so I did that myself, naively thinking that would be the only change required

I did search open open Issues and PRs in this project and a few PRs but none seemed to fix the immediate issue I was having (the imports issue) - some of the PRs broke 2.x compatibility so I decided I would patch it myself, for better or for worse
I failed to search GH to see if there was already a fork with a 3.9 supported branch (d'oh!)

After fixing the imports issue, I then encountered the issue with the GC symbol missing. I determined to be a symptom of PEP-620 and that's when I became aware of your fork / patches
I applied your patch for PEP-620, built the module and tested it in my project and saw no regressions, and thought "all done"
I then realized that would be pretty careless and probably would lead to trouble, so I ran the testsuite like a sane person would. That's when I realized your PEP-479 was probably a good idea :)
At that point, I figured I ought to take all of the patches (which I should have done from the start)

I realize my folly on this is not really any skin off your back but you took the time to provide this guidance and I'm appreciative of that. Regardless of your exact intention (which was clearly meant in general to be constructive) it helped me specifically realize that the entire process was sloppy. Lesson learned
I'm going to close this PR and see if I can just point my constraints at your blist branch for now. As long as it addresses the collections.abc import issues along with the others (I'm sure it does, if you have a user community on 3.9) then it should be better than maintaining my own fork + branch and will reduce confusion
Finally- I'll address a comment to @DanielStutzbach - do you have any interest in bringing the enhancements in blist-feedstock  upstream? If you or @h-vetinari don't think it's constructive then that's no problem, I just thought it would be helpful for any users installing blist via pip, as they will run into the same situation I did when they get to 3.9
If there is any interest in doing this, I'm happy to prepare the PR (in a more generally accepted and thoughtful way, this time)
I'm not volunteering anyone else to do any work
Thanks for your input. Please do not apply this PR- I will leave it open for the moment to see what @DanielStutzbach would like to do

Happy to hear that this project is apparently not dead - though I'll reserve judgement until some PRs actually get merged 🙃
Thanks for taking the time to dispel any doubts (though I didn't have any impression that you're being disingenuous).
If you want to start off of my patches, you could rebase your changes on top of them (I can also push my branch with them to github, if that makes things easier). GH also allows force-pushing on PRs, so you don't necessarily need to open a new one.
In any case, I'd be happy to see the changes merged (incl. the abc-stuff).


Can't Update - Error: HTTP 403: Invalid channel stable

Summary
Can't Update sfdx - HTTP 403: Invalid channel stable

Steps To Reproduce:
No idea. The update command never failed with this error message.
Expected result
sfdx update should update the cli or a least tell exactly what is the problem.
Actual result
sfdx update returns
Error: HTTP 403: Invalid channel stable
Additional information
SFDX CLI Version: 7.81.0 linux-arm64 node-v14.15.0
OS and version: Ubuntu 20

Could this be related?
https://github.com/forcedotcom/cli/issues/389

Could this be related?
https://github.com/forcedotcom/cli/issues/389

@AllanOricil - Thanks for reporting.  Can you please try again and close this issue if it works for you?  I believe I just fixed it.

@AllanOricil - Thanks for reporting.  Can you please try again and close this issue if it works for you?  I believe I just fixed it.

@shetzel the error is still happening

@shetzel the error is still happening

@AllanOricil can you run with --dev-debug? More specifically I want to know what URL it is failing on. Can you access https://developer.salesforce.com/media/salesforce-cli/manifest.json from your terminal?

@AllanOricil can you run with --dev-debug? More specifically I want to know what URL it is failing on. Can you access https://developer.salesforce.com/media/salesforce-cli/manifest.json from your terminal?

Here is the output

And I can access that json from the url

I also noticed that I can't perform Web OAuth flow from that machine. It might be related. After entering the login credentials it stays loading forever a link. And when I refresh that link it says that an error happened.

Here is the output

And I can access that json from the url

I also noticed that I can't perform Web OAuth flow from that machine. It might be related. After entering the login credentials it stays loading forever a link. And when I refresh that link it says that an error happened.

I'm also having this exact problem but from WSL. I actually uninstalled WSL and started from scratch only to run into the issue again. Here is the error from the debug output.

I'm also having this exact problem but from WSL. I actually uninstalled WSL and started from scratch only to run into the issue again. Here is the error from the debug output.

So it looks like wsl-x64 and linux-arm64 are platforms that are not available in the manifest.json file. Does this means these platforms are no longer supported? I've been using the CLI on WSL for quite a long time without any problems.
Here is another issue with the same underlying problem: #610

So it looks like wsl-x64 and linux-arm64 are platforms that are not available in the manifest.json file. Does this means these platforms are no longer supported? I've been using the CLI on WSL for quite a long time without any problems.
Here is another issue with the same underlying problem: #610

So it looks like wsl-x64 and linux-arm64 are platforms that are not available in the manifest.json file. Does this means these platforms are no longer supported? I've been using the CLI on WSL for quite a long time without any problems.

I think they are just missing. Because sfdx is based on Oclif which is written in node which supports these platforms.

So it looks like wsl-x64 and linux-arm64 are platforms that are not available in the manifest.json file. Does this means these platforms are no longer supported? I've been using the CLI on WSL for quite a long time without any problems.

I think they are just missing. Because sfdx is based on Oclif which is written in node which supports these platforms.

@AllanOricil were you able to get Web OAuth flow to work at all? That is my main issue right now. Appears to overlap with #783. I'll try the workaround suggested there.

@AllanOricil were you able to get Web OAuth flow to work at all? That is my main issue right now. Appears to overlap with #783. I'll try the workaround suggested there.

@AllanOricil were you able to get Web OAuth flow to work at all? That is my main issue right now. Appears to overlap with #783. I'll try the workaround suggested there.

No :/

@AllanOricil were you able to get Web OAuth flow to work at all? That is my main issue right now. Appears to overlap with #783. I'll try the workaround suggested there.

No :/

So I moved over to the npm installation method, but the latest version of the CLI also fails to successfully web auth there as well. Downgrading to 7.76.0 seemed to do the trick.

So I moved over to the npm installation method, but the latest version of the CLI also fails to successfully web auth there as well. Downgrading to 7.76.0 seemed to do the trick.

So I moved over to the npm installation method, but the latest version of the CLI also fails to successfully web auth there as well. Downgrading to 7.76.0 seemed to do the trick.

How did you uninstalled the binary? Im not that familiar with linux commands yet haha

So I moved over to the npm installation method, but the latest version of the CLI also fails to successfully web auth there as well. Downgrading to 7.76.0 seemed to do the trick.

How did you uninstalled the binary? Im not that familiar with linux commands yet haha

@amphro  @mrichmon12 I solved my problem uninstalling sfdx-cli completly and installing it again with npm.
I followed this tutorial

@amphro  @mrichmon12 I solved my problem uninstalling sfdx-cli completly and installing it again with npm.
I followed this tutorial

I can't run the update command. It still outputs the same error message

@AllanOricil As per the Salesforce CLI Setup Guide, when installed via npm you should use npm install --global sfdx-cli to update.
If you are looking for a specific version you can specify the version number as well (e.g.: npm install --global<EMAIL_ADDRESS>When I downgraded to 7.76.0 my OAuth issues were resolved.

I can't run the update command. It still outputs the same error message

@AllanOricil As per the Salesforce CLI Setup Guide, when installed via npm you should use npm install --global sfdx-cli to update.
If you are looking for a specific version you can specify the version number as well (e.g.: npm install --global<EMAIL_ADDRESS>When I downgraded to 7.76.0 my OAuth issues were resolved.

The sfdx update doesn't work for npm installs and will output why. The fact that you are still getting that error @AllanOricil implies that it is still running the installer version. What is the output of which sfdx?

The sfdx update doesn't work for npm installs and will output why. The fact that you are still getting that error @AllanOricil implies that it is still running the installer version. What is the output of which sfdx?

The sfdx update doesn't work for npm installs and will output why. The fact that you are still getting that error @AllanOricil implies that it is still running the installer version. What is the output of which sfdx?

@amphro I made sure to have everything uninstalled before installing again with npm. It is running the npm "version".

The sfdx update doesn't work for npm installs and will output why. The fact that you are still getting that error @AllanOricil implies that it is still running the installer version. What is the output of which sfdx?

@amphro I made sure to have everything uninstalled before installing again with npm. It is running the npm "version".

It looks like it must be checking the manifest before indicating it should be updated using npm?
~ sfdx update
sfdx-cli: Updating CLI... !
    Error: HTTP 403: Invalid channel stable
~ which sfdx
/home/mrichmond/.nvm/versions/node/v14.15.4/bin/sfdx

It looks like it must be checking the manifest before indicating it should be updated using npm?
~ sfdx update
sfdx-cli: Updating CLI... !
    Error: HTTP 403: Invalid channel stable
~ which sfdx
/home/mrichmond/.nvm/versions/node/v14.15.4/bin/sfdx

That is odd. It shouldn't even check a channel using npm. The right way to update an npm installed version is to use npm.

That is odd. It shouldn't even check a channel using npm. The right way to update an npm installed version is to use npm.

Can

Can

@amphro any updates on this? I still can't install sfdx on my raspbery pi

I think the auth thing is related to https://github.com/forcedotcom/cli/issues/881 which was bothering win/linux for a while earlier this year.  It's fixed on recent releases--what's running on the pi?

This issue is fixed and I was able to auth to an org on the pi. Thank you. I just had to uninstall sfdx, and then install it again (v7.94)

Seems it is back again
twilio update --dev-debug
» MORE INFO: https://twil.io/cli
twilio-cli: Updating CLI... !
Error: HTTP 403: Invalid channel --dev-debug

@deshartman you should file an issue in the Twilio CLI repo.

@deshartman you should file an issue in the Twilio CLI repo.

🔥


Remove all initializers from static loader arrays

Addition to https://github.com/libsdl-org/SDL_mixer/commit/143b0bbfd50654af667c87143c1a2d69ef80f151
EDIT: As was discussed below, I changed the entire goal of this PR:
C standard gives guarantee they will be NULLed by default:
https://port70.net/~nsz/c/c89/c89-draft.html#3.5.7

If an object that has static storage duration is not initialized explicitly, it is initialized implicitly as if every member that has arithmetic type were assigned 0 and every member that has pointer type were assigned a null pointer constant. If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate.

Actually let's just remove all the static initializers. That way if we change the decoder structures they'll still be zeroed with no additional work.

Actually let's just remove all the static initializers. That way if we change the decoder structures they'll still be zeroed with no additional work.

Do you mean I should remove these initializers and just add the SDL_memset(.., 0, sizeof(..) at beginning of every initializer?
Also, that needs also make the "loaded" field being off the structure and being statically initialized as 0, otherwise, if structure is not initialized, then, garbage will make the illusion like library was been initialized, so, make the sort of this:

The fact: I reminded some other but similar case: Before you did major rework at mainstream Mixer, I had developed my own variant of improvement and I had a different way, so, lemme find and show you some (maybe revive that my concept to here?)
It's about the Mix_MusicInterface initializer, and I had it being dynamically initialized in the next way:

every module has its own "init interface" call
it makes SDL_memset(interface, 0, sizeof(interface)) that fills all fields as null
only used and only necessary calls were shown here
once somebody adds a new field into Mix_MusicInterface, no need to change thousands all other modules to add "NULL"s into it, that's generally a pain.

No, I mean:
static fluidsynth_loader fluidsynth;

All the fields are initialized to 0 and NULL by C language definition. We don't need to provide initializers unless we want non-zero values.

All the fields are initialized to 0 and NULL by C language definition. We don't need to provide initializers unless we want non-zero values.

Very depends on the compiler, because I literally had these structures being filled with garbage. The full zeroing works on debug mode only, on release mode that will just a ton of garbage.

 If you leave off the initializers entirely, you'll see that they are zeroed.

Anyway, I want to make the small check:

I'll remove initializers
I'll add SDL_assert_release traps
I'll build the thing as a release
Will try to run

Anyway, I tried to search around, and people say that if you leave the structure field being just defined, it will be uninitialized at all. Where is exactly described that if you define the static structure field and being untouched, it will be automatically initialized by zeroes?

btw, I found something here: https://coderedirect.com/questions/191022/are-the-members-of-a-global-structure-initialized-to-zero-by-default-in-c
The C99 / 2003 was mentioned, but what about C89/C90 ?

Okay, I found some:

If an object that has static storage duration is not initialized explicitly, it is initialized implicitly as if every member that has arithmetic type were assigned 0 and every member that has pointer type were assigned a null pointer constant. If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate.65

@slouken, so, I triple-checked all stuff, and I updated this PR, so, should be fine now :eyes:

Looks good, thanks!

Oh yes, finally.
@slouken: Merge?

@slouken: Merge?

Already merged :smirk_cat:

Already merged smirk_cat

Damn, missed it :)


Integrations page revisions

Issues from this prior PR:

[x] Reimplement routing (with pushState)
[x] Stabilize / fix scrolling position on transition between categories:

... if you click back and forth between a category and "home" with a tall screen (it ends up jolting both when you click down to the category, which is basically required by our height, and then jolts back when you click back to "all", which feels like a bug).

[x] Speed up scrolling on transition between integration sub-pages:

... if you're scrolled a ways down and then click on an individual integration, there's a fairly slow scroll that happens to take you to the top of the page as the new integration loads.

[x] In the mobile single-integration view, it'd be nice to have some sort of heading at the top showing at least the name of the integration, and maybe the logo too.
[x] ~Limit the width for the /integrations/#github individual integration type pages. (not clear on the intention of this -- which width was being referred to here?)~
[x] For things like Bitbucket/GitHub/Jira/Trello where there's a current version and a legacy version, have a way to tag the "legacy" one to not be displayed in the index, and the only way to get to it is by clicking a link from the non-legacy one.
[x] Show the category(ies) of an integration below "(back to list)" in the single-integration views.
[x] Update integrations documentation links
[x] Update link to /integrations#hubot-integrations to https://github.com/hubot-scripts #5875

Rebase on 2017-07-27:

[x] Refactor routes on /apps to use pushState instead of hashes.

In-person review on 2017-07-27:

[x] Increase width of icon/categories side area on individual integration subviews (so all categories are kept to one line)
[x] Remove integration titles from integration docs
[x] Update hello page integrations links
[x] Update deprecated links (JIRA, Github, Trello, Bitbucket)
[x] Remove secondary lines of text (for non-deprecated integrations)
[x] Update display text for categories dropdown (mobile) - 'Filter by category' (all), display active categories, keep showing chevron down on active integration categories
[x] Adjust Create-your-own integration tile font size on mobile
[ ] Extract /integrations js from landing-page.js into separate bundle
[x] Split Refactor /integrations state, routing, and rendering logic into multiple commits. (Made some progress, though this felt mostly futile as those changes are highly coupled to each other.)

Automated message from Dropbox CLA bot
@jackrzhang, it looks like you've already signed the Dropbox CLA. Thanks!

@zulipbot label "area: portico" "area: integrations"

Categories on individual integration views:

Integration name on mobile:

ping @timabbott for review.
The commit Refactor /integrations state, routing, and rendering logic. makes changes to the state of the page much more explicit with the dispatch function. It helped with debugging, though I'm not sure if it's worth the complexity it adds. Definitely open to suggestions for reorganizing or rewriting that commit in general.

As a note - the build is failing due to the updated links in the last commit (which are correct, but fail because they haven't been deployed yet).

Going to refactor routes on /apps (with recent changes by @brockwhittaker) to use pushState instead of hashes.

@timabbott

This looks mostly great.  I see a few issues:

The category names seem to have a character cut off?
The translations.js piece seems to not be working for me after rebasing.  We need to figure out the localstorage.supported()  interaction.  I suspect the right answer will be to split translations.js into two files or something.
I'm also a bit worried about some of the fancier JS things working in production; but I guess we can test that once these other things are fixed.

The /apps page seems to work well; I assume you've grepped carefully?

The localstorage.supported() interaction is caused because the localstorage variable isn't exposed globally on the portico pages. An import of the localstorage module into translations.js seems to do the trick. https://github.com/zulip/zulip/pull/5874/commits/07ec4ce92986a9ccf2daeab2b5f4387d23d48524

And (regarding routing on /apps) yep, I don't see any references to hash routes off of /apps.

Corrected the sub-page category names, and made a tweak so that the font sizes are consistently adjusted with along with all updates via https://github.com/zulip/zulip/pull/5874/commits/6e02691d72f50c5a11b4691dbf8c3ee96edcc789 and https://github.com/zulip/zulip/pull/5874/commits/6e9d8971ca86134a1e02a21326d404aa3609d189.
@timabbott This is ready!

@jackrzhang what's the story with adjust_font_sizing?  It seems kinda hacky, and it's not clear to me why we need a hack to set font sizes on this page.

@timabbott adjust_font_sizing is a hard-coded fix for this particular situation, where the title/category of a lozenge goes over a single line:

It is pretty hacky and coupled to the lozenge icons, though there's no direct way to resize text if a line breaks using only CSS. There's probably a more general JS solution that could be written (or found from a third-party), but I figured adjust_font_sizing would be the easiest fix.

Merged, thanks @jackrzhang!


allow skit run without specified path

It was a little frustrating that I had to specify the path when doing skit run /path.... This allows someone to just type skit run and it picks up on the directory path.

Thanks!


Add German translations for URL management control panel

[x] I signed and returned the Plone Contributor Agreement, and received and accepted an invitation to join a team in the Plone GitHub organization.
[x] I verified there aren't other open pull requests for the same change.
[x] I followed the guidelines in Contributing to Volto.
[ ] I succesfully ran code linting checks on my changes locally.
[ ] I succesfully ran unit tests on my changes locally.
[ ] I succesfully ran acceptance tests on my changes locally.
[ ] If needed, I added new tests for my changes.
[ ] If needed, I added documentation for my changes, either in the Storybook or narrative documentation.
[ ] I included a change log entry in my commits.

If your pull request closes an open issue, include the exact text below, immediately followed by the issue number. When your pull request gets merged, then that issue will close automatically.
Closes #

Merging without changelog since it's really part of the other changes for the redirects control panel which weren't released yet.


Research Company - Adobe

Company name:
Location:
Mission statement:
IT roles:
Glassdoor rating:
Benefits:
Link to jobs/careers page.

Company name: Adobe
Location: Seattle
Mission statement: "To change the world through digital experiences."
IT roles:

Business Development
Engineering
Intern-Technical
Engineering Program Management
Product Security Engineering
Software Development Engineering
Glassdoor rating:
https://www.glassdoor.com/Reviews/Adobe-Seattle-Reviews-EI_IE1090.0,5_IL.6,13_IM781.htm
Benefits:
Family support
Commuter benefits
Discounts, social impact, and awards
Education benefits. College Coach
Dependent Care Flexible Spending Account (FSA)
Pet services
Legal insurance.
Travel support.
Link to jobs/careers page.
https://www.adobe.com/careers.html


Paper 1.15.2 crash

Describe the bug
SkQuery wont load in to my server.
To Reproduce
Paper Spigot 1.15.2 build #304
Information:

Latest Skript Version
Server software: Paper Spigot
Server version: 1.15.2

Additional context
CONSOLE LOG:
https://pastebin.com/CCpPHaXA

You have a modified plugin.yml of SkQuery, please make sure you're compiling the plugin properly, or downloading it from the official page https://www.spigotmc.org/resources/skquery-1-9-1-15.36631/


Purpose of install_python_dependencies.sh

I know that it intends to check if there is pip + virtualenv before trying to install the requirements in the requirements files.
If the checks pass, it installs everything (local, test and production). Installing every dependency probably won't matter if it is not used on some setting, but it may be a little overkill on any instance to have everything.
It is not in the installation steps, so i would like to know when it would be a good idea to use this instead of the regular pip -r requirements/some_set_of_requirements.txt.

I added this file, and my goal was facilitate to create the development environment, and try to avoid that install the dependencies python outside of a virtualenv.
That said, you have no gain when using this utility, except save you some typing to prepare the development environment.
I intend to include some documentation when I have a free time.

:+1:


Delay on first connection in C# with grpclb and c-ares

What version of gRPC and what language are you using?
C# 2.31.0 via NuGET
What operating system (Linux, Windows,...) and version?
Windows 10 Enterprise 1803
What runtime / compiler are you using (e.g. python version or version of gcc)
Visual Studio 2019 Professional 16.7.0
.NET Core 3.1 / .NET Standard 2.1
What did you do?
public static async Task Main(string[] args)
{
  Environment.SetEnvironmentVariable("GRPC_VERBOSITY", "DEBUG");
  Environment.SetEnvironmentVariable("GRPC_TRACE", "all");
  using var logger = TextWriter.Synchronized(File.CreateText("test.txt"));
  GrpcEnvironment.SetLogger(new TextWriterLogger(logger));

  Channel channel = new Channel("dns://<IP_ADDRESS>:8010/test.my-company.com", ChannelCredentials.Insecure, new[]
  {
    new ChannelOption("grpc.lb_policy_name", "grpclb"),
    new ChannelOption("grpc.service_config", "{\"serviceConfig\":{\"load_balancing_config\":{ \"grpclb\": {} },\"waitForReady\":true}}"),
    new ChannelOption("grpc.dns_enable_srv_queries", 1)
  });

  var client = new Delay.DelayClient(channel);
  var reply = await client.TestDelayAsync(new DelayRequest{Ticks = DateTime.UtcNow.Ticks});
  Console.WriteLine("Ticks: " + reply.Ticks);
  reply = await client.TestDelayAsync(new DelayRequest{Ticks = DateTime.UtcNow.Ticks});
  Console.WriteLine("Ticks: " + reply.Ticks);

  await channel.ShutdownAsync();
  Console.WriteLine("Press any key to exit...");
  Console.ReadKey();
}

What did you expect to see?
The first call being slightly slower than the second due to DNS resolution, load balancing and subchannel creation,
What did you see instead?
There is a huge delay before the first request is even trying to contact the DNS server of around 10-35 seconds: test.txt
Anything else we should know about your project / environment?
Doing direct calls to a IPv4 target results in the expected small delay without big time gap. So it seems to be related to c-ares or grpclb. Can’t use native DNS resolver as I need the authority to use grpclb as there is no way to define a resolver in C# or target grpclb directly (see #11879, #13639, #16617, #19874).
This is an issue for us since 2017 and especially Android will become a big issue for as since there is neither support for the resolver nor for c-ares to abuse as our workaround. We will have a look at xDS in the future, but I still first need to get our code working again as the last releases seem to have broken our workaround.
Originally posted by @Falco20019 in https://github.com/grpc/grpc/issues/24018#issuecomment-684991069

@apolcyn As promised, here a test shortly after rebooting. The machine was not close to it's limits.
The channel was created on 08:38:34, name resolution started the same second and the resolver returned success on 08:39:04... So round about 30 seconds.

test2.txt

@apolcyn I tested it with a colleague in my company. The same behavior with the same delays of 15 - 60 seconds.

Interesting. The unexpectedly long amount of time in what appears to be a non-blocking c-ares DNS lookup initiation is definitely suspicious.
Is it possible for you to use perhaps a debugger to briefly pause the process during those 15 seconds, and dump stack traces of all threads? (Or a wall time profiler may also accomplish roughly the same) Maybe that can show a suspicious mutex wait or blocking I/O....

I assume you need a C++ debugger? Or should I be able to dump the trace as windump with C# / Windows? The native DLL should be included in the managed application, so it might appear. I have the JetBrains Ultimate suite at hand. So dotMemory and dotTrace dumps might help.
I will give it a try.

Something that can see native stack traces would be ideal.

I sadly can not see the native stack trace. Is there an easy way to get a grpc_csharp_ext.x64.dll with symbols without having to setup the whole build environment? Technically, JetBrains dotTrace would have the capability to also trace native code if symbols are available. So it only notes that 57.5% of the trace have no resolved functions.

I believe you can get symbols from the Grpc.Core.NativeDebug nuget ? https://github.com/grpc/grpc/issues/15437 for a bit of background

Thanks for the hint about Grpc.Core.NativeDebug. I was able to create a dump while it was stuck.

To me (without knowing too much C++ and c-ares), it looks like it's stuck on reading my hosts file. I will give that file a look.

I just checked my host files and it was 300 MB, mostly consisting of empty lines and 5 lines of Docker... Would be interesting if Docker messed the file up or if our IT was the culprit. By resetting the hosts file to default, gRPC runs like a charm again!
Thanks for the support @apolcyn!

Good to know, interesting find @Falco20019 !


Hello, when embedding a picker window in maya, it intercepts hotkeys such as:

Hello, when embedding a picker window in maya, it intercepts hotkeys such as:
ctrl+z
ctrl+s
F
And if possible, please make the window embedding into the interface as in the animshool picker (double click on the top)
Thanks for the great picker.
Originally posted by @KnIVan in https://github.com/DreamWall-Animation/dwpicker/issues/10#issuecomment-1063928907

mmmh I can reproduce indeed :/
Such no idea how to fix this currently. I'm investigating.

This is fixed by last commit !
Thanks for this report, it brings a valuable improvement.

Thank you very much for the cool picker.


⚠ Bofrost.de has degraded performance

In f4f8373, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1870 ms

Resolved: Bofrost.de performance has improved in 141b35c after 13 minutes.


Handle website contacts dynamically

Hi!
This commits change the way contacts params are handled: instead of declaring them statically, they are declared as an array of tables in the TOML configuration file, then they are displayed in the two sections (homepage and footer) of the website through the {{ range }} statement.
This makes handling multiple contacts params easier and avoids the need of changing manually this two files:

layouts/partials/footer.html;
exampleSite/content/homepage/contact.md;

Of course this results in a breaking change for the template.
I think this new mechanism could be helpful when you need to add multiple contact options to the template.

Looks good. I've branched off stable, just in case someone needs more compatible version.

The phone link does not seem to work.

The phone link does not seem to work.

I see, it looks like now you have to include the meta-info directly with the parameter value,
check exampleSite/config.toml, does it work if you do it this way?

It's broken in exampleSite as well. Just try this:
gh repo clone zjedi/hugo-scroll
cd hugo-scroll/exampleSite
sed -i 's/showContactIcons\ \=\ false/showContactIcons \= true/g' config.toml
hugo server -t ../..

I see, the phone link is broken the same way also in the contacts section. @filippofontana Any chance you would have a look at this?

Yes of course, I’ll take a look.

Sorry guys for this bug, I don't know how I was able to miss it 🥲.
See #173 and #174 to see how I solved it.

looks fixed in the preview now, thanks for quick action :)


Display name and avatar are missed in wallet notifications

For this specific notification we don't need a name and avatar at all and should instead only show the message.
What would be other notifications where name and avatar are missing as well?

@paolomolo @onvisions maybe we should update the design for this page.


window does not remember resized position

Description:
window does not remember resized position
Steps to reproduce:
open messenger, close using app -> quit.  reopen.  window opens in same position, but resized to default.
App version:
2.0.1-beta
OS:
Windows 10
Works in WhatsApp Web:
Extra:
[Not answered]

i was the one who reported this; i tested again and it does appear to remember horizontal resizing.

i see that this was closed, but i'm not sure where to see what version/release it was resolved in?  was it fixed?
i was just auto-updated to 2.0.4-beta, and am still able to reproduce the issue using the steps listed.  it still does not remember vertical height.

I just updated to 2.0.7-dev and this issue is still there for me. The app keeps getting bigger indefinitely on restarts. I'm pretty sure it gets bigger horizontally as well, because I have it load on start up side by side with Discord and they're always overlapping, although I constantly resize them not to be.

To everyone having this issue: if you change the theme and restart the app, is the theme you chose restored?

I found the bug, now the app won't resize on restart. (I'll include this when I release 2.0.10). However, I still don't know why it won't restore fullscreen.


Blog

Closes #126.

@ajay-gov i noticed that too and with some of the other header links and search bar. Is it something to do with the deployment environment? The changes work locally just fine

Hmm weird, everything under Documentation seems to work well. Is the Blog section setup similar to how the Documentation is setup so that we can review it on the CI staging site?

Yep. It is set up in a similar way. Does it work locally for you?

Haven''t tried it locally, i will check.

The URLs have to be generated in a specific way. There are some examples in
other templates using the link or absolute directive. I can fix it this
weekend if you want, I’m OOO today.

The URLs have to be generated in a specific way. There are some examples in other templates using the link or absolute directive. I can fix it this weekend if you want, I’m OOO today.

No worries. I don't think we need to handle sharing a link to a local server 😄 . I should probably have been testing from the link Ajay mentioned above anyway.

@afolson if you wouldn't mind that would be appreciated

Will do! It’s kind of goofy so I’ll document it in the meta docs too.

@cwjames19 i did debate that but I thought that we could just default the user to 'swim' and have it populate from that - though, I didn't add said user.
Feel free to add your suggestion regarding the hovering. Styling isn't my forte 😄

i did debate that but I thought that we could just default the user to 'swim' and have it populate from that - though, I didn't add said user.
Feel free to add your suggestion regarding the hovering. Styling isn't my forte 😄

@SirCipher I like going the route of a default 'swim' user. 👍  I went ahead and added both.

Thanks @cwjames19 😁

@SirCipher URLs fixed! It was a combination of changing the permalink and filtering links to render as absolute/relative paths to work on S3.

@afolson, thanks for sorting it :)

@StreamingDataApps, once this has been merged into demo-development, you can add your posts to that branch before we merge into main

Excellent!
On Wed, Nov 8, 2023 at 10:25 AM Thomas Klapwijk @.***>
wrote:

@StreamingDataApps https://github.com/StreamingDataApps, once this has
been merged into demo-development, you can add your posts to that branch
before we merge into main
—
Reply to this email directly, view it on GitHub
https://github.com/swimos/swimos-docs/pull/127#issuecomment-1802426547,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A35SYBESCEPE5HEPNIN66LTYDPFDBAVCNFSM6AAAAAA64LIMJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBSGQZDMNJUG4
.
You are receiving this because you were mentioned.Message ID:
@.***>


ODS-5477 Create Github Action workflow for Sdk and InitDev MSSQL build

Apart from the the comments, please also:

Remove explicit calls to dotnet restore in favor of dotnet build. And remove explicit calls to dotnet build in favor of dotnet pack.
TC parses the test results, consider adding something similar, for example by using this action.
This workflow should also be executed if there are changes to the ODS repository.
Having 2 separate workflows means that we're publishing some Nuget packages twice, in my opinion we can keep Sandbox/Year-Specific/Shared Instance and remove the other one.

The dotnet calls have been removed and replaced with calling initdev .
I agree that test results should get parsed, but it appears that action has a vulnerability we'd want to address before bringing it in
A PR is setup on the ODS repo with a workflow that triggers a dispatch event to these two new workflows. The trigger succeeds currently, but since these workflows are not merged to the main branch yet, nothing gets triggered.
I have removed the publish from the non Sandbox/YS/SI workflow

To enable the destructive smoke tests, I had to include the next changes:

Change the default namespace (since it was incorrect) that is passed as a command line argument to SmokeTest.Console
Add an option to TestHarness configuration.json to tell when to enable Ownership based authorization; before this change, it was enabled for all the test suites, which caused authorization issues in the destructive smoke tests

To store Test Harness log in Github action artifacts, I had to add a configurable prefix to the log file name since initdev starts Test Harness multiple times (for example, to run Postman and to generate the SDK), and without the prefix, the logs were being overwritten.

Left is first workflow and right is 2nd workflow . Do we need create packages these 2  again  EdFi.Suite3.OdsApi.Sdk.6.0.1135  & EdFi.Suite3.OdsApi.TestSdk.6.0.1135 in 2nd workflow  ?


SpotifyLyrics crash on Windows 7 64bit

Here's the problem details:

Problem signature:
Problem Event Name:	APPCRASH
Application Name:	SpotifyLyrics-x86_64.exe
Application Version:	<IP_ADDRESS>
Application Timestamp:	30013205
Fault Module Name:	Qt5Gui.dll
Fault Module Version:	<IP_ADDRESS>
Fault Module Timestamp:	56d82d8f
Exception Code:	c0000005
Exception Offset:<PHONE_NUMBER>01f057
OS Version:	6.1.76<IP_ADDRESS>.256.1
Locale ID:	1033
Additional Information 1:	c33f
Additional Information 2:	c33ff492a47b18df3d84bf0019a1fe6b
Additional Information 3:	ac90
Additional Information 4:	ac905523b634a411fb4e2357df26c82e
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

Thank you.

Does this happen when it's first launched or after it's been running? At a specific song maybe?

@fr31 No. It doesn't happen regularly. It just happened out of the blue. I will check it in again with what song made it crash.

Any updates on this?


Slideseqv2 mouse olfactory bulb

Closes #46

Should be ready to go

Should be good to go

Good question the authors dont go into this in the paper.
Probably a m "mystery cell cluster" which they retained but did not use for analysis.
I have set these cells to selected = False in 78 , so they should not be picked up by the pipeline unless specified.

Think this one is good to go? @niklasmueboe Leaving selected=False give us the space to potentially include them in the future if needed.

@kbiharie @peicai can you approve this one?

I think the dataset is good to go. Any reason the PR is still open? :)) If not can I go and merge it?


Allow definition of WRAM as a contiguous segment from C000 - DFFF (i.e. DMG, SGB)

Pass the -w flag to make this happen

#60 takes a different approach to the same problem.

This approach looks much better than #60's. It'd be great if you could add the -w flag to the man documentation (rgblink.1) as well!

In the end I've fixed the conflicts myself.


Additional tests for controller/launcher

Signed off by: Joshua Packer

Bring test coverage for controller/launcher to 94%

/approve @leena-jawale @hanqiuzh

/lgtm
/approve

Reference: https://github.com/open-cluster-management/backlog/issues/9908


Round corner fix

This should fix this bug: https://github.com/Funkenjaeger/brd2json/issues/1

This file was used for testing
test.brd.zip

Sorry, the fix seems not yet to work :/

It was working, i just hit another bug which I fixed in another PR.


feat: change labels to meetingLabels for clarity

This changes label to meetingLabel for clarity in the API. For now, I've just effectively changed the name, but if we'd like to add something like additonalMeetingLabels in the future I'd be more than happy to do that work.

Updated to use meetingLabels rather than meetingLabel. I also reverted a handful of changes that I think were likely unnecessary and unclear, which won't show up in the diff now.
I'm also now using npm@7 and it seems that entirely rewrote package-lock.json and updated the version. Trying to get clarity on if that's backwards-compatible or not 😅


New peers are not propagated to already existing peers

Describe the problem
After adding a new peer to the network, this peer is not getting propagated to the already existing peers. At best only peers that were added very recently (last 24h?) seem to get the list of peers updated. The only thing that helps is to netbird down and netbird up on all the affected, exisiting peers machines which forces a peer refresh. Existing peers seem to show a following error after a new peer was added
2024-06-10T15:57:29+02:00 ERRO signal/client/grpc.go:410: error while handling message of Peer [key: <KEY>] error: [wrongly addressed message <KEY>]

This feels so fundamentally wrong that it's hard to believe that it's a bug and not just my fault. I doubt it's a networking issue, affected peers are located both in the cloud and self-hosted networks so it does not seem probable.
Expected behavior
Automatic peer propagation
Are you using NetBird Cloud?
self-hosted NetBird's control plane
NetBird version
0.27.10

This is a very odd indeed. Assuming your connection with the management is fine this should never happen unless there is an manual update of the network map in the database or a async update causing the serial number to be lower.
If you are running on 0.27.5+, can you enable debug logs on one of the existing clients with: netbird debug log level debug
then add a new peer and check if there is a log similar to:
received outdated NetworkMap with serial XXXX, ignoring

It occured twice earlier this week but I cannot reproduce it since 🙄 When it happened I happened to test that when I updated ACL (I added an affected peer to some new, arbitrary group), netbird client of that peer noticed the ACL update request and as a side-effect it also did update the peer list. If it happens again I'll try to gather more detailed logs of all parties involved.

sounds great, thanks @glaeqen

@mlsmaycon Yes, the logs contain outdated NetworkMap, excerpt from the logs here:
2024-07-24T08:22:33Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0=, waiting for the confirmation
2024-07-24T08:22:33Z DEBG client/internal/peer/conn.go:256: trying to connect to peer XD5VjsfLgs3RNijJ7D+yqJFeA07sEaJ24MCfk10m3no=
2024-07-24T08:22:33Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer XD5VjsfLgs3RNijJ7D+yqJFeA07sEaJ24MCfk10m3no=, waiting for the confirmation
2024-07-24T08:22:38Z DEBG management/client/grpc.go:251: got an update message from Management Service
2024-07-24T08:22:38Z WARN client/internal/engine.go:602: running SSH server is not permitted
2024-07-24T08:22:38Z DEBG client/internal/engine.go:751: received outdated NetworkMap with serial 260, ignoring
2024-07-24T08:22:38Z DEBG management/client/grpc.go:251: got an update message from Management Service
2024-07-24T08:22:38Z WARN client/internal/engine.go:602: running SSH server is not permitted
2024-07-24T08:22:38Z DEBG client/internal/engine.go:751: received outdated NetworkMap with serial 260, ignoring
2024-07-24T08:22:43Z DEBG client/internal/peer/conn.go:496: trying to cleanup 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=
2024-07-24T08:22:43Z DEBG iface/iface.go:101: Removing peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= from interface wt0
2024-07-24T08:22:43Z DEBG client/internal/peer/conn.go:639: peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= ICE ConnectionState has changed to Closed
2024-07-24T08:22:43Z DEBG client/internal/peer/conn.go:554: cleaned up connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=
2024-07-24T08:22:43Z DEBG client/internal/engine.go:990: connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= failed: connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= timed out after 41.52s
--
2024-07-24T08:30:54Z DEBG client/internal/peer/conn.go:639: peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= ICE ConnectionState has changed to Closed
2024-07-24T08:30:54Z DEBG client/internal/peer/conn.go:554: cleaned up connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=
2024-07-24T08:30:54Z DEBG client/internal/engine.go:990: connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= failed: connection to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY= timed out after 41.52s
2024-07-24T08:30:54Z DEBG management/client/grpc.go:251: got an update message from Management Service
2024-07-24T08:30:54Z WARN client/internal/engine.go:602: running SSH server is not permitted
2024-07-24T08:30:54Z DEBG client/internal/engine.go:751: received outdated NetworkMap with serial 260, ignoring
2024-07-24T08:30:55Z DEBG client/internal/peer/conn.go:256: trying to connect to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=
2024-07-24T08:30:55Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=, waiting for the confirmation
2024-07-24T08:31:06Z DEBG client/internal/peer/conn.go:496: trying to cleanup V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0=
2024-07-24T08:31:06Z DEBG iface/iface.go:101: Removing peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= from interface wt0
2024-07-24T08:31:06Z DEBG client/internal/peer/conn.go:639: peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= ICE ConnectionState has changed to Closed
--
2024-07-24T08:48:10Z DEBG client/internal/engine.go:990: connection to peer juyzNoQtxuvMYPKGs6+oXXRfLzyjAzHvwNzGZlSdmy4= failed: connection to peer juyzNoQtxuvMYPKGs6+oXXRfLzyjAzHvwNzGZlSdmy4= timed out after 38.621s
2024-07-24T08:48:12Z DEBG client/internal/peer/conn.go:256: trying to connect to peer juyzNoQtxuvMYPKGs6+oXXRfLzyjAzHvwNzGZlSdmy4=
2024-07-24T08:48:12Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer juyzNoQtxuvMYPKGs6+oXXRfLzyjAzHvwNzGZlSdmy4=, waiting for the confirmation
2024-07-24T08:48:15Z DEBG management/client/grpc.go:251: got an update message from Management Service
2024-07-24T08:48:15Z WARN client/internal/engine.go:602: running SSH server is not permitted
2024-07-24T08:48:15Z DEBG client/internal/engine.go:751: received outdated NetworkMap with serial 260, ignoring
2024-07-24T08:48:15Z DEBG client/internal/peer/conn.go:496: trying to cleanup V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0=
2024-07-24T08:48:15Z DEBG iface/iface.go:101: Removing peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= from interface wt0
2024-07-24T08:48:15Z DEBG client/internal/peer/conn.go:639: peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= ICE ConnectionState has changed to Closed
2024-07-24T08:48:15Z DEBG client/internal/peer/conn.go:554: cleaned up connection to peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0=
2024-07-24T08:48:15Z DEBG client/internal/engine.go:990: connection to peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= failed: connection to peer V1uRp/w/p/b5eB8ulqlkzbPLaxzf8C2CyLkx1EkTzG0= timed out after 36.573s
--
2024-07-24T08:48:45Z DEBG client/internal/peer/conn.go:639: peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs= ICE ConnectionState has changed to Closed
2024-07-24T08:48:45Z DEBG client/internal/peer/conn.go:554: cleaned up connection to peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs=
2024-07-24T08:48:45Z DEBG client/internal/engine.go:990: connection to peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs= failed: connection to peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs= timed out after 44.38s
2024-07-24T08:48:45Z DEBG management/client/grpc.go:251: got an update message from Management Service
2024-07-24T08:48:45Z WARN client/internal/engine.go:602: running SSH server is not permitted
2024-07-24T08:48:45Z DEBG client/internal/engine.go:751: received outdated NetworkMap with serial 260, ignoring
2024-07-24T08:48:46Z DEBG client/internal/peer/conn.go:256: trying to connect to peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs=
2024-07-24T08:48:46Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer Ys9lRgrg1jEcXR7bQ/6ar2hQDNz2cxxdZl8Pjh0DETs=, waiting for the confirmation
2024-07-24T08:48:46Z DEBG client/internal/peer/conn.go:256: trying to connect to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=
2024-07-24T08:48:46Z DEBG client/internal/peer/conn.go:288: connection offer sent to peer 6wS58SsML1Ute6LkSYVdvbYuTXBcTX3Lb0h2UVLNbkY=, waiting for the confirmation
2024-07-24T08:48:49Z ERRO signal/client/grpc.go:399: error while handling message of Peer [key: jfCtRe6wchprw6xXmhQxkPlNRx4EOgZCq2JVTnWVCR8=] error: [wrongly addressed message jfCtRe6wchprw6xXmhQxkPlNRx4EOgZCq2JVTnWVCR8=]

I also have debug logs enabled on the server, let me know if there are any specific logs I should look for

I deployed a custom version of the client on the affected server with added log line in client/internal/engine.go:750
	serial := networkMap.GetSerial()
	log.Debugf("received NetworkMap with serial %d", serial)
	if e.networkSerial > serial {
		log.Debugf("received outdated NetworkMap with serial %d, ignoring", serial)
		return nil
	}

I'm suspecting a malformed message sends a high serial number (e.g INT MAX) and causes all valid messages that come after it to be less than the stored serial number, will keep this client running and come back to you with any results

@mlsmaycon I can see the issue sometimes occurring where a client would print wrongly addressed message without outdated NetworkMap logs, I don't understand the exact behavior behind this but I can see in some instances the client thinks another client is offline when it's online and won't update the network map on its own
I made a custom version for the time being so it would restart the management connection every time it received and outdated NetworkMap or receives a wrongly addressed message when there's a networkmap locally (so it wouldn't restart management connection when it's not initialized yet), and it has been working perfectly for the past couple of days
My custom patch is pushed here, not sure if this belongs in the mainstream yet, but it works.


recusion limit reached when using version 0.7.0

My html macro is pretty simple. But ever since i upgrade to 0.7.0. I get error: recursion limit reached while expanding the macro $crate::dispatch. I have added #![recursion_limit="128"] attribute as suggested but problem persists
html! {

                <Select<ProductType>:
                    options=ProductType::iter().collect::<Vec<_>>(),
                    onchange=Msg::ProductTypeSwitchTo,
                />
                <Select<u32>:
                    disabled=self.fund_ids.len() == 0,
                    options=&self.fund_ids,
                    onchange=Msg::FundIdSwitchTo,
                />

{ format!("{:?}", self.fund_id) }

{ format!("{:?}", self.product_type) }

                <input value=&self.amount oninput=|e| Msg::UpdateAmount(e.value) />

                <button onclick=|_| Msg::AddPosition,>{ "Add New Position" }</button>

                    {
                        for self.positions.iter().map(|row|{
                            view_position(row)
                        })
                    }

        }

Just curious: can you try increasing recursion_limit to, say, 258 or 512?
As a side-note, commas are no longer required in 0.7.0 (like you did in <input ... />).

 The problem persists. It passes compilation only when I reduce the number of elements in html! which is not desirable

@laiboonh the recursion limit does need to be crazy high for this to work now unfortunately! Under the hood, the html macro was rewritten as a procedural macro and uses a lot of recursion now. Out of curiosity, how high do you need to set your limit to get it to compile?

I tried 128000 and it’s still complaining

Oh wow, sounds like there might be an infinite recursion bug or something, can you post a minimal code sample that causes this?

What is view_position returning?

My guess is that SelectandSelectdon't get parsed correctly. Can you try to "typedef" them outside of thehtml!` macro?
type SelectProductType = Select<ProductType>;
type Selectu32 = Select<u32>;

html! {

        <SelectProductType:
            // ...
}

This is my minimal code sample
#![recursion_limit="128000"]

use yew::{html, Component, ComponentLink, Html, Renderable, ShouldRender};
use uuid::Uuid;
use core::position::Position;
use rust_decimal::Decimal;
use core::product_type::Fund;
use core::asset_class::AssetClass;
use core::asset_distribution::AssetDistribution;
use core::Percent;
use yew::components::select::Select;
use core::ProductType;
use strum::IntoEnumIterator;

#[derive(Debug)]
pub struct PositionSelect {
    product_type: Option<ProductType>,
    amount: String
}

pub enum Msg {
    AddPosition,
    UpdateAmount(String),
}

#[derive(PartialEq, Clone)]
pub struct Props {
}

impl Default for Props {
    fn default() -> Self {
        Props {
        }
    }
}

impl<'a> Component for PositionSelect {
    type Message = Msg;
    type Properties = Props;

    fn create(_: Self::Properties, _: ComponentLink<Self>) -> Self {
        Self {
            product_type: None,
            amount: "".to_string()
        }
    }

    fn update(&mut self, msg: Self::Message) -> ShouldRender {
        match msg {
            Msg::AddPosition => self.positions.push(
                Position::new(
                    Box::new(
                        Fund::new(
                          "UT0001".to_string(),
                            AssetClass::AXJ_EQ,
                            vec!(
                                AssetDistribution::new(AssetClass::AXJ_EQ, Percent::new(100,0))
                            )
                        )
                    ),
                    Decimal::new(1000,0)
                )
            ),
            Msg::UpdateAmount(amount) => {
                self.amount = amount;
            }
        }
        true
    }

    fn change(&mut self, _props: Self::Properties) -> ShouldRender {
        true
    }
}

impl Renderable<PositionSelect> for PositionSelect {
    fn view(&self) -> Html<Self> {
        html! {

{ format!("{:?}", self.product_type) }

                <input value=&self.amount oninput=|e| Msg::UpdateAmount(e.value) />

                <button onclick=|_| Msg::AddPosition>{ "Add New Position" }</button>

        }
    }
}

This is the compile error
[Running 'cargo web build -p pii-yew']
   Compiling pii-yew v0.1.0 (/Users/laiboonhui/learn/rust/pii/pii-yew)
error: recursion limit reached while expanding the macro `$crate::count`
  --> pii-yew/src/position_select.rs:78:9
   |
78 | /         html! {
79 | |

80 | |
81 | |
{ format!("{:?}", self.product_type) }

...  |
87 | |

88 | |         }
   | |_________^
   |
   = help: consider adding a `#![recursion_limit="128"]` attribute to your crate
   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)

error: aborting due to previous error
error: Could not compile `pii-yew`.

To learn more, run the command again with --verbose.
error: build failed

@laiboonh I was able to get your code to compile by adding #![recursion_limit="128"]. Just to make sure, are you using #![recursion_limit="128"] in your lib.rs file?

What worked fork me is to add it to both lib.rs and main.rs (having it on only one of the files won't work)
Adding it on the file itself (in my case position_select.rs) did nothing.
Newbie here...have no idea how or why things work this way.

 No worries 😄


Build failed when compiling with adapter-cloudflare

Starting from version 2.0.0, in Sveltekit I cannot compile with adapter-cloudflare.
The error I am receiving is:
Error: Build failed with 2 errors:
.svelte-kit/output/server/chunks/lists.js:2:14: ERROR: Could not resolve "util"
.svelte-kit/output/server/chunks/lists.js:3:14: ERROR: Could not resolve "crypto"

I'm using Sveltekit with SSR disabled, so no Node packages are allowed.
From what I found reading the source code, I think the problem is with the new "cyrup" dependency added from version 2.0.0, which imports the two Node packages.

Hello,
Can you try with the version 2.1.0 ?
This version should fix the issue require "util" and require "crypto"

Yes, I also tried version 2.1.0, but it give me the same error.
I created a project to reproduce the error https://stackblitz.com/edit/sveltejs-kit-template-default-tqmyfx?file=src/routes/+page.svelte
I also want to thank you for this library, good job!

Do you have the time to look at this issue? It's blocking my deployments

I try many configurations, tricks, but I can't achieve to have the compilation work.
I have an ugly workaround (which is editing the library dist file before building) but it's not a very practical or usable solution in an automated pipeline.

Others solutions that I have are:

Make the crypto lib dependency optional, but require extra work to check is the dependency is installed or not (+ BC break).
Make the encrypted storage a separate package, but that add more steps and workflow for publishing (+ BC break).
Change the crypto lib dependency to crypto-es, but we loose native function as it's a pure JS implementation, so probably less performant.

(I will probably go with the last one, as it introduce the fewer changes for users)

I bet it is the dep cyrup

@kroniapp I just publish the version 2.2.0 that fix the error.
It took way longer than I have expected, sorry about that


More optimizations and AABB unpack

I implemented the AABB unpack thing, but ended making quite more changes on the way. Everything in this pull request is an optimization; No new functionallity is added.
Changes include:

Unpack Vector2 in AABB to 4 doubles; results are good with this
Add static methods for creation of AABBs of two points; this makes some bits in the code more clear but also is faster than the previous Math.min/Math.max chain
Added two static fields INV_X_AXIS and INV_Y_AXIS; I initially used those, but afterwards didn't need them. Still it does not harm to have them declared. Can be ommited
One round of optimizations for createAABB of some shapes: Capsule, Slice, Segment and HalfEllipse; results are good with this one, speed increase is measurable
Even more optimizations for getFarthestPoint and createAABB for Ellipse and HalfEllipse; results very good here, measurable as well

I got some good results from the above. For example synthetic tests with a lot of Ellipse shapes run 30-40% faster (total simulation time on my pc).
There is some tradeof in readability for the createAABB methods of Ellipse and HalfEllipse, since I applied a lot of 'manual inlining', but it was worth it under various tests. It's up to you if you want to merge those.
All tests pass. If something needs to change, I'm willing to work on this.

I think this all looks good.  I would just make sure that any manual inlining has the more readable version commented out above it (similar to what you have done in other places) if you feel like the inlined version isn't readable.

Alright, I added some extra comments about the inlining of createAABB in Ellipse and HalfEllipse, which explain what is calculated in each step. I think this is good to go, except if you wish for any other changes


Is this package available for Mutiple Time Series and Extendable to Deep RC

Hi,
I want to use this package for speech recognition task. Since, we have multiple time series in the speech datasets, we need to implement the code in a way different from datasets such as mnist where we can introduce only one matrix for training. So, would you please indicate whether this package is capable of handling multiple time series or not?
Moreover, I did not see any deep RC structure in the examples. My second question is that if you have any example of extending this package for deep RC structures?
I appreciate your kind help

Hi,
thanks for this question. I think, you mean that your speech dataset contains many feature vector sequences, which were extracted from multiple audio files. PyRCN is capable of sequence handling. You can basically use the following outline:
esn = ESNClassifier()
for f in file_list:
X, y = extract_features(f)
esn.partial_fit(X, y)
X any y are the features and labels of one audio file. In this way, you make sure that each time series is treated independently from the other ones.
We are currently working on extending this package to implement deep RC structures straight forward.
One opportunity is to create a sklearn Pipeline including multiple NodeToNode instances. Another way would be to do that manually:
Train a first ESN
Compute the output of this ESN and train a second ESN that receives the output of the first one as input
Does that help you?

Thank you for your clear response. It was so helpful. As I  have extracted the MFCC features from the database by HTK toolbox, I do not need to the extract_features step.  However, would you please help me how the structure of the X and Y should be to be fed to esn.partial_fit?

Sounds good.
Well, X and y follow the scikit-learn API:

X is a ndarray or sparse matrix of shape (n_samples, n_features)
y is a ndarray

of shape (n_samples,) and the values are the class labels (typically numeric) if you use a classifier
of shape (n_samples, n_outputs) and the values can be any numeric values if you use a regressor (not necessary for speech/phoneme recognition).

Dear @zohrehansari, is this still an open issue or can it be closed?

Dear @renierts , unfortunately, I faced with a problem when I attempted to do as you mentioned. As I had the feature vectors and labels of the audio files in the mat file format, I wrote the code in a way that each time,  features vectors (X) and labels (y) of each audio file were loaded. Then, I wrote the "esn.partial_fit(X, y)". For the first audio file, the X is a numpy.ndarray of shape (782,18), where, the feature vectors were of dimension 18, and the y is a numpy.ndarray of shape (782, ), which includes the numeric values of the classes. However, running the  esn.partial_fit(X, y), I receive this error:
ValueError: Expected array-like (array or non-string sequence), got None
Would you please guide me what is the problem?
Thank you in advance

Dear @zohrehansari, are you using the ESNClassifier?
And can you provide me example code of your training code?
Have you remembered passing classes=range(n_classes) during the first call of partial_fit if you use the ESNClassifier?
You can find an example in Cell 5 of the following notebook:
https://github.com/TUD-STKS/PyRCN/blob/master/examples/digits.ipynb
I will definitely update the documentation so that this gets clear.


Use C::Configuration.env.filter

Bugfix
Use Capistrano::Configuration.env.filter(c.servers).

LGTM as a workaround.
I think we must solve the root problem and follow the Capistrano way in the future.


ui: add tooltips for actions in tab

Description
Adds tooltips for buttons in tabs

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
Before

After

How Has This Been Tested?

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_multiplication_x:
(SL-JID-114)

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4842 (SL-JID-115)

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@shwstppr is this ready for review/testing?

@rhtyd yes

@shwstppr is this ready for review/testing?

LGTM - but needs one more test/confirmation cc @davidjumani  @Pearl1594

@Pearl1594 fixed
@blueorangutan ui

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4842 (SL-JID-127)

@blueorangutan ui

@Pearl1594 a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4842 (SL-JID-128)

@shwstppr Rest looks good, found a couple of issues

In the LoadBalancing view, the action buttons seem to be missing:

QA server without PR fix:

With changes:

In the Project -> Accounts Tab, accounts added with a Regular user role have the option to promote as well as demote them to and from project admin role respectively - due to a missing check for the role type

Without Changes:

With Changes:

Project -> Project Roles Tab: Remove Project role button icon seems to be incorrect

Without Changes:

With Changes:

@Pearl1594 thanks a lot for testing
@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/4842 (SL-JID-130)


Improved notifications

Here are some improvements to TKStateMachineDidChangeStateNotification:

If a transition is initiated inside a state.didExitStateBlock, state.didEnterStateBlock or event.didFireEventBlock the notifications are posted out of order. By posting right after the state change, the notifications are sent in the expected order.

Add a new TKStateMachineDidChangeStateTransitionUserInfoKey which provides everything the other user info keys provide, plus the transition’s userInfo. Also deprecate all old user info keys.

If you don’t agree with all the changes (but why wouldn’t you anyway? 😉) you should be able to cherry-pick the ones you are interested in.

Looks good — merged

Great, thanks! What about #26? I have been playing with TransitionKit lately and having this visual representation of the state machine is an invaluable tool.


Failed to open the swagger documentation after hosting it on AWS

This question is more of a follow-up from issue #2787
I am hosting the app on API Gateway using Gitlab CI/CD and serverless. I have a couple of routes:

prices
prices/update

I have generated an API key to protect these routes. The key is generated directly via serverless. Naturally, I don't want the swagger documentation route to be protected. But when I host the app, the swagger documentation shows the following error:

The main.py file:
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from mangum import Mangum

from app.api.v1 import prices
from app.core.config import settings
from app.database.session import Base, engine

Base.metadata.create_all(bind=engine)

app = FastAPI(
    title=settings.PROJECT_NAME,
    version=0.1,
    root_path="/dev/"
)

app.add_middleware(
    CORSMiddleware,
    allow_origins=settings.BACKEND_CORS_ORIGINS,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)
app.include_router(prices.router)

handler = Mangum(app)

My serverless.yml file
service: myapp

plugins:
  - serverless-python-requirements
  - serverless-deployment-bucket

provider:
  name: aws
  runtime: python3.7
  stage: ${opt:stage, 'dev'}
  region: ${env:AWS_DEFAULT_REGION}
  endpointType: REGIONAL
  lambdaHashingVersion: 20201221
  apiGateway:
    apiKeys:
        - myapikey
    shouldStartNameWithService: true

package:
  patterns:
    - '!app/tests/**'
    - '!.coveragerc'
    - '!.gitlab-ci.yml'
    - '!package.json'
    - '!package-lock.json'
    - '!Pipfile'
    - '!Pipfile.lock'
    - '!README.md'

custom:
  pythonRequirements:
    dockerizePip: non-linux

functions:
  my-app:
    handler: app.main.handler
    timeout: 30
    memorySize: 150
    events:
      - http:
          path: docs # <-- This is the page for swagger documentation
          method: get
      - http:
          path: prices
          method: get
          private: true # <-- protects the route with the apikey
      - http:
          path: prices/update
          method: post
          private: true # <-- protects the route with the apikey

When loading the interactive docs, Swagger will try to load the OpenAPI specification which live in your case at /dev/openapi.json. So I guess, you should also configure this route in your serverless.yml file.

As suggested by @frankie567, doing the following solved the problem:
      - http:
          path: /docs
          method: ANY
          private: false
      - http:
          path: /openapi.json
          method: ANY
          private: false

how do you suggest to fix this issue if deploying a fastapi in a containerized lambda function?  I don't believe there is a serverless.yaml to edit in my case.


Partition according to topology, not linear node numbering

Original issue: https://charm.cs.illinois.edu/redmine/issues/116

When running with partitions, we should try to make them as topologically close as possible, to provide the best performance. Right now, we split the nodes into blocks by their sequential ID number, and run one partition on each block.

Original date: 2013-05-30 20:31:37

I'm looking at the replica branch now, and the commits are quite a mess. Please rebase interactively to form clear, discrete changes that will be easier to understand than "commit everything so I can merge" or "commit stuff before a machine goes offline".

Original author: Nikhil Jain
Original date: 2013-05-31 06:32:39

Yeah, rebasing and rephrasing of the commits is a given at the time of merge.

Original date: 2013-05-31 06:46:04

I'm asking that it happen as the first step of review, so that I an actually make sense of what I'm reading.

Original author: Nikhil Jain
Original date: 2013-05-31 15:26:43

replica-ready is the updated branch.

Original date: 2013-05-31 19:02:15

You're rebased to mainline and cleaned out some of the totally random commits, but it's still not in a really reviewable state. I would expect separate, individual, working commits for at least each of the following:

Variable partition size specified on the command line
Topo aware automatic partition construction
User-defined partition construction

Bug fix commits for each of these should be folded into the basic commit, so that we don't intentionally introduce broken commits whose fixes are already known. Where makefiles need to change to match code changes, those should also occur in the same commit.

Original date: 2013-05-31 20:49:24

I'm looking at the consolidated diff, so as not to be distracted by the transient states.
1st comment: calculateTotalHops() is defined solely in init.C, but never called. Is it for some unspecified later use, or is it detritus?

Original date: 2013-05-31 20:54:41

The code to print topology to a file should not fall back to standard output. If the user asked for this information in a particular place, it's a fatal error if that place isn't writable. We should display the nature of the failure (e.g. perror(errno)) and abort the run.

Original date: 2013-05-31 21:07:44

The documentation of custom partitioning strategies could be clearer:

The -custom-part flag needs to be passed when linking, not when compiling.
Rather than "a user is required to implement a C function . . .", "a user must link an object exporting a C function . . ."

Original date: 2013-05-31 21:18:07

Documentation:

Not all of the described partitioning features appear in 6.5.0, so the docs can't say just that. All of the options besides +partitions and +replicas should be marked as available in 6.6 onwards.
+use_topology needs to be either documented, or deleted as redundant with the more specific +use_topology_scheme.

Original date: 2013-05-31 21:31:55

For user convenience, the loop in TopoManager_createPartitions() to identity-initialize the nodeMap[] should be moved to create_topoaware_partitions() before the call to createCustomPartitions() and TopoManager_createPartitions().

Original date: 2013-05-31 21:38:59

There's a missing else in the PARTITION_MASTER case in node_lToGTranslate, such that n_l2g(0, 0) will return junk instead of the node with rank 0.

Original date: 2013-05-31 21:42:37

With +use_custom_part and CMK_ERROR_CHECKING set, we should validate that the output nodemap makes sense - all entries are in [0, CmiNumNodesGlobal()-1] and that each appears exactly once.

Original date: 2013-05-31 21:59:49

partitioning_strategies.h needn't contain any sort of header comment - version control records the file name and authorship.

Original date: 2013-05-31 22:00:39

Clean up the crufty amalgamation of partitioning_strategies.h and hilbert.h.

Original date: 2013-05-31 22:04:10

Nearly all of the code in partitioning_strategies.h should be in a .C file, with most functions declared static. The only two functions used externally are getPlanarList and getHilbertList.

Original date: 2013-05-31 22:12:55

TopoManager_getRanks():

puts its input argument coords after its output arguments rank_cnt and ranks
takes an array ranks as an output argument, but it's not documented how the user is supposed to determine how big to allocate this

TM_getPeRank and TM_createPartitions also have their arguments in a sub-optimal order.

Original date: 2013-05-31 22:17:13

Nikhil, did you delete an earlier comment? I got an email from Redmine with your comment

I am not inclined to spend further time on it as far as changing the commits are concerned. If you are convenient with reviewing the code with these commits, please do so; else I will request for an alternate reviewer.
but it seems to have disappeared from this issue's record.

Original author: Nikhil Jain
Original date: 2013-05-31 22:24:45

Yes, it was deleted since it may have been a conflict visible in public space.

Original date: 2013-05-31 22:28:04

The C-language TopoManager_* interfaces are not thread-safe as designed. One thread can be using _tmgr while another one goes into TM_reset(), deleting and re-constructing it.

Original date: 2013-05-31 22:29:06

Development communities have disagreements all the time. I didn't feel like anything in there warranted hiding. If it did, then we should probably not have been doing it.

Original author: Nikhil Jain
Original date: 2013-06-11 20:36:46

This was preexisting dead code. Removed.
Phil Miller wrote:

I'm looking at the consolidated diff, so as not to be distracted by the transient states.
1st comment: calculateTotalHops() is defined solely in init.C, but never called. Is it for some unspecified later use, or is it detritus?

Original author: Nikhil Jain
Original date: 2013-06-11 20:38:49

As a user of other libraries, I have found resorting to stdout as a better option, instead of causing the program crash. But the point is worth discussing with others.
Phil Miller wrote:

The code to print topology to a file should not fall back to standard output. If the user asked for this information in a particular place, it's a fatal error if that place isn't writable. We should display the nature of the failure (e.g. perror(errno)) and abort the run.

Original author: Nikhil Jain
Original date: 2013-06-11 21:54:23

I switched the arguments for CreatePartitions. However, for getRanks, the ordering is something people are used to, and hence it is kept this way. The documentation will be added to doc.
Phil Miller wrote:

TopoManager_getRanks():

puts its input argument coords after its output arguments rank_cnt and ranks
takes an array ranks as an output argument, but it's not documented how the user is supposed to determine how big to allocate this

TM_getPeRank and TM_createPartitions also have their arguments in a sub-optimal order.

Original author: Nikhil Jain
Original date: 2013-10-08 19:14:40

Basic strategies are in place and users can also specify their own strategies.