Specify single color for plot_lc

It would be useful for the purposes of studying many light curve fits to be able to set the color of all of the plots to avoid straining to look at certain yellows and greens.

The color of each bandpass is determined based on its "central wavelength" via a single colormap that maps the range (3000 Angstroms, 10,000 Angstroms). Currently using jet for that colormap. See here:
https://github.com/sncosmo/sncosmo/blob/master/sncosmo/plotting.py#L23
The quickest fix would be to simply use a better colormap. Want to change the colormap around and see what looks good? The next quickest fix would be to allow the user to specify the colormap and wavelength range instead of having them hard-coded. Yet more keyword args...
In general, I think plot_lc() could produce more aesthetically pleasing plots. We should get some serif fonts in there at least.

Actually now I see that you actually want no colormap at all, just a single color for all bandpasses. That could be accomplished with a keyword argument color that is either a single color or a colormap.

I see that it would be easy in the source code to allow the colormap to be an option in plot_lc. What do you think is the best way to have all plots be the same color?

You probably have to check the class of the thing the user passes in. Do one thing if it is a ColorMap, otherwise treat it as a single color. I think there are some places in matplotlib where you can pass either a colormap or a single color. If so, I'd check to see how they handle things.

As a user, I would probably be annoyed by having to retrieve the colormap from matplotlib myself. Could the user-input just be a string and then the code tries to retrieve a colormap, and falls back to just a single color if it doesn't exist? Then it would have to handle things if the user passed it some gibberish though (or a typo).
I dug around in the MPL source code for ~10 minutes and without knowing which methods allow the user to pass either/or, tracking it down quickly seems rather hopeless.

From a quick look at the docs, it seems like many methods allow a cmap argument or a color argument. For example:
http://matplotlib.org/api/pyplot_api.html?highlight=pyplot#matplotlib.pyplot.contour
color takes precedence, and if neither is specified, a default colormap is used. This seems like the way to go. I'll probably get to this eventually if you don't give it a go.

Ah, but that example takes either a cmap or a color, through different arguments; I thought you meant we would pass either a cmap or a color through the same argument and handle it internally.
I may get to it this week sometime.

Yeah a single argument was my initial thought, but after seeing what mpl does, it's probably better to mirror it and use two separate arguments.

Example behavior in master:
sncosmo.plot_lc(data, fitted_model, errors=res.errors, color='k', fname='test.png')

cmap = cm.get_cmap('cool_r')
sncosmo.plot_lc(data, fitted_model, errors=res.errors, cmap=cmap, fname='test.png')


Associative lists in DMM files result in a compile error

Related to #1198
Example
/obj/foobar{
	some_var = list(1=2)
},

results in Failed to serialize value to json (DMCompiler.DM.Expressions.List).
Non-associative lists don't have this issue.

Fixing #473 would fix this.


Add Configurable ErrorRespone

solves #196
Adds a configurable default response

@BenDenger
i hate the way i had to mock the requests in here (RequestTestUtils.kt) to test those features, i was thinking if we provide another module that abstracts that stuff away.
But i think we should do that in another PR


[d3d9] Fix widechar conversion for winelib

wcstombs creates garbage in device description for winelib
WideCharToMultiByte used, see
https://github.com/doitsujin/dxvk/blob/master/src/util/util_string.cpp

BTW: AppVeyor build failure caused by current master.
c:\projects\dxup\src\dx9asm\dx9asm_modifiers.cpp(66): error C2562: 'dxup::dx9asm::calculateDXBCModifiers': 'void' function returning a value [C:\Projects\DXUP\build\src\dx9asm\fda8aad<EMAIL_ADDRESS>         c:\projects\dxup\src\dx9asm\dx9asm_modifiers.cpp(21): note: see declaration of 'dxup::dx9asm::calculateDXBCModifiers'

Which I have fixed in previous PR, considering current master should be fine, and error is winelib (GCC) build specific.

I already have a fix for this locally, I'll look into wcstombs stuff though, but later.

Ok, then you probably should reject both PRs, and apply such fixes on your will at some point.
P.S.  I should fix another merge conflict next time. No way :wink:

Yeah I'll reject them for now. It may be a better idea for you to, if you wanted, continue this work once d3d9 support becomes more mature. I'm constantly rewriting large portions of it which will undoubtedly cause more wine build issues in future.


SimpleHostRoutingFilter: Add overridable ssl context provider method

Problem
We're having trouble with the hardcoded instance of SSLContext and our self-signed certificates. Tried using ssl.keystore etc., but our SSL Traffic is terminated by the load balancer and forwarded using http. Pretty sure we all heard that often enough, so i'll cut it short. 😄
Setting HttpsURLConnection.DefaultSocketFactory works but i'd prefer to costumize the built in SimpleHostRoutingFilter.
Solution
Added a new method that provides the default SSLContext and can be overriden by subclasses.

Codecov Report

Merging #2033 into master will increase coverage by 0.03%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master    #2033      +/-   ##
==========================================
+ Coverage   76.37%   76.41%   +0.03%
==========================================
  Files         212      212
  Lines        6395     6397       +2
  Branches      798      798
==========================================
+ Hits         4884     4888       +4
+ Misses       1171     1169       -2
  Partials      340      340

Impacted Files
Coverage Δ

...ix/zuul/filters/route/SimpleHostRoutingFilter.java
86.58% <57.14%> (+0.16%)
:arrow_up:

...a/server/EurekaServerInitializerConfiguration.java
79.31% <0%> (+6.89%)
:arrow_up:

Continue to review full report at Codecov.

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

This is actually one of the issues I plan on addressing with #2026 and there is an issue for this specific problem as well #1684.  I am of the opinion that we can make this change in the 1.3.x branch and then in master we should implement the fix for #2026 (and #1684).  @spencergibb what do you think?

Superseded by #2026


Create 0000-01-02-Z1816288.md

created a branch, created a file and made a commit, and opened a pull request

created a branch, created a file and made a commit, and opened a pull request


Passing arguments to Vec<...> requires Clone trait

First of all, thanks for the great parsing library. Have a question: I'm writing a parser for DNS packets where DNS question section can contain a Question that references a previous one. Thus, I would like to keep a mapping in a parent object:
#[binrw]
struct Data {
    #[brw(ignore)]
    mapping: HashMap<u64, u64>,

    num_items: u64,
    #[br(args{ count: num_items as usize, inner: (& mut mapping,) })]
    items: Vec<Item>,
}

#[binrw]
#[br(import(mapping: & mut HashMap<u64, u64>))]
struct Item {
    field1: u32,
}

In the future, I would like to use and modify the mapping map in the parse_with function. But I can't compile this code due to:
error[E0277]: the trait bound `for<'a> &'a mut HashMap<u64, u64>: Clone` is not satisfied in `(&'a mut HashMap<u64, u64>,)`
  --> src/lib.rs:52:12
   |
52 |     items: Vec<Item>,
   |            ^^^^^^^^^ within `(&'a mut HashMap<u64, u64>,)`, the trait `for<'a> Clone` is not implemented for `&'a mut HashMap<u64, u64>`, which is required by `Vec<Item>: BinRead`
   |
   = help: the trait `Clone` is implemented for `HashMap<K, V, S>`
   = note: `for<'a> Clone` is implemented for `&'a HashMap<u64, u64>`, but not for `&'a mut HashMap<u64, u64>`
   = note: required because it appears within the type `(&'a mut HashMap<u64, u64>,)`
   = note: required for `Vec<Item>` to implement `BinRead`

Is it really needed the Clone attribute? Note the issue goes away if I change items: Vec<Item> to item: Item.

    mapping: HashMap<u64, u64>,

Apparently, one possible solution would be using Rc<Mutex<HashMap<u64, u64>.

Thanks for your report! In the helper function that is used for parsing collections, arguments get moved into the reader function on each iteration, and I’m unaware of a way to do this less restrictively than by requiring the Clone trait. I’d be glad to see a PR if it is possible though :-)
Instead, I believe you should use parse_with to write a function that accepts &mut HashMap<u64, u64> and returns a Vec<Item>. The Rust compiler is more capable of reasoning about intrafunction lifetimes, and you presumably need some way to call whatever methods on HashMap anyway to set up your mapping.

Thanks for the reply. Both approaches are feasible for my use case. Anyway, thank you for the nice library!


[SPARK-28963][BUILD] Fall back to archive.apache.org in build/mvn for older releases

What changes were proposed in this pull request?
Fall back to archive.apache.org in build/mvn to download Maven, in case the ASF mirrors no longer have an older release.
Why are the changes needed?
If an older release's specified Maven doesn't exist in the mirrors, {{build/mvn}} will fail.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Manually tested different paths and failures by commenting in/out parts of the script and modifying it directly.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/15072/
Test PASSed.

Test build #110053 has started for PR 25667 at commit 158d91b.

Test build #110053 has finished for PR 25667 at commit 158d91b.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110053/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/15073/
Test PASSed.

Test build #110054 has started for PR 25667 at commit 5304c08.

Test build #110054 has finished for PR 25667 at commit 5304c08.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110054/
Test PASSed.

Merged to master.

Hi, All.
Since the JIRA issue has 2.4.5 as a target version along with 3.0.0. I'll backport this to branch-2.4.


Failed to fetch BS PAS 99:2012

The search tries to find "BS PAS 99:2012:2012" which is wrong.
[relaton-bsi] ("BS PAS 99:2012") fetching...
[relaton-bsi] WARNING: no match found online for BS PAS 99:2012:2012. The code must be exactly like it is on the standards website.

@ronaldtse there ins't BS PAS 99:2012, there is PAS 99:2012
https://shop.bsigroup.com/search?query=BS PAS 99%3A2012&type=products
bib = RelatonBsi::BsiBibliography.get 'PAS 99:2012'
[relaton-bsi] ("PAS 99:2012") fetching...
[relaton-iso-bib] WARNING: invalid doctype: fast-track-standard
[relaton-iso-bib] Allowed doctypes are: british-standard, draft-for-development, published-document, privately-subscribed-standard, publicly-available-specification, flex-standard, international-standard, technical-specification, technical-report, guide, international-workshop-agreement, industry-technical-agreement, standard, european-workshop-agreement
[relaton-bsi] ("PAS 99:2012") found PAS 99:2012

BTW should we add fast-track-standard doctype to the allowed doctypes list?

But reporting "BS PAS 99:2012:2012 is not found" is still wrong.

should we add fast-track-standard doctype to the allowed doctypes list?
Yes please!

The BSI search https://shop.bsigroup.com/search finds only PAS 99:2012. We can find the document if we remove the BS prefix from the reference but there are documents with the prefix.
We can remove BS only from BS PAS * references. Would it be ok?

I'm fine with just allowing "PAS 99:2012" not "BS PAS 99:2012".
But I am concerned that the Relaton message is "BS PAS 99:2012:2012" (notice it is ":2012:2012"). That would need to be fixed?


Add some tag value parsing edge cases

