Portability fixes

Overview
This pull request improves portability.
On FreeBSD, bash(1) is available as /usr/local/bin/bash, not /bin/bash.  A lot of scripts in the project assume that bash(1) is in /bin and make it painful to use octocatalog-diff on non-linux UNIX-like operating systems.
This PR fix the issue by relying on plain /bin/sh for trivial scripts and using env(1) to find bash(1) for more complex scripts.
Checklist

[X] Make sure that all of the tests pass, and fix any that don't. Just run rake in your checkout directory, or review the CI job triggered whenever you push to a pull request.
[X] Make sure that there is 100% test coverage by running rake coverage:spec or ignoring untestable sections of code with # :nocov comments. If you need help getting to 100% coverage please ask; however, don't just submit code with no tests.
[ ] If you have added a new command line option, we would greatly appreciate a corresponding integration test that exercises it from start to finish. This is optional but recommended. (N/A)
[ ] If you have added any new gem dependencies, make sure those gems are licensed under the MIT or Apache 2.0 license. We cannot add any dependencies on gems licensed under GPL. (N/A)
[ ] If you have added any new gem dependencies, make sure you've checked in a copy of the .gem file into the vendor/cache directory. (N/A)

Fixed the bundler-related CI failure :tada:
The test suite still seems to be flickering on some race condition (saw it twice out of 28 builds):
Failures:
  1) OctocatalogDiff::Util::Parallel with parallel processing should log error messages
     Failure/Error: OctocatalogDiff::Spec.clean_up_tmpdir(ENV['OCTOCATALOG_DIFF_TEMPDIR'])
     Errno::ENOTEMPTY:
       Directory not empty @ dir_s_rmdir - /tmp/d20180822-5511-15cvkg4/ocd-ipc-20180822-5511-10y34re
     # ./spec/octocatalog-diff/tests/spec_helper.rb:237:in `block in clean_up_tmpdir'
     # ./spec/octocatalog-diff/tests/spec_helper.rb:234:in `each'
     # ./spec/octocatalog-diff/tests/spec_helper.rb:234:in `clean_up_tmpdir'
     # ./spec/octocatalog-diff/tests/util/parallel_spec.rb:14:in `block (2 levels) in <top (required)>'
     # ./vendor/bundle/ruby/2.1.0/gems/rspec-retry-0.5.0/lib/rspec/retry.rb:112:in `block in run'
     # ./vendor/bundle/ruby/2.1.0/gems/rspec-retry-0.5.0/lib/rspec/retry.rb:101:in `loop'
     # ./vendor/bundle/ruby/2.1.0/gems/rspec-retry-0.5.0/lib/rspec/retry.rb:101:in `run'
     # ./vendor/bundle/ruby/2.1.0/gems/rspec-retry-0.5.0/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # ./vendor/bundle/ruby/2.1.0/gems/rspec-retry-0.5.0/lib/rspec/retry.rb:30:in `block (2 levels) in setup'
Finished in 33.67 seconds (files took 0.56537 seconds to load)
1380 examples, 1 failure


Add option to cross compile packages

I want to replace pkgs with pkgsCross.aarch64-multiplatform.

should be reopened as the commit has been reverted

With https://github.com/Mic92/nixpkgs-review/issues/259 instead of using pkgs.aarch64-multiplatform (cross-compiling),
you can do native compiling on the emulated aarch64 platform

(It would be awesome to have both features, just mentioning they are related)


[DO NOT MERGE] Debug leaked semaphore

Our CI tests frequently get stuck after showing the error below. You can find an example at here.
/opt/conda/envs/ptca/lib/python3.8/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 6 leaked semaphore objects to clean up at shutdown
  warnings.warn('resource_tracker: There appear to be %d '

As this doesn't happen on my local env, I added logging to see what happens on the CI env.

I think the cause of the memory issue in tests has been identified as reuse_dist_env and it was disabled by #6623. We still see tests sometimes stuck and opened #6627 to track it down.


PhanCompatiblePHP7 doesn't detect Void

When pushing code that we had scanned with Phan out to a PHP7 environment, we eventually ran into:
Fatal error:  Cannot use Foo\Portal\Payment\Providers\Paypal\Hooks\Void as Void because 'Void' is a special class name in /path/to/file.php on line 14

Line 14 in question:
use Foo\Portal\Payment\Providers\Paypal\Hooks\Void;

I expect PhanCompatiblePHP7 to warn me about this.
Thanks.
(Using Phan 0.7)

The PhanCompatiblePHP7 freature was created for migrating from 5.x to 7.0. Void is legal in 7.0. It didn't become a reserved word until 7.1.
But yes, we should warn about that as well.


The evidence lower bound (ELBO).

The evidence lower bound (ELBO).

Overview
The evidence lower bound is an important quantity at the core of a number of important algorithms used in statistical inference including

Expectation-Maximization (EM).
Variational Inference (VI).

In this post, I describe its context, definition, and derivation.

Evidence Lower BOund (ELBO) is a quantity related to probabilistic models.

Introduction
The evidence lower bound (ELBO) is an important quantity that lies at the core of a number of important algorithms in probabilistic inference such as

Expectation-Maximization (EM).
Variational Inference (VI).

To understand these algorithms, it is helpful to understand the ELBO.
Before digging in, let's review the probabilistic inference task for a latent variable model. In a latent variable model, we posit that our observed data $x$ is a realization from some random variable $X$. Moreover, we posit the existence of another random variable $Z$ where $X$ and $Z$ are distributed according to a joint distribution $p(X,Z;\theta)$ where $\theta$ parameterizes the distribution. Unfortunately, our data is only a realization of $X$, not $Z$, and therefore $Z$ remains unobserved (i.e. latent).
There are two predominant tasks that we may be interested in accomplishing:

Given some fixed value for $\theta$, compute the posterior distribution $p(Z|X;\theta)$.
Given that $\theta$ is unknown, find the maximum likelihood estimate of $\theta$:

$$
argmax_{\theta}l(\theta),
$$
where $l(\theta)$ is the log-likelihood function:
$$
l(\theta):=logp(x;\theta)=log\int_{z}p(x,z;\theta)dz
$$
Variational Inference is used for Task 1, and Expectation-Maximization is used for Task 2. Both of these algorithms rely on the ELBO.

What is the ELBO?
To understand the evidence lower bound, we must first understand what we mean by "evidence". The evidence, quite simply, is just a name given to the likelihood function evaluated at a fixed $\theta$:
$$
evidence:=logp(x;\theta).
$$
Why is this quantity called the "evidence"? Intuitively, if we have chosen the right model $p$ and $\theta$, then we would expect that the marginal probability of our observed data $x$, would be high. Thus, a higher value of $logp(x;\theta)$ indicates, in some sense, that we may be on the right track with the model $p$ and parameters $\theta$ that we have chosen. That is,

this quantity is "evidence" that we have chosen the right model for the data.

If we happen to also know (or posit) that $Z$ follows some distribution denoted by $q$ (and that $p(x,z;\theta):=p(x|z;\theta)q(z)$), then the evidence lower bound is, well, just a lower bound on the evidence that makes use of the known (or posited) $q$. Specifically,
$$
logp(x;\theta)\geq \mathbb{E}_{Z \sim q}\left[log\frac{p(x,Z;\theta)}{q(Z)}\right],
$$
where the ELBO is simply the right-hand side of the above inequality:
$$
ELBO:=\mathbb{E}_{Z \sim q}\left[log\frac{p(x,Z;\theta)}{q(Z)}\right].
$$

Derivation
We derive this lower bound as follows:
$$
\begin{aligned}
logp(x;\theta)&=log\int p(x,z;\theta) dz\
&=log\int p(x,z;\theta) \frac{q(z)}{q(z)} dz\
&=log\mathbb{E}_{Z \sim q} \left[\frac{p(x,Z)}{q(z)}\right]\
&\geq\mathbb{E}_{Z \sim q} \left[log\frac{p(x,Z)}{q(z)}\right]\
\end{aligned}
$$
This final inequality follows from Jensen’s Inequality.

The gap between the evidence and the ELBO
It turns out that the gap between the evidence and the ELBO is precisely the Kullback-Leibler divergence between $p(z|x;\theta)$ and $q(z)$. This fact forms the basis of the variational inference algorithm for approximate Bayesian inference!

This can be viewed as follows:
$$
\begin{aligned}
KL(q(z)||p(z|x;\theta))&:=\mathbb{E}_{Z \sim q}\left[log\frac{q(Z)}{p(Z|x;\theta)}\right]\
&=\mathbb{E}_{Z \sim q}[logq(Z)]-\mathbb{E}_{Z \sim q}\left[log\frac{p(x,Z;\theta)}{p(x;\theta)}\right]\
&=\mathbb{E}_{Z \sim q}[logq(Z)]-\mathbb{E}_{Z \sim q}[logp(x,Z;\theta)]+\mathbb{E}_{Z \sim q}[logp(x;\theta)]\
&=logp(x;\theta)-\mathbb{E}_{Z \sim q}\left[log\frac{p(x,Z;\theta)}{q(z)}\right]\
&=evidence-ELBO
\end{aligned}
$$


Remove duplicated module tags

Well, now that I have created the branch I realize this may not be the right change because *module* is an actual identifier, and apparently there's no way to escape the asterisks, but I'm creating the PR anyway in case someone else know a solution

The wrap-last-expr documentation is admittedly a little verbose, plus since the asterisks are treated as syntax the result is technically wrong.
I think for the help file this would be appropriate:

Used by aniseed.compile to ensure the current module is returned if necessary

Fixed in the roundabout way of just deleting the offending text 😬 I still don't know how you'd escape asterisk characters in vim help text though.


[BUG] Reporting Battery and Firmware

When trying to report the battery or firmware, I face this issue:

Running it as root (or sudo) seems to be fixing the error!

Thanks for bringing it up anyway, I will be looking at handling these kinds of errors in a friendly manner in the future, e.g. by displaying a message that says "hidapi was not found, here are the steps to install...", "this requires root privileges, try running with sudo" etc. I haven't tried running this on linux myself yet (and I don't need sudo on macOS for this), but it's probably possible to change permissions for access to hidapi or something. Will try to get back to you if i figure it out.

