Support for latest node 0.11 (using nan)

I was looking at adding support for node 0.11. And found nan apparent v8 and node 0.11 is a moving target. All in all it's not worse than the macros already defined in sodium.cc, in fact I was able to replace a few of them.
Also the macros from nan has reasonable documentation, some even has examples (See the nan project page).
I can't promise that there is no memory leaks, or other horrible things... But all tests pass and it compiles on both node 0.11 and 0.10. In fact nan promises to support node 0.6, 0.8 and 0.10, along with latest node 0.11 and presumably node 0.12 when that comes out.
We might have use more Nan-macros in the future. But this seems to work for now. I realize there is a lot of code to view... But mostly it's simply changing the patterns to use nan macros.
Remark this builds on top of my previous PR for adding fromSeed see PR #26

+1 Would love to see this merge and published too.

thank you so much for your contribution.

Thanks for this fix! Any ETA on when this will be published to NPM?

If the fix works fine for all I will push it.
On 2/23/15 9:35 PM, bezreyhan wrote:

Thanks for this fix! Any ETA on when this will be published to NPM?
—
Reply to this email directly or view it on GitHub
https://github.com/paixaop/node-sodium/pull/27#issuecomment-75687877.

npm install paixaop/node-sodium#develop doesn't work...
I like and dislike the new build system... Cloning the develop branch and doing a make sodium following by npm install did the trick...
I like that it now compiles on more platforms, architectures. The downside is dependency on libtool, make and other things I suspect it's harder to find on windows and hosted environments like heroku...
Anyways, if you hook make sodium up to npm install in package.json, see the scripts section, I think it's okay to depend on GNU autotools as long as it's clearly documented in the readme file.

Thanks for te feedback. The dependency on automake and lib tool is due to libsodium it self  so hard to remove.

On Feb 25, 2015, at 19:01, Jonas Finnemann Jensen<EMAIL_ADDRESS>wrote:
npm install paixaop/node-sodium#develop doesn't work...
I like and dislike the new build system... Cloning the develop branch and doing a make sodium following by npm install did the trick...
I like that it now compiles on more platforms, architectures. The downside is dependency on libtool, make and other things I suspect it's harder to find on windows and hosted environments like heroku...
Anyways, if you hook make sodium up to npm install in package.json, see the scripts section, I think it's okay to depend on GNU autotools as long as it's clearly documented in the readme file.
—
Reply to this email directly or view it on GitHub.

@paixaop has there been any issues w/ these updates, or do you have plans to push a new npm version with them soon? :)


Removing deprecated InitialBootClassLoaderMetaspaceSize JVM command line flag

Signed-off-by: Andriy Redko<EMAIL_ADDRESS>Is your feature request related to a problem? Please provide an existing Issue # , or describe.
The InitialBootClassLoaderMetaspaceSize JVM command line flag has been deprecated in JDK-15 [1] and removed in JDK-16 [2].
[1] https://bugs.openjdk.java.net/browse/JDK-8242426
[2] https://bugs.openjdk.java.net/browse/JDK-8221173
Related to https://github.com/opensearch-project/opensearch-build/issues/1523
Describe the solution you are proposing
Drop InitialBootClassLoaderMetaspaceSize usage
Describe alternatives you've considered
Make the command line logic dependent on JVM version being used
Additional context
Add any other context or screenshots about the feature request here.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@qreshi fyi

Ah, thanks @reta I wasn't aware we already had a PR for it here. Let's relate issue #125 to it as well since its the current issue open on the repo for it.


Continue training model that was previously trained

I used the starter code in the README to train a ACBasicNeuralNet for a few epochs.
from ml4opf import ACProblem

data_path = 'tests/test_data/89_pegase'
problem = ACProblem(data_path)

# make a basic neural network model
from ml4opf.models.basic_nn import ACBasicNeuralNet # requires pytorch-lightning

config = {
    "optimizer": "adam",
    "learning_rate": 1e-3,
    "loss": "mse",
    "hidden_sizes": [500,300,500],
    "activation": "sigmoid",
    "boundrepair": "sigmoid" # optionally clamp outputs to bounds (choices: "sigmoid", "relu", "clamp")
}

model = ACBasicNeuralNet(config, problem)  # setup ML model

# train ML model
model.train(trainer_kwargs={'max_epochs': 16, 'accelerator': 'auto'})

I then evaluated its performance, and after seeing the results, I would like to train it further.
For instance, I would like to run it for another 16 epochs.
I tried the following
model.train(trainer_kwargs={'max_epochs': 16, 'accelerator': 'auto'})

which immediately stopped as the max number of epochs was reached.
>>> model.train(trainer_kwargs={'max_epochs': 16, 'accelerator': 'auto'})
.conda/envs/ml4opf/lib/python3.12/site-packages/pytorch_lightning/callbacks/model_checkpoint.py:654: Checkpoint directory ML4OPF/lightning_logs/version_1/checkpoints exists and is not empty.
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]

  | Name      | Type        | Params | Mode
--------------------------------------------------
0 | violation | ACViolation | 0      | eval
1 | loss      | MSELoss     | 0      | train
2 | layers    | Sequential  | 437 K  | train
--------------------------------------------------
437 K     Trainable params
0         Non-trainable params
437 K     Total params
1.750     Total estimated model params size (MB)
10        Modules in train mode
1         Modules in eval mode
`Trainer.fit` stopped: `max_epochs=16` reached.

Calling model.train again with a higher number of epochs also terminates immediately
model.train(trainer_kwargs={'max_epochs': 32, 'accelerator': 'auto'})

with the same output
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]

  | Name      | Type        | Params | Mode
--------------------------------------------------
0 | violation | ACViolation | 0      | eval
1 | loss      | MSELoss     | 0      | train
2 | layers    | Sequential  | 437 K  | train
--------------------------------------------------
437 K     Trainable params
0         Non-trainable params
437 K     Total params
1.750     Total estimated model params size (MB)
10        Modules in train mode
1         Modules in eval mode
`Trainer.fit` stopped: `max_epochs=16` reached.

Is there a convenient way to continue/restart training, without loosing the current weights?

I agree it is unfortunate that simply calling BasicNeuralNet.train(...) again doesn't just resume training. Indeed, calling BasicNeuralNet.train(...) with non-empty trainer_kwargs should give a warning when there is an existing trainer, since those kwargs won't be used (currently there is just a debug message):
https://github.com/AI4OPT/ML4OPF/blob/a778eb9ee9fb3d1fde4e5c66855cc07e16aa47f0/ml4opf/models/basic_nn/basic_nn.py#L88-L90
Anyway, to solve this problem I typically use this workaround of updating the trainer's internal max_epochs, then calling BasicNeuralNet.train() again (with no kwargs). See the train(model: BasicNeuralNet, epochs: int) function in tests/test_models.py:
https://github.com/AI4OPT/ML4OPF/blob/a778eb9ee9fb3d1fde4e5c66855cc07e16aa47f0/tests/test_models.py#L65-L86
The current training mechanism for BasicNeuralNet is just a very thin wrapper over the PyTorch Lightning Trainer.. I wouldn't be opposed to adding nice-to-haves like this to it in the future.


Rust "could not find root" panic when using virtual workspaces

Platform: macOS 12.7.6
Version: uv 0.3.0 (dd1934c9c 2024-08-20)
I'm working on migrating a new project from Rye to uv. This project uses Rye's virtual projects since it only uses Python for helper scripts and not for producing any artifacts, so I tried using uv's virtual workspace as the closest available equivalent.
However, I'm running into Rust panics when attempting to add/remove packages. These panics have been rather inconsistent - sometimes I can add/remove a few packages successfully, but they seem to inevitably crop up. I'm not sure exactly what causes them; while the Rust error message says "could not find root", the fact that prior commands (sometimes) succeeded show that the root should be findable and it's unclear to me exactly why the project root is no longer findable, especially since the debug information says it's found.
One example session:
pt@rp uv-test % ls -a
./  ../
pt@rp uv-test % uv init --virtual --no-readme
Initialized workspace `uv-test`
pt@rp uv-test % uv lock --verbose
DEBUG uv 0.3.0
DEBUG Found workspace root: `/private/tmp/uv-test`
DEBUG Searching for Python interpreter in managed installations or system path
DEBUG Searching for managed installations at `/Users/pt/.local/share/uv/python`
DEBUG Found `cpython-3.12.5-macos-x86_64-none` at `/usr/local/bin/python3` (search path)
Using Python 3.12.5 interpreter at<EMAIL_ADDRESS>DEBUG No `requires-python` in virtual-only workspace. Defaulting to `>=3.12`.
DEBUG Using request timeout of 30s
DEBUG Starting clean resolution
DEBUG Solving with installed Python version: 3.12.5
DEBUG Solving with target Python version: >=3.12
DEBUG Tried 0 versions:
DEBUG Split universal resolution took 0.002s
Resolved 0 packages in 14ms
pt@rp uv-test % uv add --dev ipython --verbose
DEBUG uv 0.3.0
DEBUG Found project root: `/private/tmp/uv-test`
DEBUG Searching for Python interpreter in managed installations or system path
DEBUG Searching for managed installations at `/Users/pt/.local/share/uv/python`
DEBUG Found `cpython-3.12.5-macos-x86_64-none` at `/usr/local/bin/python3` (search path)
Using Python 3.12.5 interpreter at<EMAIL_ADDRESS>Creating virtualenv at: .venv
DEBUG Using request timeout of 30s
DEBUG No `requires-python` in virtual-only workspace. Defaulting to `>=3.12`.
DEBUG Using request timeout of 30s
DEBUG Existing `uv.lock` satisfies workspace requirements
Resolved 0 packages in 0.23ms
thread 'main' panicked at crates/uv-resolver/src/lock.rs:455:22:
could not find root
stack backtrace:
   0:        0x105017a23 - __mh_execute_header
   1:        0x104c696cb - __mh_execute_header
   2:        0x104fe108e - __mh_execute_header
   3:        0x10501bb01 - __mh_execute_header
   4:        0x10501b379 - __mh_execute_header
   5:        0x10501d152 - __mh_execute_header
   6:        0x10501be42 - __mh_execute_header
   7:        0x10501bd99 - __mh_execute_header
   8:        0x10501bd86 - __mh_execute_header
   9:        0x105d1bc52 - __mh_execute_header
  10:        0x105d1c27a - __mh_execute_header
  11:        0x105a45537 - __mh_execute_header
  12:        0x1051678cd - __mh_execute_header
  13:        0x105172af0 - __mh_execute_header
  14:        0x105143116 - __mh_execute_header
  15:        0x1051f3f77 - __mh_execute_header
  16:        0x1051f33a9 - __mh_execute_header
  17:        0x1053b82b9 - __mh_execute_header
  18:        0x1056f3c8b - __mh_execute_header
  19:        0x1052611a6 - __mh_execute_header
  20:        0x1056f3697 - __mh_execute_header