It looks like the girc-go parser handles one of these differently from how we discussed, but these are the two edge cases I was missing.
Running split tests
Tag tag1 has wrong value. Expected value1 got value1\
 * Passed tests: 30
 * Failed tests: 1
Running join tests
 * Passed tests: 17
 * Failed tests: 0
Running mask matching tests
 * Passed tests: 3
 * Failed tests: 0
Running userhost splitting tests
 * Passed tests: 9
 * Failed tests: 0
Running hostname validation tests
 * Passed tests: 13
 * Failed tests: 0

Nice, thanks very much


Shared-readwrite folder not writeable by members of CryoCloudAdvanced team

I thought that write access to the ~/shared-readwrite folder was controlled by mebership in the "Advanced Users" github team, but I'm not able to write to the folder despite being in the group.
Am I mistaken in how those permissions are being managed?

These are writeable by folks marked as 'admin' in the jupyterhub, not via any GitHub team. We currently don't have a way to mark folks as admins via group membership. The current best practice way to add admins is to make a PR to this list: https://github.com/2i2c-org/infrastructure/blob/master/config/clusters/nasa-cryo/common.values.yaml#L46

Ah, understood, thanks @yuvipanda! I see the parameters for #7 are also in that same file.
Quick question: do you think it would make sense for that file to live in the hub-image repo, so everything is in one place? Or does that complicate things on the 2i2c end?
If the latter, I understand - in that case we can just document which topics (like node selection or admin rights) need to be dealt with there, and how. I'm looking for the pattern that is easiest, on balance, for both the community users and the 2i2c team.

@fperez I think we'll have the hub-image separate from the hub config, as it also separates who can have merge rights easily. We can try figure out longer term how folks can also self-merge a subset of config changes easily, but I think this split is sort of how it'll be in the future. I hope datahub moves here too.

Thx @yuvipanda - we'll just add a note in the docs on where that info lives.

Fixed here. Thx @sgibson91!


npm install error

npm ERR! fetch failed https://github.com/cloudhead/less.js/tarball/1.5.0-wip
npm ERR! Error: 404 Not Found
npm ERR!     at WriteStream. (/usr/local/lib/node_modules/npm/lib/utils/fetch.js:58:12)
npm ERR!     at WriteStream.emit (events.js:117:20)
npm ERR!     at evalmachine.:1609:14
npm ERR!     at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:102:5
npm ERR!     at Object.oncomplete (evalmachine.:107:15)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR!     http://github.com/npm/npm/issues
npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/eduardo/IdeaProjects/grunt-refactor-master
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! not ok code 0

please, update devDependencies - #4

Yes please :+1:

yes!!! thx

@honzatrtik's pull request #4 works. Would be great if this could get merged in.


Feat/interactions with pointers - resolves #597

Cool, I'll have to take a look at this. Thanks @thestonefox.


'Compile on save' feature for TypeScript slower than a Rebuild

This issue has been moved from a ticket on Developer Community.