I came across this nice file in the hidapi repo; /udev/69-hid.rules. I haven't tried following that setup myself yet, but it seems to address your issue. If you end up trying it out, Glorious' VID is 258a, and the PID is 2011 when wired and 2022 wireless, so you would need to set this up for both I guess.

I'm on linux and attempting to edit the 69.hid.rules to no avail. Sudo functionality works, but not preferable if I'm going to create a wrapper around this cli.


Issue with has many relationship in new voyager

Laravel Version: 5.5.0
Voyager Version: ^1.0
PHP Version:7.0
Database Driver & Version: mysql

Description:
I am trying to add a has many relationship
one model named company and one table named company_jobs
in company_jobs i have a column named company_id
so i added the relationship this way but when i am trying to save a new company instance I get the error that company_id doesn't exist in field list but it shouldn't be any way because company has not any company_id
I thought this is gone in new laravel version but do we still need to make a useless column in table for a relationship any way ?!!
Steps To Reproduce:

@marktopper  can you please help me dealing with this problem ?!

@fletch3555
thanks for the reply
the schema is exactly like what you said
public function companyId()     {         return $this->belongsTo('App\Company','company_id');     }
this is the code of relationship inside companyjob model.
i used the new voyager relationship add and faced the problem i told you

@fletch3555 this is the error produced by submiting a null value for company jobs relaton inside company bread
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'company_id' in 'field list' (SQL: insert into companies (name, phone, website, email, address, story, mission, image, size, company_id, updated_at, created_at) values (qadas, asda, asdasd, asdasd, asdasd, asdasda, asdasd, companies/October2017/template-9-pdf.jpg, 1, , 2017-10-10 17:34:47, 2017-10-10 17:34:47))
and this is the relationship inside company model
public function jobs()     {         return $this->hasMany('App\CompanyJob','company_id');     }

The relationship builder functionality does not make use of model methods, so those methods shouldn't be the issue.  However, I'm curious... you've named your relationship method companyId(), which is also the field name on that table, correct?  I think this may be conflicting/confusing eloquent.  Try renaming the method to just company()

I changed the name still nothing changed
I think it is a bug because it shouldn't even try to save something name company_id in company table because of that relationship

I agree that it shouldn't, but I don't think it's a bug because we don't have tons of devs complaining about it.  This leads me to believe it's your configuration until proven otherwise.

@fletch3555 i have the same bug.
I have a table call compras that has many compras_detalhes. When i try to create a new compras it says compra_id inside compras_detalhes is null. But offcourse is null, because im creating a compras before add details in compras_detalhes. I need all fields of compras_detalhes inside the compras.
Can you help me please?

In first print the line that say "Which column from the Compras_detalhes is used to reference the USER" actually is not USER, is Compra, voyager is changing the word only, this is not influencing anything.

@pirocoptero, we're aware of the issue where the table name is wrong in the box.  That's being handled elsewhere.
For the issue your previous comment, the error message indicates that your table compra_detalhes doesn't exist.  I'm guessing what's happening is that you're simply not following laravel conventions (table name is plural_plural instead of singular_plural), so laravel tries to find it and fails.  This is because we don't give you the opportunity to set the extra arguments like you would in the relationship method you'd normally create in your model (column names and/or pivot table name).
Unfortunately, at this time, I don't have a solution for you, other than to rename your table to be compra_detalhes

@fletch3555 thank you for answering. I'll try your solution. See ya! xD

Do we have solution for this issue? I have the same problem, nobody responds.

@cuzboo.  I doubt your issue is exactly the same.  This issue is a year old and for an older version.  Your database fields are likely different.  Please open a new issue with all the relevant information, or ask in slack.
I'm closing this one due to age.  If it's still an issue for OP, please make sure you're using the latest version and update the information here

Even I have the same issue, I have selected the has many relationship, but I'm only being show the table name, and am not able to select anything,

Thats not related to the original issue, also as @fletch3555 mentioned before, this issue is more than a year old.
As a side note: not even Laravel allows you to edit a HasMany/One relationship. I guess that's why Voyager doesn't allow you to do so also.


Bump minimum python version to 3.9.X, bump napari to >0.5.0

Python 3.8 hits EOL in October 2024, and it is time to stop supporting it.
When we do that, we should additionally use napari 0.5, which only supports Python 3.9+

Running list of changes that we will need to make when upgrading:

[ ] Look for Ctrl+L instead of Control-L in the keymap

napari 0.5+ support was added here. @ctrueden and I decided that it was not worth dropping Python 3.8, because there is currently no reason to drop it. If there is a reason for it, we can reopen this issue and bump the minimum Python version.


Update Dockerfile

can i explain what this pr?

can i explain what this pr?