I believe this is fixed in v0.3.1 which is building now. Do you mind trying again in a bit?

Let me know if you still hit this with v0.3.1.


ILA improvements

Contains the  following changes:

samples caching in tuple instead of generator (we traverse all of them anyway)
words_per_sample should be calculated based on sample_width
small var renaming
padding to assign all bits in SPI data interface
We do ignore the irrelevant bits on receive, so I'm not sure how important that is ...

Thanks -- took me a while to get around to checking these. The proposed changes seem to fall into two categories:

Correct fixes that are already fixed in the codebase (sample_width); thanks for these.
Experimental code that doesn't address a real need (adding Const to zero-pad in a way that nMigen already does).

Thanks for the exploration, though. :)


Added Resource to Journey Mapping Method

Someone feel free to tell me if this is the right or wrong way to make a change/addition. 😄

Awesome! Thanks @mjchamplin


chore: adjust labels

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


List presentations based on files

Fixes #345

It currently list only English on English page and French on French page

OK, let's change in the future if we need.


Infinite loop?

Seems to get stuck in an infinite loop?
The original Microsoft research paper mentions sub second run times to process an image.
But this code runs for minutes at 100% CPU, and when I stop the script, this is the call stack I see:
$ time ./depixel_png.py --to-svg bt_02.png
Processing bt_02.png...
^CTraceback (most recent call last):
File "./depixel_png.py", line 83, in
main()
File "./depixel_png.py", line 79, in main
process_file(options, filename)
File "./depixel_png.py", line 55, in process_file
data.depixel()
File "/usr/local/lib/python2.7/dist-packages/depixel-0.1-py2.7.egg/depixel/depixeler.py", line 338, in depixel
self.add_shape_outlines()
File "/usr/local/lib/python2.7/dist-packages/depixel-0.1-py2.7.egg/depixel/depixeler.py", line 551, in add_shape_outlines
path = self.make_path(graph)
File "/usr/local/lib/python2.7/dist-packages/depixel-0.1-py2.7.egg/depixel/depixeler.py", line 538, in make_path
path = Path(graph)
File "/usr/local/lib/python2.7/dist-packages/depixel-0.1-py2.7.egg/depixel/depixeler.py", line 608, in init
self.path = self._make_path(shape_graph)
File "/usr/local/lib/python2.7/dist-packages/depixel-0.1-py2.7.egg/depixel/depixeler.py", line 625, in _make_path
for neighbor in shape_graph.neighbors(path[-1]):
File "/usr/lib/python2.7/dist-packages/networkx/classes/graph.py", line 977, in neighbors
return list(self.adj[n])
KeyboardInterrupt
real	5m57.368s
user	5m57.220s
sys	0m0.346s
ubuntu 14.04 lts
pyhton 2.7.6
networkx 1.8.1
source image:
bt_02.png: PNG image data, 42 x 14, 8-bit colormap, non-interlaced