[severity:It's more difficult to complete my work]
When I change a TS file and save it, most of the times will Visual Studio start "compiling" all TS files in the project directory. It starts looping through all the files, and the status bar shows the following for each file:
Generation of '..... ts' complete. Remaining files still compiling.
And it finishes with the message:
Output(s) generating successfully.
I have 493 TS files in total, in several VS projects, in the same directory, and the recompiling takes 50 seconds to complete, after each save. Yet, a complete project rebuild takes only 25 seconds. This means that the compile-on-save feature is not usable (for me), and most of the times I will have to rebuild my entire project after each change in order to save time.
The first problem that I see is that all existing TS files in the project directory are recompiled, regardless if they are part of the current project or not. It would have been better to recompile only the files included in the current project -- that would save some time.
The second problem is that most of the time there is no need to recompile all files after a small change -- only the changed file should be recompiled. Sometimes, VS detects that situation and does just that, but rarely. Most of the times it recompiles all files, completely needless. VS should analyze better if all the files need to be recompiled, or just the changed file. In my case, I would be quite satisfied if I had a setting to limit the compile-on-save feature only to the changed file. When I want all files to be compiled I can just rebuild the project myself -- an automatic feature for that is not that usefull.

Original Comments
Feedback Bot on 1/26/2021, 06:04 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.
Benjamin Lichtman [MSFT] on 1/27/2021, 10:30 AM:
Thank you for your feedback!
Where possible, the compile-on-save feature should only recompile necessary files.
However, this is sometimes not possible - for example, when values are defined globally (as opposed to within modules), it is very difficult to track the impact of changes, and so we conservatively recompile all possibly impacted files.
In order for us to investigate this further, could you please provide us with log files so that we can conduct further research?

Please follow the instructions below in the “Enable detailed language service logging” section to collect the log files.

https://github.com/Microsoft/JSTSdocs/blob/master/articles/troubleshooting/index.md#enable-detailed-language-service-logging

After reproducing the problem, log files should be created in the folder specified.
Upload these files to this feedback by replying and inserting the files using the insert (attach) button.

We look forward to hearing from you!
Remus Vasii on 1/29/2021, 09:24 AM:
(private comment, text removed)

Original Solutions
(no solutions)

In the private comment, the user proposes a compileOnSaveForSingleFile setting, for when a user is willing to accept that globals may be impacted negatively.
@sheetalkamat for thoughts on how reasonable this might be.

In the private comment, the user proposes a compileOnSaveForSingleFile setting, for when a user is willing to accept that globals may be impacted negatively.
@sheetalkamat for thoughts on how reasonable this might be.

Currently what gets saved by change in single file is controlled by compiler options so i dont think we are looking for this new option. Reading the description it seems like there is discrepancy in what tsserver thinks the project is and seems like configuration issue rather than actually something that needs to be fixed.
Another experiment to run is use tsc --watch instead of compile on save and see what happens and what are the times.

Currently what gets saved by change in single file is controlled by compiler options so i dont think we are looking for this new option. Reading the description it seems like there is discrepancy in what tsserver thinks the project is and seems like configuration issue rather than actually something that needs to be fixed.
Another experiment to run is use tsc --watch instead of compile on save and see what happens and what are the times.

As I mentioned, I have a large project with lots of TS files (more than 500), and the automatic recompilation into JS files with the compileOnSave=true option takes 50 seconds to complete. While a complete project rebuild takes only 25 seconds, I am in the situation that I prefer to rebuild the project manually rather than wait for the automatic recompilation to complete.
This is particularly upsetting when I make small changes that I know they do not require a complete recompilation but the automatic compilation is triggered anyway. What is quite painful too, is the fact that the changed file is the last to be compiled. If the file would be the first to be compiled, I would not mind letting the automatic process do its job in the background, and I could just go on and test my changes. But since the changed filed is the last to be compiled, I must wait for the entire process to end, before I can start testing the change.
As Benjamin Lichtman said, the compileOnSave feature should only recompile necessary files, but that is not always possible, for example, when values are defined globally. And I totally agree with that. But that means that in a project with many such files, an automatic recompilation will be triggered after any small change, in any file, and that is not very usefull any more.
In my case, I have no problem turning off the compileOnSave feature and build manually the project. It is easy (Ctrl+Shift+B) and it is 25 sec faster too, so it's OK, I guess.
But a compileOnSaveForSingleFile would be even better. And I believe it would work fine and it would make sense, because I found trick to do it manually and it seems to work just fine. What I am missing is some automatic feature for it:
So I make some small changes to a TS file and I want it recompiled into its related JS file. I know for sure that the changes I made do not require a complete project-wide recompilation. I have only two options today (as far as I know): to wait 50 sec for the automatic project-wide recompilation do its job, or to start a build (Ctrl-Shift-B) and wait only 25 sec for the entire project to be built. But I noticed that if I just press Ctrl-S once more, and save the TS file one more time, the automatic recompilation process stops immediately. And, here comes the "good" part for me -- if I press Ctrl-S once more, and save the TS file again, it will be the only file recompiled this time, and I get what I wanted in the first place, a single TS file compilation.
My conclusion is that if I press Ctrl-S three times after I make changes to a TS file, I get to compile only that file. And it "works" – it gets the job done in the end. If I only had a setting to do that automatically, to compile a single TS file after a single Ctrl-S, it would be just perfect!


Support the mountOptions field of StorageClass when nfs-mounting for pods/containers

We have a need to create a PVC that mounts NFSv4 with the noac option in order to eliminate any lag between writing on one node and reading (a folder or timestamp, e.g.) on another.  Kubernetes StorageClass has a mountOptions field that may be used to pass this option along so that it is used when mounting for use with pods/containers.
The nfs-client-provisioner recently added support for this if you'd like to see how they did it (PR below).
Trident apparently does not support this yet, and we need the feature to continue using our general Trident dynamic provisioner instead of carving up a custom mount point with the incubator (nfs-client-provisioner) solution.

See https://kubernetes.io/docs/concepts/storage/storage-classes/
See https://github.com/kubernetes-incubator/external-storage/pull/835

Hello @scr-oath, you can use the k8s mount options, as defined in the storage class, with Trident without issue since 18.01.  You can see an example toward the bottom of this blog post.
Andrew


3rd person view results in graphical glitches or freeze

Since I'm waiting for content to update to 1.9.4 I decided to do a play around by morphing into a cow and running around with camera in 3rd person. Game promptly decided nope and started visual glitches like other animals getting dinnerbone/upsidedown effect and other models merging with player model. Another issue was I was unable to see the pause menu while in 3rd person. The error in log was the following which I thought might be effect of Better Forestry mod but it appears to use vanilla cow model.
########## GL ERROR ##########
[20:48:49] [Client thread/ERROR]: @ Post render
[20:48:49] [Client thread/ERROR]: 1283: Stack overflow
[20:48:49] [Client thread/ERROR]: Couldn't render entity
java.lang.ClassCastException: net.minecraft.client.model.ModelCow cannot be cast to net.minecraft.client.model.ModelBiped
at net.minecraft.client.renderer.entity.layers.LayerHeldItem.func_188358_a(LayerHeldItem.java:59) ~[bts.class:?]
at net.minecraft.client.renderer.entity.layers.LayerHeldItem.func_177141_a(LayerHeldItem.java:42) ~[bts.class:?]
at net.minecraft.client.renderer.entity.RenderLivingBase.func_177093_a(RenderLivingBase.java:486) ~[bsa.class:?]
at net.minecraft.client.renderer.entity.RenderLivingBase.func_76986_a(RenderLivingBase.java:209) [bsa.class:?]
at net.minecraft.client.renderer.entity.RenderLiving.func_76986_a(RenderLiving.java:50) [bsd.class:?]
at net.minecraft.client.renderer.entity.RenderLiving.func_76986_a(RenderLiving.java:16) [bsd.class:?]
at temportalist.esotericraft.emulation.client.EntityModel.forceRender(EntityModel.scala:27) [EntityModel.class:?]
at temportalist.esotericraft.transmorigification.client.Client$.renderPlayerPre(Client.scala:197) [Client$.class:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_125_Client$_renderPlayerPre_Pre.invoke(.dynamic) [?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:49) [ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.func_76986_a(RenderPlayer.java:58) [buh.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.func_76986_a(RenderPlayer.java:28) [buh.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_188391_a(RenderManager.java:378) [brj.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_188388_a(RenderManager.java:362) [brj.class:?]
at net.minecraft.client.renderer.RenderGlobal.func_180446_a(RenderGlobal.java:800) [bnl.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_175068_a(EntityRenderer.java:1726) [bnd.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_78471_a(EntityRenderer.java:1555) [bnd.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1334) [bnd.class:?]
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1077) [bcd.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:369) [bcd.class:?]
at net.minecraft.client.main.Main.main(SourceFile:124) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_25]
at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_25]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
[20:48:49] [Client thread/ERROR]:
after this I fired it up again to try to reproduce it. morphed into creeper and didn't have any issues. killed a cow again and attempted a morph which resulted in a lockup of the client. vanilla launcher didn't stop the event to produce a proper log.
log: http://pastebin.com/M782Yym0
I made a fresh world and spawned a vanilla cow with an egg just to be sure but wasn't able to reproduce the issue with that animal type.
EsoTeriCraft-1.9.4-<IP_ADDRESS>
Origin-1.9.4-9.1.8
Better Agriculture 1.9-0.13 (mod containing cow entity in question)
Forge: 1954 (1.9.4)

Ha. Haha. Hahahaha. That's..... Fun. I'll look into this soon...

@Cat-McCatface can you reproduce without Better Agriculture?

So far I can't reproduce it with non vanilla mobs although.
No problems with entities from Lycanites Mobs although that mod has some issues of its own [mob variant related].
(sorry this wasn't helpful, I just went through most of the vanilla mobs with spawn eggs and spammed f5 to see what happens when I fly around)

I'm going to file a bug report with Better AG in case something that dev can do about it.

Yeah, thats my mod causing that, I will have to take a look at EsoTeriCraft's code so I can add support for it.

Thanks

@TheTemportalist Any info or tip on how to fix this and how I can help to make my mobs compatible with your mod would helpful :)

Hey, thanks for being thorough friends! As far as compatibility, just try not to be hacky. I'm aware there are some render bugs. Soon I would like to implement an API for rendering, with which mods can add specific custom rendering code. Until then, I'm not sure what the issue could be considering I pass the entity cores pounding wth each render to the renderer.


Comments for Chapter 7 Bayesian statistics [Part 2] (February 7, 2021)

Hi Kevin, I am sending my comments for Chapter 7 Bayesian statistics [Part 2]
cerno_comments_on_pmlv2_c7_part2.pdf
Thanks!
Cheers,
Peter

fixed, thanks!


Private repo support

Running apply-pr on a private repo fails. It would be great if that was possible.

Have you set GITHUB_TOKEN?
From docs:

Github authorization token is read from the GITHUB_TOKEN environment variable,
it is not needed for public repositories however.


Create directory not file

Is it possible to just create a directory without specifying a file?

Hey @DaveTorbeck !
This is not currently possible, no.
A possible solution would be to make it only create a directoy if the specified path ends with a /, though.
What do you think about it?
We are accecpting PRs. You can try to do it yourself and submit one, if you feel like it!
/cc @dkundel What do you think about it?

Thanks for the quick reply @Telokis.  I'll take a stab at a PR when I have some free time.


The headless server cannot run carla normally using turbovnc+virtualgl

Hello, thank you for your contribution to Carla. I'm currently using carla<IP_ADDRESS> through turbovnc3.0 and virtualgl3.1 on a headless linux server (ubuntu20.04, Nvidia-470), and I use opengl mesa programs such as glxgears and it behaves normally.
But when I use vglrun -d :1.0 ./CarlaUE4.sh -carla-rpc-port=2000 -opengl3 -quality-level=Low, I get a black window and then after about 1 minute, he crashes and outputs
4.24.3-0+++UE4+Release-4.24 518 0
Disabling core dumps.
LowLevelFatalError [File:Unknown] [Line: 1155]
GameThread timed out waiting for RenderThread after 60.00 secs
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=65535 LargeMemoryPoolOffset=131119
Malloc Size=161312 LargeMemoryPoolOffset=292448
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault (core dumped)

sometimes it will output "CarlaUE4-Linux-Shipping" is not responding, followed by the same crash.
My OpenGL version is OpenGL version string: 4.5 (Compatibility Profile) Mesa 23.2.1 - kisak-mesa PPA, I also tried -opengl4 and -opengl, the results are the same.
Other off-screen commands such as SDL_VIDEODRIVER=offscreen SDL_HINT_CUDA_DEVICE=0 ./CarlaUE4.sh will output
4.24.3-0+++UE4+Release-4.24 518 0
Disabling core dumps.
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=65535 LargeMemoryPoolOffset=131119
Malloc Size=128368 LargeMemoryPoolOffset=259504
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554
CommonUnixCrashHandler: Signal=11
Malloc Size=65535 LargeMemoryPoolOffset=131119
Malloc Size=115872 LargeMemoryPoolOffset=247008
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault (core dumped)

The command DISPLAY= CUDA_DEVICE_ORDER=PCI_BUS_ID CUDA_VISIBLE_DEVICES=0 ./CarlaUE4.sh -opengl also crashes and the output is
4.24.3-0+++UE4+Release-4.24 518 0
Disabling core dumps

My carla is installed through InterFuser's script (when I use xserver to access the remote server, the carla window can be displayed normally, but the screen will be broken and the delay is too high, so the carla installation method does not seem to be the main problem):
#!/usr/bin/env bash

# Download and install CARLA
mkdir carla
cd carla
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/CARLA_<IP_ADDRESS>.tar.gz
wget https://carla-releases.s3.eu-west-3.amazonaws.com/Linux/AdditionalMaps_<IP_ADDRESS>.tar.gz
tar -xf CARLA_<IP_ADDRESS>.tar.gz
tar -xf AdditionalMaps_<IP_ADDRESS>.tar.gz
rm CARLA_<IP_ADDRESS>.tar.gz
rm AdditionalMaps_<IP_ADDRESS>.tar.gz
cd..

Anyone willing to share insights would be greatly appreciated.

In my case, updating nvidia driver is work.


⚠ ClamAV has degraded performance

In bbac60d, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 186 ms

Resolved: ClamAV performance has improved in 6335c22.


[BUG] - Strange Error at runtime suddenly

Checks

[X] I have searched the existing issues for a similar bug and it does not exist!

Environment
Nuxt project info:

Operating System: Windows_NT
Node Version:     v18.17.1
Nuxt Version:     3.8.0
CLI Version:      3.9.1
Nitro Version:    -
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, ssr, modules, imports, vue, experimental
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Quasar version
2.13.0
Browsers
Google Chrome
Description
I was working with it one moment, everything worked, components loaded on browser and styles.
Added some extra deps from the unjs ecosystem.
Then started getting this error:

So started to debug. Removed all unjs deps.
Error continued. Finally removed nuxt-quasar-ui and the error went away!
Tried the previous version, removed node_modules and reinstalled deps, removed .nuxt.
Even rolled back from vue 3.3.7 to vue 3.3.6 and from quasar 2.13.0 to 2.12.0 to check if that fixed it.
I'm shocked 😲
Reproduction steps
1. pnpx nuxi@latest module add nuxt-quasar-ui
2. pnpm add quasar @quasar/extras
3. pnpm dev
4. Error in browser

Screenshots
![DESCRIPTION](LINK.png)

Logs
No response

Solved
Wow! Almost didn't spot the error until I made a new project. New nuxt templates comes without the .npmrc and the shamefully-hoist=true because recently they announced that just adding vue and vue-router explicitly wouldn't require this flag, so when I installed nuxt-quasar-ui and quasar, the node_modules had a structure. But then I reinstalled the deps, and they were installed without --shamefully-hoist, so I got the quasar error.
So to solve this, I added the .npmrc and the flag, and bam, I got the old project working smoothly again! 🥴😂


[ConvertService] Support resolving images referenced in content

Bug/issue #, if applicable: rdar://107531364
Summary
This enables convert service requests to resolve assets that are references in the content. This required two changes:

Allow the fallback asset resolve to look for an asset identifier when the local asset manager didn't find one.
When rendering the image, get the file extension from the asset's url instead of from the asset identifier.

This PR also removes unnecessary empty media references when an asset didn't render anything.
Dependencies
None
Testing
In a client that uses ConvertService:

Verify that passing an article with image references (either using ![](), @Image, or @PageImage) result in DocC returning a render node with image references for those images.
Add another article with @PageImage images and link it with @Links(visualStyle: detailedGrid) and verify that DocC returns a image references for the second article's page images.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[ ] Updated documentation if necessary

@swift-ci please test

@swift-ci please test


Fixed typo in SALifetime value

27,700 to 27,000.

@ScottNapolitan : Thanks for your contribution! The author, @brenduns, has been notified to review your proposed change.

#sign-off


stdlib: Fix a borrowing switch condfail

Also, address some recently introduced, spammy warnings in Duration.swift.
Resolves rdar://128249510

@swift-ci please smoke test


Validation condition on checkbox

Hi,
I have e-shop with 3 steps order form. There is a form with delivery address, billing address and checkbox (Delivery address is same as billing address) in 2 step. When user dont checked checkbox then delivery address is required. When user checked checkbox then delivery address is not required.
So I need to add conditions to inputs in delivery address for checkbox checked.
Is there some way to do it?

Thanks for using my library! One simple solution is when the user checks the checkbox you just copy the text from billing address input to delivery address input so the validation will be passed.
For conditional validation, you can pass a function to validator props of your delivery address input and return true or false based on your checkbox and delivery address state. I wrote an example for you here, and you can also find the example in my doc.  @krajcikondra


Unknown issue for me

WARNING: Running this script WILL change your save files and could potentially corrupt your data. It is HIGHLY recommended that you make a backup of your save folder before continuing. Press enter if you would like to continue.

Traceback (most recent call last):
File "C:\Users\owl337\AppData\Local\pal\Saved\SaveGames\76561198000627022\8013B81E42219F64AD1914Ac81822C28\fix-host-save.py", line 197, in
main()
File "C:\Users\owl337\AppData\Local\pal\Saved\SaveGames\76561198000627022\8013B81E42219F64AD1914Ac81822C28\fix-host-save.py", line 41, in main
sav_to_json(uesave_path, level_sav_path)
File "C:\Users\owl337\AppData\Local\pal\Saved\SaveGames\76561198000627022\8013B81E42219F64AD1914Ac81822C28\fix-host-save.py", line 90, in sav_to_json
with open(file, 'rb') as f:
^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\owl337\Desktop\my_pal_save/Level.sav'
PS C:\Users\owl337\AppData\Local\pal\Saved\SaveGames\76561198000627022\8013B81E42219F64AD1914Ac81822C28>

Have not run the script myself but a quick glance at the code makes me think its a problem with assumptions made about the format of the filepath you call the script with, probably an OS thing.
Again I have not run the script myself but I would try replacing the backslashes with forward slashes in the command. It MAY work...
IE: C:/Users/owl337/Desktop/my_pal_save/ instead of C:\Users\owl337\Desktop\my_pal_save/

Have not run the script myself but a quick glance at the code makes me think its a problem with assumptions made about the format of the filepath you call the script with, probably an OS thing.
Again I have not run the script myself but I would try replacing the backslashes with forward slashes in the command. It MAY work...
IE: C:/Users/owl337/Desktop/my_pal_save/ instead of C:\Users\owl337\Desktop\my_pal_save/

Ran some tests. this does not seem to be the issue.

There are many things going wrong here:

Try setting up and running the dedicated server before you try to run the script. You will want to move your save to your dedicated server and be able to connect to it.
The co-op host must create a new character on the dedicated server.
Shutdown the server, take the dedicated server save which should now have a new .sav file in the Players folder, copy it and back it up somewhere.
Run the script on the dedicated server save after you have obtained all of the three pieces of information you need: the co-op host's GUID, the path to uesave.exe, and the path to your dedicated server save.

How should i run the script on the rented palworld server?

I've never used it before so idk

Hmm, so theres no chance? I've my ID what is my palworld server using, but the script just needs to run on my PC and not on the deidcated server?


Improve Readme

List exact scripts needed for ICNI 1.0 and 2.0 and how many objects they create etc.
Also include any pre-setup instructions/docs for repeatability of tests.

#22


How to register methods without arguments

I've been stuck on trying to register a method that has no arguments.
I get nullPointerException trying to do it the way below:
getHelper().registerAllowedMethod(method(methodName, null), { c -> "${methodName} executed successfully" })
How do I use registerAllowedMethod to mock methods without arguments?
🙏 🙏 🙏  Any help is greatly appreciated 🙏 🙏 🙏

Hi ChastinaLi,
The basic way to register a method without argument is:

helper.registerAllowedMethod('myMethod', [], { println 'Executing My Method' })

Use an empty list ([]) rather than null in the second parameter of registerAllowedMethod.
Does that solve your problem?

👍 👍 👍
Any plan to do a new release soon? 😉

There is no official schedule for the next release.
However the syntax suggested below is already available with the latest release.
The changes I did today are some documentation improvements and syntactic sugar to write it even simpler.
Le 20 avril 2017 20:11:02 GMT+02:00, Chastina Li<EMAIL_ADDRESS>a écrit :

👍 👍 👍
Any plan to do a new release soon? 😉
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/lesfurets/JenkinsPipelineUnit/issues/23#issuecomment-295839800

Thanks ❤


all organ parts query addition

Queries for all organ parts relevant to SPARC using the organList as reference.

As written this query seems to have run times well over 10 mintues on my test systems (I didn't hang around to see if it finished. How long was it taking for you?

We have found an alternate way to accomplish this so closing. At some point we might come back to this approach so ok to keep the branch for the record.


Add deps argument for useConditionalUpdateEffect and useConditionalEffect hooks

What new hook does?
Add deps argument for useConditionalUpdateEffect and useConditionalEffect hooks
BREAKING CHANGE: useConditionalUpdateEffect and useConditionalEffect now has changed call signature (new argument).
Checklist

[x] Have you read contribution guideline?
[x] Does the code have comments in hard-to-understand areas?
[x] Is there an existing issue for this PR?

#157

[x] Have the files been linted and formatted?
[x] Have the docs been updated?
[x] Have the tests been added to cover new hook?
[x] Have you run the tests locally to confirm they pass?

@xobotyi It looks like useConditionalUpdateEffect's docs haven't been updated to include deps - should we?
Also, it looks like there are a couple linting errors.

@JoeDuncko just thought to poke you in discord, about this PR =)
Both fixed.

@JoeDuncko it is triggered automatically if any of commits has BREAKING CHANGE: ... in commit message

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix a divide by 0 error when there is only 1 label

Replaces #702 since I screwed up the rebase. @fulldecent this should be easier to merge.

Approved

Shout: requesting second nomination from:
@jakesyl @etimberg @n8mauer @etimberg @derekperkins

Looks good, merging.


dolphin scheduler default admin user password correct but can not login

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
I not change the default user user admin. After running for a while, the password suddenly cannot be logged in normally. This exception occurred after I enabled the access token for admin. How can I reset the password?
What you expected to happen
how to reset default user admin password via cli
How to reproduce
After running for a while, the password suddenly cannot be logged in normally. This exception occurred after I enabled the access token for admin. How can I reset the password?
Anything else
No response
Version
3.2.x
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

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

and the error message that is following:
docker ps
CONTAINER ID   IMAGE                                                                  COMMAND                  CREATED         STATUS                        PORTS                                                                                NAMES
46a35cea9eef   ghcr.io/apache/dolphinscheduler/dolphinscheduler-worker:latest         "/bin/bash /__cacert…"   2 minutes ago   Up About a minute (healthy)   1235/tcp                                                                                docker-dolphinscheduler-worker-1
085cb31ba8c4   ghcr.io/apache/dolphinscheduler/dolphinscheduler-master:latest         "/bin/bash /__cacert…"   2 minutes ago   Up About a minute (healthy)   5678-5679/tcp                                                                                docker-dolphinscheduler-master-1
bdfe323d6865   ghcr.io/apache/dolphinscheduler/dolphinscheduler-alert-server:latest   "/bin/bash /__cacert…"   2 minutes ago   Up About a minute (healthy)   50052-50053/tcp                                                                                docker-dolphinscheduler-alert-1
3f9f0785e5c4   ghcr.io/apache/dolphinscheduler/dolphinscheduler-api:latest            "/bin/bash /__cacert…"   2 minutes ago   Up About a minute (healthy)   <IP_ADDRESS>:12345->12345/tcp, :::12345->12345/tcp, <IP_ADDRESS>:25333-25334->25333-25334/tcp, :::25333-25334->25333-25334/tcp   docker-dolphinscheduler-api-1
8095619bcf42   bitnami/postgresql:15.2.0                                              "/opt/bitnami/script…"   2 minutes ago   Up 2 minutes (healthy)        <IP_ADDRESS>:5432->5432/tcp, :::5432->5432/tcp                                                                              docker-dolphinscheduler-postgresql-1
d9ac617fe9f8   bitnami/zookeeper:3.7.1                                                "/opt/bitnami/script…"   2 minutes ago   Up 2 minutes (healthy)        2181/tcp, 2888/tcp, 3888/tcp, 8080/tcp                                                                                docker-dolphinscheduler-zookeeper-1
[ec2-user@schedulerServer docker]$ docker logs -f --tail=10 docker-dolphinscheduler-api-1
<IP_ADDRESS> - - [30/Jul/2024:00:40:49 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 5ms
[ERROR] 2024-07-30 08:41:17.523 +0800 o.a.d.a.s.i.AbstractAuthenticator:[78] - Username or password entered incorrectly.
<IP_ADDRESS> - - [30/Jul/2024:00:41:17 +0000] "POST /dolphinscheduler/login HTTP/1.1" 200 98 6ms
<IP_ADDRESS> - - [30/Jul/2024:00:41:19 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 5ms
<IP_ADDRESS> - - [30/Jul/2024:00:41:50 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 5ms
<IP_ADDRESS> - - [30/Jul/2024:00:42:20 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 5ms
<IP_ADDRESS> - - [30/Jul/2024:00:42:50 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 7ms
<IP_ADDRESS> - - [30/Jul/2024:00:43:20 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 5ms
<IP_ADDRESS> - - [30/Jul/2024:00:43:50 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 7ms
<IP_ADDRESS> - - [30/Jul/2024:00:44:20 +0000] "GET /dolphinscheduler/actuator/health HTTP/1.1" 200 149 4ms
I use docker compose deploy the application

#login the postgresql sql container
docker exec -it docker-dolphinscheduler-postgresql-1 /bin/bash
psql -Uroot -d dolphinscheduler 【login the pq database】
#Generate an encrypted string of new password using md5
echo -n "Aa123456#" | md5
#update the new password
update t_ds_user set user_password='c96da3623f1434248c7ee7f0be47a51d' where user_name='admin';
#and then it can success login

When I modify the application configuration file under the docker-dolphinscheduler-api-1 container to enable gateway and restart the container, the password is correct, but when logging in, the password is wrong. This should be a bug. Please fix it. Thank you.


⚠ Bofrost.de has degraded performance

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

HTTP code: 200
Response time: 1171 ms

Resolved: Bofrost.de performance has improved in c293dbe.


feature/refactoring-confirm-delete-batch

Hi kfazinic Thank you for your review, can you look at it once more?

Hi kfazinic Thank you for your review, can you look at it once more?

@Ekamba awesome! 👏

Approved


Tiled arbitrary grids

adds 2 3 experimental data objects:

YTTiledArbitrayGrids : a collection of YTArbitraryGrid objects that cover a specified range of the dataset.
YTPyramid: a collection of YTTiledArbitrayGrids with user-specified resolutions per level
YTOctPyramid: subclass of YTPyramid that builds YTTiledArbitrayGrids at resolution decreasing by a factor between each level.

draft for now, will add more details as I go...

rebased off of #12

pre-commit.ci autofix

now based off of #16


MArch 2024 workshop: links to training materials

We should go through these links and check if we have them in our database and otherwise poentially add them:
https://www.ugent.be/en/research/openscience/datamanagement https://www.go-fair.org/resources/rdm-starter-kit/ forschungsdaten.info
https://f1000research.com/slides/11-746
https://www.mdpi.com/2304-6775/5/1/2 https://www.nature.com/articles/sdata201618
https://www.go-fair.org/fair-principles/ https://www.nature.com/articles/sdata201618 https://www.nature.com/articles/s41431-018-0160-0
https://pubmed.ncbi.nlm.nih.gov/36371407/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9271325/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8606015/
Griffin, P., et al., Best practice data life cycle approaches for the life sciences [version 2; peer review: 2 approved]. F1000Research, 2018. 6(1618). DOI: https://doi.org/10.12688/f1000research.12344.2 https://doi.org/10.11588/heidok.00029489 https://rdmkit.elixir-europe.org/data_life_cycle https://tess.elixir-europe.org/search?q=data+life+cycle#materials https://www.ibiology.org/online-biology-courses/bioimage-analysis-course/
https://bausteine-fdm.de/article/view/7945 https://www.o-bib.de/bib/article/view/2018H2S1-13 https://discovery.ucl.ac.uk/id/eprint/1546596/1/26_Learn_Guidance_137-140.pdf
https://dsw.fairdata.solutions/ https://base4nfdi.de/images/AbstractDMP4NFDI.pdf https://ds-wizard.org/ https://rdmorganiser.github.io/ https://focalplane.biologists.com/2023/11/06/creating-a-research-data-management-plan-using-chatgpt/
Sharing & Licensing, https://f1000research.com/slides/10-519 https://hup.sub.uni-hamburg.de/oa-pub/catalog/book/205
The Carpentries
Schmidt, C., Bortolomeazzi, M., Boissonnet, T., Fortmann-Grote, C., Dohle, J., Zentis, P., Kandpal, N., Kunis, S., Zobel, T., Weidtkamp-Peters, S., & Ferrando-May, E. (2023). I3D:bio's OMERO training material: Re-usable, adjustable, multi-purpose slides for local user training. Zenodo. https://doi.org/10.5281/zenodo.8323588 https://omero-guides.readthedocs.io/en/latest/fiji/docs/index.html	Fiji plugin "simple-omero-client"	Fiji plugin "omero_batch-plugin"
https://omero-guides.readthedocs.io/en/latest/python/docs/gettingstarted.html https://docs.openmicroscopy.org/omero/5.6.0/developers/Python.html https://github.com/ome/omero-guide-python
https://wiki-biop.epfl.ch/en/data-management/omero/qupath https://omero-guides.readthedocs.io/en/latest/qupath/docs/index.html
https://usegalaxy-eu.github.io/posts/2020/11/23/OMERO-post/ https://training.galaxyproject.org/
BIOMERO
https://gerbi-gmb.de/i3dbio/i3dbio-rdm/i3dbio-bioimage-metadata/
( https://guide-kvpairs-scripts.readthedocs.io/en/latest/ -> will be moved to omero-guides)	Excel sheet with Macros for dropdown and export as .csv	Annotations using Tabbles and OMERO.script	Fiji plugin "simple-omero-client"	Fiji plugin "omero_batch-plugin"
REMBI , https://genomebiology.biomedcentral.com/articles/10.1186/gb-2005-6-5-r47	NBO	QUAREP-LiMi	https://gerbi-gmb.de/i3dbio/i3dbio-rdm/i3dbio-bioimage-metadata/ https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2022.871228/full
https://www.ebi.ac.uk/bioimage-archive/rembi-help-overview/ https://www.nature.com/articles/s41597-023-02367-w
GitHub - cmohl2013/omero-arc: Library to export OMERO projects to ARC repositories https://www.fdm.tu-clausthal.de/fileadmin/FDM/documents/Manual_eLab_v0.3_20200323.pdf
https://focalplane.biologists.com/2021/09/04/collaborative-bio-image-analysis-script-editing-with-git/
http://opendatahandbook.org/guide/en/what-is-open-data/ https://www.fosteropenscience.eu/learning/use-open-data-in-teaching/#/id/5b06ca3ba8216e322da360b6
https://web.library.uq.edu.au/blog/2022/03/five-great-reasons-share-your-research-data https://www.publisso.de/en/advice/publishing-advice-faqs/research-data
https://gerbi-gmb.de/i3dbio/i3dbio-rdm/image-data-repositories/	10.12688/f1000research.121714.2
https://gerbi-gmb.de/2023/06/01/finding-and-choosing-a-repository/ https://www.re3data.org/
https://www.go-fair.org/fair-principles/
Cultlivating Open Training (Slides) https://zenodo.org/records/10654775 https://focalplane.biologists.com/2023/05/06/if-you-license-it-itll-be-harder-to-steal-it-why-we-should-license-our-work/
https://www.ebi.ac.uk/bioimage-archive/submit/ https://www.sciencedirect.com/science/article/pii/S0022283622000791?via%3Dihub
https://www.nature.com/articles/nmeth.4326
https://focalplane.biologists.com/2023/02/15/sharing-research-data-with-zenodo/ https://focalplane.biologists.com/2023/07/26/sharing-your-poster-on-figshare/
nfdi.de forschungsdaten.info
Cultlivating Open Training (Slides) https://zenodo.org/records/10654775 https://doi.org/10.1371/journal.pcbi.1007854
Data Stewardship goes Germany	https://www.nature.com/articles/s41431-018-0160-0
https://omero-fbi.fr/slides/elmi23_cfd/main.html#/title-slide
Youtube channel OME	Youtube channel Glencoe	Youtube videos Eric Ratamero	I3D:bio training material collection
https://www.orca.nrw/searchresults?searchbox="elabftw"&orca_show_all_of=result_media
https://nfdi4plants.org/nfdi4plants.knowledgebase/index.html
OMERO-cli-transfer tool
NGFF spec/schema	NGFF validator
https://www.glencoesoftware.com/products/ngff-converter/ https://github.com/glencoesoftware/bioformats2raw https://github.com/glencoesoftware/raw2ometiff	BioFormats CLI toolkit
https://www.nature.com/collections/djiciihhjh https://forum.image.sc/t/checklists-for-publishing-images-and-image-analysis/86304
https://workflowhub.eu/ https://galaxyproject.org/learn/advanced-workflow/ https://galaxy-au-training.github.io/tutorials/modules/workflows/
https://training.galaxyproject.org/ https://www.knime.com/community/image-processing
https://focalplane.biologists.com/2022/12/08/managing-scientific-python-environments-using-conda-mamba-and-friends/

@haesleinhuepf could you maybe assign me to that issue? I'm already working on it but can't assign myself (yet).


Troubles viewing data of a StructuredBuffer where T is a struct

Description
Trying to view the data of a StructuredBuffer in RenderDoc but can't get a correct row count mostly. I also had cases where half the data were in float form and the rest were in scientific form with exponent but the dataset used in the photos below did not show this issue.
The setup is a ComputeShader in Unity where we precalculate an array of size N in the editor and submit it to the ComputeShader using a CommandBuffer on runtime. Below there will be images of each different approach where the variable factors are how the data were submitted to the ComputeBuffer and/or how they were formatted for visualization in RenderDoc.
In the ComputeShader, we define a StructuredBuffer, where Spread is:
struct Spread {
	float Left_0_25;
	float Left_0_5;
	float Left_0_75;
	float Left_1;
	float Right_0_25;
	float Right_0_5;
	float Right_0_75;
	float Right_1;
	float Top_0_25;
	float Top_0_5;
	float Top_0_75;
	float Top_1;
	float Bottom_0_25;
	float Bottom_0_5;
	float Bottom_0_75;
	float Bottom_1;
};

In the C# side of things, we also use the same struct in half of the tests.
Due to time constraint, there were no tests where the type of the StructuredBuffer was changed in
the ComputeShader as well.
Repro steps
NOTE: In all subsequent photos, we display the last rows of the data.

In the first test, we submit the data as an array of structs:

Spread[] precalc_spread_values; // Size is 30
ComputeBuffer precalc_values_buf = new ComputeBuffer(precalc_spread_values.Length, 16);
precalc_values_buf.SetData(precalc_spread_values);

Now for the visualizations:
* raw

* float

* float[16]

* struct layout(copy pasted the Spread struct from brace to brace)

In the second test, we submit the data as a flat array of floats where we add each float sequentially starting from Left_0_25,following the order above:

               precalc_values_buf = new ComputeBuffer(16 * Repetitions, 4); //NumOfFloatsInStruct * Reps = 30
		List<float> temp = new List<float>(16 * Repetitions);
		for(int i=0;i<precalc_spread_values.Length;i++)
		{
			temp.Add(precalc_spread_values[i].Left_0_25);
			temp.Add(precalc_spread_values[i].Left_0_5);
			temp.Add(precalc_spread_values[i].Left_0_75);
			temp.Add(precalc_spread_values[i].Left_1);
			temp.Add(precalc_spread_values[i].Right_0_25);
			temp.Add(precalc_spread_values[i].Right_0_5);
			temp.Add(precalc_spread_values[i].Right_0_75);
			temp.Add(precalc_spread_values[i].Right_1);
			temp.Add(precalc_spread_values[i].Top_0_25);
			temp.Add(precalc_spread_values[i].Top_0_5);
			temp.Add(precalc_spread_values[i].Top_0_75);
			temp.Add(precalc_spread_values[i].Top_1);
			temp.Add(precalc_spread_values[i].Bottom_0_25);
			temp.Add(precalc_spread_values[i].Bottom_0_5);
			temp.Add(precalc_spread_values[i].Bottom_0_75);
			temp.Add(precalc_spread_values[i].Bottom_1);
		}
		precalc_values_buf.SetData(temp.ToArray());

Visualization:
* raw

The rest of the formats work as expected.

In the first test, we get a correct row count. But in the other formats, we get the wrong count.
In the second test, we get an incorrect row count for the raw format but a correct row count for all other formats.
Environment

RenderDoc build: v1.0(Built from https://github.com/baldurk/renderdoc/commit/5ef2d0bb5e86a37ba6c250987e9dc8c33c26435c)
Operating System: Windows 10
API: D3D11
Engine : Unity 5.6.6f2
GPU: NVIDIA GTX680( Driver version: 388.13)

Let me say that I discovered an error from yesterday but it only fixed the row count for the second test for all formats apart raw.
Also I don't know how to repro the case where data were in float for the first few lines and the rest in scientific notation(but when logged in C# side, all values were definitely not small enough to warrant scientific notation).

Can you share the frame capture with me? Either here or privately. I need something concrete to look at to figure out what's going wrong in your case, I can't do that from just Unity code snippets.

Scratch that. I uncovered another mistake. In the case where I submitted data in a struct layout, I was using the wrong stride(forgot to account for float size). Now I get the same result in both approaches.
So sorry about that. I'll close this issue now.


Is this a legal ending of graph G?

Hi, it's me again.
I created graph 'G' like the picture below.
But when I print the result of ending_iterator(), it shows that [ 1,4,5 ] is not an ending of G.
According to the definition in the paper, it is a legal ending of G. Or do I misunderstand the definition?
What makes me more confused is that [ 1,4,5 ] is not even a candidate. By which I mean that it never appears in the end_list.
Looking forward to your reply, thx !

This is how I create the graph, little change to your sample program.
def sample_network():
    v = ios.placeholder(output_shape=(3, 512, 512))
    block = ios.Block(enter_node=v.node)
    v1 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v2 = ios.conv2d(block, inputs=[[v]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v3 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v4 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v1 = ios.conv2d(block, inputs=[[v1],[v2]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    out = ios.identity(block, inputs=[[v1], [v2], [v3] ,[v4]], is_exit=True)  # concat v1, v2, and v3

    graph = ios.Graph(name="demo", input=v.node, blocks=[block])
    graph.init_weights()

    return graph

Hi @ikaroso,
I am glad that you read the code of ios. I used the following code to dump the dynamic programming statistics:
import ios
import json

def sample_network():
    v = ios.placeholder(output_shape=(3, 512, 512))
    block = ios.Block(enter_node=v.node)
    v1 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v2 = ios.conv2d(block, inputs=[[v]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v3 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v4 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v1 = ios.conv2d(block, inputs=[[v1],[v2]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    out = ios.identity(block, inputs=[[v1], [v2], [v3] ,[v4]], is_exit=True)  # concat v1, v2, and v3

    graph = ios.Graph(name="demo", input=v.node, blocks=[block])
    graph.init_weights()

    return graph

def main():
    dp_info = {}
    ios.optimize(graph=sample_network(), cost_model=ios.cost_model.RandomCostModel(), debug_dp_info=dp_info)
    with open('dp_info.json', 'w') as f:
        json.dump(dp_info, f, indent=2)

if __name__ == '__main__':
    main()

Here is the result:
{
  "dp": {
    "1": "0.469 (merge 1)",
    "2": "0.379 (parallel 2)",
    "1 2": "0.385 (merge 1 2)",
    "3": "0.322 (parallel 3)",
    "1 3": "0.534 (merge 1 3)",
    "2 3": "0.468 (parallel 2 3)",
    "1 2 3": "0.187 (parallel 1 2 3)",
    "4": "0.487 (parallel 4)",
    "1 4": "0.353 (parallel 1 4)",
    "2 4": "0.266 (parallel 2 4)",
    "1 2 4": "0.270 (parallel 1 2 4)",
    "3 4": "0.457 (parallel 3 4)",
    "1 3 4": "0.548 (parallel 1 3 4)",
    "2 3 4": "0.391 (merge 2 3 4)",
    "1 2 3 4": "0.367 (merge 1 2 3 4)",
    "1 2 5": "0.899 (parallel 5)",
    "1 2 3 5": "0.701 (parallel 5)",
    "1 2 4 5": "0.783 (parallel 5)",
    "1 2 3 4 5": "0.683 (parallel 4 5)",
    "1 2 3 4 5 6": "0.726 (parallel 5 6)"
  },
  "stage_latency": {
    "parallel 1": 0.5694971746478231,
    "parallel 2": 0.3788800644073718,
    "parallel 1 2": 0.7098939930834663,
    "parallel 3": 0.3219436122128854,
    "parallel 1 3": 0.5569316460076521,
    "parallel 2 3": 0.467596125968155,
    "parallel 1 2 3": 0.18708203389699196,
    "parallel 4": 0.4873168262318679,
    "parallel 1 4": 0.35279445582931684,
    "parallel 2 4": 0.26553066377640977,
    "parallel 1 2 4": 0.26956340649911453,
    "parallel 3 4": 0.4567086555448972,
    "parallel 1 3 4": 0.5483608091617191,
    "parallel 2 3 4": 0.5314608591676082,
    "parallel 1 2 3 4": 0.4820379027517457,
    "parallel 2 5": 0.7197108285988345,
    "parallel 1 5": 0.5402441315275974,
    "parallel 5": 0.513845369586375,
    "parallel 2 3 5": 0.5597693111850287,
    "parallel 1 3 5": 0.5813568010127768,
    "parallel 3 5": 0.4985233284122655,
    "parallel 2 4 5": 0.3824053191716492,
    "parallel 1 4 5": 0.4692793254399282,
    "parallel 4 5": 0.4955739319820986,
    "parallel 2 3 4 5": 0.5811680684226933,
    "parallel 1 3 4 5": 0.5848772175853789,
    "parallel 3 4 5": 0.6837196358518346,
    "parallel 4 6": 0.6484234806254489,
    "parallel 3 6": 0.5094202562706284,
    "parallel 2 5 6": 0.4114027240339671,
    "parallel 1 5 6": 0.5346889263379035,
    "parallel 5 6": 0.35912988250728656,
    "parallel 6": 0.4481221935426911,
    "merge 1 2 3 4": 0.36736091961672335,
    "merge 1": 0.468872024407822,
    "merge 2 3 4": 0.3909571676259633,
    "merge 2": 0.5750593746721558,
    "merge 1 3 4": 0.5732843046488943,
    "merge 1 2": 0.3849471007990816,
    "merge 3 4": 0.6748134330312733,
    "merge 3": 0.5578004122865018,
    "merge 1 2 4": 0.32524790707772694,
    "merge 1 3": 0.5335345200730849,
    "merge 2 4": 0.7047870974313674,
    "merge 2 3": 0.5748383429866387,
    "merge 1 4": 0.4556695636924519,
    "merge 1 2 3": 0.3682952199699192,
    "merge 4": 0.5051802379014066,
    "merge 5": 0.5347418388125301,
    "merge 6": 0.618847372149622
  },
  "#states": [
    20
  ],
  "#transitions": [
    178
  ],
  "#schedules": [
    6894
  ],
  "width": [
    4
  ],
  "#operators": [
    6
  ],
  "meta": [
    {
      "0": 1,
      "63": 6894,
      "31": 2778,
      "15": 730,
      "1": 2,
      "2": 2,
      "3": 10,
      "4": 2,
      "5": 10,
      "6": 10,
      "7": 74,
      "8": 2,
      "9": 10,
      "10": 10,
      "11": 74,
      "12": 10,
      "13": 74,
      "14": 74,
      "19": 24,
      "23": 230,
      "27": 230
    }
  ]
}

As you can see in the output, there is a stage "parallel 2 5 6: ...", which means it has found the ending "2 5 6" (1 4 5 in your graph with 0-base).
Can I know how do you print the ending_iterator?

HI, @yaoyaoding
First, this is my code, and only dp_parallel is used:
import numpy as np
import ios

def sample_network():
    v = ios.placeholder(output_shape=(3, 512, 512))
    block = ios.Block(enter_node=v.node)
    v1 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v2 = ios.conv2d(block, inputs=[[v]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v3 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v4 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v1 = ios.conv2d(block, inputs=[[v1],[v2]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    out = ios.identity(block, inputs=[[v1], [v2], [v3] ,[v4]], is_exit=True)  # concat v1, v2, and v3

    graph = ios.Graph(name="demo", input=v.node, blocks=[block])
    graph.init_weights()

    return graph

graph = sample_network()
optimized_graph = ios.optimize(graph, batch_size=1, opt_type='dp_parallel',compute_weight=True,debug_dp_info=None,verbose=False, max_part_size=100)

To print all the endings of G, i changed function iterate_ending() into the code below.
And store all legal endings in the result list.
def ending_iterator_test_version(
        s: int,
        chains: List[List[int]],
        nid: Dict[Node, int],
        idn: Dict[int, Node],
        max_group_size: int,
        max_num_groups: int):
    """
    Enumerate endings of a set of operators. An ending of operator set S is defined as a subset S' of S, such that all
    edges between S-S' and S' are from S-S' to S'.
    """

    '''store all the legal endings'''
    result=[]

    print('chains : ',chains)
    iset = state2iset(s)
    begins = []
    ends = []
    lengths = []

    print('inputs graph: ', iset)

    # get the range for each chain
    for ichain, chain in enumerate(chains):
        end = 0
        for iu, u in enumerate(chain):
            if u in iset:
                end = iu + 1
            else:
                break

        begin = max(0, end - max_group_size)
        begins.append(begin)
        ends.append(end)
        lengths.append(end - begin)

    bases = [length + 1 for length in lengths]
    strides = list(itertools.accumulate(bases, operator.mul))  #[p0,p0*p1,p0*p1*p2] wtf is this for???
    total = strides[-1]

    # build sub graph and transitive clousure
    tc = graph_transitive_closure(build_graph(state2nset(s, idn), nid), include_self=True)

    # enuermate ending
    candidate=[]
    for w in range(total):

        end_list = []
        for i, chain in enumerate(chains):
            div = strides[i - 1] if i >= 1 else 1
            idx = (w % strides[i]) // div
            if idx == lengths[i]:  # empty
                continue
            end_list.append(chain[begins[i] + idx])
        candidate.append(end_list)
        if len(end_list) == 0:
            continue
        if len(end_list) > max_num_groups:
            continue

        isdisjoint = True
        for i in range(len(end_list)):
            for j in range(i + 1, len(end_list)):
                if not tc[end_list[i]].isdisjoint(tc[end_list[j]]):
                    isdisjoint = False
                    break
            if not isdisjoint:
                break
        if isdisjoint:
            groups = [sorted(tc[u]) for u in end_list]
            if any(len(group) > max_group_size for group in groups):
                continue
            result.append(groups)

    print('ending : ',result)

And the output of ending_iterator_test_version() is this ( 0-based ):
chains :  [[0, 4, 5], [1], [2], [3]]
inputs graph:  [0, 1, 2, 3, 4, 5]
ending : [[[3, 5]], [[2, 5]], [[1, 4, 5]], [[0, 4, 5]], [[4, 5]], [[5]]]

oops, if there is any rude comments in the program, i am really sorry and please ignore them. It's not personally against you, just my bad habit

Hi, @yaoyaoding
I just find out that I make a huge mistake! [ [1,4,5] ] (0-base) is indeed an ending of graph G according to the result from iterate_ending()!
A thousand apologies!
I'm trying to clarify my mind now. Thank you again.
P.S. this is my code, and only dp_parallel is used:
import numpy as np
import ios

def sample_network():
    v = ios.placeholder(output_shape=(3, 512, 512))
    block = ios.Block(enter_node=v.node)
    v1 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v2 = ios.conv2d(block, inputs=[[v]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v3 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v4 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v1 = ios.conv2d(block, inputs=[[v1],[v2]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    out = ios.identity(block, inputs=[[v1], [v2], [v3] ,[v4]], is_exit=True)  # concat v1, v2, and v3

    graph = ios.Graph(name="demo", input=v.node, blocks=[block])
    graph.init_weights()

    return graph

graph = sample_network()
optimized_graph = ios.optimize(graph, batch_size=1, opt_type='dp_parallel',compute_weight=True,debug_dp_info=None,verbose=False, max_part_size=100)

To print all the endings of G, i changed function iterate_ending() into the code below.
And store all legal endings in the result list.
def ending_iterator_test_version(
        s: int,
        chains: List[List[int]],
        nid: Dict[Node, int],
        idn: Dict[int, Node],
        max_group_size: int,
        max_num_groups: int):
    """
    Enumerate endings of a set of operators. An ending of operator set S is defined as a subset S' of S, such that all
    edges between S-S' and S' are from S-S' to S'.
    """

    '''store all the legal endings'''
    result=[]

    print('chains : ',chains)
    iset = state2iset(s)
    begins = []
    ends = []
    lengths = []

    print('inputs graph: ', iset)

    # get the range for each chain
    for ichain, chain in enumerate(chains):
        end = 0
        for iu, u in enumerate(chain):
            if u in iset:
                end = iu + 1
            else:
                break

        begin = max(0, end - max_group_size)
        begins.append(begin)
        ends.append(end)
        lengths.append(end - begin)

    bases = [length + 1 for length in lengths]
    strides = list(itertools.accumulate(bases, operator.mul))
    total = strides[-1]

    # build sub graph and transitive clousure
    tc = graph_transitive_closure(build_graph(state2nset(s, idn), nid), include_self=True)

    # enuermate ending
    candidate=[]
    for w in range(total):

        end_list = []
        for i, chain in enumerate(chains):
            div = strides[i - 1] if i >= 1 else 1
            idx = (w % strides[i]) // div
            if idx == lengths[i]:  # empty
                continue
            end_list.append(chain[begins[i] + idx])
        candidate.append(end_list)
        if len(end_list) == 0:
            continue
        if len(end_list) > max_num_groups:
            continue

        isdisjoint = True
        for i in range(len(end_list)):
            for j in range(i + 1, len(end_list)):
                if not tc[end_list[i]].isdisjoint(tc[end_list[j]]):
                    isdisjoint = False
                    break
            if not isdisjoint:
                break
        if isdisjoint:
            groups = [sorted(tc[u]) for u in end_list]
            if any(len(group) > max_group_size for group in groups):
                continue
            result.append(groups)

    print('ending : ',result)

And the output is ( 0-base ):
chains :  [[0, 4, 5], [1], [2], [3]]
inputs graph:  [0, 1, 2, 3, 4, 5]
ending : [[[3, 5]], [[2, 5]], [[1, 4, 5]], [[0, 4, 5]], [[4, 5]], [[5]]]

Hi, @yaoyaoding
Here i come~ Hope that this time i don't make myself a fool again.
Use the same graph G .
I think that 1,2,4,5  (0-base) is an ending of G, since it satisfies the definition.
However, the execution of 1,2,4,5  cant be described in one stage, which makes it an illegal ending of G.
Am i understanding correctly?

Hi @ikaroso,
Cool! You found a bug in the ending enumeration. This bug will make IOS miss some endings in enumeration. I have submitted a commit to fix this bug and push it to a new branch (I do not push to main so that people can get consistent numbers as in paper when they reproduce the experiments, this patch should be able to allow IOS to find same or better schedules but might increase the searching time).
Now we can run the following example (I have set 'max_group_size=4' so that it will try the stage "2 3 5 6" with a single group that has 4 nodes)
import ios
import json

def sample_network():
    v = ios.placeholder(output_shape=(3, 512, 512))
    block = ios.Block(enter_node=v.node)
    v1 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v2 = ios.conv2d(block, inputs=[[v]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v3 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v4 = ios.conv2d(block, inputs=[[v]], out_channels=64, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    v1 = ios.conv2d(block, inputs=[[v1],[v2]], out_channels=128, kernel=(3, 3), stride=(1, 1), padding=(1, 1), act='relu')
    out = ios.identity(block, inputs=[[v1], [v2], [v3] ,[v4]], is_exit=True)  # concat v1, v2, and v3

    graph = ios.Graph(name="demo", input=v.node, blocks=[block])
    graph.init_weights()

    return graph

def main():
    dp_info = {}
    graph = sample_network()
    graph.sequential_schedule()
    ios.visualizer.draw(graph, './graph.png')
    ios.optimize(graph=graph, opt_type='dp_parallel', cost_model=ios.cost_model.RandomCostModel(), debug_dp_info=dp_info, max_group_size=4)
    with open('dp_info.json', 'w') as f:
        json.dump(dp_info, f, indent=2)

if __name__ == '__main__':
    main()

to get the output
{
    "stage_latency": {
    "parallel 1 2": 0.5373546352973232,
    "parallel 1": 0.5610662122870514,
    "parallel 2": 0.5946407564627924,
    "parallel 3 4 5 6": 0.541899261575789,
    "parallel 1 2 5": 0.4682254903379504,
    "parallel 2 5": 0.3482085829647565,
    "parallel 1 5": 0.2193448275298,
    "parallel 5": 0.5199666753287333,
    "parallel 3 4 6": 0.6423037384273714,
    "parallel 1 3": 0.6162951370071708,
    "parallel 3": 0.3910226601610168,
    "parallel 2 4 5 6": 0.5959264899501368,
    "parallel 2 3": 0.4533883044824913,
    "parallel 1 4 5 6": 0.718818481903988,
    "parallel 1 2 3": 0.6478803075400487,
    "parallel 4 5 6": 0.604432701291712,
    "parallel 1 2 3 5": 0.5410889436563707,
    "parallel 2 3 5": 0.4538714272019846,
    "parallel 1 3 5": 0.4140066609994555,
    "parallel 3 5": 0.5155470221156323,
    "parallel 4 6": 0.6862998484085564,
    "parallel 1 4": 0.646709755916472,
    "parallel 4": 0.40513058439084126,
    "parallel 2 3 5 6": 0.3785630806202785,
    "parallel 2 4": 0.5955650139245893,
    "parallel 1 3 5 6": 0.4147079304607649,
    "parallel 1 2 4": 0.5055665480586244,
    "parallel 3 5 6": 0.637192512750833,
    "parallel 1 2 4 5": 0.5514990124121814,
    "parallel 2 4 5": 0.6730324853812676,
    "parallel 1 4 5": 0.2455575480326295,
    "parallel 4 5": 0.3673127923794244,
    "parallel 3 6": 0.3453191969114273,
    "parallel 3 4": 0.492330549825342,
    "parallel 1 2 5 6": 0.6314680251732573,
    "parallel 1 3 4": 0.5292762637846163,
    "parallel 2 5 6": 0.6020568036041342,
    "parallel 2 3 4": 0.5517073231214432,
    "parallel 1 5 6": 0.4718874025917512,
    "parallel 1 2 3 4": 0.7856805548860472,
    "parallel 5 6": 0.5907277197468911,
    "parallel 1 2 3 4 5": 0.4845168803785616,
    "parallel 2 3 4 5": 0.6070618044616799,
    "parallel 1 3 4 5": 0.8171945287115302,
    "parallel 3 4 5": 0.5097111737228109,
    "parallel 6": 0.4785282644587657
  },
}

and, it is able to find stage "2 3 5 6".
Thanks!

By the way, if you want to do experiments on IOS, you can also try this framework: raf. It has supported multi-stream execution with IOS schedule (see here).
Besides that, I found the new version (e.g., 8) of cuDNN is not good at multi-stream execution as the old version (e.g., 7.6.5), so you might need to use the old version of cuDNN to achieve better performance. I suspect the reason is that the new cuDNN has some optimization that would trigger device synchronization (e.g., using different cache/shared mem partition policies for different kernels, which is used in cutlass).  Using the kernels (e.g., from TVM) that do not rely on this optimization should be fine.

Hi @yaoyaoding ，
Good job !
I have tried the new version and it works very well.
And thanks for the information about raf. Just as you said, I am trying to do some experiments about IOS and other inter-operator schedulers, so raf can be really helpful.
Also, thanks for the tips about cuDNN, I will use the old version.
Best regards.


Tutorial

there are a lot of people that want to get into this, I feel like there needs to be a tutorial for both the installation and the creation of a basic bot (not one that just does random moves) by doing this it will help the community to grow for new comers and they will actually be able to use this.
Installation isn't too difficult but for people its hard to understand on where to start when creating a bot that doesn't just do random moves. Just some advice I guess.

you can check my code as example
https://github.com/yangyuan/hearthrock/issues/18

Alright, I have seen it the only problem I have with it, where does this go?

I saw another comment that was posted where someone wanted to use another AI and then have hearthrock process the result of the AI, good example, Silverfish which is an AI that can get the "Best moves" for that turn using hearthstone logging, but there is no example of someone doing this. Any ideas / help, there isn't much help out there on Google.

@CodeXLmao Excuse me, but you seem to have been able to make the client work with the example code at least. Can I ask you exaclty whant did you put in the the various fields and what local server service did you use? I am trying to get it done with WampServer, I copy the address where I put the downloaded code (http://localhost/hearthrock/python/) in the "bot" section, but when I try it out the bot just doesnt do anything. Could you lend me a hand, please?

@allocro if you are running the bot using App.py
in the code it states this: RockApiService.run(RockBot(), '<IP_ADDRESS>', 7625) which means you can run it with either local or custom and then just enter <IP_ADDRESS>:7625/
I didn't use python to do mine, I am using C# but I think thats how the Python example works

@CodeXLmao I`m lunching the client that you find in the main page, Hearthrock.Client.exe, but no matter how i set up the various field, it doesnt seems to pick up any bot beside the built-in one. Does App.py run the program directly from the bot location?
How did you manage to get it to pick up your bot anyway? Where did you put the bot's code (I got in a local server diretory, as suggested in another discussion)? I mean I can work with C Sharp too, if you can tell me how to get the client started. Maybe it is Wampserver fault, should I use another localhost provider?

you don't have to launch it using a server, aslong as you have Python properly installed. you can literally run App.py and it will run the bot service which works, In the hearthstone.exe client all you need to do is set the bot to Local, you don't need to change the trace if your not planning on changing those functions.  Are you asking where you need to go to edit the bot in Python for you to make changes? I am not sure what you are struggling with, All I know is you need no form of virtual server or actual server to run this because it runs as a webservice.

 I thought the client was supposed to find and and start the bot for you once you launch the game. Thanks a lot, now everything works, couldnt have done it without you, mate!

No worries, it can be confusing, do you have any plans for the bot in specific. I would love to hear any ideas you have for implentation etc.

Nothing special. Trying to build up an AI that can help me monitor matchups and how many classes of what type you can find in casual and ladder and what card do they use. The key feature I'm missing right now tho is how to make my bot hit the Concede button after some turns. I mean, I can count turns easily, but I dont seem to be able to find out what is the create_action() input to give to concede the game.

Obviously if you have any idea on how I can find out said command code, you are wellcome.

Hi Does this still work?
Im replacing "Assembly-CSharp-original.dll" as this is no-longer in the actual HS game.
will then change the SHA1 checksum and see if that gets it to work


There is an error when destroy a date-picker instance

Detailed description
we have 2 tabs in a page, and one tab has a component which there is a datepicker in it, If we don't choose the tab contained date-picker, and navigate to another page, there is an error when destroy the date-picker

Describe in detail the issue you're having.

Is this a feature request (new component, new icon), a bug, or a general issue?
component
Is this issue related to a specific component?
ibm-date-picker
What did you expect to happen? What happened instead? What would you like to see changed?
when navigate to another page and need to call ngDestroy
What browser are you working in?
Chrome
What version of the Carbon Design System are you using?
3.14.2
What offering/product do you work on? Any pressing ship or release dates we should be aware of?

Steps to reproduce the issue

we have 2 pages, 1st is homepage, 2nd is a tab page which have 2tabs, and Tab2 has a component, which contains a datepicker component.
visit homepage, then visit the tabpage which has tab1 as default,
Click back icon '<-' to return to homepage
The error appears

Additional information

Screenshots or code

Notes
this.flatpickrInstance is an Array, when to run this.flatpickrInstance.destroy(); we need to check the length of this.flatpickrInstance

Congrats on opening the 700th issue 🎉
Also this.flatpickrInstance isn't an array, or at least it shouldn't be. checking !this.flatpickrInstance && !this.flatpickrInstance.destroy should be sufficient. If you'd like to open a PR with the fix that would be amazing.

Thank you very much for your quickly support!

@cal-smith Hi Cal, nice to speak to you, I just wonder when will this bugfix go release?

Hopefully soon ... I'm going to reopen this issue until the PR is merged - it'll automatically close the issue


Alamofire error on iOS version below 11

The app crashes upon launch in iOS version below 11. Error that I am receiving (Note that it works absolutely fine >= 11):
dyld: Symbol not found: _OBJC_CLASS_$_NSURLSessionStreamTask
  Referenced from: /Users/engineering07/Library/Developer/Xcode/DerivedData/AppName-dlxburxrsygncqajomyklazjmhzu/Build/Products/Debug-iphonesimulator/Alamofire.framework/Alamofire
  Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 10.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/Foundation.framework/Foundation
 in /Users/engineering07/Library/Developer/Xcode/DerivedData/AppName-dlxburxrsygncqajomyklazjmhzu/Build/Products/Debug-iphonesimulator/Alamofire.framework/Alamofire

I have made the following additions to the AppDelegate.swift
import Alamofire

var AFManager = SessionManager()

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = 30 // seconds
        configuration.timeoutIntervalForResource = 30 //seconds
        AFManager = Alamofire.SessionManager(configuration: configuration)

}
// other utility functions
}

I am using Swift 4.1 and Xcode 9.4.1
I am unable to understand why this happening and how I should avoid this. Help is much appreciated.

This may be an issue with linking CFNetwork. If you're running Alamofire 4.7.3 from CocoaPods, you should have it linked automatically. If you're running an older version you may want to link CFNetwork into your project manually and see if that fixes the issue.

Closing.


Alarmo not showing up in HA Integration Add

Alarmo Version
0
HA Version
2023.4.6
Bug description
I have a new install of HA running the most recent version. When searching for Alarmo in the "+ Add Integration" I'm unable to find it.

Steps to reproduce
After looking at other old issues reported, I tried clearing the cache, using multiple browsers, as well as multiple computers (one Windows and one macOS)
Relevant log output
No response

Please check the HA logs for error messages

Niels, thanks for the response!
Is there something particular to look for? When I go to add integration nothing hits the error or full logs that seems specific to it, all of the errors I'm getting seem to be around either bluetooth not starting and the media player trying to access devices on my network, nothing seemingly related to it pulling the integration list.

There should be at least a warning message occurring when you are restarting HA saying ‘you are using a custom integration alarmo which is not tested…’
If this message indeed shows up, the integration is properly installed.
If it still doesn’t show in the list of integrations to be added, it is for sure an issue with browser cache.

Niels,
I'm not even getting to the point where I can install it, its now showing up in the "add" screen at all.
RJ

If the files are copied correctly, there should be at least a warning message occurring when you are restarting HA saying ‘you are using a custom integration alarmo which is not tested…’
If this message indeed shows up, the integration is properly installed.
If it still doesn’t show in the list of integrations to be added, it is for sure an issue with browser cache.
I am not going to repeat this statement.

I have the same  issue - I follow the installation instructions without copying files manually and cannot add Alarmo from the existing integrations. Does this not work via docker and do I have to copy the files manually?
Kind  regards

@eyalspier You should place the files of alarmo in the custom_components folder (or let HACS do this).  This is what installs alarmo in HA. After doing so you should restart HA to get the message in the log as mentioned in https://github.com/nielsfaber/alarmo/issues/717#issuecomment-1537295618. The only remaining step is to add the integration in the devices & services page in settings. If it doesn't show here, refresh the cache.
Docker is not related to this. Your HA user folder is not inside the docker image.

Fantastic, thanks so much for your help - it all works now!


Problem in mediaprocessor.py (Invalid source, no data returned)

After setting up everything as described, I imported a mkv file using Sonarr while tailing the logs of SMA.
The logs were showing the following:
2020-12-16 02:51:58 - resources.readsettings - INFO - Loading config file /usr/local/sma/config/autoProcess.ini.
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - environ({'sonarr_series_title': 'test', 'XDG_CONFIG_HOME': '/config/xdg', 'LANG': 'en_US.UTF-8', 'TZ': '\tEurope/Berlin', 'OS_VERSION': '18.04', 'HOSTNAME': 'mesaboogie', 'sonarr_series_id': '2', 'OLDPWD': '/run/s6/services/sonarr', 'sonarr_episodefile_sourcefolder': '/downloads/complete/tv-shows/test/Season 1', 'sonarr_episodefile_qualityversion': '1', 'sonarr_episodefile_quality': '', 'sonarr_episodefile_releasegroup': '', 'sonarr_download_client': '', 'RUNTIME_VERSION': '<IP_ADDRESS>', 'sonarr_episodefile_path': '/tv-shows/Test/Season 1/Test - S01E20 - test test .mkv', 'sonarr_episodefile_scenename': '', 'PUID': '1029', 'UMASK_SET': '002', 'sonarr_episodefile_episodenumbers': '20', 'sonarr_series_path': '/tv-shows/test', 'sonarr_eventtype': 'Download', 'sonarr_episodefile_id': '72', 'sonarr_episodefile_sourcepath': '/downloads/complete/tv-shows/Test/Season 1/Test - S01E20 - test test .mkv', 'sonarr_episodefile_episodeairdates': '2005-05-10', 'PGID': '65537', 'PWD': '/app/sonarr/bin', 'SMA_RS': 'Sonarr', 'HOME': '/root', 'sonarr_download_id': '', 'sonarr_series_type': 'Standard', 'OS_NAME': 'ubuntu', 'sonarr_series_tvdbid': '73255', 'sonarr_series_tvmazeid': '118', 'No_Expand': 'true', 'sonarr_episodefile_episodecount': '1', 'sonarr_episodefile_seasonnumber': '1', 'TERM': 'xterm', 'sonarr_episodefile_episodetitles': 'test test', 'No_PreLoadSQLite': 'true', 'SHLVL': '1', 'LANGUAGE': 'en_US.UTF-8', 'CWD': '/', 'sonarr_series_imdbid': 'tt0000000, 'sonarr_episodefile_episodeairdatesutc': '5/11/2005 1:00:00 AM', 'sonarr_episodefile_relativepath': 'Season 1/test - S01E20 - test test .mkv', 'SMA_PATH': '/usr/local/sma', 'SONARR_BRANCH': 'master', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'SMA_UPDATE': 'false', 'No_SQLiteXmlConfigFile': 'true', 'sonarr_isupgrade': 'False', '_': '/usr/local/sma/venv/bin/python3'})
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - Input file: /tv-shows/Test/Season 1/Test - S01E20 - test test .mkv.
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - Original name: .
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - TVDB ID: 00000.
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - Season: 1 episode: 20.
2020-12-16 02:51:58 - SonarrPostProcess - DEBUG - Sonarr series ID: 2.
2020-12-16 02:51:58 - resources.mediaprocessor - DEBUG - Invalid source, no data returned.
2020-12-16 02:51:58 - resources.mediaprocessor - INFO - File /tv-shows/Test/Season 1/Test - S01E20 - test test .mkv is not valid
2020-12-16 02:51:58 - SonarrPostProcess - INFO - Processing returned False.
2020-12-16 02:51:58 - SonarrPostProcess - ERROR - Error processing file

What do you suggest, I should check?
Thank you very much!

Only 2 ways no data gets returned
The file its trying to probe doesn't exist or the file isn't returning any formatting or stream data when probed by FFprobe. I see you're doing some kind of a test file here so that may be why if that file isn't really complete
Otherwise, it may be a permission or access issue that masquerading as a file does not exist return

Thank you for your quick response!

The file was indeed a proper mkv-file (every mkv-file I tested did show the same log message)
I changed the title to %test% before pasting the log-entry here
Regarding permissions: I just tried it again using chmod 0777 mask on the file being processed by SMA, same message
The user/group of the file is abc:abc (which corresponds to the PUID/PGID given in the docker-compose environment)

Any ideas?

Addition:
I think I found the issue. When executing ffmpeg or ffprobe I get the following message:
ffmpeg
ffmpeg: error while loading shared libraries: libva.so.1: cannot open shared object file: No such file or directory

ffprobe
ffprobe: error while loading shared libraries: libva.so.1

My docker-compose configuration:
sonarr:
   container_name: seedb-sonarr
   build:
     context: https://github.com/mdhiggins/sonarr-sma.git#build
     args:
       - ffmpeg_tag=4.2-vaapi
   network_mode: service:mullvad-openvpn-client
   environment:
     - PUID=${SEEDB_PUID} # default user id, defined in .env
     - PGID=${SEEDB_PGID} # default group id, defined in .env
     - TZ=${TZ} # timezone, defined in .env
     - UMASK_SET=002 #optional
     - SMA_UPDATE=true
   volumes:
     - /etc/localtime:/etc/localtime:ro
     - ${ROOT}/docker/seedb-sonarr:/config # config files
     - ${ROOT}/share/seedb/sma:/usr/local/sma/config
     - ${ROOT}/media/downloads:/downloads # download folder
     - ${ROOT}/media/tv-shows:/tv-shows # tv shows folder
   restart: unless-stopped

radarr:
   container_name: seedb-radarr
   build:
     context: https://github.com/mdhiggins/radarr-sma.git#build
     args:
       - ffmpeg_tag=4.2-vaapi
   network_mode: service:mullvad-openvpn-client
   environment:
     - PUID=${SEEDB_PUID} # default user id, defined in .env
     - PGID=${SEEDB_PGID} # default group id, defined in .env
     - TZ=${TZ} # timezone, defined in .env
     - UMASK_SET=002 #optional
     - SMA_UPDATE=true
   volumes:
     - /etc/localtime:/etc/localtime:ro
     - ${ROOT}/docker/seedb-radarr:/config # config files
     - ${ROOT}/share/seedb/sma:/usr/local/sma/config
     - ${ROOT}/media/downloads:/downloads # download folder
     - ${ROOT}/media/movies:/movies # movies folder
   restart: unless-stopped

When I use the following configuration and not the "VAAPI docker-compose", ffmpeg/ffprobe are working properly and everything is fine.
Maybe have a look into what happens in the build-process of "VAAPI docker-compose example". Something is going wrong there.
For now, my issue is solved.

One more thing: If I want to enforce VAAPI encoding, do I have to use the "VAAPI docker-compose example" provided e.g. here? Or will it work the standard docker-compose config?

You'll need to use the VAAPI build as the default container doesn't include that. You can try a different / earlier version of the VAAPI container too I think someone else had that same issue and a minor version change resolved it. Not at my computer currently but it was either on this repo or one of the docker container repos where the issue was posted.

You'll need to use the VAAPI build as the default container doesn't include that. You can try a different / earlier version of the VAAPI container too I think someone else had that same issue and a minor version change resolved it. Not at my computer currently but it was either on this repo or one of the docker container repos where the issue was posted.

Thank you!
Hint: "4.2-vaapi" is not listed on jrottenberg/ffmpeg. "4.1-vaapi" seems to be the latest container.