can i explain what this pr?
/var/lib/apt/lists/* does not need to be removed

can i explain what this pr?
/var/lib/apt/lists/* does not need to be removed

I I almost deleted it on my system by the wrong instruction

I I almost deleted it on my system by the wrong instruction


TerraForge world is not being generated (Server)

So the problem is, that i own a Nitrado Server and want to use TerraForge on it. I installed TerraForge itself on the server and imported a own SinglePlayer world into the server folder. Problem is, everytime I change the server-properties to "level-type=terraforged" and restart then join the server, the properties seem to reset and the default world generator generates the world. How can i make it, that the properties stay on terraforged and generate the world with TerraForged?

"How can I use this on my server?"
When Forge supports it, you can simply set level-type=terraforged in your server.properties file. In
the meantime, you will need to create the world in single player and then copy that to your server
directory. (In both cases, TerraForged must be installed on the client and the server).

"How can I use this on my server?"
When Forge supports it, you can simply set level-type=terraforged in your server.properties file. In
the meantime, you will need to create the world in single player and then copy that to your server
directory. (In both cases, TerraForged must be installed on the client and the server).

Still did not help me in any way. When i set the level-type to terraforged and upload the single player world into the server, it generates the first chuck where i spawned in with terraforge and then generates the rest with the default generator.

Forge doesn't support level-types yet so you need the mod on the server before you open the world you generated in SP. If that still doesn't help you need to pre-generate a large area so that the chunks will load properly.

I added the terraforge mod on the server in the mods folder and i somehow still doesnt work

I assume you still have it on your client?

Yes, i have it on my client. I put it in the mods folder, generated a world in single player with terraforge, then copied it onto my server, set my server.properties to level-type=terraforged and then started the server. The first chunk is normal (the spawn chunk) but then the chunk is cut off and it looks like the default generator was used

Don't set the level-type to anything (besides the default value) as it's not supported. I have no clue if that will fix the problem but I'm going to try setting up a server on my end (since I have not tested any of this) to see if I can recreate the problem.

Thank you. Would help me greatly if you can somehow fix it.

Not being able to set level-type to modded worlds in the server.properties is a forge issue not a TF one, it might help prompt them to fix it if more people direct their use-case to them.
For the work around method (generating in single-player and copying the world to the server), please provide the debug.log from your server. Should be able to tell from that what is going wrong rather than blind guessing :)

After testing it on my end everything is working.

Not being able to set level-type to modded worlds in the server.properties is something forge needs to support, not TF. An issue has been raised and I have submitted a proposed fix. I can't do much more than that.
For the work around method (generating in single-player and copying the world to the server), please provide the debug.log from your server. Should be able to tell from that what is going wrong rather than blind guessing :)

How can i access the debug.log? Cant seem to find it one the web.interface of the server

No idea. Contact your server provider. In a normal server setup there is a folder called 'logs'

I tested the server without using any other mod and now it seems like it works. I only used JEI,Ambient Sounds and macaws windows but apparently the caused the problems. I will still upload the debug.log from the current running server and later i will upload the debug.log from the server with those mods. Maybe you guys can find a incompatiblity with the mods and terraforge.
debug.log

It could also be, that i used the TerraForge 0.0.3 version up till now and just updated to th 0.0.4 version so maybe that has fixed that

More likely that stripping things back and doing things methodically corrected whatever mistake had been made before. Glad you're up and running!

Ok current situation. After i added the mods back in, the server is unjoinable and starts and shuts down the entire time. I will upload the current debug log
debug (with mods).log


I don't know if the mod is working. I don't see any effect .

00000027	29.64176559	[2736] GTA5_FSR: Loaded original d3d11.dll
00000028	29.64994621	[2736] GTA5_FSR: D3D11CreateDevice
00000030	30.02933693	[2736] GTA5_FSR: Loaded original d3d11.dll
00000031	30.03509521	[2736] GTA5_FSR: D3D11CreateDevice
00000032	31.61503983	[2736] GTA5_FSR: D3D11CreateDevice
00000033	31.65420723	[2736] GTA5_FSR: D3D11CreateDeviceAndSwapChain
00000034	31.67276192	[2736] GTA5_FSR: Reading config file...
00000035	31.67285156	[2736] GTA5_FSR: UseFidelityFxSuperResolution is 1
00000036	31.67298889	[2736] GTA5_FSR: AutoSharpness is 1
00000037	31.67644501	[2736] GTA5_FSR: Sharpness: 0.500000
00000038	31.67848587	[2736] GTA5_FSR: PrintDebug is 1
00000039	31.67986488	[2736] GTA5_FSR: Creating default resources...
00000040	31.68344688	[2736] GTA5_FSR: Initialized
00000041	31.68358421	[2736] GTA5_FSR: Wrapping ID3D11Device [d3d11]
00000042	31.68368721	[2736] GTA5_FSR: Wrapping ID3D11DeviceContext [d3d11]
00000043	31.68397141	[2736] GTA5_FSR: Wrapping IDXGISwapChain [d3d11]

It doesnt. I need your settings.xml

Same for me it looks like its working in the debug view, but I definitely cant see any difference when pressing F3.
[9620] Error 16 (unavailable resource, function or feature) in function AudioGraphSettings::CCachedSettingsRepository::HasValue
[9620] Error 16 (unavailable resource, function or feature) in function AudioGraphSettings::CCachedSettingsRepository::HasValue
[9620] Error 10 (argument is out of bounds) in function AudioGraphSettings::CRegistrySettingsRepository::ReadSetting
[9620] Error 10 (argument is out of bounds) in function AudioGraphSettings::CRegistrySettingsRepository::ReadSetting
[9620] Error 16 (unavailable resource, function or feature) in function AudioGraphSettings::CCachedSettingsRepository::HasValue
[9620] Error 16 (unavailable resource, function or feature) in function AudioGraphSettings::CCachedSettingsRepository::HasValue
[22364] Lizard Mode: Privileged process
[22364] Lizard Mode: Reverting to default M/KB Configuration
[22364] OnFocusWindowChanged to Lizard Mode
[7728] GTA5_FSR: FSR PASS, FPS: 43, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[22364] Lizard Mode: Unprivileged process
[22364] Lizard Mode: Restoring app mapping
[22364] OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
[22364] Loaded Config for Local Override Path for App ID 413080, Controller 0: D:\Games\Steam/controller_base/empty.vdf
[7728] GTA5_FSR: FSR PASS, FPS: 126, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[7728] GTA5_FSR: FSR PASS, FPS: 68, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[7728] GTA5_FSR: FSR PASS, FPS: 70, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[7728] GTA5_FSR: FSR PASS, FPS: 73, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[7728] GTA5_FSR: FSR PASS, FPS: 76, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[7728] GTA5_FSR: FSR PASS, FPS: 77, MSAA: 8, FXAA: 0, [2133x1200]->[2560x1440] (0.500000)
[13176] [3921-07-09/ 00:56:59.502:INFO:offscreen_window.cpp(1235)] should close osc
[22364] OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
[22364] Loaded Config for Local Override Path for App ID 413080, Controller 0: D:\Games\Steam/controller_base/empty.vdf
[22364] Lizard Mode: Privileged process
[22364] Lizard Mode: Reverting to default M/KB Configuration
[22364] OnFocusWindowChanged to Lizard Mode
[22364] Lizard Mode: Unprivileged process
[22364] Lizard Mode: Restoring app mapping
[22364] OnFocusWindowChanged to window type: k_nGameIDControllerConfigs_Desktop, AppID 413080
[22364] Loaded Config for Local Override Path for App ID 413080, Controller 0: D:\Games\Steam/controller_base/empty.vdf

It doesnt. I need your settings.xml. Did you set correct "Frame scaling mode" in "Advanced Graphics" settings? Do you have ReShade installed?

https://github.com/GPUOpen-Effects/FidelityFX-FSR
FSR source code becomes available for everyone on GPUOpen!

It doesnt. I need your settings.xml. Did you set correct "Frame scaling mode" in "Advanced Graphics" settings? Do you have ReShade installed?

Ok. Follow the settings.xml. I don't have ReShade. I change the scale when the game starts, only.

SMC_AUTO

Intel(R) HD Graphics 520

It doesnt. I need your settings.xml. Did you set correct "Frame scaling mode" in "Advanced Graphics" settings? Do you have ReShade installed?

Ok. Follow the settings.xml. I don't have ReShade. I change the scale when the game starts, only.
SMC_AUTO Intel(R) HD Graphics 520


different Request/Command/Query

where and for what to use a specific interface IRequest/ICommand/IQuery ?
maybe there is documentation or another article for understanding
May be: as rest
IQuery - get
ICommand - post/put/deleted

Per the README, the ICommand and IQuery interfaces were added for semantic "correctness", because the original MediatR by Jimmy Bogard only uses IRequest.
What do I mean by semantic correctness? Mediator libs are typically used in applications that apply a CQRS style or approach (command/query responsibility segregation) that, as the name implies, strives to separate the use-cases, models, services, and even at times the data storage, for operations/use-cases that query data only to display/return out to the caller vs. those operations which are commanding the app to create/update/delete some data.
The original MediatR lib calls both of those "requests", as it's trying to be agnostic of CQRS.
This lib provides synonymous interfaces to the "request", but which are more semantically close to CQRS commands and queries.
TL;DR; - they all do the same thing, but if you are doing CQRS, you could/should be more specific and use command and queries instead of requests for all things.

Indeed, great answer! And I've sometimes used that distinction to have some IPipelineBehavior execute only for queries, with a generic contraint (caching behavior for example, which doesn't really make sense for commands)


no-expression-in-message for Trans tags

When using the rule "no-expression-in-message", I would like to have warnings for <Trans> tags just like they warn when using t

+1 to Trans tags, and also inside msg (and by extension, defineMessage function calls)
  const obj = { value: "the value" };
  const example = msg`Expression to the right ${_obj.value} and to the left.`; // no warning here

We also want to see that. Contributions are welcome!

@hugohutri i created a PR https://github.com/lingui/eslint-plugin/pull/60/files enforcing this in the JSX containers is tricky. I haven't thought through all the possible cases here, so will need community help to test it.

+1 to Trans tags, and also inside msg (and by extension, defineMessage function calls)
  const obj = { value: "the value" };
  const example = msg`Expression to the right ${_obj.value} and to the left.`; // no warning here

implemented in https://github.com/lingui/eslint-plugin/pull/61


BREAKING(hash→crypto): replace std/hash with std/crypto wrapping WebCrypto with additional algorithms

[x] move WASM generation stuff from std/hash to a new std/crypto
[x] remove std/hash/
[x] use ring instead of RustCrypto for SHA-1 and SHA-2 hashes, to align with the runtime's WebCrypto implementation.
[x] drop support for MD2, MD4, RIPEMD-320 as they are all very old and don't have any current major users. We keep these other ancient algorithms because...

RIPEMD-160 may be useful for interacting with Bitcoin.
SHA-1 may be useful for interacting with Git.
MD5 may be useful for interacting with... Gravatar?

[ ] std/crypto will export default an object wrapping and mostly mirroring/delegating to the runtime's WebCrypto implementation. However, it will use our own WASM implementations for some new algorithms/options that we want to support as a complement to what WebCrypto provides.

[ ] consider whether we should account for WebCrypto being unavailable, as in non-secure HTTP origins or less-featureful runtimes.
[ ] consider implementing sync stdCrypto.subtle.syncDigest(...)
[ ] consider implementing variable-lengths stdCrypto.subtle.[sync]Digest({ name: "SHAKE256", length: 64 }, message)
[ ] consider supporting AsyncIterator/Iterator messages for digest/digestSync, and using that automatically for large messages
[ ] try to eliminate copying values between WASM and JS, and the need for our slicing logic
How much we want to change the Rust implementation? Maybe not much at all.

It can continue to use the more-conventional Python/Node API with .update() while the external interface changes.

[ ] update std/node/crypto to reflect our changes

the Deno hash interface we're removing is a bit of a mirror of the Node interface. The WebCrypto interface doesn't support incremental .update() calls, so it may be necessary for the Node implementation to depend on the WASM hash implementations directly, instead of on the standard library's public interface.


Setup Dockunit for more comprehensive continuous integration tests

Dockunit is a continuous integration service built to be container based. It is super helpful because you can build and distribute your test environments from scratch and run tests locally with ease.
This PR tests Redux in Node.js latest, 5.0.0, 4.2.1, 0.12.7, and 0.10.40. The versions available on Dockunit are much more extensive than that of Travis CI. Incorporating Dockunit now will make it easier to test more complex environments in the future since it is Docker container based.
Assuming the PR is accepted, I'll send another with the Dockunit status badge for the README.md. You can see the current Dockunit status of Redux here.
Let me know what you guys think. Thanks!

@tlovett1 Travis already provides this for us. We specify more general versions (the latest 5.x.x and 4.x.x), as there's not really a strong need to exhaustively test every released version of node. As long as we essentially "check in" with each major version, that's sufficient for Redux.
Also, this doesn't do linting or run the tests for the examples.
I appreciate the submission, but I believe we're happy with Travis for now.


Added a 180s wait for AAD role propogation

90 second wait introduced before created the ADLS Gen2 filename space. This allows for the AAD role to propogate fully to allow for successful filename space creation.

Doubled the wait time to 180 seconds inline with the retry policy of Az Cli for AAD replication.


Add a README.md for Problem Of The Day | 18 January 2023

Comment below if you're interested in working on this issue and would like to be assigned to it.

Shall I?

@Rishav1707 You have been assigned!


Feature: Moved "format drive" to main context menu

Resolved / Related Issues
Items resolved / related issues by this PR.

Closes #11284

Validation
How did you test these changes?

[x] Built and ran the app

Can you do this with BaseLayout as well?

Can you do this with BaseLayout as well?

When would this be used?

When right clicking a blank space

Ok

Done

Does right clicking a folder inside a drive crash the app for you?

The crash is fixed but the menu doesn't load when right clicking a selected folder.

Yes, I know, this is because of an bug in a merge in #11365 with #11357

Fixed

When right clicking a blank space

I just checked and this is actually not a valid use case.


The switch to libsql package inherits libsql semicolon parsing problems via executeMultiple()

After better-sqlite3 was replaced with libsql, client.executeMultiple() when used with a local db file now fails with semicolon parsing issues as described in https://github.com/libsql/libsql-js/issues/31

Fixed by https://github.com/libsql/libsql-client-ts/commit/a097ebfee3e005a168aecec20dc2151f4a3886ca


Not able to use Interactive window; error: Sequence contains no elements

When I try to launch the Nodejs interactive window it stops showing a modal dialog with the text "Sequence contains no elements". I am not able to use the interactive window.
Visual Studio 2015 RTM
Nodejs tools 1.1

Have you tried the latest dev build or RC2.1? It includes some related fixes. http://github.com/Microsoft/nodejstools/releases
If that doesn't work, try forcing the MEF extension cache to be rebuilt:

Delete the contents of the folder at %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
Run DevEnv.exe /setup (this is under C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE, but should be on your PATH if you open a Developer Command Prompt).

Next time you launch VS it will take a while to rebuild (which may be part of the delay above), but should resolve any MEF errors.
Hope that helps!

Somehow the interactive window suddenly started working again. It could be
nothing, but I spotted the same error message using the NPM Scripts Task
Runner extension. By inspecting package.json I discovered there was missing
a "scripts"-entry. Maybe there is some relationship?
2015-09-22 1:18 GMT+02:00 Sara Itani<EMAIL_ADDRESS>
Have you tried the latest dev build or RC2.1? It includes some related
fixes. http://github.com/Microsoft/nodejstools/releases
https://github.com/Microsoft/nodejstools/releases
If that doesn't work, try forcing the MEF extension cache to be rebuilt:

Delete the contents of the folder at
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
Run DevEnv.exe /setup (this is under C:\Program Files
(x86)\Microsoft Visual Studio 14.0\Common7\IDE, but should be on your
PATH if you open a Developer Command Prompt).

Next time you launch VS it will take a while to rebuild (which may be part
of the delay above), but should resolve any MEF errors.
Hope that helps!
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/nodejstools/issues/473#issuecomment-142135486
.

Hrm, maybe it rebuilt when you reloaded VS later?
Regarding the error message similarities, that's just coincidence. "Sequence contains no elements" occurs when attempting to select the first item of an empty list.
In the original issue, I believe the issue occurs here (chances are IntelliSense also wasn't working when the issue occurred)
https://github.com/Microsoft/nodejstools/blob/master/Nodejs/Product/Nodejs/Intellisense/IntellisenseControllerProvider.cs#L67-L72
In task runner (and I'd have to verify - this was just based of a quick txt search for "first()"), but it might be this line:
https://github.com/madskristensen/NpmTaskRunner/blob/dd9d74d32c889abc6c3309255e1c788c7de3f2a4/src/TaskRunnerProvider.cs#L32-L33

In any case, closing this for now, but let us know if you run into it again.


Add a Certifications section

Hello,
I think a nice addition would be a certifications section. I work in infosec and usually we have quite a few certs that may look like:
Sec+, CISSP, CEH, ..etc. Adding a place under Diplomas for professional certifications that renders similarly would be helpful. Or having an option to define the Certificate company and name such as "Comptia - Sec+, Pentest+", "ISC2 - CISSP, CISA".
Best regards,
Aaron Nilsen

Shoot, I even tried to go find them. Thank you for pointing that out!


Filter : Order by ID

The order of the filters is not per ID in following examples.
To Reproduce

Open https://int.visualize.admin.ch/de/v/ziydEGND7eCt
Display the interactiv Filter
Look at "Gas" . Order is not by ID
Copy and edit
Look at Filter on the left, same Problem.

Other example

https://int.visualize.admin.ch/de/v/GISkKFwUmzDZ
display fthe interactive filter
Look at "Standort der Anlage" . Order is not by ID
Copy and edit
Look at Filter on the left, same Problem.

Expected behavior
All filters must be ordered by ID, everywhere.
Screenshots or video

Here below, the ID for dimension Gas and example where the order is correct :

Environment (please complete the following information):

Visualize environment and version: INT  v3.13.0 ([09c6e42]
Edge

Additional context
Add any other context about the problem here.

As discussed this morning, here is another example from a project that is currently not accessible as TEST is down:

The identifier is a string as:
4403.2010
4403.1290
Why does the .2010 come before the .1290, or do I have  mistake in my data ?
The link to visualize the project, once TEST is back on, could be:
https://test.visualize.admin.ch/en/browse/dataset/https%3A%2F%2Fenvironment.ld.admin.ch%2Ffoen%2Ffab_foreign_trade_test_2%2F2?previous={"includeDrafts"%3Atrue%2C"order"%3A"SCORE"%2C"search"%3A"fab"}&dataSource=Test

@ptbrowne when looking at another dataset, I noticed that the search field was not available in the filter.
See for example : https://test.visualize.admin.ch/de/v/ARznezP3g77s


API docs for WindowsRuntimeBufferExtensions missing

Issue description
The API docs for System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions could previously be found on MSDN, but I'm unable to find them on docs.microsoft.com. The  old link from this page (Docs home > Windows > UWP apps > .NET for UWP apps > System.Runtime.InteropServices.WindowsRuntime) redirects to the new docs for the System.Runtime.InteropServices namespace, which don't contain an entry for WindowsRuntimeBufferExtensions. Unfortunately, selecting ".NET Core" instead of ".NET Framework 4.7.2" in the dropdown above the search box doesn't make it show up either and an option for "UWP" is not available.
It looks like the online docs for this class are currently unreachable.

Thanks, @juliushardt, for your feedback. We'll investigate.

We're working on getting to onboarding the UWP as a target in the .NET API Browser, but moving this into a future sprint because of other priorities going on right now.

@mairaw Should this more to a new project / milestone? (It's the only remaining issue in Feb)


Updated document ID's

Hi,
Can we have an option where we can get the ID's of the documents which got updated?
I am currently dealing with a scenario wherein I need the list of document ID's that got updated using UpdateByQueryAsync and I am making additional calls to retrieve them.

I think this may be better asked on https://github.com/elastic/elasticsearch/issues since NEST exposes what is returned from Elasticsearch.

Ok, thank you. Will follow up over there


Parameter --no-package-directories generates directories into #include

I updated j2objc on our project to latest main branch. It looks like that --no-package-directories parameter is not working correctly.
Older version:

it generated all files into one folder
the #includes were without paths

New version (main branch):

it is generating all files into one folder (same as before)
the #includes ARE with paths (not as before)

Example with 2 simple classes
package com.tappytaps;

public class Test {
    public void test() {
        System.out.println("Hallo from the Test class");
    }
}

and
package com.tappytaps;

public class Test2 {
    public void test2() {
        Test test = new Test();
        test.test();
    }
}

I generated objective-c code using:
j2objc com/tappytaps/Test.java com/tappytaps/Test2.java  --no-package-directories

The beginning of  generated Test2.m now have:
#include "J2ObjC_source.h"
#include "Test2.h"
#include "com/tappytaps/Test.h" // <<< this is IMHO bug

#if __has_feature(objc_arc)
#error "Test2 must not be compiled with ARC (-fobjc-arc)"
#endif

@implementation ComTappytapsTest2

Here is output from older version of j2objc:
#include "J2ObjC_source.h"
#include "Test.h"
#include "Test2.h" // <<< this is IMHO corrrect

#if __has_feature(objc_arc)
#error "Test2 must not be compiled with ARC (-fobjc-arc)"
#endif

@implementation ComTappytapsTest2

Example project:
testProject.zip

I've identified the cause of this to be the commit https://github.com/google/j2objc/commit/6bb630a9a5eecfecfccc538034b63e2be9809e13
Since I don't know the background of this change I didn't open a pull request to revert this, but if you need a quick fix you can download a fork with a fix here until it is resolved in this repo.

Thanks for the investigation! The background was that a checker-framework source jar was missing the source for a nullability annotation, and since multiple packages have an annotation with that name, it took some time to determine which package had the problem since the error message didn't include the package. This change was intended to improve the error message, but also broke the --no-package-directories flag.
Thanks also for the pull request offer, but it's easier to rollback the bad commit internally (pull request). I should get this code-reviewed and committed Monday.


Galleon custom T&S instant warp

https://discord.com/channels/463917049782075395/559837167430664203/1046331626206015540

Thanksgiving report


Move Jwt builder from ac play

Move JWT Builder from https://github.com/toolsplus/atlassian-connect-play/blob/master/modules/core/app/io/toolsplus/atlassian/connect/play/auth/jwt/JwtBuilder.scala to this project.

Hey Allan, thanks for the PR! This looks good to me, just wondering the reason for this? I assume you want to use this lib independent of Atlassian Connect Play, right?

@allantl this PR has been released in 0.1.5. Do you mind creating the corresponding PR on Atlassian Connect Play to remove JwtBuilder from there?

@tbinna Yes, exactly. I need that for my lib, and I checked the JwtBuilder is not depedent at all with ac play.
Sure, gonna do it later.


PDF.js downloading of pdf no longer allowed

Earlier the PDF viewer used to have an option to download the pdf file. The latest version does not have it anymore.

This has never been removed and is still there in all viewers. Check for example https://mozilla.github.io/pdf.js/web/viewer.html (download button in the toolbar). Closing as invalid.


Fail to init model on not implemented configurations

The Pace repository does not carry all the capacity of the FV3 model. Therefore we need to strongly fail when the namelist/configuration required is not going to work or work poorly.
A first implementation is to use raise NotImplementedError in the __init__ function of the modules. DO NOT RAISE AT RUNTIME, keep guard at initialization or fear my wrath.
Current non-exhaustive list:

do_sat_adjust
kord is 9 or 10
nwat is 6
non hydrostatic

List to be double checked and completed

PR incoming with some checks

There are multiple microphysical schemes with the same number of water species, but the makeup of species is different.  We need to come up with a better way than using nwat to determine how the water species break down for the liquid vs solid when computing the subgrid scale mixing.


Travis: SQLITE: Version : 3210000

Page : https://sqlite.org/download.html
Link  : https://sqlite.org/2017/sqlite-amalgamation-3210000.zip
present version of sqlite in travis : sqlite-amalgamation-3190300

Yes, feel free to update this.


QE wannier_ham.x bug

Dear D. Korotin
In order to calculate exchange coupling parameters with exchange code using QE and their PP interfaces (wannier_ham.x)  (I try both versions 5.4 and 6.0)  I found a bug (or just an error from me!) but i don't know where to address it here or at qe forum.  So I prefer to discuss it here, because it concern directly your exchange code.
 Basis description:
!# dim, nblocks
!# atom_sym, atom_num, l_sym, block_dim, block_start, orbitals(1:block_dim)
&basis
64  15
Fe1  1 d 5   1     7 8 6 9 5
Fe1  2 d 5   6     7 8 6 9 5
Fe2  3 d 5  11     7 8 6 9 5
Fe2  4 d 5  16     7 8 6 9 5
W    5 d 5  21     7 8 6 9 5
W    6 d 5  26     7 8 6 9 5
W    7 d 5  31     7 8 6 9 5
W    8 d 5  36     7 8 6 9 5
N    9 p 3  41     3 4 2
N   10 p 3  44     3 4 2
N   11 p 3  47     3 4 2
N   12 p 1  50     3
Fe1  1 d 5  51     7 8 6 9 5
Fe1  2 d 5  56     7 8 6 9 5
Fe2  3 d 4  61     7 8 6 9

as you can note that the 8-N atoms not fully treated, in basis tag, and replaced with the first atoms, see atoms tag.
There is no problem with nspin=1 (non-polarized calculation). With nspin =2 the problem appeared in the spin # 1 and the second spin is OK. I cut/past the header file of wannier_ham.x output to clarify this point.  The problem appeared at nwan = 51 for spin 1.
     Check: negative/imaginary core charge=   -0.000044    0.000000      negative rho (up, down):  1.377E-01 1.377E-01      Spin 1        Wannier #  1 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier #  2 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier #  3 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier #  4 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier #  5 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier #  6 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier #  7 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier #  8 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier #  9 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 10 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 11 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 12 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 13 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 14 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 15 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 16 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 17 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 18 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 19 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 20 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 21 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 22 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 23 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 24 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 25 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 26 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 27 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 28 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 29 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 30 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 31 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 32 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 33 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 34 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 35 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 36 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 37 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 38 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 39 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 40 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 41 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 42 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 43 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 44 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 45 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 46 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 47 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 48 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 49 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 50 centered on atom N   (position  1.56907-2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 51 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 52 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 53 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 54 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 55 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 56 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 57 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 58 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 59 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 60 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 61 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 62 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 63 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 64 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4      Spin 2        Wannier #  1 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier #  2 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier #  3 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier #  4 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier #  5 centered on atom Fe1 (position  0.00000 0.00000 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier #  6 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier #  7 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier #  8 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier #  9 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 10 centered on atom Fe1 (position  0.00000 0.0000010.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 11 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 12 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 13 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 14 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 15 centered on atom Fe2 (position  4.70721-2.71771 0.00000 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 16 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 17 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 18 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 19 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 20 centered on atom Fe2 (position  4.70721-2.7177110.32924 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 21 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 22 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 23 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 24 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 25 centered on atom W   (position  0.00000 0.00000 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 26 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 27 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 28 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 29 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 30 centered on atom W   (position  4.70721-2.71771-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 31 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 32 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 33 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 34 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 35 centered on atom W   (position  4.70721-2.71771 5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 36 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=1        Wannier # 37 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=2        Wannier # 38 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=3        Wannier # 39 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=4        Wannier # 40 centered on atom W   (position  0.00000 0.00000-5.16462 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=2, m=5        Wannier # 41 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 42 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 43 centered on atom N   (position  1.56907 2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 44 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 45 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 46 centered on atom N   (position -1.56907 2.71771-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 47 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 48 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 49 centered on atom N   (position  1.56907 2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 50 centered on atom N   (position  1.56907-2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 51 centered on atom N   (position  1.56907-2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 52 centered on atom N   (position  1.56907-2.71771 2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 53 centered on atom N   (position  1.56907-2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 54 centered on atom N   (position  1.56907-2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 55 centered on atom N   (position  1.56907-2.71771 7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 56 centered on atom N   (position -1.56907 2.71771-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 57 centered on atom N   (position -1.56907 2.71771-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 58 centered on atom N   (position -1.56907 2.71771-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 59 centered on atom N   (position  3.13814-0.00000-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 60 centered on atom N   (position  3.13814-0.00000-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 61 centered on atom N   (position  3.13814-0.00000-7.76139 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3        Wannier # 62 centered on atom N   (position  3.13814-0.00000-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=1        Wannier # 63 centered on atom N   (position  3.13814-0.00000-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=2        Wannier # 64 centered on atom N   (position  3.13814-0.00000-2.56785 )          Bands for generation: from  41 to 115          Trial wavefunction ingredients:           1.0000000000 of l=1, m=3

Resolved:
just augmented

nwanx

to higher value in source file :

input_parameters.f90


Usage of the Contour Shape Descriptor

Hello Muhammet,
first of all thanks for this good repo. It makes the calculation and use of the MPEG7 descriptors much easier. Very good work.
I have a question about the contour shape descriptors.
Do you have an example how to correctly output the Contour Shape Descriptor to the console? Is the calculated size of the descriptor fixed or does it vary depending on how many peaks are in the contour. Do you know what the individual components mean?
I cannot pass a whole frame to the descriptor, but only a mask with the object contour, if I have understood it correctly, or?
Thanks a lot for the help and best regards
Michael

Hello Michael,
Thanks for your interest.
Honestly speaking, it has been about 10 years since I last worked on this project (except dealing with some github issues here); so, I have forgotten most of the things :(
It seems the current test codes under test/main.cpp and test/FexWrite.cpp do not include the countour shape descriptor output. I do not know if it is available somewhere.
However, it should not be difficult to write it by looking at the ContourShape descriptor class (Descriptors/ContourShape.h and Descriptors/ContourShape.cpp), particularly the commented ExportDDL and ImportDDL functions.
I will be more than happy to receive a pull request about it :)
For descriptor details, I would recommend the following book, if you can find it:
B. S. Manjunath, P. Salembier, and T. Sikora, Introduction to MPEG-7: Multimedia Content Description Interface. England: WILEY, 2002.
Papers:
Bober, M. (2001). MPEG-7 visual shape descriptors. IEEE Transactions on Circuits and Systems for Video Technology, 11(6), 716-719
Hope this helps.

Hello Muhammet,
thanks for the quick response and the helpful links to the book and the paper.
Yes exactly, the test code under test/main.cpp and test/FexWrite unfortunately did not contain an example for the contour shape descriptor and I didn't find an example anywhere else.
I'll try to generate an example for the CShD and if I'm successful, I'll gladly make a pull request ;)
Maybe we can leave the issue open in the meantime if someone else has suggestions, explanations or even code examples for the contour shape descriptor.
Kind regards
Michael


Issue with deploy command

Hello all.. i've been following this tutorial to deploy a contract to zksync 2.0 https://v2-docs.zksync.io/dev/guide/hello-world.html#initializing-the-project-deploying-smart-contract
When I get to the deploy section and run the npx hardhat deploy-zksync command, i get an error pointing to the import in the deploy/deploy.ts file. Any ideas what could be causing this?
import { utils, Wallet } from 'zksync-web3';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:988:16)

deploy/deploy.ts file
import { utils, Wallet } from 'zksync-web3';
import * as ethers from 'ethers';
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { Deployer } from '@matterlabs/hardhat-zksync-deploy';

export default async function (hre: HardhatRuntimeEnvironment) {
  // Initialize the wallet.
  const wallet = new Wallet(process.env.WALLET_KEY);

  // Create deployer object and load the artifact of the contract we want to deploy.
  const deployer = new Deployer(hre, wallet);
  const artifact = await deployer.loadArtifact('ZkSync_NFT');

  // Deposit some funds to L2 in order to be able to perform L2 transactions.
  const depositAmount = ethers.utils.parseEther('0.001');
  const depositHandle = await deployer.zkWallet.deposit({
    to: deployer.zkWallet.address,
    token: utils.ETH_ADDRESS,
    amount: depositAmount,
  });
  // Wait until the deposit is processed on zkSync
  await depositHandle.wait();

  // Deploy the contract
  const nftContract = await deployer.deploy(artifact, []);

  // show the contract info
  const contractAddress = nftContract.address;
  console.log(`${artifact.contractName} was deployed to ${contractAddress}`);
};

Hi @lsbyerley can you please post your tsconfig.json here?
Consider adding these options, as provided in the example:
    "module": "commonjs",
    "esModuleInterop": true,
    "moduleResolution": "node",

Hi @ly0va thanks for the reply. I just copied over the same tsconfig.json file and am still getting the same error. I am going to try cloning this repo instead of adding the zksync deploy to my current hardhat deploy repo. Thank you!

@ly0va So i copied that example folder down to my machine and ran the compile command. Have you seen this error before?
npx hardhat compile
Solidity 0.8.11 is not fully supported yet. You can still use Hardhat, but some features, like stack traces, might not work correctly.

Learn more at https://hardhat.org/reference/solidity-support

Compiling 13 files with 0.8.11
Error in plugin @matterlabs/hardhat-zksync-solc: `zksolc` binary is either not installed or not in $PATH

For more info run Hardhat with --show-stack-traces


fix(docs-site) remove free trial notes

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

@maggiehays i already bumped it up in the solutions page PR, but ill copy it here so it gets out quicker

@jayacryl got signoff from Lydia - good to ship


channel rocketchat: fix, implement custom message

Proposed changes:
Channel: rocketchat

Fix parameter name
Add custom message method for sending attachments

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog

 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.

Good catch :+1: thanks for fixing this - do you mind adding the change to the CHANGELOG.rst (under fixed at the top). other than that we are ready to merge :rocket:

Looks good - thanks a lot for your contribution :star:


Error: Element type is invalid. Received a promise that resolves to: undefined. Lazy element type must resolve to a class or function.

hi there
i was just exploring waku and i got  an error when i tried to import client component into server component here is my code
"use client";
function SubmitButton({ addTodo }: { addTodo: () => void }) {
  return (

      <button onClick={() => addTodo()} type="button">
        add
      </button>

  );
}

export default SubmitButton;

"use server";
import { type RenderContext } from "waku/server";
export const todos: Array<{ name: string; completed: boolean }> = [
  { name: "initial todo", completed: false },
];

addTodo const addTodo = (ctx: RenderContext) => {
  todos.push({name : 'new todo", completed:false})
  ctx.rerender("waku");
};

import { addTodo, todos } from "./actions.js";
import SubmitButton from "./submitButton.js";

export const Todos = () => {
  return (

        {todos.map(({ name, completed }) => {
          return (

              {name} <input type="checkbox" defaultChecked={completed} />

          );
        })}

      <input type="text" name="name" />
      <SubmitButton addTodo={addTodo} />

  );
};

Upon running this code, I receive the error: "Element type is invalid. Received a promise that resolves to: undefined. Lazy element type must resolve to a class or function.

Thanks for trying out and reporting the issue!
Our error message is very bad. There is huge room for improvement. #402.
I'm not sure what's wrong immediately from the code.
The difference from examples/05_actions is that exporting getTodos function instead of todos variable. Not sure if it helps, but can you try?
Also, you misuse rerender.
It must be this.rerender(...), which means the function must not be an arrow function.
We understand this doesn't look like community standard and will revisit the API in the future.

@dai-shi Thanks for your responses. As you suggested, I've made changes to my code similar to those in examples/05_actions.

"use server";
import { type RenderContext } from "waku/server";
const todos: Array<{ name: string; completed: boolean }> = [
  { name: "initial todo", completed: false },
];

export function getTodos() {
  return todos;
}

export function addTodo(this: RenderContext) {
  todos.push({ name: "new todo", completed: false });
  this.rerender("waku");
}

However, I'm still receiving the same error

No. i'll try and i'll let you know

hi there
I've been able to successfully import and use the component when it's exported as a named export, but encounter an error when it's exported as a default export.
//error
export default function SubmitButton(props){
//jsx
}

//no-error
export function  SubmitButton(props){
//jsx
}

Screencast from 01-30-2024 09:47:41 AM.webm

Thanks for the reproduction. That seems pretty minimal.
I assume it's a bug. Can anyone dig into it?
To confirm, is it dev only issue, or both for dev (waku dev) and prd (waku build && waku start)?

To confirm, is it dev only issue, or both for dev (waku dev) and prd (waku build && waku start)?

only in dev mode it works fine in prd mod


Sensible default operationId (like in legacy plugin)

Apparently, we were benefitting from a sensible approach the old plugin used: If no operationId was specified, it used <HTTP-Method><RouteCamelCased> as operationId (e.g. for a GET for /api/cat/list, getApiCatList() ).
This breaks at least if using client generation with openapi-generator typescript/angular, as the default there is <RouteCamelCased><HTTP-Method>, resulting in e.g. apiCatListGet).
What are your thoughts on this? Obviously, I would prefer the old way of handling no specified operationId.

What do you think about:
@OpenApi(
  operationId = AUTO
)

So if AUTO is declared, it'll generate such call? Currently if you won't specify it'll be just missing from scheme and I think we should keep it that way, having in mind @OpenApi annotation can be defined in different places without corresponding method for given route like in your case.

I do very much like that approach. In my opinion, all the information to use for the auto generated one is given by the @OpenApi annotation. I'm just in the process of having a look at the code base and try to figure out how to implement this. So you might soon™ -ish get a PR.

@dzikoysk My suggestion is in #152 - feel free to adjust according your style. This quickly I was not able to setup some test cases that confirm the proper behaviour.

@dzikoysk Thanks again for the almost immediate response and merging!
However, when using the new feature (by using the snapshot), I realised that there was an oversight on my part on handling path parameters. Before I fix this, I'd like to get your opinion (of for that matter, anyone's).
A path for a GET endpoint e.g. api/v1/cat/{catId} currently resolves with the new AUTO_GENERATE operationId to apiV1Cat¢catId, as one can see, the path parameter doesn't get capialised due to the concise, but simple implementation.
The legacy plugin, though, was somewhat more verbose and added the keyword with as a prefix to each parameter, still at their location within the path (getApiV1CatWithCatId).
Let's compare them (with an artifical example):

HTTP Method
Path / Route
Plugin: AUTO_GENERATE
Legacy Plugin

GET
api/v1/cat/{catId}
getApiV1Cat{catId}
getApiV1CatWithCatId

PATH
api/v1/cat/{catId}/collar/{collarId}/accessoire
pathApiV1Cat{catId}Collar{collarId}Accessoire
pathApiV1CatWithCatIdCollarWithCollarIdAccessoire

Personally I'm not entirely sure whether the parameter prefix with is necessary, however I think the AUTO_GENERATE approach should at least produce something that is properly camelCased and being able to handle path parameter notation.
My question to @dzikoysk (and the community): Should AUTO_GENERATE result in

likewise the legacy plugin (path parameters prefixed with and camelCased e.g. getCatWithCatId, or
properly camelCased e.g. getCatCatId, or
leave it as is, e.g. getCatcatId

1. I personally prefer by than with, but I don't have a strong opinion on that. In general I think that's the proper approach to address this issue.
2. & 3. doesn't make sense for me, no one names methods like that, so I think there's no point to do it that way.
Do

Very glad you favour 1. as well. The PR was already prepared ;-)


Named Parameters Only Support String Input

Describe the bug
Named Parameters only allow String inputs. We should be able to put any type of data: String, number, array, object...
Steps to reproduce
.cbNamedParams.properties file:
testStr=Hello
testNum=1234
testObj={"testObj": "Hello"}
testArr=[1,2,"3","4",[5]]

SELECT $testStr as testStr,$testNum as testNum,$testObj as testObj,$testArr as testArr

What did you expect to see?
correctly represented data types
What did you see instead?
everything formatted as strings.

Hey, Thanks for reporting the bugs, we are working on fixing this and release this.

We have fixed this bug in the latest release. Thanks!


Nates

Fixed the internal wiring issues, there were literally 100's of incorrect internal connections, I don't know how those could've gotten there.

Hi Nate. Thanks a lot for fixing this. It was my first fritzing part and obviously not free of mistakes.


Upgrade Python and Pangeo

Upgrade to Python 3.11 and Pangeo 2024.03.13 so we can use the latest pangeo image.
We likely need to address the Enum issue when upgrading Python.

We should probably do this before #134


Recommended approach to running tests on build server?

Description
I'm building a new build server for my .NET (primarily 4.6.2) applications with the goal of not needing to install a full copy of Visual Studio.  Previously, we were referencing the Visual Studio test assembly in our test projects and invoking mstest.exe during our build process to run the tests.  After doing some reading, it sounds like the Microsoft testing world is changing for the better.
I replaced the Visual Studio test assembly with the MSTest.TestFramework NuGet package.  However, now my questions are:

How do I invoke my tests?  It sounds like vstest.console.exe is needed, however that doesn't appear to come with the Visual Studio Build Tools download.  Am I forced into installing a full copy of Visual Studio?
The MSTest.TestFramework package makes a reference to the MSTest.TestAdapter package as being used to execute tests.  However, as far as I can tell, it doesn't provide a way to execute the tests?  What's the purpose of the TestAdapter package?

Thanks!

That is correct. vstest.console is what you need. You could pull in the tooling package from here to run your tests independent of VS. That said, we are also working on an official packaging story here.
The MSTest.TestAdapter package is an extension to the console runner that actually executes tests. MSTest.TestFramework package contains all the framework constructs that test authors can attribute to their test code.

So Build Tools for Visual Studio 2017 doesn't include vstest.console.exe ?
Found it in https://www.nuget.org/packages/Microsoft.TestPlatform/

@hickford It's also included in https://www.visualstudio.com/downloads/#agents-for-visual-studio-2017 which is what I used for my build server.  Just FYI.

Thanks @justaniles, that's useful to know.

Hi! This is Anusha. I am new to .net and Docker containers. We started a project to build CI to build, test and deploy the .net framework application. I want to containerize the application and ship it through the entire workflow of the CI pipeline. I was able to build the application in a container and deploy it to IIs container. I need a container to run unit tests in between.
To get a knowledge of this, I was going through different blogs. I found this article useful and installed Microsoft.TestPlatform package in my docker container. Could someone help me with next steps till i will be able to run unit tests successfully.


Cleanup error messages in openzfs-merge

Refine error messages in openzfs-merge.sh.
Ensure that a rebase to latest master occurs
prior to merging patches.
Signed-off-by: Giuseppe Di Natale<EMAIL_ADDRESS>

@gmelikov Refreshed it. Let me know what you think.


Update to Log4j2

This can't be done yet; kafka has a hard dependency on log4j 1.x

Just in case, there is a PR to remove log4j from kafka core: https://github.com/apache/kafka/pull/3477

Thanks for the heads-up.


Add pytest-raises to Pipfile

pytest-raises is actually needed for pytest.mark.raises.
Also removed atomicwrites and pathlib2 as they appear to be unused.

@felixonmars it looks like atomicwrites is used inside pytest (see CI failures). I think you need to undo that removal.

Well spotted, thanks!


Unable to create acs in westeurope, --master-vm-size parameter not working

When trying to create an ACS in West Europe location, I get this message:
"The VM Size of Master is not allowed in your subscription in location 'westeurope'. Master VM Size 'Standard_D2' is available in locations: ...."
Adding --master-vm-size=Standard_A2 to az parameters does not help, it still tries to create with Standard_D2. I know that smaller VMs are not recommended, but this is for testing.
A workaround is creating this in northeurope, but it still creates a Standard_D2 master node.

Environment summary
Install Method (e.g. pip, interactive script, apt-get, Docker, MSI, edge build) / CLI version (az --version) / OS version / Shell Type (e.g. bash, cmd.exe, Bash on Windows)
azure-cli installed with apt-get

$ az --version
azure-cli (2.0.19)

acr (2.0.13)
acs (2.0.17)
appservice (0.1.18)
backup (1.0.1)
batch (3.1.5)
batchai (0.1.1)
billing (0.1.5)
cdn (0.0.9)
cloud (2.0.8)
cognitiveservices (0.1.8)
command-modules-nspkg (2.0.1)
component (2.0.7)
configure (2.0.11)
consumption (0.1.5)
container (0.1.11)
core (2.0.18)
cosmosdb (0.1.13)
dla (0.0.12)
dls (0.0.15)
eventgrid (0.1.4)
extension (0.0.4)
feedback (2.0.6)
find (0.2.7)
interactive (0.3.10)
iot (0.1.12)
keyvault (2.0.12)
lab (0.0.11)
monitor (0.0.10)
network (2.0.16)
nspkg (3.0.1)
profile (2.0.14)
rdbms (0.0.7)
redis (0.2.9)
resource (2.0.16)
role (2.0.13)
servicefabric (0.0.4)
sql (2.0.13)
storage (2.0.17)
vm (2.0.16)

Python location '/opt/az/bin/python3'
Extensions directory '/home/user/.azure/cliextensions'

Python (Linux) 3.6.1 (default, Oct  9 2017, 22:55:40)
[GCC 4.8.4]

OS: Ubuntu 14.04
Shell: Bash

--master-vm-size is feature in preview, it only works in preview regions. WestEurope is NOT!
Those are clearly stated in the --master-vm-size description.
@tjprescott Please close this, as it is by design.

closing as az acs is deprecating


Backslashes not escaped when using response files on Windows with GCC

It is quite an unusual compile path but I'm compiling on Windows using a GCC cross compiler. The issue occurs when using rspfile and rspfile_content where the contents are written to the rsp_file with backslash path separators. When GCC reads the response file the backslashes are not present (as they are not escaped) and the compiler/linker cannot find any of the files.
I'll see if I can fix it and submit a pull request if that would help. In the meantime I'll need to handle the response file generation manually to get round the issue
EDIT:
I forgot to mention that I tried escaping the file paths before passing them into rspfile_content but ultimately had no effect.

Have realised that since I'm using GCC it works with Unix style paths (i.e. separated by forward slashes) so I've just changed the paths I'm feeding to rspfile_content to use '/' rather than ''. Since it is unusual to be compiling with GCC on Windows and that GCC handles Unix paths this is probably not really an issue

Can you check whether #1342 solves the problem for you?

Sorry for the delay. Can you rebase one more time? Thanks in advance!


Propagate app config to Heroku Review Apps

This PR enables a better config to have review apps working in heroku.
https://scala-exercises-pr-378.herokuapp.com/
@rafaparadela @dialelo Can you please review? thanks!

Nice! LGTM

:+1:


Updates to section A

Changes requested in Jira:
Diagnosis date: remove
Reporting facility:
Add field for facility code after facility name and populate this
Add field for district after facility code and populate this
Remove items 8, 9 and 10

@smn @bruskiza ready for review. Contains Simon's changes from https://github.com/praekelt/malaria24-django/pull/31

:+1:

merging this in


BitSet.valueOf(), toByteArray() similar methods

Hi,
Would be great if we've something like BitSet.valueOf() & 'BitSet.toByteArray()' in SparseBitSet too. Currently it is not direct to initialise SparseBitSet from byte[]

valueOf can be implemented like below: (byte[] to bit extraction logic taken from http://stackoverflow.com/a/1034513/340290)
public static SparseBitSet valueOf(byte[] bytes) {
	SparseBitSet sparseBitSet = new SparseBitSet();
	int j = 0;
	for (byte b : bytes) {
		for (int mask = 0x01; mask != 0x100; mask <<= 1) {
			if((b & mask) != 0) {
				sparseBitSet.set(j);
			}
			j++;
		}
	}

	return sparseBitSet;
}

I did a simple benchmark to see which faster among BitSet & SparseBitSet to create from byte[].
SparseBitSet is taking ~10 times more time than BitSet.valueOf(). I m not sure if this is due to the above implementation of SparseBitSet.valueOf().
Can we improve this? Below is the very rudementary main() for testing:
public static void main(String[] args) throws DecoderException {
	int[] intArray = new int[] {0,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0};

	BitSet bitSet = new BitSet();
	SparseBitSet sparseBitSet = new SparseBitSet();

	for(int i = 0; i < intArray.length; i++) {
		bitSet.set(i, intArray[i] == 1);
		sparseBitSet.set(i, intArray[i] == 1);
	}

	System.out.println("BitSet original      : " + bitSet);
	System.out.println("SparseBitSet original: " + sparseBitSet);

	String hexStr = Hex.encodeHexString(bitSet.toByteArray()); // BitSet --> Hex
	byte[] decodeHex = Hex.decodeHex(hexStr.toCharArray()); // Hex -> byte[]

	System.out.println("SparseBitSet decoded : " + sparseBitSetValueOf(decodeHex));

	// BitSet Hex
	long start1 = System.currentTimeMillis();
	for(int i = 0; i < 1000000; i++) {
		BitSet.valueOf(decodeHex);
	}
	long end1 = System.currentTimeMillis();
	System.out.println("BitSet Hex total time: " + (end1 - start1));

	// SparseBitSet Hex
	long start3 = System.currentTimeMillis();
	for(int i = 0; i < 1000000; i++) {
		sparseBitSetValueOf(decodeHex);
	}
	long end3 = System.currentTimeMillis();
	System.out.println("SparseBitSet Hex total time: " + (end3 - start3));

}

@manikantag
SparseBitSet is serializable. Why don't you serialize and deserialize it instead?


Comments on cupy.cuda.Event.synchronize() are inaccurate.

Description
The comment on synchronize() is inaccurate.
https://docs.cupy.dev/en/stable/reference/generated/cupy.cuda.Event.html#cupy.cuda.Event.synchronize
synchronize(self)
Synchronizes all device work to the event.
If the event is created as a blocking event, it also blocks the CPU thread until the event is done.
According to @leofang,
:no_entry:  3:03 PM
Inaccurate in that the CPU is blocked anyway (regardless of this flag), it’s just that when setting block=True (which maps to cudaEventBlockingSync) the CPU would not do busy waiting and thus you free up the core tentatively. But the CPU is still blocked, just blocked in a different manner.
Would you please update the documentation?
Idea or request for content
No response

Hi, thanks for the feedback! Indeed, it's better to improve the docs.
c.f. https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__EVENT.html#group__CUDART__EVENT_1g949aa42b30ae9e622f6ba0787129ff22

Waiting for an event that was created with the cudaEventBlockingSync flag will cause the calling CPU thread to block until the event has been completed by the device. If the cudaEventBlockingSync flag has not been set, then the CPU thread will busy-wait until the event has been completed by the device.