Just encountered the same issue :-( Do you know about a full implementation of this?

I haven't looked recently, but there wasn't one last time I checked.

Looked into this, the error is caused by having pixel content at the top-right of the image (any pixels touching the top or the right hand side of the image).
Logically, this should just be a matter of adding edges for the size + 1 on X and Y axis. However trying to do this, I ran into problems where it expects another row/column of pixels too.
As a last-resort, I managed to come up with a weak workaround which was to fake resizing the canvas on the top-right, Filling with empty pixels, then exiting if an infinite loop is found (when the path doesn't finish but can't grow anymore).
This isn't really a solution, just posting here in case others want to investigate the issue further.

I might look into this myself. I'm experiencing this issue too.


Can not get an expected answer with Ollama and plain text embedding

Describe the bug
I am pretty new for using Flowise. I created a Chartflow like below:

But when I tried to ask a question like 'Who is Alex Wood?', I could not get the expected answer when the answer can be parsed and got from the Plain Text obviously.

The Ollama with Llama 3 can work well.
Any suggestions would be appreciated.
Setup

Installation: pnpm start
Flowise Version 1.3.8
OS: Windows
Browser: Chrome

have you upserted the data? https://docs.flowiseai.com/use-cases/upserting-data

Thanks for the reply! Yes, I have.

It should be fixed in v2.0, feel free to reopen if issue still persists


Bug

Try to check libs (QtWidgets.pyi), but I do not want.

Let me expand on this, because it seems to be the same issue I'm having.
There seem to be some issue reading the config file. I have tried every possible way to exclude /usr/lib from being linted by flake8 when run through this plugin. When I run the tool manually, it doesn't look in /usr/lib, but it seems to be when run on save.
Aside from being unresponsive while it wades through my entire library folder, it also floods the Problems tab with thousands of issues with the PyQt5 files, renders the tab useless to me. I have to rely on the blue wiggly lines in source instead (which I have to scroll around and look for manually) or run the command from the terminal manually.

Dear developer!
Why not just check for Flake 8 only in the working folder for all files with the python extension and nowhere else, then it would be much easier for everyone.
In general (and not just about your expansion), many systems try to do everything for us in their own way, but at the same time they lose their predictability, which causes a number of inconveniences and simply makes those who want to control the system feel uncomfortable.


[Bug]  mappings from README.md not working

The mappings to <Plug>kommentary_..._default are not working:
         require'utils'.map('n', '<leader>kk', '<Plug>kommentary_line_default',
                           {noremap = true}) -- default style comment
        require'utils'.map('v', '<leader>kk', '<Plug>kommentary_visual_default',
                           {noremap = true}) -- default style
        require'utils'.map('n', '<leader>k', '<Plug>kommentary_motion_default',
                           {noremap = true}) -- default style

Are you skipping the creation of the default mapping with vim.g.kommentary_create_default_mappings = false?

That is what I have done with the setup key in packer, so everything was setup right. The problem was, that I forgot to execute PackerClean, so the plugin was still in my start folder and the command was never executed. Sorry for this mistake. It is working fine now. Thank you for your help!


HyCOM Public Zarr

I'm at the pangeo showcase talk. Shane Elipot has a massive public ocean model Zarr output on the AWS public data program. I think it's split into 12 separate Zarr stores.
https://github.com/selipot/hycom-oceantrack?tab=readme-ov-file
Wondering if LEAP folks would find this useful? @jbusecke

Ohhhh that looks really cool! @dhruvbalwada might be interested in this? I guess this will work, but might not be as fast as on gcs. Wondering if we should have a badge for the 'cloud'? But either way, this would be dope to link in.

Great! @dhruvbalwada if you have some background on this dataset, do you have any interest in doing a bit of exploring on which of these Zarr stores would be useful? Seems like there are Zarr stores per variable as well as lagrangian vs eulerian versions.

@norlandrhagen I think all of these will potentially be useful. (This dataset is very complementary to a LLC4320 data that was made available through Pangeo, and has been used by many).
Is the discussion here to just provide a link to these datasets? or is something that will cost LEAP and so we have some resource constrain?

@dhruvbalwada the former. It will be very beneficial to get an idea how to present these stores in the catalog in a meaningful way.

Happy to help with that, let me know what you would like me to actually do.

Awesome! Thanks for the expertise @dhruvbalwada.
I think a good start would be to see if you can access / catalog these Zarr stores.
I think the data is here, but I haven't explored it yet.
Also might be some clues here.
The data producer / speaker, Shane Elipot, seems super nice and was eager to have people using his data. I bet you/we could reach out to him with questions.
I think ideally we have a table of Zarr stores we want to add to the catalog + some metadata.
ex:
|-------------------------------------------------------------------------------------
| dataset_name_variable.       | zarr store link                                     |
|-------------------------------------------------------------------------------------
| lagrangian_HYCOM_u_component | s3://../../lagrangian_HYCOM_u_component.zarr        |
|-------------------------------------------------------------------------------------
| lagrangian_HYCOM_v_component | s3://../../lagrangian_HYCOM_v_component.zarr        |
|-------------------------------------------------------------------------------------

Just played around with the data a bit, and wanted to note some points:

It seems we need to provide anon=True. I am not quite sure how to provide this as kwarg to xarray. This works

import s3fs
import xarray as xr
fs = s3fs.S3FileSystem(anon=True)
mapper = fs.get_mapper("s3://hycom-global-drifters/lagrangian/global_hycom_0m_step_1.zarr")
xr.open_dataset(mapper, engine='zarr')

but this doesnt:
xr.open_dataset("s3://hycom-global-drifters/lagrangian/global_hycom_0m_step_1.zarr", engine='zarr')

We might need a way for the catalog to add custom kwargs to the snippet due to this!

This dataset has a lot of different 'steps'. I have no clue if we could potentially virtually concatenate these?

'hycom-global-drifters/lagrangian/',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_1.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_10.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_11.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_2.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_3.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_4.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_5.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_6.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_7.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_8.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_0m_step_9.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_1.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_10.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_11.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_2.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_3.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_4.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_5.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_6.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_7.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_8.zarr',
 'hycom-global-drifters/lagrangian/global_hycom_15m_step_9.zarr'

* This dataset has a lot of different 'steps'. I have no clue if we could potentially virtually concatenate these?

This seems like a cool use case! Maybe we open up an issue in virtualizarr. It seems possible to merge the virtual zarrs.

Bit of an update here. I'm working towards a Virtualizarr Zarr reader (https://github.com/zarr-developers/VirtualiZarr/issues/262). This should allow us to combine a bunch of existing Zarr stores here into a single virtual Zarr store.

Do these steps have alignable dimensions though? If not then you're in DataTree territory...

Do these steps have alignable dimensions though? If not then you're in DataTree territory...

Totally, which would be very cool to have in virtualizarr as well!
On some initial digging through the Eulerian stores, it seems like the step section of the path corresponds to time. In the README:

The data correspond to field variables at 8759 hourly time steps from 2014-01-01T01:00:00 to 2014-12-31T23:00:00. These data are split in 12 zarr stores containing 720 hourly steps or 60 days of data, for stores number 1 to 11, and a 12th store with 839 steps to complete the year. The data are further split between velocity data and sea surface height data for a total of 24 stores. The date range and steps of each of the two sets of 12 stores are:

import s3fs
import xarray as xr

fs = s3fs.S3FileSystem(anon=True)
ds1 = xr.open_zarr(fs.get_mapper("s3://hycom-global-drifters/eulerian/hycom12-1-rechunked-corr.zarr"), chunks={})
ds2 = xr.open_zarr(fs.get_mapper("s3://hycom-global-drifters/eulerian/hycom12-2-rechunked-corr.zarr"), chunks={})

ds_concat = xr.concat([ds1,ds2], dim="time")

<xarray.Dataset> Size: 1TB
Dimensions:    (time: 1440, Depth: 2, Y: 7055, X: 9000)
Coordinates:
  * Depth      (Depth) float32 8B 0.0 15.0
    Latitude   (Y, X) float32 254MB -86.0 -86.0 -86.0 -86.0 ... 47.1 47.07 47.04
    Longitude  (Y, X) float32 254MB 74.16 74.19 74.22 ... 74.14 74.14 74.14
  * X          (X) int32 36kB 1 2 3 4 5 6 7 ... 8995 8996 8997 8998 8999 9000
  * Y          (Y) int32 28kB 1 2 3 4 5 6 7 ... 7050 7051 7052 7053 7054 7055
  * time       (time) datetime64[ns] 12kB 2014-01-01T01:00:00 ... 2014-03-02
Data variables:
    u          (time, Depth, Y, X) float32 731GB dask.array<chunksize=(720, 1, 1, 9000), meta=np.ndarray>
    v          (time, Depth, Y, X) float32 731GB dask.array<chunksize=(720, 1, 1, 9000), meta=np.ndarray>

I'm sorry what? There are 24 separate zarr stores, just to hold different timesteps and different variables??? 🤦♂

I mean at least you can use your new zarr virtual reader to combine them all into one sane icechunk store @norlandrhagen 😆

I'm sorry what? There are 24 separate zarr stores, just to hold different timesteps and different variables??? 🤦♂

Lets not be too judgy, I bet this was one hell of a lift to produce and get into zarr (yeah I realize me advocating for not being judgy is rich 🤣 - overworked data manager hat off). But I agree that it is very nice that we can now combine this and make it more usable!
Is each step a different release date for a bunch of floats (in which case we have to probably concatenate along a new dimension) or are these literally just split along a common time dimension.

Just requested support for xr.open_datatree in the LEAP catalog here.

Lets not be too judgy, I bet this was one hell of a lift to produce and get into zarr

Yes you're right - it's easy for me to say after being steeped in Zarr for the last year! 😅 Also yes even getting something into a slightly wonky Zarr store can be a huge amount of work.
I'm just a bit concerned by the anti-pattern/misunderstanding this implies, of treating each Zarr store like a single chunked netCDF4 file, instead of treating one Zarr store as representing thousands of related netCDF files.

Is each step a different release date for a bunch of floats (in which case we have to probably concatenate along a new dimension)

Does this dataset contain individual drifter timeseries? Looks like its post-processed into a regular grid?

I'm sorry what? There are 24 separate zarr stores, just to hold different timesteps and different variables??? 🤦♂

Lets not be too judgy, I bet this was one hell of a lift to produce and get into zarr (yeah I realize me advocating for not being judgy is rich 🤣 - overworked data manager hat off). But I agree that it is very nice that we can now combine this and make it more usable!
Is each step a different release date for a bunch of floats (in which case we have to probably concatenate along a new dimension) or are these literally just split along a common time dimension.

Maybe once/if my ZarrV2 virtualizarr reader is in, we can share a reference that has all the combined zarr stores back to the data provider.

I'm just a bit concerned by the anti-pattern/misunderstanding this implies, of treating each Zarr store like a single chunked netCDF4 file, instead of treating one Zarr store as representing thousands of related netCDF files.

100% aligned here! I think this might need sone deeper understanding of the data.
I think the original data is acrual float timeseries (and the eulerian stiff is an aggregation of stats!)

FWIW, the speaker / data producer Shane Elipot seemed very eager for people to use this dataset. I think he would be happy to chat about any design choices etc.


Fix syntax errors found in linting

Thanks to this failure https://github.com/pangeo-gallery/binderbot/runs/617457492?check_suite_focus=true
I accidentally self-merged #19, sorry! I'll just fix it
up now.

Self-merging to fix build


Roadmap, integration with Workbench, best way to access data ...

This is not an issue but a question. In our group (university) we decided to change the education for students from using APDL to workbench some time ago, because it looked like APDL was "deprecated" by ANSYS. Most of our previous work was done by APDL script, and it has some advantages. We do a lot of parameter studies, esp. for the modell geometry, which are not so easily done in workbench (at least with my limited skill set).
Now it looks to me like ANSYS is focusing on a scripting solution again. And we have some discussions in our group, weather to move completly to workbench whenever possible, or if the easier python interface (compared to pure APDL) would be an argument to use both workbench and python scripting. Its hard to decide, esp. as we do not know where the focus of ANSYS might be in the next years. What is the roadmap?  To better combine workbench with python-scripting? I saw the DPF packages, which seem to allow handling workbench results (?). What about the steps in between, like e.g. switching between script and workbench for geometry creation vs. simulation and post processing. What about using PyMAPDL inside workbench (like the APDL commands which can be added before the solver right now) - ideally without the limitations of IronPython? Maybe APDL will become "invisible" to the user, and scripting would be done purely in python? I know its not easy to talk about future company goals, but I would still appreciate any insights you could provide. The education of our students has a huge impact on how they could use the tools in the upcoming years. Once they are set on a track its unlikly they will change it easily, if it all. It would be cool if they could learn both GUI and scripting, but right now, the combination of script and workbench seems not like the way to do it ^^

First off, sorry for the delayed reply.  I've been speaking with several people within Ansys to get a feeling for the direction so I could write this correctly without misrepresenting the company's direction.
Ansys will be working to improve scripting both inside and outside of Workbench and its other products.  It's part of the strategy to better enable method developers as we're finding it's becoming the case that more and more users wish to automate our products within the Ansys ecosystem or in a different environment such as in a generic Python interpreter.  Given the dominance and popularity of the Python ecosystem and the variety of tools publically available, I can say for certain that Ansys wants to enable users to be able to use it's products in tandem with other toolsets.

APDL was "deprecated" by ANSYS

APDL isn't going anywhere.  In fact, whenever you call Mechanical Workbench, it's generating an input file (look for "ds.dat") that's fed into MAPDL.  However, what's changed over the past several years is where the geometry, meshing, and post-processing is occuring.  Geometry generation can take place within SpaceClaim or Design Modeler, and meshing is done using a variety of new and powerful meshers within Workbench.  I can attest that these tools are far superior to the ones in MAPDL, but the biggest limitation to them is that they're difficult to script (especially externally) and as a result there are still users who choose to generate geometry and mesh within MAPDL.  Hence your next statement:

Most of our previous work was done by APDL script, and it has some advantages. We do a lot of parameter studies, esp. for the modell geometry, which are not so easily done in workbench (at least with my limited skill set).

You're not the only one.  Being able to do simple or even complex parametric studies all within a self-contained python script or module is extremely powerful.  That's not to say that everything can be done within a python script, but as some open source geometry packages have shown (PythonOCC), it's possible to do generate reasonably complex geometries entirely within a CPython script.  Tie this in with MAPDL, and you can have a fully parametric workflow that leverages ML tools such as tensorflow and plotting via pyvista or matplotlib.

And we have some discussions in our group, weather to move completly to workbench whenever possible, or if the easier python interface (compared to pure APDL) would be an argument to use both workbench and python scripting

There will always be tasks where it's better to use one or the other.  Workbench is great tool to rapidly prototype, mesh, set boundary conditions, and solve.  It's where a ton of development has gone and they've done a great job implementing features that make it easy to run analyses.  However, it's limited by its IronPython scripting and you're unable call multiple products at either a granular or high level or use packages such as numpy, scipy, tensorflow, etc.  Where pymapdl comes in is it adds the ability to do this, but right now it's focused on MAPDL.  I can't guarantee that other products may or may not have this level of APIs or scripting in the future, but it's my hope that they will.
What is the roadmap?
That's a multi-billion dollar question, and until Ansys releases a public document, I'm unable to explicitly state what it is.  However, I can say that Python, APIs, and better scripting will be in the future of Ansys, both within Workbench and outside of it.

It would be cool if they could learn both GUI and scripting, but right now, the combination of script and workbench seems not like the way to do it ^^

That will come in time, and feedback by users like you will help drive this development.  I can say that Ansys is already moving in the direction of better supporting automation via scripting and APIs while continuing to develop the desktop GUI experience.

@jgd10, I'd like this to be added to the Q&A.

With this added to the Q&A, I'm now closing this issue. Please make a new issue with the elements that still need to be added, if more need to be added!


Include template hook in RuboCop check

The hooks in template-dir were previously not being included in the RuboCop check.

Thanks for catching. Merged in ee502269f97dd758bb7c80d108f098299e845e8d.


Bug: 'SWS/BR: Disable "Ignore project tempo" for selected MIDI items preserving time position of MIDI events (use tempo at item's start)' (BR_MidiItemTimePos::Restore) handles loop points incorrectly?

Hi there, and thanks for all of your amazing work on the extensions, they've really helped me over the years.
I'm trying to create a custom action that basically changes the projects BPM number, without changing any of the actual playback characteristics, a sort of "call this time 90bpm instead of 120bpm, but make everything still sound exactly the same, please". This seems easy for audio, but quite difficult for MIDI, but now, thanks to the BR Enable/Disable "Ignore project tempo" [...] preserving time position [...] actions I'm almost there. The only remainning problem is, that using the Disable action does not seem to respect loop boundaries properly. For example, taking this item:

(at 90 bpm project tempo, and Ignoring project tempo and using 45 bpm instead:

)
If I run SWS/BR: Disable "Ignore project tempo" for selected MIDI items preserving time position of MIDI events (use tempo at item's start) on this item, this is the result:

(this result is independent of the timebase of the midi item/track)
As you can see, it does preserve the midi item positions/lengths 'in the real world', as I would like, but only up until the loop point, where it fails, and puts the loop too far back.
I've had a look at the code, and it seems this issue is somewhere in BR_MidiItemTimePos::Restore (judging from these lines)?
Unfortunately, I'm nowhere near familiar enough with the REAPER C++ API or this project to remedy this myself, but I hope this helps in fixing this issue (if it even is one? BR_MidiItemTimePos::Restore does seem to have some handling of loop points, so maybe this is intentional?). But given some pointers as to what to do, I'd also be happy to implement this myself and submit a PR, but that would probably end up being more work for the maintainers, than simply fixing it?

Just an idea for a workaround: 1. disable loop source 2. enable ignore tempo 3. re-enable loop source

Just an idea for a workaround: 1. disable loop source 2. enable ignore tempo 3. re-enable loop source
This may or may not work but worth a try

Certainly a valid idea, but unfortunately disabling loop source seems to reset the loop points to the item boundaries, thus re-enabling it does not work. But what would probably work is to do it with a script:

go through all selected midi items

save loop point and item boundaries
trim item to make the new bounds equal to the loop points
disable loop source

use disable ignore tempo action
do 1. in reverse with the saved loop points and item boundaries

But that's so much hassle, that I'd rather try to understand why the current action doesn't do what I want, and try to fix that instead 🙃


Just a question

Since Nebular release: 2.0.0-rc.10 is out, when can we expect this to be included in the NGX-Admin release?

@Prefix1802 here you go! Just update your dependencies and no other changes needed.


For conditional function definition, Pylance inference picks up wrong definition

 Environment data

Language Server version: 2023.4.41
OS and version: linux x64
Python version (and distribution if applicable, e.g. Anaconda): 3.10.8
python.analysis.indexing: true
python.analysis.typeCheckingMode: basic

 Code Snippet
This snippet uses sorcery version 0.2.2.
from sorcery import maybe

for c in maybe("foo").upper():
    print(c)

Pylance reports a squiggle under maybe("foo").upper() with the message "Never" is not iterable Pylance(reportGeneralTypeIssues)
If I Ctrl+click the definition of maybe, I'm sent to this snippet of spells.py:
if PYPY:
    def maybe(_):
        raise NotImplementedError("maybe isn't supported on pypy`")

That definition of maybe has a return type of Never due to the NotImplementedError, but since I'm not using pypy it's wrong. The actual function definition that is executed is this, which Pylance infers has the type Unknown | _Nothing which is correct as far as I can tell.
Though I have a version of Pypy installed through pyenv, I am not running Pypy in this venv:
$ pipenv run python -c "import sys; print(sys.version.lower())"
Loading .env environment variables...
3.10.8 (main, nov 15 2022, 22:46:38) [gcc 9.4.0]

 Logs
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773) Could not import 'trio' in file '/home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/main.py'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Looking in stubPath '/home/kristian/src/my_module/typings'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/src/my_module/typings'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/src/my_module/typings'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Looking in root directory of execution environment '/home/kristian/src/my_module'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/src/my_module'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/src/my_module'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Looking in extraPath '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Finding python search paths
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Executing interpreter: '/home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/bin/python'
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Skipping '/home/kristian/.pyenv/versions/3.10.8/lib/python310.zip' because it is not a valid directory
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)   Received 4 paths from interpreter
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)     /home/kristian/.pyenv/versions/3.10.8/lib/python3.10
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)     /home/kristian/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)     /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages
2023-05-01 15:06:36.319 [info] [Info  - 3:06:36 PM] (3773)     /home/kristian/src/my_module/src
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking in python search path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking in python search path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/.pyenv/versions/3.10.8/lib/python3.10/lib-dynload'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking in python search path '/home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking in python search path '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/src/my_module/src'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking in bundled stubs path '/home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/bundled/stubs'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve stub package using root path '/home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/bundled/stubs'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/bundled/stubs'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking for typeshed stdlib path
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking for typeshed stdlib path
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Attempting to resolve using root path '/home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib'
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Typeshed path not found
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking for typeshed third-party path
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Looking for typeshed stubs path
2023-05-01 15:06:36.320 [info] [Info  - 3:06:36 PM] (3773)   Typeshed path not found
2023-05-01 15:06:36.320 [info] (3773) [IDX(2)]       binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/main.py (0ms)
2023-05-01 15:06:36.323 [info] (3773) [IDX(2)]       parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/run.py [fs read 0ms] (3ms)
2023-05-01 15:06:36.323 [info] (3773) [IDX(2)]       binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/run.py (1ms)
2023-05-01 15:06:36.323 [info] (3773) [IDX(2)]       parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/version.py [fs read 0ms] (0ms)
2023-05-01 15:06:36.324 [info] (3773) [IDX(2)]       binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/version.py (0ms)
2023-05-01 15:06:36.324 [info] (3773) [IDX(2)]     indexing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/watchfiles/__init__.py [found 11] (7ms)
2023-05-01 15:06:36.324 [info] (3773) [IDX(2)]     parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/websockets/__init__.py [fs read 0ms] (1ms)
2023-05-01 15:06:36.326 [info] (3773) [IDX(2)]     binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/websockets/__init__.py (1ms)
2023-05-01 15:06:36.326 [info] (3773) [IDX(2)]     indexing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/websockets/__init__.py [found 1] (0ms)
2023-05-01 15:06:36.334 [info] (3773) [IDX(2)]   index execution environment /home/kristian/src/my_module [found 1467 in 50 files] (923ms)
2023-05-01 15:06:36.334 [info] (3773) [IDX(2)] index packages /home/kristian/src/my_module [found 1467 in 1 exec envs] (928ms)
2023-05-01 15:06:36.334 [info] [Info  - 3:06:36 PM] (3773) indexed(2) 50 files over 1 exec env
2023-05-01 15:06:36.340 [info] [Info  - 3:06:36 PM] (3773) Indexing finished(2).
2023-05-01 15:06:41.019 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/typing.pyi [fs read 1ms] (22ms)
2023-05-01 15:06:41.039 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/typing.pyi (20ms)
2023-05-01 15:06:41.050 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/typing_extensions.pyi [fs read 1ms] (8ms)
2023-05-01 15:06:41.054 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/typing_extensions.pyi (3ms)
2023-05-01 15:06:41.097 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi [fs read 1ms] (14ms)
2023-05-01 15:06:41.102 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/_typeshed/__init__.pyi (5ms)
2023-05-01 15:06:41.116 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/types.pyi [fs read 0ms] (13ms)
2023-05-01 15:06:41.126 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/types.pyi (11ms)
2023-05-01 15:06:41.133 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/abc.pyi [fs read 0ms] (1ms)
2023-05-01 15:06:41.134 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/abc.pyi (1ms)
2023-05-01 15:06:41.141 [info] (3773) [FG] parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/__init__.py [fs read 1ms] (3ms)
2023-05-01 15:06:41.143 [info] (3773) [FG] binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/__init__.py (1ms)
2023-05-01 15:06:41.171 [info] (3773) [FG] parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/spells.py [fs read 1ms] (29ms)
2023-05-01 15:06:41.182 [info] (3773) [FG] binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/spells.py (11ms)
2023-05-01 15:06:41.192 [info] (3773) [FG] parsing: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/core.py [fs read 0ms] (8ms)
2023-05-01 15:06:41.194 [info] (3773) [FG] binding: /home/kristian/.local/share/virtualenvs/my_module-Dqe5czgd/lib/python3.10/site-packages/sorcery/core.py (2ms)
2023-05-01 15:06:41.216 [info] (3773) [FG] parsing: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/sys.pyi [fs read 0ms] (20ms)
2023-05-01 15:06:41.226 [info] (3773) [FG] binding: /home/kristian/.vscode-server/extensions/ms-python.vscode-pylance-2023.4.41/dist/typeshed-fallback/stdlib/sys.pyi (10ms)
2023-05-01 15:06:41.236 [info] (3773) Background analysis message: getDiagnosticsForRange
2023-05-01 15:06:41.236 [info] (3773) Background analysis message: getDiagnosticsForRange
2023-05-01 15:06:41.275 [info] (3773) Background analysis message: getDiagnosticsForRange
2023-05-01 15:06:41.278 [info] (3773) Background analysis message: getDiagnosticsForRange
2023-05-01 15:06:41.278 [info] (3773) Background analysis message: getDiagnosticsForRange

you can try adding a pyrightconfig.json file in base of your workspace..
 "defineConstant": {
    "PYPY": false
  },

Thanks, that made the problem go away! 👍

@luabud do we want this setting in vscode's setting.json?

Created https://github.com/microsoft/pylance-release/discussions/4330 to gauge interest in this setting :)


Brackets.Release.1.8.msi says there is another brackets installing :(

Prerequisites

[ ] Can you reproduce the problem with Debug -> Reload Without Extensions?
[ ] Did you perform a cursory search to see if your bug or enhancement is already reported?
[ ] Did you read the Troubleshooting guide?

For more information on how to write a good bug report read here
For more information on how to contribute read here
Description
[Description of the bug or feature]
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expected to happen]
Actual behavior: [What actually happened]
Versions
Please include the OS and what version of the OS you're running.
Please include the version of Brackets. You can find it under Help -> About Brackets (Windows and Linux) or Brackets -> About Brackets (macOS)

Oops forgot to close other msi's in task manager


Autorest Regen Preview to 3.0.0-alpha.20230414.2 by Dapeng Zhang from refs/pull/3207/merge

Triggered from https://github.com/Azure/autorest.csharp/pull/3207

API change check
API changes are not detected in this pull request.


restyle web home page with bootstrap navbar

modified the index.html and raspi.css files to use default bootstrap navbar menu which adjusts responsively based on users device.

@alaudet - This is my first time contributing to the project.  I tried to follow the process for contributing and created issue #78 for this pull request.


chore: add script to retrieve certificate fingerprint

Description

This PR adds a helper script to retrieve the latest fingerprint from a specified certificate

Other changes

None

Tested

Tested locally and checked with what's displayed in the browser

Related issues

None

Backwards compatibility

N/A

Beautiful, but I can not approve anymore.


{id: ""} will make model.isNew() return true (instead of false)

Ran into a situation where I was pulling model attributes from a serialized form, and found that if you instanciate a model off of {id: ""}, isNew() will return false. My workaround code right now is something like if (attrs.id) delete attrs.id which is pretty nasty, and I would love to remove it
Love the framework, and am really excited to see where things end up :)

I'm afraid that -- although your complaint is certainly real enough -- this isn't a behavior we should be changing. Strings are valid attributes for Backbone Models, so the empty string must also be a valid attribute. I'm afraid that the real answer is to avoid setting an empty string as your model's ID, whether by overriding as you've done, or (better) by filtering it out when you serialize the form.

@jashkenas: I understand that "" should not be considered invalid, but I do think that in the case of whether or not a model is considered to be in a new state, "" doesn't make much sense for a valid ID, especially since (I would imagine) that this case would be fairly common, and require specific code to handle it any time you are sharing the same form for new/update.
That being said, maybe it would be ok if backbone views had some way to do the serializing forms? I would imagine that forms having their own views would be rather common. That way the filtering could be done at that level, and models could stay as "" being a valid ID. I wouldn't mind writing it if it is the sort of thing you would accept.

I think that form serialization is a great kind of thing for an extension, or a jQuery plugin -- Backbone itself doesn't have too much to do with forms.
In fact, I think that most of the form serialization scripts that I've used don't turn empty fields into empty strings ... instead, they omit the field or leave it null, which would be more correct in my opinion.

Yeah, I completely agree with you. Empty fields should not be present in the serialised object as it is how standard form submission behavior too.
Currently I've isNew() method overridden as
Backbone.Model.prototype.isNew = function () {
	return (this.id !== 0 && !this.id);
};


get_contact_local_position() wrong direction [with bullet physics, work normally with GodotPhysics]

Godot version: 3.06
windows 10:
Issue description:
hello hello,
get_contact_local_position(0) report a vector that sound to be the opposite of expected
work around is easy -> contact_point = - get_contact_local_position(0)
Steps to reproduce:
create 2 rigidbodies with collision shape (make collision shape visible)
make one fall on the other
print or draw the result of  : s.get_contact_local_position(0)
do this with bullet physics and godot physics engine
I wish I could put an explicit gif of the issue but that's not really easy for me now.
cheers

Please next time update a sample project because I can't reproduce it.
Anyway this should fix the problem: #22257
Thanks you for the report


Conductor: Rollup Sync Implementation

Possible places that historical data can be synced from are the sequencer and the DA.
Currently sync a new rollup on Astria only syncs from the sequencer.
Possible configurations:

Only from Sequencer
Only from DA
Both
Config setting to choose one of the above

Additional thought need to be given to what gets implemented here.
### Tasks
- [ ] https://github.com/astriaorg/astria/issues/470
- [ ] https://github.com/astriaorg/astria/pull/455
- [ ] https://github.com/astriaorg/astria/issues/473
- [ ] https://github.com/astriaorg/astria/issues/323

closing as completed


Can my bot reply without hears any thing?

This is the normal code:
controller.hears(['hello', 'hi'], 'direct_message,direct_mention,mention', function(bot, message) {
  bot.reply(message, "Hello.");
})

How can I call bot.reply without controller.hears?

Yes, you can, but it's bot.say
bot.say({
      text: "Message text",
      channel: 'C0XXXXX' // channel Id
  });

Note: you will need to execute this after connecting to RTM.
Quick and dirty example:
var bot = botController.spawn( {
    token: process.argv[2] //process.env.token
}).startRTM();

setTimeout(function() {
  bot.say({
      text: "this is the message",
      channel: 'C0XXXXX' // my channel id
  });
}, 5000)

@Glowbal Thank you
Can bot.say send message to private conversation?

Yes, you need the direct message channel Id for it. See https://api.slack.com/rtm and search for sending messages. The direct channel Ids start with D.

Is there a way to do this with a Facebook Messenger bot? startRTM is only for Slack, it seems.


I've got a white screen while upgrading to 0.6.10 / 0.6.11 / 0.6.12

Or application not responding

The update clears the application but it should be done in a background thread instead of the UI one.

The white screen was displayed < 2s on my side (> 50 rooms with large history).
It might depends in the stored history.


multiple inputs support

I found in the mlserver code that mlserver does not support multiple inputs, but the model does. I wonder if there is any consideration for this?
Are there any plans to support it in the future?
mlserver: https://github.com/SeldonIO/MLServer/blob/0936e26354a6df77c7692faaa9c9467f5f674573/runtimes/lightgbm/mlserver_lightgbm/lightgbm.py#L46
sklearn: https://github.com/SeldonIO/MLServer/blob/0936e26354a6df77c7692faaa9c9467f5f674573/runtimes/sklearn/mlserver_sklearn/sklearn.py#L58
xgboost:
https://github.com/SeldonIO/MLServer/blob/0936e26354a6df77c7692faaa9c9467f5f674573/runtimes/xgboost/mlserver_xgboost/xgboost.py#L46
...

Hey @lianxmfor,
Following our conversation on the community Slack, glad that you managed to make it work!
Just for completeness, in case someone else also stumbles on this one, multiple input tensors should be part of the same input entry in the MLServer payload. E.g. let's say you have a 1 x 4 tensor, where 1 is the "batch" dimension. Your input payload combining N different entries should be a single tensor with shape N x 4, rather than 4 separate entries.
For extra context, each element on the inputs array is considered as a separate "input head" - i.e. a separate parameter to the model.


eventio.EventIOFile init takes forever when trying to open a gzipped file

I just tried to open this file
eventio.EventIOFile(
'gamma_20deg_0deg_run4601___cta-prod3-merged_desert-2150m-Paranal-3HB89-NGFD_cone10.simtel.gz')

That took forever .. I killed it before it ended. not sure if this is due to the well known slow python unzipping or if I just tried to binary read a zipped file :-D
gotta look into it.

Try unzipping , ihr will only take two seconds . If I remember correctly, it took about 90 seconds gzipped.
This is because it parses the whole file and a lot of forward backward seeking is done, which is always slow with gzip.
I want to take care of this by generating the containers, not parsing the whole file by default.

I totally agree here.

solved by #35


Understand how HTTP caching response headers are set and interpreted

Currently Asset Manager sets the Cache-Control header to public, max-age=86,400, i.e. 24 hours. Nginx also sets an ETag header. We'd like to understand whether how this combination of Cache-Control and ETag headers is interpreted by the CDN and/or other clients.

We have added a section about caching and another about conditional requests to our work-in-progress Asset Manager notes Google Doc (not currently public). I think we have a good understanding of how caching is working and so I'm going to close this issue.


Adaptation for rclc-executor

All nodes are inherited from rclcpp::Node and then publishers and subscriptions are created. I would like to replace e.g. the Fusion node
class Fusion : public rclcpp::Node
by
class Fusion
Inside the class Fusion, I will then use the C-API from rclc package to create nodes, subscriptions and publishers as necessary.
Does the reference system (building the autoware_auto setup, tracing tools etc. ) rely on the fact, that a node is always an rclcpp::Node? I am asking this, because for the rclc-executor use-case there will be no rclcpp::Node available.
(I will replace, of course, the code that adds nodes to the executor by adding the callbacks of subscriptions directly to the rclc-executor).

@JanStaschulat @flynneva as for the tracing instrumentation, I looked into it and quickly put something together: https://github.com/christophebedard/rclc/tree/christophebedard/add-temporary-instrumentation-with-tracetools. It uses the rclcpp instrumentation so that it seems like it's rclcpp. It's really a hack, but this way we don't need to modify tracetools (or define new tracepoints for rclc) or tracetools_analysis* and hopefully we save a bunch of time.
*we do need to modify tracetools_analysis because rclc doesn't link timers to nodes, so some of the utility code that relies on that needs to be changed to be more lenient:
diff --git a/tracetools_analysis/tracetools_analysis/utils/ros2.py b/tracetools_analysis/tracetools_analysis/utils/ros2.py
index 13f69f7..d61380d 100644
--- a/tracetools_analysis/tracetools_analysis/utils/ros2.py
+++ b/tracetools_analysis/tracetools_analysis/utils/ros2.py
@@ -321,7 +321,8 @@ class Ros2DataModelUtil(DataModelUtil):
node_handle = self.data.timer_node_links.loc[timer_handle, 'node_handle']
node_handle_info = self.get_node_handle_info(node_handle)
if node_handle_info is None:

       return None

       # return None

       node_handle_info = {}

   tid = self.data.timers.loc[timer_handle, 'tid']
   period_ns = self.data.timers.loc[timer_handle, 'period']

This line in #49 probably won't work either, since the node name ('FrontLidarDriver') won't be in the string: https://github.com/ros-realtime/reference-system/blob/a460b954930845503561a1b0d1bde8b62265bd4f/autoware_reference_system/test/dropped_messages.py#L159. However, we can infer the node instead by comparing the tid of the timers (from the Ros2DataModel.timers pandas.DataFrame) to the node tids (from the Ros2DataModel.nodes pandas.DataFrame) in the dropped message analysis code.
Otherwise it does work. I ran the example_pingpong example from rclc_examples:
# Terminal 1 (press enter to start tracing, run the example, then press enter again to stop tracing)
ros2 trace --session-name rclc-pingpong -k
# Terminal 2
ros2 run rclc_examples example_pingpong

and I get this when running the trace through the callback duration example notebook/analysis:

because rclc doesn't link timers to nodes

Or we can call the tracepoint to manually link timers to the right nodes in the rclc-specific part of the reference system. Then we can avoid needing to modify tracetools_analysis and the dropped message analysis code.

closing after #73, feel free to reopen if desired


Secure our Electron implementation

Details
This PR implements many of the security best practices outlined in Electron's documentation. There is a lot of context behind why these changes are a good idea, but this is one of the best resources I've found with a good summary: https://github.com/reZach/secure-electron-template/blob/master/docs/newtoelectron.md.
TL;DR we're completely separating the website code (renderer process) from the powerful Node.js and Electron API's, and any communication between the renderer and main processes (which can use those APIs) has to happen through whitelisted channels. There's also some additional context in https://github.com/Expensify/Expensify/issues/193886
Fun fact: A random side-effect of this PR is that if you run npm run desktop, you can also view the renderer process of the desktop app in your browser by going to localhost:PORT. This is almost the same as running npm run web, with the exception of index.desktop.js files will be used instead of index.website.js.
Remaining TODOS:

[ ] Enable sandbox mode (I couldn't get this working, posted a comment here).
[x] Run a local production build and verify it works as expected.

Fixed Issues
$ https://github.com/Expensify/Expensify/issues/193886
$ https://github.com/Expensify/Expensify/issues/166153
Tests / QA steps.

Run the desktop app.
Verify that you can sign in and sign out.
Paste an external link in the chat, verify that clicking that link opens it in your default browser.
Verify that you can right-click in the compose bar to expose a context menu.
In the app menu, click on View Keyboard Shortcuts. Verify the keyboard shortcuts modal opens. This verifies that events from the main process are being sent to the renderer process correctly.
Run the web app (or just open the desktop app in your browser as noted in the Fun Fact above) and sign into a different account.
Make sure the desktop app has a chat open with a different user than the one you're signed into web as.
Send a message from the web account to the desktop account.
Verify that the desktop app's unread count increases. This verifies that events from the renderer process are being sent to the main process correctly.
(dev only) Run a local production build and repeat the test steps in there.

[x] Verify that no new errors appear in the JS console (Be extra on the lookout for this with this PR)

Tested On

[ ] Web
[ ] Mobile Web
[x] Desktop
[ ] iOS
[ ] Android

Screenshots
Desktop

Successful local production build

Hey, I noticed you changed some webpack configuration files. This can break production builds. Did you remember to run a production build locally to verify they still work?

Is merging blocked on this remaining todo? Enable sandbox mode ?

Is merging blocked on this remaining todo? Enable sandbox mode ?

Nope. We can address that in a follow-up.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @AndrewGable in version: 1.1.38-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @Julesssss in version: 1.1.38-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Chore adjust variant tpch/q09_trans.sql batch_size…

… from default to 2048
since 50 may cause performance issue introduced by #33853
Proposed changes
Issue Number: close #xxx

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

run buildall


Refactored tests to be independent of store implementation

Made tests independent of specific store implementations
Still need more changes to make testing external implementation truly seamless, but at least the story is much better than before.
Moved store implementation specific tests into their own dedicated suites.

This is great @thehenrytsai . I wonder what it'd take to export the generalized tests vs. custom store implementers having to fork the repo

@mistermoe, definitely a much better story to not require forking. This is a baby step towards that ultimate story. Filed #423 to track!


Update README.md to match gradle.properties & displayed versions

Well, if you look on Modrinth you'll never find a "1.x" version of Hex Casting. This updates the version numbers to match what users (and Gradle) will see.
I copied the long-term support wording. Don't know how applicable that really is.

thanks!


Update ci-cd-github-troubleshoot-guide.md

Chnaged content to include required headings.

Added new headings to the file.


fix(podlifetime): fix failed unittest

correct desired pod creation time
"Two pods in the dev Namespace, 1 created 605 seconds ago. 1 should be evicted.", the create time stamp should be 605 s before current time

/retest

@xujihui1985 nice catch!!!
I wonder how "Two pods in the dev Namespace, 1 created 605 seconds ago. 1 should be evicted." test has been passing until now when it should not.

@xujihui1985 nice catch!!!
I wonder how "Two pods in the dev Namespace, 1 created 605 seconds ago. 1 should be evicted." test has been passing until now when it should not.
Also, "Two pods in the dev Namespace, 1 is new and 1 very is old. 1 should be evicted." and "Two pods in the dev Namespace, 1 created 605 seconds ago. 1 should be evicted." tests are functionally equivalent wrt. maxLifeTime. The same holds for "Two pods in the dev Namespace, 2 are new and 0 are old. 0 should be evicted." and "Two pods in the dev Namespace, 1 created 595 seconds ago. 0 should be evicted.".

I happened to run the test in my ci system, and can't pass this test, so I look into the test and find out the test condition might be wrong, but I haven't check why this test used to be success.

Running the test from the current master:HEAD it passes. Though only because the computation overflows:
	podFilter = podutil.WrapFilterFuncs(podFilter, func(pod *v1.Pod) bool {
		podAgeSeconds := uint(metav1.Now().Sub(pod.GetCreationTimestamp().Local()).Seconds())
		return podAgeSeconds > *podLifeTimeArgs.MaxPodLifeTimeSeconds
	})

The code does not assume a pod gets created in the future :) Dropping uint the case fails.

@xujihui1985 would you please also update the filter code as well? E.g.
	maxPodLifeTimeSeconds := int(*podLifeTimeArgs.MaxPodLifeTimeSeconds)
	podFilter = podutil.WrapFilterFuncs(podFilter, func(pod *v1.Pod) bool {
		podAgeSeconds := int(metav1.Now().Sub(pod.GetCreationTimestamp().Local()).Seconds())
		return podAgeSeconds > maxPodLifeTimeSeconds
	})

@a7i we should probably ignore any pod created in the future :)

sure, glad to do that

/approve

@xujihui1985 would you please also update the filter code as well? E.g.
	maxPodLifeTimeSeconds := int(*podLifeTimeArgs.MaxPodLifeTimeSeconds)
	podFilter = podutil.WrapFilterFuncs(podFilter, func(pod *v1.Pod) bool {
		podAgeSeconds := int(metav1.Now().Sub(pod.GetCreationTimestamp().Local()).Seconds())
		return podAgeSeconds > maxPodLifeTimeSeconds
	})

@a7i we should probably ignore any pod created in the future :)

I see, covert to uint make the podAgeSeconds a large number because of the nagtive sign, I have update the MR according to your suggestion,  but actually this future pod doesn't make sense in real life, so either we compare the creation seconds with convert it to int or if podAgeSeconds is < 0, we just return false

/retest

/lgtm


how pass data from component to title

Version
Tell us which versions you are using:

react-native-router-flux v4.6.1
react-native v0.52.2

Expected behaviour
how to make title like picture, with place and date dynamic from component . catch data from scene component to title router ??

thanks

https://github.com/aksonov/react-native-router-flux/blob/master/docs/API.md
Scene

renderTitle
React.Component

React component to render title for nav bar

ok, solved.
I use Actions.scene({ params: valueHere })

Not sure if renderTitle solves this matter, but it was mentioned by OP - even though he solved in another way... Is it possible to set the title dynamically, from inside the Scene's component? E.g. my component's title is based on a field of a prop it receives.


Update header after component is mounted.

I have data to display on a header. This data is not displayed on ount as it has not been fetched yet. However, once the fetch is complete, nothing reflects on the header. I there a way to refresh the header when retrieving data is complete?

I'm sorry for the late response.
Could you share the example? I'm closing this for now. Feel free to reopen.


[Twitch] downloading a live Twitch stream with cookie option and get the pre-roll ads

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

(currently running youtube-dl version 2021.01.08)
I have found that in the last couple of days that downloading a live twitch stream while using the cookie option now fails to exclude the pre-roll ads. I have prime and turbo as well as being subbed to these channels.
Firstly, I'm wondering if others have seen this?
Also, wondering if the "cookie" option functionality could be broken?
Any thoughts on this would be most welcome.

To be more accurate, I'm not recording an actual ad, I'm seeing what I would call a Twitch "place holder" instead of the add.
Just the same, this wasn't there a few days ago.

To be more accurate, I'm not recording an actual ad, I'm seeing what I would call a Twitch "place holder" instead of the add.
Just the same, this wasn't there a few days ago.


Can you pleasse add when you press TAB it add 4 spaces?

Can you pleasse add when you press TAB it add 4 spaces?
thanks

You can do it by downloading the source code, Godot, and modifying the CodeEdit node's properties in the inspector to use spaces instead of tabs. There's no other way

POV add it into a config file

You can do it by downloading the source code, Godot, and modifying the CodeEdit node's properties in the inspector to use spaces instead of tabs. There's no other way

...or is there?


Don't even ask why this works. I don't know. This fixes #12

Why does this work ?

I don't know. 🎱


This currently only allows 1 image / Loc . Passing img : [

If I add img : ['img1','img2'] it simply converts this back to img: img1,img2
Which limits # of images you can put per page down to 1. Should allow multiple

Fixed in #33


Update 2020-04-06-API-Priority-and-Fairness-Alpha.md

Hi @Raen123, congrats on your first PR. I noticed that you haven’t signed the Contributor License Agreement (CLA) yet. Kindly sign the agreement to proceed with this PR.

To learn about the copyright agreement, please visit https://www.kubernetes.dev/docs/guide/#sign-the-cla

@Raen123 : Please sign the CLA and consider reopening the PR, once done.
/close


Disappearing downloads

Every once in a while I get an error when pushing my project to heroku that states
Cannot download "https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-79_binding.node"
Checking on github, that file does not exist at all, so my question would be, why is it even being looked for? It happens during the install of<EMAIL_ADDRESS>running node v8.16.0.

The 79 in the download URL means it's running Node 13 https://github.com/sass/node-sass#supported-nodejs-versions-vary-by-release-please-consult-the-releases-page-below-is-a-quick-guide-for-minimum-support


Update requestCreator.py

Added the ability to specify identityOverrides (on-the-fly derived dimensions or metrics)

Made a mistake


#376 - adding tracking apis

#376 - Adds tracking apis and tests
also updates all event names to be consistent with the c++ core

I am actually observing some differences in naming right now while validating v5 vs Swift SDK in Griffon. Hold off on merging until i can verify that we are fixing these here.


Exception in setup and the first use

I followed the steps of installation and data from the readme, but then in the usage, when I run
python holodeck/main.py --query "a living room" --openai_api_key <OPENAI_API_KEY>

I get these exceptions:
Traceback (most recent call last):
  File "C:\Code\HoloDeck\holodeck\main.py", line 17, in generate_single_scene
    open(f"data/scenes/{folder_name}/{folder_name}.json", "r")
FileNotFoundError: [Errno 2] No such file or directory: 'data/scenes/a_living_room/a_living_room.json'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Code\HoloDeck\holodeck\main.py", line 160, in <module>
    generate_single_scene(args)
  File "C:\Code\HoloDeck\holodeck\main.py", line 23, in generate_single_scene
    scene = args.model.get_empty_scene()
  File "C:\Code\HoloDeck\holodeck\ai2holodeck\generation\holodeck.py", line 140, in get_empty_scene
    return compress_json.load("generation/empty_house.json")
  File "C:\Users\Me\anaconda3\envs\holodeck\lib\site-packages\compress_json\compress_json.py", line 189, in load
    file = open(path, mode=mode, encoding=encoding, **compression_kwargs)
FileNotFoundError: [Errno 2] No such file or directory: 'generation/empty_house.json'

I'd really appreciate it if you could help me with this!

Could you please check if this file is in the correct path? Also, I saw you are on Windows, so you may need to use a VM to run our codebase.


haskellPackages: configuration cleanup

Description of changes
I went down the rabbit hole and did another cleanup.
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

These are great!  You've really made some good simplifications here.
I'll merge in after ofborg-eval finishes.


gh-131: rename gaussian_gls to discretized_cls

This popped up while I was looking to add tests for fields.py.

rename gaussian_gls to discretized_cls
update docstring and internal references
don't use gaussian_gls in lognormal_gls

Closes: #131
Changed: gaussian_gls has been renamed to discretized_cls
Changed: lognormal_gls no longer uses gaussian_gls internally and the arguments passed to gaussian_gls have been removed

One critical thing that is missing here is that, by taking discretized_cls() out of lognormal_gls(), the discretisation is no longer applied to the cls used in the examples.
I think the "discretisation step" would be best shown in each example. Something along the lines of:
-# compute Gaussian cls for lognormal fields for 3 correlated shells
-gls = glass.lognormal_gls(cls, nside=nside, lmax=lmax, ncorr=3)
+# apply discretisation to the full set of spectra:
+# - HEALPix pixel window function (`nside=nside`)
+# - maximum angular mode number (`lmax=lmax`)
+# - number of correlated shells (`ncorr=3`)
+cls = glass.discretized_cls(cls, nside=nside, lmax=lmax, ncorr=3)
+
+# compute Gaussian cls for lognormal fields for 3 correlated shells
+gls = glass.lognormal_gls(cls)

As a matter of fact, since notebooks are run locally and their outputs stored (i.e., cls.npz), it probably no longer makes sense to pre-compute the Cls for other examples; that was only done to save time when running on GitHub actions.

Thanks for the help! I have updated the notebooks to show the discretization step.

Thanks for the great work @Saransh-cpp, and sorry for the annoying change requests. Here is one more: The ## Setup section still mentions that the examples use pre-computed spectra. (The text saying that the set up matches shells can stay and is probably useful to guide newcomers to a more basic example.)

No worries, @ntessore! I have updated the PR. Could you please take a look again?

Unrelated to this PR, but we should tweak the "Test examples" action to not just run the examples, but also produce and upload HTML artefacts of the results.

Thanks! I have created relevant issues for the comments above.


Set wifi MAC address based on the contents of the EEPROM

This is an attempt to fix https://github.com/resin-os/resinos/issues/133
The MAC address for the wifi interface is stored in the EEPROM and needs to be set at boot, otherwise it remains DE:AD:BE:EF:00:00

Hopefully the above issues should now be resolved.


bug: Screen orientation bug in android shows half screen

Bug Report
Ionic version:

[x] 4.x
Current behavior:

I want to lock specific screen in landscape orientation, and others screen to be allowed in both orientation.
If I lock orientation to landscape and device is in portrait, and when this screen loads, it remains in the left half of the device screen

Expected behavior:

The screen should be load as fullscreen
Related code:

ionViewWillEnter() {
       this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.LANDSCAPE);
}

ionViewWillLeave() {
        this.screenOrientation.unlock();
}

Other information:

I have raised the question on Stack Overflow Here
Ionic info:

Ionic:

   Ionic CLI                     : 5.0.3
   Ionic Framework               : @ionic/angular 4.6.0
   @angular-devkit/build-angular : 0.13.9
   @angular-devkit/schematics    : 7.3.9
   @angular/cli                  : 7.3.9
   @ionic/angular-toolkit        : 1.5.1

Cordova:

   Cordova CLI       : 8.0.0
   Cordova Platforms : android 7.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 12 other plugins)

Utility:

   cordova-res : 0.4.0
   native-run  : 0.2.6

System:

   Android SDK Tools : 26.1.1 (/Users/divyesh/Library/Android/sdk)
   ios-deploy        : 1.9.2
   NodeJS            : v11.4.0 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS Mojave
   Xcode             : Xcode 10.2.1 Build version 10E1001

Thanks for the issue. Can you provide a repo with the code required to reproduce this issue?

https://github.com/pateldi1524/ionic-orientation-bug
On landscape page, when you open chrome://inspect it will turn the screen to full screen automatically.

+1 Also getting this issue with the latest version of ionic-angular. Issue is only affecting Android devices.

Thanks for the follow up. Which version of Android are you testing this on? Also, are you testing on a physical device or an emulator?

I am testing on physical device. Android 7.0 Nougat

Thanks for the follow up. I am able to reproduce this issue. I am going to close this issue in favor of https://github.com/ionic-team/ionic/issues/19065.
We believe this is an issue in Chrome 76 when running as a webview. You can find a temporary workaround here: https://github.com/ionic-team/ionic/issues/19065#issuecomment-521370741.
I will post in the thread I linked to when I have more info to share. Thanks!


Enable goal editing and show them on the dashboard

Enable editing KPI goals from the KPI admin interface and show the current goal for a KPI on the dashboard when set.
Remove the previously hard coded goals.


ssh : passphrase is too short (minimum five characters)

use v 8.2.0 with patch #165
*TRACEBACK*********************************************************************************
Traceback (most recent call last):
  File "/opt/jumpscale8/lib/JumpScale/baselib/jobcontroller/Job.py", line 169, in executeInProcess
    res = self.method(job=self)
  File "/tmp/actions/sshkey/input.py", line 35, in action
    rc, out = j.sal.process.execute(cmd, die=True, showout=False, ignoreErrorOutput=False)
  File "/opt/jumpscale8/lib/JumpScale/sal/process/SystemProcess.py", line 1344, in execute
    captureOutput=not ignoreErrorOutput)
  File "/opt/jumpscale8/lib/JumpScale/InstallTools.py", line 1822, in executeAsyncIO
    (out, err, command, rc))
RuntimeError:
OUT:

STDERR:
Saving key "/root/zerodock/services/sshkey!vagrant_install/id_rsa" failed: passphrase is too short (minimum five characters)
ERROR: Cannot execute:'ssh-keygen -q -t rsa -f /root/zerodock/services/sshkey!vagrant_install/id_rsa -N '''
returncode (1)

got this when sshkey_.... has no properties, example:
sshkey__vagrant_install:

also happens when it has key.passphrase property, example:
sshkey__vagrant_install:
  key.passphrase: 'adadabdabdabdabdbadbabdabdabdbadbabdabdabdbadbadbadbabdab

We should had a validation check of the length of the passphrase in the input method if the sshkey service.

how long is the minimum passphrase?
the error message said
passphrase is too short (minimum five characters)

but give this blueprint still failed for me with same error message
sshkey__vagrant_install:
  key.passphrase: 'adadabdabdabdabdbadbabdabdabdbadbabdabdabdbadbadbadbabdab


Use only cxx14 features in clustering extension.

Also disable circle ci and update pybind11 to 2.4.2
fixes #31

Thanks for the review. Please go ahead and change it accordingly
Am 14. Oktober 2019 19:11:59 MESZ schrieb Moritz Hoffmann<EMAIL_ADDRESS>
clonker commented on this pull request.
Apart from the if constexpr thing looks good to me! I can make the
change as well if you want

   if constexpr (std::is_same_v<T, float>) {

       return compute_f(xs, ys, dim);

   } else {

       return compute_d(xs, ys, dim);

   }

   return compute_d(xs, ys, dim);

}
float compute(const float* xs, const float* ys, std::size_t dim)
const {

 return compute_f(xs, ys, dim);

}

this isnt actually doing the same thing as far as i can tell, the way
to work around if constexpr would be with std::enable_if
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/scikit-time/scikit-time/pull/32#pullrequestreview-301434344

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

Not sure why this failed, says
##[error]Error: Failed find: EPERM: operation not permitted, scandir '/Users/vsts/Library/Application Support/AddressBook'
in the test result publishing step

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@185d567). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #32   +/-   ##
=========================================
  Coverage          ?   82.42%
=========================================
  Files             ?       35
  Lines             ?     2857
  Branches          ?        0
=========================================
  Hits              ?     2355
  Misses            ?      502
  Partials          ?        0

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 185d567...d6e0e43. Read the comment docs.


Can I use this script on AWS EC2 Instance?

I would link know how I can use this script on a instance on amazon.
Does EC2 support TUN/TAE connections like VPS?

As long as you use a supported distro (Debian/Ubuntu/CentOS), it's fine.

I have a Linode instance where this script works pretty well even for many devices. On EC2 free-tier, I have failed to connect to the server. It gets stuck on: MANAGEMENT: >STATE:1615045703,RECONNECTING,tls-error,,,,,

@kizomanizo check the firewall, this installer is provider agnostic and works in EC2 without issue.


Please rename (un)hide Navbar to (un)hide Appbar

Please rename (un)hide Navbar to (un)hide Appbar
If you these pages:
App bar:
https://developer.android.com/training/appbar/
Nav bar is the one on the bottom
https://material.io/design/platform-guidance/android-bars.html#android-navigation-bar

Thanks for the hint, will be fixed in next release


input-sm font size is too big

On inputs and selects, the font exceed the field height: (screenshots from the docs)

Yes, we've seen it. Fixed by commit 9be9dfe571408075c05850a566c8b2745af0c56d

Will you correct this in v3?

Sorry, just saw it in v3 : http://boosted.orange.com/css/#forms-control-sizes
We will try to fix it

Thanks :smile:

Hi, this is fixed in commit 31e7dc6b48ba694b


Support additional_emails field on the Customer type

Support additional_emails on the Customer type
Orb reference docs

Create https://docs.withorb.com/reference/create-customer
Update https://docs.withorb.com/reference/update-customer

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

@benesch Thank you for the library and accepting PRs, let me know anything else! I didn't actually run the tests because of the emails and Orb key, but if they pass it should be good. Please let me know anything else!

Thanks for the PR! I triggered a CI run. @arusahni could you handle the review here?

The test failure is related to GHA not sharing tokens across forks. I can switch to a branch if you grant me writer to the repo, that would dodge the issue, or maybe there's another way?

Ah, yeah, that's annoying. I can pull this down and run the Linux tests locally, and we can do code review on this PR. Once it looks good to merge I'll open a branched PR with your commits (preserving your authorship) and we can get the final CI run and merge this in. Does that sound okay to you?

Ah, yeah, that's annoying. I can pull this down and run the Linux tests locally, and we can do code review on this PR. Once it looks good to merge I'll open a branched PR with your commits (preserving your authorship) and we can get the final CI run and merge this in. Does that sound okay to you?

Sounds good! Just let me know if you change you mind, I can follow another process to make it easier for you if I have another change request later.

No worries at all! We very much appreciate your contributions :-)
I'll try to get to this within the next day or so.

@arusahni ok done


Installation error with external databases

Describe the bug
There is not a way to configure external databases from installer, so Laravel throw an error trying to get a field "default theme from setting" in SQL database.
The unique way to avoid the error is configuring the external database parameters into laravel config file (because there's not a .env with configs). But new error appear (404 not found)... no way to run installer.
Version
7.0.0-beta.2
To Reproduce
Steps to reproduce the behavior:

Go to phpvms url
See error

Expected behavior
Installer views and logic.
Example:
http://www.dutchairwaysva.com/phpvms

I wonder if this is related to #491. But I'm not 100% what you mean, if you enter the hostname and port properly, it should just work. Is the remote port open?
Trying to go to: http://www.dutchairwaysva.com/phpvms/install
It looks like URL rewrite isn't configured

No, isn't related to these issue, remote port is open and credentials in config/database.php has been entered properly. I will look the url rewrite, could it be the error there and laravel log file too.

Yeah, I was gonna ask for the Laravel log next. There's nothing that I'm aware of that should block a remote DB - that's how I test it infact, with the included docker-compose file - the database is running in a separate container, and it connects to it through its hostname

Not sure if this helps, but it looks like it could be a URL rewrite issue as the installer can be viewed by adding the /public to the end which you shouldn't have to do now.
http://www.dutchairwaysva.com/phpvms/public/install

Not sure if this helps, but it looks like it could be a URL rewrite issue as the installer can be viewed by adding the /public to the end which you shouldn't have to do now.
http://www.dutchairwaysva.com/phpvms/public/install

it works, but I changed the url setting in index.php to public/ and no lucky and in boostratp/app.php changed to phpvms/public and no lucky too with http://www.dutchairwaysva.com/phpvms/install but now the styles load correctly

Who's your host?
On Thu, Jan 9, 2020, 8:30 PM José Bustos<EMAIL_ADDRESS>wrote:

Not sure if this helps, but it looks like it could be a URL rewrite issue
as the installer can be viewed by adding the /public to the end which you
shouldn't have to do now.
http://www.dutchairwaysva.com/phpvms/public/install
it works, but I changed the url setting in index.php to public/ and no
lucky and in boostratp/app.php changed to phpvms/public and no lucky too
with http://www.dutchairwaysva.com/phpvms/install but now the styles load
correctly
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nabeelio/phpvms/issues/494?email_source=notifications&email_token=AAAYLGFEKZ6R3DZDIXHH333Q47FSPA5CNFSM4KER6DB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEISLY5A#issuecomment-572832884,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAYLGBYHGBJM7FWVBWP3N3Q47FSPANCNFSM4KER6DBQ
.

Can you try this, if you're on Apache: https://github.com/nabeelio/phpvms/issues/411#issuecomment-566176924


display in light terminal theme

seems not fully covered the background

Hi @inuxor
Thanks for your feedback.
I see the issue with the header bar in the package list and the source column.

Will be fixed soon.
However for those white boxes, no clue what is causing that.
It seems you are using a non-monospace font in some of the screenshots. That won't work properly I guess.


align message level

Ideally would be aligned calculating the level with more characters as reference and adding the spaces necessary for each level to be align.

Not opposed. Could you add a test for this?

I added the tests, but I'm doing something wrong with the testing library... what happens? is my first time with vows

The problem is that vows runs the test cases asynchronously which is causing race conditions with the stdMocks module. You can use addBatch to add a new batch for each test with stdMocks -- batches are run synchronously. See my PR https://github.com/winstonjs/winston/pull/630 for an example.

@Kikobeats I fixed your tests and opened a PR over at your fork :) Hope this feature gets in!

thanks @paulhroth!
tests passing @indexzero!

Out of interest, I dig some digging into the codebase regarding this feature. Here's what I found:
There's a padLevels option for Loggers which already exists to solve this problem. It prepends an appropriate number of spaces (based on the length of the logger's longest level, and the level being logged) to the msg, thereby aligning it.
However padLevels is not perfect (see discussion on issue https://github.com/winstonjs/winston/issues/352). One complaint is that it doesn't align labels nicely, because those are added to the output in common.log before the space-prepended msg. For this same reason, the '\t' from this PR actually breaks alignment if both your align and padLevels are enabled.
Your PR has the advantage of nicely aligning labels. The downside is that for custom levels of varying lengths, adding a simple '\t' will not properly align the logs. Fixing this is challenging to do in a non-hacky way because of Winston's current architecture (see this rejected PR https://github.com/winstonjs/winston/pull/431).
It could be argued that the correct solution is to either use padLevels (which is currently undocumented, and probably shouldn't be), or a custom formatter if padLevels doesn't fit your needs. I personally think this PR is still useful as its outcome in the general case (with non-custom levels) is what users have asked for in https://github.com/winstonjs/winston/issues/352, and it can be implemented without the unwanted style requirements of a PR like https://github.com/winstonjs/winston/pull/431.
Screenshots:
Your PR formats labels nicely, but doesn't handle level names of varying length:

The Logger's padLevels option handles level names of varying length, but doesn't format labels nicely:

When both are on, alignment is broken by the tab character before the already space-prepended msg:

tl;dr: This is very similar to padLevels, but has the advantage of nicely formatting labels, and the disadvantage of not properly handling level names of varying length. IMO It could still be useful to add, as long as users are made aware that it is incompatible with the Logger's padLevels option, and that it doesn't have any logic for level names of varying length.
I hope this information can help you and @indexzero in going forward with this PR!

@Kikobeats I'd also recommend aligning only when showLevel is true or there's a custom timestamp, because otherwise you don't need a tab at the beginning of the line.

time to merge?

Will look at getting this merged into 2.0.0

:+1:

This has been cherry-picked and will be released in<EMAIL_ADDRESS>later today.


Question: Performance implications when using tensors [N, C, 1, 1] vs [N, C]

Suppose I want to perform miopenOpTensor operation for a 2D tensor. What are the performance implications when miopenOpTensor is used for a tensor [N, C, 1, 1] vs [N, C]? I found that there are different code paths for tensors with different number of dimensions, for example [N, C, 1, 1] case will go to the code path under USE_4D_TENSOR_GENERIC.

Some details when looking at the code:

OpTensor with [N, C, 1, 1] uses AddKernel with the following arguments

       algorithm="OpTensorFwdBias" | "OpTensorFwdBiasGeneric" | "Op4dTensorLite" | "OpTensorLeadingOnes" | "OpTensorLeadingOnesGeneric"
       kernel_name=<same as algorithm>
       program_name="MIOpenTensorKernels.cl"
       local_dims=...
       global_dims =...
       params= shared_params +  " -DUSE_FWD_BIAS" | " -DUSE_FWD_BIAS_GENERIC" | " -DUSE_4D_TENSOR_LITE" | " -DUSE_LEADING_ONES" | " -DUSE_LEADING_ONES_GENERIC" | " -DUSE_4D_TENSOR_GENERIC"

OpTensor with [N, C] uses AddKernel with the following arguments

       algorithm="Op2dTensorGeneric"
       kernel_name=<same as algorithm>
       program_name="MIOpenTensorKernels.cl"
       local_dims=...
       global_dims=..
       params = shared_params +  " -DUSE_2D_TENSOR_GENERIC"

I don't expect a lot of performance differences for one single run but that's just a guess without data to support it.

The reason I have my question is that MIOpen has different code path for tensors with different number of dimension. So I wanted to clarify whether it makes sense to create tensor descriptors for the exact number of the given dimension or I could just generalize the logic to always use a 4D tensor. Apparently, it works from functional perspective but I'm worrying about performance.

@densamoilov

So I wanted to clarify whether it makes sense to create tensor descriptors for the exact number of the given dimensions or I could just generalize the logic to always use a 4D tensor.

For better performance I recommend using the former approach for now.
AFAIU the singular dimensions (those of size 1) can be relatively easily "collapsed into nothing" so the library would automatically switch from 4D to 3D tensors, for example. But this kind of optimization has not yet been designed/implemented.
Please let us know if you would like this optimization to be implemented (and indicate how urgent/important is this for you).

That was mostly a general question about possible approaches. Thanks for clarifying this.