championMasteryScore value not present

I am almost positive that this is just because of the new champion ranking system riot made recently but currently i can not get 10 seconds into my program beefore about 10 messages come up saying 'XMLProperty "championMasteryScore" value: "34" not implemented yet!' with the 34 changing every time. Did i do something wrong on my side or is this just me getting into this at the wrong time.

See issue #29


opt tabe row count priority: user injected > BE report > analyzed

Proposed changes
there are 2 sources for table row count, one is analyzed result, another is from BE report.
But neither of them is accurate. the priorities of them from high to low:
user injected > BE report > analyzed
Issue Number: close #xxx

run buildall


RuntimeError: rnn: hx is not contiguous

The default enc_layers and dec_layers is 1, there is an error when I try to set to 2 or other bigger.
File "/home/xxl/project/keyphrase-generation-rl/pykp/model.py", line 392, in forward
    self.decoder(y_t, h_t, memory_bank, src_mask, max_num_oov, src_oov, coverage, decoder_memory_bank, h_te_t, g_t)
  File "/home/xx/model_serving_python/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/xx/project/keyphrase-generation-rl/pykp/rnn_decoder.py", line 111, in forward
    _, h_next = self.rnn(rnn_input, h)
  File "/home/xx/model_serving_python/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/xx/model_serving_python/lib/python3.6/site-packages/torch/nn/modules/rnn.py", line 211, in forward
    self.dropout, self.training, self.bidirectional, self.batch_first)
RuntimeError: rnn: hx is not contiguous

Hi Crystal,
I made a commit just now. Basically I just add h = h.contiguous() before the _, h_next = self.rnn(rnn_input, h) in rnn_decoder.py. I think it will solve the error.


V2

Hi @bryanmtl !
here are the changes that I moved out of the glossier code.

Thanks @mickeyren. Are there any specs that go along with these changes?

@bryanmtl i can imagine writing a spec for the subscription renewal job and checking for the cancellation fields.
Can you grant me admin settings? I like to put this up on travis.org.

@bryanmtl there's a bunch of errors coming out of the spec suite, even on the master branch but I'm more than halfway through. Just a little setback as I get myself acquainted with state_machines

Hey @mickeyren - I've enabled Travis on this repo. Let me know if you have access now.

@bryanmtl getting there. I actually had to clean up a bunch of issues on the admin pages, improving the UI along the way. Now has tabs!

So far I've been fixing failing specs and admin pages issues so I still yet to write the specs for the new code that were introduced in this PR.

@mickeyren Great work! Thanks for the update.

@bryanmtl specs are green, well sort of. and i've put in a simple spec for the subscription renewal.
There is this one last failing spec that happens only on Travis. It's failing to reach the Stripe gateway.

this is the spec:
    Stripe.api_key = "sk_test_jTiNI1BxjFxBr4TUqdHefc1f"

    user = create(:user)
    setup_subscriptions_for user
    sign_in_as! user

    my_account = MyAccount::Page.new
    @credit_card = my_account.any_subscription.edit.payment_details
  end

  scenario "displays the current payment info" do
    expect(@credit_card.current_payment_info).to_not be_nil
  end

  scenario "can update payment info" do
    @credit_card.number = "4242424242424242"
    @credit_card.name = "John Doe"
    @credit_card.expiry = "06/20"
    @credit_card.code = "123"

    @credit_card.submit

    expect(@credit_card.current_payment_info).to have_text("4242")
    expect(@credit_card.current_payment_info).to have_text("John Doe")
    expect(@credit_card.current_payment_info).to have_text("6/2020")
  end```

it's failing on the last one.

cc @aamyot

@mickeyren Do you need test Stripe credentials to get this passing? Does that spec work for you locally?

@bryanmtl @aamyot
would you guys mind looking over the strange error?
$ bundle exec rake test_app
Expected string default value for '--rc'; got false (boolean)
rake aborted!
NoMethodError: undefined method `last_comment' for #<Rake::Application:0x000000019a4bf0>

I don't find any trace of last_comment anywhere and the spec suite passes just fine for me locally.


trending news

created the trending news page and added all the pictures, labels and necessary content

https://www.figma.com/file/LEKdq0JqyuzzOGxv0tZWjh/WalletFriendly?node-id=1829%3A4322


JSON configuration doesn't not support url as an object anymore

Describe the bug
Thanks to a change introduced in https://github.com/salsita/node-pg-migrate/issues/599#issuecomment-618215776 it was possible prior v7.0.0 to use a JSON configuration with the url property being an object containing the property connectionString.
For example, the following would work:
{
  "url": {
    "connectionString": "postgres://postgres:password@localhost:5432/postgres",
    "ssl": false
  }
}

but doesn't in v7.0.0. I suspect it is due to this check here: https://github.com/salsita/node-pg-migrate/blob/dbc4207912b5d9b39c93c5f5a334760b715aa363/bin/node-pg-migrate.ts#L392 that explicitly exclude url being anything else than a string whereas before it was not: https://github.com/salsita/node-pg-migrate/blob/9331f6fda98795e3f3733461f9b71345168b99d8/bin/node-pg-migrate#L302-L303
If it is an intentional breaking change, it is worth updating the documentation to remove the note saying:

url can be connection string or config object accepted by pg see

Steps to reproduce
Try to run with the following configuration:
{
  "url": {
    "connectionString": "postgres://postgres:password@localhost:5432/postgres",
    "ssl": false
  }
}

You will eventually get the error:
could not connect to postgres: Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string

Logs
No response
System Info
N/A

Used Module System
esm

If it is an intentional breaking change, [...]

No, it was not an intentional breaking change
But also it was not supported officially 👀
It was just something that was possible but not checked nor known 🤔
It seems to be that the url can be like this https://github.com/DefinitelyTyped/DefinitelyTyped/blob/9ec204164d296bac9574f8113417236cae2a5d62/types/pg/index.d.ts#L18-L22
Would you like to draft a PR to allow this explicitly?
You would need to touch https://github.com/salsita/node-pg-migrate/blob/569d173274e80e45262706398672f021de0f3fb1/bin/node-pg-migrate.ts#L391-L403 for this and also need to add an integration-test in https://github.com/salsita/node-pg-migrate/blob/569d173274e80e45262706398672f021de0f3fb1/.github/workflows/postgres-test.yml

Thank you for the confirmation @Shinigami92. I'll try to create a PR tomorrow for it but basically the fix is to remove isString check and the following a few lines below will do the rest:
https://github.com/salsita/node-pg-migrate/blob/569d173274e80e45262706398672f021de0f3fb1/bin/node-pg-migrate.ts#L512-L515
As a side note, I think it was officially supported per (cf. https://salsita.github.io/node-pg-migrate/#/cli?id=json-configuration):

url can be connection string or config object accepted by pg see

Which links to https://node-postgres.com/features/connecting#connection-uri. It was even given as an example of valid configuration by @dolezel in https://github.com/salsita/node-pg-migrate/issues/599#issuecomment-618215776

Even when officially supported, the CI did not FAIL!
It needs to fail integration-tests! So then it is supported officially 😺
And thanks 🙏 I will leave an eye open for your PR 🙂

@Shinigami92 there it is https://github.com/salsita/node-pg-migrate/pull/1119


Users should have to at least log in with a nickname to edit

Otherwise, we have no paper trail. This isn't about AAA. It's aabout knowing who edited what, so for now we can set up a basic login as a user (they provide a name) and we use that in their edits.
It's a lot like naming yourself getting a high score in a game.
Or when you log into IRC and need a handle.
This should set things up for true user login at some later point.

Closed with #20


The transition effect is not seamless between the two screens

When I switch between two screen, the animation is not seamless and there is black space in between the two screen.
Demo: https://github.com/huynhthuan/unityNavigatorDemo

Thanks for reporting this.
Fixed in version 1.6.5


Set up ChakraUI with next.js

Set up ChakraUI with next.js, refer to this page to set up. Ensure that the version of React we are using is ^18.

Resolved with #3


Discrepancy between the number of requirement levels and the number specified

There are four requirement levels that are coded in requirement ids as per below convention:
[R] - The requirement level for requirements which IDs start with the letter R is to be interpreted as MUST as described in RFC2119.
[D] - The requirement level for requirements which IDs start with the letter D is to be interpreted as SHOULD as described in RFC2119.
[O] - The requirement level for requirements which IDs start with the letter O is to be interpreted as MAY as described in RFC2119.

In the first sentence, it says that there are "four" requirement levels, but only "three" are listed.

Maybe [CR] is the fourth, but it is not clear from the way the document is written that this is the fourth requirement level.

The header 1.3.2 should be removed to make it clear. Will be done in another clean up PR. Also, would be great if you could make a rewording suggestion that makes sense to you. @tkuhrt


compute bend loss

How can we calculate mode overlap to calculate the bend loss?
https://gdsfactory.github.io/gdsfactory/notebooks/plugins/tidy3d/01_tidy3d_modes.html
@simbilod
@flaport

If your cross section is xy, shouldnt integrand = (
np.conj(mode1_Ey) * mode2_Hz
- np.conj(mode1_Ez) * mode2_Hy
+ mode2_Ey * np.conj(mode1_Hz)
- mode2_Ez * np.conj(mode1_Hy)
)`
use x and y fields?

In https://github.com/gdsfactory/gdsfactory/blob/master/gdsfactory/simulation/modes/overlap.py I use the x-projection of the cross product leading to y and z components because x is the propagation direction

How about?
import numpy as np

index = 0 # TE mode

mode1_Ey = strip.Ey[index]
mode1_Ex = strip.Ex[index]
mode1_Hx = strip.Hx[index]
mode1_Hy = strip.Hy[index]

mode2_Ey = strip_bend.Ey[index]
mode2_Ex = strip_bend.Ex[index]
mode2_Hx = strip_bend.Hx[index]
mode2_Hy = strip_bend.Hy[index]

integrand = (
    np.conj(mode1_Ex) * mode2_Hy
    - np.conj(mode1_Ey) * mode2_Hx
    + mode2_Ex * np.conj(mode1_Hy)
    - mode2_Ey * np.conj(mode1_Hx)
)

integral = np.trapz(np.trapz(integrand, axis=0), axis=0)
abs(integral)

I think so, does it work? I don`t have a tidy3D account, so I don't know if I can run that notebook

yes, it seems to be working

The mode solver, runs locally, so you shouldn't need an account to run

Hey Awesome!
Wit a tiny bit more work you effectively have an EME solver now!

There are several mechanisms for loss in bends. (1) Scattering losses and substrate leakage: for the short distances considered in bends, these losses are small. As we will find, these losses are small for bend radii <10 μm. (2) Radiative loss: in highly confined waveguides, especially for TE modes in strip waveguides, radiation is typically small. It does contribute in rib waveguides for bend radii <5 μm and for TM-polarized modes. (3) Mode mismatch loss: this is the largest source of loss in bends. It is due to the imperfect mode overlap between the straight and the bent waveguides. This leads to scattering at the abrupt radius transition regions (start and end of fixedradius bends). There are several methods of decreasing mode-mismatch loss: (a) to laterally offset the straight waveguide relative to the bent waveguide in order to obtain a better mode overlap [29]; (b) to vary the curvature continuously, rather than abruptly; for example a 90◦ bend with an effective radius of 20 μm, where curvature changes from zero to 1/15 μm−1 then back to zero [30]. This has the added benefit that the bend does not excite higher order modes in the waveguide. See Figures 10.6, 10.7, and 10.8, for more details.

From Chrostowski, Hochberg: Silicon Photonics Design
Thus it seams that the radiation losses end up being relatively irrelevant for most cases

yes, in the notebook we only computed the losses coming from the mode missmatch from the bend into a straight waveguide.


[PE-D][Tester C] Command Words are Case Sensitive

As shown below, command words that are capitalised like "Delete" and "Edit" are not recognised by the application. They are unnecessarily case-sensitive.

This may prove to be inconvenient for users as they have to key in command words in lowercase.
A recommended suggestion will be to allow for case-insensitive command words for more flexibility.

Labels: severity.Medium type.FunctionalityBug
original: ondretann/ped#9

Planned enchancements. Case insensitivity for all of fields & commands.


Physics methods should validate input

Description
Hi! Filing this bug report from my phone, so can't make a minimal reproduction now, but can if one would be helpful.
Many of the physics APIs (e.g., RigidBodyComponent.applyImpulseRotation) take either a Vec3 or the component numbers of a Vec3. However, they do not throw if they're provided an Array instead of a Vec3.
These methods (when erroneously called with an Array) often cause the object to disappear / end up somewhere very out of frame. I haven't spent much time investigating what happens once I realized what the issue was.
It seems to me that it would be better mannered for the RigidBodyComponent methods to throw on bad input.
Steps to Reproduce

Make an Entity with a RigidBodyComponent and Script.
In the script, call RigidBodyComponent.applyImpulseRotation, and provide an array with 3 components (e.g., [1, 1, 1]).
Observe that the Entity is no longer in the expected location.

There is an API documentation for such cases. It specifies what attributes are accepted by various methods of the engine. Please, refer to it whenever in doubt.
For example:
https://developer.playcanvas.com/api/pc.RigidBodyComponent.html#applyImpulse

Hey! I'm aware the documentation exists (and I refer to it frequently), but it should still validate input. Many of the non-physics APIs throw errors in similar cases.

we have an issue on this, but have not had a time to work on it yet
https://github.com/playcanvas/engine/issues/2529

Over the last few years, the types the engine exports for the APIs has improved a lot. Also the new script editor we use in the Editor is based on Monaco (same code base used by VS Code), and this highlights issues if an incorrect type of the parameter is used. We also have plugin for VS Code that can be used to edit the scripts, highlighting these issues.
At the moment, we're not planning to add runtime checking.
There is also a community contributed tool that can help with this: https://github.com/playcanvas/engine/pull/5817
And so I'll close it as Won't do at this stage.


Some services no longer available in version 6

Hi,
Just upgraded from version 2 to lastest 6 yesterday and got 2 errors calling services in my scripts causing my cam alarm to not arm/desarm when leaving home.
I'm using 3 solo cams model T8441.
Missing services I use are :

eufy_security.enable
eufy_security.reset_alarm_for_camera

Did I mist something in the documentation to replace those services calls?
Thanks

Yes, you missed that this was a breaking change and you need to go through readme and services list.


Hhh 17305 keep order of selected tables in polymorphic query

https://hibernate.atlassian.net/browse/HHH-17305

@beikov Hi, it took a while, but at last i have my 'keep-order' PR finished. Will you have a look? Thanks!

@beikov moved sorting to constructor

Superseded by https://github.com/hibernate/hibernate-orm/pull/8323


Actions from sales order detailed screen

[x] Validation message for record payments. (for statuses before sent.)
[x] Delete function validation for 'Partially paid' and 'paid' status invoices.

issue fixed !


Add color schemes to color selection options

Color selection scheme can accept color schemes (eg sstruc)
scheme = NGL.ColormakerRegistry.addSelectionScheme([["red", "1-10"],["sstruc","11-30"]],"myScheme")
a third parameter can be added in the pair list
scheme = NGL.ColormakerRegistry.addSelectionScheme([["red", "1-10"],["uniform", "11-30", {value: 16777215}]], "myScheme")

Could you please also change the 'selectionColoring' example in examples/js/examples.js to show how to use the new feature.

All done !

thank you @ppillot
just slightly tweaked it trying out some array destructuring (never used it before), see 9fcc39ce15f1cf23ea1660812d1a7b5479fa4686


Issue#3 - iOS MissingPluginException - hasTorch

updated call.method string match value from turnOn to hasTorch

fixes #3

Ooops, small typo in the code.
Thanks for the fix


Advanced configuration of no-private rule based on element types

Describe the bug
If a file of one element imports a file that is of a different element which is is a parent/uncle/etc no-private will block it.
To Reproduce
I've created a demo repo on StackBlitz where you can npm run lint.
https://stackblitz.com/edit/node-jtplrw?file=.eslintrc.js
Expected behavior
In the example, the unit-test file should be able to import the ui file from its parent. Instead of getting an error that the file belonging to its parent is private.
Logs
/home/projects/node-jtplrw/src/modules/module-a/ui/MyButton.spec.tsx
  1:26  error  Dependency is private of element of type 'modules' with module 'module-a'  boundaries/no-private

Additional context
This can happen easily if you have a bunch of different element types. Having a variety of element types shouldn't be unexpected, as boundaries/externals exists and is a great way of defining rules like "only tests can import test libraries", "only UI components in our design library can import components from external UI libraries, other components must be made up of our UI components", or "only *.web.js files can import libraries that assume react-dom is present, for react-native-web users".
I understand that if you have something like a "server" element with a "module" element inside of it. Then the idea of no-private not crossing element boundaries makes sense. But in the context of lighter element types this doesn't work out. Maybe the solution is for no-private to have an option for the change of behaviour or an option with an element matcher for what types of element boundaries should allow crossing / not make an element private.

Hi @dantman,
I agree, given the great amount of different possible scenarios, it is a good idea to allow configuring this rule based on element types. But, maybe allowing to import any private element may be dangerous, so I think it would be also useful to define a new option allowAncestors, which would allow to import only parents, grandparents, etc. (maybe a number to indicate the level of the ancestor could be also useful). I will add a draft of the new configuration to this issue before implementing it in order to get some feedback.
For the moment, until the issue is solved, maybe you can use the eslint overrides option to override the configuration of this rule only for your spec files:
{
  overrides: [
      {
        files: ["*.spec.tsx"],
        rules: {
          "boundaries/no-private": [0],
        }
      },
  ]
}

Note: I will rename this issue to "Advanced configuration of no-private rule based on element types".

Thank you very much for your feedback 😃

But, maybe allowing to import any private element may be dangerous, so I think it would be also useful to define a new option allowAncestors, which would allow to import only parents, grandparents, etc. (maybe a number to indicate the level of the ancestor could be also useful).

I actually thought this was already the case when you had allowUncles enabled. As the docs state:

Private elements can import another private element if it is a direct child of a common ancestor, and the allowUncles option is enabled.

So my biggest confusion was discovering this rule only applies when both private elements are of the same type.

For better reference, my actual use case for no-private.
I have feature elements at src/{feature}, like "api", "theme", "layout", etc. And route elements at src/routes/{route}. Some of these features have an index.ts and discourage direct imports but others allow direct imports. So locking down imports with boundaries/entry-point doesn't necessarily make sense.
However various features, routes, and other elements do have an internal/ folder or internal.ts file for internal implementation stuff. e.g. a React context instance that is used by multiple files in the module but externally should only be accessed through the hooks/components exported by the feature. i.e. I don't want src/somefeature/foo.ts to import src/api/internal.ts.
no-private would make this work as internal.ts would be an internal element inside the feature (api) element and foo.ts is in a separate feature (somefeature). Unfortunately I also have other patterns codified as elements (utilities in utils/, UI components in ui/, custom form fields in fields/, unit tests in *.spec.ts(x), Storybook defs in *.stories.ts(x)) which define boundaries that have certain behaviours, but don't necessarily themselves mean "do not touch outside my direct parent". Some like ui/ make sense to be accessed by any descendent. While others like unit tests don't make sense to import (have an element-types rule forbidding that of course) but do inherently have to import a module from their direct parent.
Maybe this all could be better expressed with element-type, but it would need to be a lot more advanced. As currently it seems to choke as soon as there happens to be a minor element inside the major element you're trying to define rules for. I'll have to make an issue for that later.

The allowUncles option is intended to allow importing only "brothers of a parent", or "brothers of a grandparent", etc. But not direct parents or grandparents. Why? Well, it tries to cover some kind of scenarios in which you have an structure like the next one:
└─── A
    ├── B
    │   └── C
    ├── D
    └── E

Then, you want to allow importing D and E from C. So you set allowUncles as true and the rule allows it. But it does not allow to importing B or A from C. Mainly, because in theory it would produce a circular dependency, given that if a package is private of another one, it should import it.
In your case, as the private element contains tests, I suppose that the parent element is not importing it, so it would have sense to allow a child to import its parents. That is the reason of my proposal for the allowAncestors option.
The type of elements shouldn't be affecting to this rule, and, in case it is, of course it should be fixed. Could you please provide an example of code and your configuration in order to reproduce it?
If it is not a bug, and it is related only to some misunderstanding about the rules, please provide a schematic example of your structure, and a list of the boundaries that you want to implement on it, so maybe I can help you with the configuration.


optimizer.load_state_dict not working

I am unable to debug this. Torchao seems to have incompatibility with huggingface accelerate maybe or something else
My optimizer is from torchao.prototype.low_bit_optim import Adam4bit
line 173, in load_checkpoint
[rank3]:     optimizer.load_state_dict(optimizer_state_dict)
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/_compile.py", line 24, in inner
[rank3]:     return torch._dynamo.disable(fn, recursive)(*args, **kwargs)
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/_dynamo/eval_frame.py", line 451, in _fn
[rank3]:     return fn(*args, **kwargs)
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/optim/optimizer.py", line 777, in load_state_dict
[rank3]:     state[param] = _cast(param, v, param_id=k, param_groups=state_dict['param_groups'])
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/optim/optimizer.py", line 764, in _cast
[rank3]:     return {k: _cast(param, v, param_id=param_id, param_groups=param_groups, key=k) for k, v in value.items()}
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/optim/optimizer.py", line 764, in
[rank3]:     return {k: _cast(param, v, param_id=param_id, param_groups=param_groups, key=k) for k, v in value.items()}
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/optim/optimizer.py", line 762, in _cast
[rank3]:     return Optimizer.process_value_according_to_param_policy(param, value, param_id, param_groups, key)
[rank3]:   File "/home/skatar6/.local/lib/python3.9/site-packages/torch/optim/optimizer.py", line 644, in process_value_according_to_param_policy
[rank3]:     return value.to(dtype=param.dtype, device=param.device)
[rank3]:   File "/home/skatar6/anaconda3/envs/tmp4/lib/python3.9/site-packages/torchao/utils.py", line 377, in dispatch__torch_function
[rank3]:     return func(*args, **kwargs)
[rank3]:   File "/home/skatar6/anaconda3/envs/tmp4/lib/python3.9/site-packages/torchao/utils.py", line 392, in dispatch__torch_dispatch
[rank3]:     kwarg_types = {k: type(arg) for k, arg in kwargs}
[rank3]:   File "/home/skatar6/anaconda3/envs/tmp4/lib/python3.9/site-packages/torchao/utils.py", line 392, in
[rank3]:     kwarg_types = {k: type(arg) for k, arg in kwargs}
[rank3]: ValueError: too many values to unpack (expected 2)

cc @gau-nernst @msaroufim

@saurabh-kataria Can you try with torchao nightly? I think it should be fixed by #1021
Btw the cryptic error is caused by https://github.com/pytorch/ao/pull/963#discussion_r1788459963 cc @jerryzh168

It works now with my setup. Thanks a lot!

FWIW the training stability of bnb optimizers (from bitsandbytes.optim import Adam8bit) is far better than torchao (from torchao.prototype.low_bit_optim import Adam4bit, Adam8bit) on my setup.

It doesn't look like training instability (no loss spikes/noise), but rather a very huge difference in optimization trajectories. Do you have a small reproduction that I can run? I would like to look into this, since it looks very serious.
Also, which bnb and torchao version are you using? Latest bnb 0.44 changes default block size from 2048 to 256, while torchao 0.5 still uses the old default of 2048. You can override torchao block size by passing block_size=256 to the optimizer. For torchao 0.6, I have changed the default value to 256 to align with bnb. But I don't think this would account for this divergence.

It is hard for me to share code right now. It is a generative time series GPT model.
I can share some other observations. The problem almost disappears when Adam8bit uses default optimizer hyper parameters (beta1=0.9, beta2=0.999, weight_decay=0) over my choices (beta1=0.9, beta2=0.95, weight_decay=0.01). And when I use AdamW8it with my hyper parameters, it works well and close to bnb Adam8bit. So I think for now, I will prefer AdamW versions from torchao. Regular Adam for now is not robust to hyper parameter choice.

Adam != AdamW. @matthewdouglas Do you know if Adam from bnb is actually AdamW? I have a feeling it is (i.e. there is no true Adam in bnb)
These 2 look exactly the same

Adam: https://github.com/bitsandbytes-foundation/bitsandbytes/blob/723e2162fd514deee66268106775f4bfbee25794/bitsandbytes/optim/adam.py#L77-L135
AdamW: https://github.com/bitsandbytes-foundation/bitsandbytes/blob/723e2162fd514deee66268106775f4bfbee25794/bitsandbytes/optim/adamw.py#L69-L127

@saurabh-kataria Also, it seems like you use different batch size for bnb 8-bit Adam(W?) and torchao 8-bit AdamW (8192 vs 4096). I would expect the loss curves to match exactly if you use the same setup for both optimizers.

@gau-nernst You're right, they're both effectively AdamW. The default hyperparam for weight decay is 0 in the bnb Adam, but the implementation is the same. I can see how this creates confusion (along with how AMSgrad isn't actually implemented either). We can log an issue on our end for this but I'm not sure how soon we can get to it.

I added two experiments to confirm that

torchao Adam8bit with my hyper parameters is not converging. Actually, even in theory Adam with weight decay is problematic. I use same batch size as bnb Adam8bit (which is actually AdamW as we realize) now as 8192. In theory, weight decay should not be supported with Adam but I guess user demands them, uses them, and it is also present in other libraries.
With torchao AdamW8bit, I get same learning curve a s bnb Adam8bit. (with my hyper params, it becomes bnb AdamW8bit). As a high-level user, my problem is solved I think. I'll just use torchao AdamW8bit or bnb Adam8bit and avoid torchao Adam8bit with weight decay for now in my setup.

P.S. I found out torch Adam is also unstable like torchao Adam8bit on my setup so the issue is just with my choice of hyper parameters and other experiment specific stuff. No issues with torchao. Sorry for the confusion and thanks for your inputs.

@saurabh-kataria  were you able to use these low-bit optims with FSDP2? Dtensor


Update LICENSE.txt

updated year  2016 -> 2018 in LICENSE file

Sorry, looks like this change was already made.


Closed #1

Coverage remained the same at 100.0% when pulling 2e196b946c867b0f5e3a84d9759c652a5d582f93 on feature/sort into 6b9aabafe944cce2410560a43c9059099c8f5f3d on master.


Open-remarkable-shutdown not resolved during bootstrap installation on RM1 <IP_ADDRESS>6

Probably a self-inflicted wound from previous upgrade attempts, but I'm not sure how best to further diagnose and fix:
Downgraded my RM1 to <IP_ADDRESS>6 using the codexctl tool with the --rm1 switch, rebooted and confirmed I was now on that version, then tried to install toltec using the commands in the readme.
It is reporting:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for toltec-base:
 *      open-remarkable-shutdown
 * opkg_install_cmd: Cannot install package toltec-base.
ERROR: Unexpected error on line bootstrap:233 in function main

Trying to run toltecctl status reports:  -sh: toltecctl: command not found
Full console log of the toltec install sequence attached below.  Let me know if there's anything I can do to help with analysis.

Connecting to toltec-dev.org (<IP_ADDRESS>:80)
wget: can't open 'bootstrap': File exists
reMarkable: ~/ rm -rf bootstrap
reMarkable: ~/ wget http://toltec-dev.org/bootstrap
Connecting to toltec-dev.org (<IP_ADDRESS>:80)
saving to 'bootstrap'
bootstrap            100% |**************************|  8230  0:00:00 ETA
'bootstrap' saved
reMarkable: ~/ echo "da2aebc6c09ec14f1217f31a5c79a4e74a7c3540b17d67adcd02a60cad72b1c9  bootstrap" | sha256sum -c && bash bootstrap
bootstrap: OK
INFO:  Fetching secure wget
INFO:  Bootstrapping Opkg
2024-06-04 19:38:33 URL:https://bin.entware.net/armv7sf-k3.2/installer/opkg [752572/752572] -> "/home/root/.local/bin/opkg" [1]
2024-06-04 19:38:35 URL:https://toltec-dev.org/stable/rmall/toltec-bootstrap_0.4.1-1_rmall.ipk [10410/10410] -> "/tmp/toltec-bootstrap_0.4.1-1_rmall.ipk" [1]
INFO:  Installing Toltec and Entware
Mounting '/home/root/.entware' over '/opt'
Created symlink /etc/systemd/system/local-fs.target.wants/opt.mount → /lib/systemd/system/opt.mount.
Downloading https://bin.entware.net/armv7sf-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Downloading https://toltec-dev.org/stable/rmall/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/toltec-rmall
Downloading https://toltec-dev.org/stable/rm1/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/toltec-rm1
Downloading https://toltec-dev.org/stable/rmallos3/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/toltec-rmallos3
Downloading https://toltec-dev.org/stable/rm1os3/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/toltec-rm1os3
Installing entware-opt (227000-3) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/entware-opt_227000-3_all.ipk
Installing libgcc (8.4.0-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libgcc_8.4.0-11_armv7-3.2.ipk
Installing libc (2.27-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libc_2.27-11_armv7-3.2.ipk
Installing libssp (8.4.0-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libssp_8.4.0-11_armv7-3.2.ipk
Installing libpthread (2.27-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libpthread_2.27-11_armv7-3.2.ipk
Installing librt (2.27-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/librt_2.27-11_armv7-3.2.ipk
Installing libstdcpp (8.4.0-11) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libstdcpp_8.4.0-11_armv7-3.2.ipk
Installing entware-release (2024.02-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/entware-release_2024.02-1_all.ipk
Installing zoneinfo-core (2024a-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/zoneinfo-core_2024a-1_armv7-3.2.ipk
Installing zoneinfo-asia (2024a-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/zoneinfo-asia_2024a-1_armv7-3.2.ipk
Installing zoneinfo-europe (2024a-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/zoneinfo-europe_2024a-1_armv7-3.2.ipk
Installing findutils (4.9.0-1a) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/findutils_4.9.0-1a_armv7-3.2.ipk
Installing terminfo (6.4-2a) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/terminfo_6.4-2a_armv7-3.2.ipk
Installing libpcre2 (10.42-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/libpcre2_10.42-1_armv7-3.2.ipk
Installing grep (3.11-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/grep_3.11-1_armv7-3.2.ipk
Installing locales (2.27-9) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/locales_2.27-9_armv7-3.2.ipk
Installing opkg (2022-02-24-d038e5b6-2) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/opkg_2022-02-24-d038e5b6-2_armv7-3.2.ipk
Installing entware-upgrade (1.0-1) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/entware-upgrade_1.0-1_all.ipk
Configuring libgcc.
Configuring libc.
Configuring libssp.
Configuring libpthread.
Configuring librt.
Configuring terminfo.
Configuring libpcre2.
Configuring grep.
Configuring locales.
Entware uses separate locale-archive file independent from main system
Creating locale archive /opt/usr/lib/locale/locale-archive
Adding en_EN.UTF-8
Adding ru_RU.UTF-8
You can download locale sources from http://bin.entware.net/other/i18n_glib227.tar.gz
You can add new locales to Entware using /opt/bin/localedef.new
Configuring entware-upgrade.
Upgrade operations are not required.
Configuring opkg.
Configuring zoneinfo-core.
Configuring zoneinfo-europe.
Configuring zoneinfo-asia.
Configuring libstdcpp.
Configuring entware-release.
Configuring findutils.
Configuring entware-opt.
Installing toltec-base (1.3-4) to root...
Downloading https://toltec-dev.org/stable/rm1os3/toltec-base_1.3-4_rm1os3.ipk
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for toltec-base:
 *      open-remarkable-shutdown
 * opkg_install_cmd: Cannot install package toltec-base.
ERROR: Unexpected error on line bootstrap:233 in function main
ERROR: This script failed to install. If you can't solve the above
       issue yourself, please report it at:

           <https://github.com/toltec-dev/toltec/issues>

       (Please also include these error logs to help solving the
       problem faster. Thank you!)
Removing mount over '/opt'
Removed /etc/systemd/system/local-fs.target.wants/opt.mount.
reMarkable: ~/ toltecctl status
-sh: toltecctl: command not found
reMarkable: ~/```

In case it helps:
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root               235721    221574         0 100% /
devtmpfs                107168         0    107168   0% /dev
tmpfs                   238752         0    238752   0% /dev/shm
tmpfs                   238752       628    238124   0% /run
tmpfs                   238752         0    238752   0% /sys/fs/cgroup
tmpfs                   238752         8    238744   0% /tmp
tmpfs                   238752         0    238752   0% /var/volatile
/dev/mmcblk1p1           19486     11244      8242  58% /var/lib/uboot
/dev/mmcblk1p7         6847352   1000388   5476092  15% /home
reMarkable: ~/ ls -l log.txt
-rw-r--r--    1 root     root        187698 Jun  4 19:35 log.txt
reMarkable: ~/ grep -i error log.txt
Feb 11 15:59:27.869 Warning: Error on requesting integrations with : Not received, error: optional(Unspecified network error) (/home/runner/work/xochitl/xochitl/src/syncthirdparty/src/network.cpp:179, operator())
Feb 19 00:11:18.598 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Mar 16 23:50:40.573 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Mar 16 23:58:19.580 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Jun 02 00:03:36.571 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Jun 03 18:29:57.605 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Jun 03 19:01:58.734 Critical: cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm10x.json, error:No such file or directory (/home/runner/work/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40, loadConfig)
Jun 03 21:46:46.033 Warning: Network error: QNetworkReply::OperationCanceledError Payload: "" (:0, )
Jun 03 22:08:30.163 Warning: Error on requesting integrations with url  QUrl("https://internal.cloud.remarkable.com/integrations/v1/") (:0, )
Jun 03 22:08:30.164 Warning:    with error  QNetworkReply::HostNotFoundError (:0, )
Jun 03 22:09:01.001 Warning: user-authenticator-cli whoami returned with error: Type::NoStart with message Given executable path 'user-authenticator-cli', could not start with error 'execvp: No such file or directory' (/home/runner/work/xochitl/xochitl/src/xofm/modules/user/authcli.cpp:157, updateLoggedInState)
Jun 03 22:23:34.755 Warning: Network error: QNetworkReply::OperationCanceledError Payload: "" (:0, )
Jun 03 22:23:42.737 Warning: Error on requesting integrations with url  QUrl("") (:0, )
Jun 03 22:23:42.738 Warning:    with error  QNetworkReply::OperationCanceledError (:0, )
Jun 03 22:25:36.722 Warning: Network error: QNetworkReply::OperationCanceledError Payload: "" (:0, )
Jun 03 22:25:38.243 Warning: Error on requesting integrations with url  QUrl("") (:0, )
Jun 03 22:25:38.247 Warning:    with error  QNetworkReply::OperationCanceledError (:0, )
Jun 03 22:25:40.737 Warning: Error on requesting integrations with url  QUrl("") (:0, )
Jun 03 22:25:40.739 Warning:    with error  QNetworkReply::OperationCanceledError (:0, )
Jun 04 19:35:00.723 Warning: Network error: QNetworkReply::OperationCanceledError Payload: "" (:0, )
reMarkable: ~/

If

Good 'nuff. Try again next week.
Thanks again for all the work you've put into this!

Good 'nuff. Try again next week.
Thanks again for all the work you've put into this!

Next week? I'd recommend trying right now. You opened this like 20 minutes before the changes made it to stable :)

Looks good:
Enabled: Yes
Supported: Yes
Branch: stable
Model: rm1
OS: <IP_ADDRESS>6
reMarkable: ~/ opkg list oxide
oxide - 2.7-7 - Launcher application
reMarkable: ~/

Any guidance on whether/why to start with oxide, remux, or draft? (Feel free to tell me to Read The Fine Manual; I'm just trying to quickstart.)

https://remarkable.guide/guide/software/launcher.html
I would not recommend draft at this point.


Zenoh services

Description
Follow on for service support after #209
Fixes
Closes: number
Checklist

[ ] Update CHANGELOG.md

Decided to combine MRs again.


Jest unit test coverage not reflecting in sonar cloud

Need to figure out why the Jest unit test coverage is not being reflect in the sonar cloud scan

Issue moved to US-EPA-CAMD/easey-ui #632 via ZenHub

Issue moved to US-EPA-CAMD/easey-ui #632 via ZenHub


Add pytest shard for notebook testing

Description
Shard pytest unit tests into finer grained groupings
Why?

performance: requirements_dev.txt is getting large, the size of this file impacts the performance of running tests because these requirements have to be downloaded and built (or retrieved from cache).  circle doesnt behave well with caches larger than 500MB
organization: eventually sharding into different directories should make it easier to know where to add your test and limit the scope of what you need to understand when debugging
customizability: by sharding we can enable some features for certain shards, for example multiprocessing coverage collection
metrics: finer grained metrics about coverage with sharded pytest -- eventually

Why this might be a bad idea

more complicated,  as you add a new test, you might need to think harder about where it goes, what resources it uses -- this can be mitigated with better devel docs
complexity in the short term -- codecov counts have to be manually increased for each shard that is collecting converage
In transition between non sharded to sharded tests there might be some code duplication (config files for testing)

Near term future work:

move more things into shards (tensorflow / pytorch?)
conftest.py cleanups to not load everything (split out fixtures into separate files /shards?)
enable multiprocessing coverage in the notebook shard to get more coverage credit for notebook tests (might be harder than I realized -- consider switching to: https://github.com/chrisjsewell/pytest-notebook/pull/3/commits/5e9659c25dd16fbb52313343c31fd912e9acb6ba -- more details about how this works: https://github.com/chrisjsewell/pytest-notebook/blob/40381be0963a8866d1a46994595844bbfb4e66c1/pytest_notebook/execution.py#L77 -- note, it injects cells to setup and teardown coverage.py...)
add some make targets to support recommended testing for different types of platforms /use cases.   right now we have make test-short.   update dev docs based on these recommended top level commands.  for example  if your change has nothing to do with ml frameworks you might not want to wait for all that to run.

Testing

Run the circleci suite and make sure that coverage is similar.

I wonder if we can move the ml frameworks tests into their own group and only test them on a recent python version...

agreed, this was just the first step, the ML frameworks is the next one because I need it to run more natively on M1 mac :)


Validation error - you must specify a key value

Hi,
I'm trying to use this library for sending emails but I'm getting this strange error: "You must specify a key value".
Here is the code (coffeescript) I'm using:
nodemailer = require 'nodemailer'
mandrillTransport = require "nodemailer-mandrill-transport"

transportOptions = auth: api_key: process.env.API_KEY
transport = nodemailer.createTransport mandrillTransport transportOptions

fromEmail = process.env.FROM_EMAIL
replyEmail = process.env.REPLY_EMAIL
toEmail = process.env.TO_EMAIL

sendOpts =
	from: fromEmail
	to: toEmail
	replyTo: replyEmail
	subject: subject
	html: html

transport.sendMail sendOpts, (err, response) ->
       console.log "resp: ", err, response

what should be the problem?

Please share the stack trace.

try to modify your transportOptions to :
transportOptions = auth: apiKey: process.env.API_KEY


Enables block hash use for getTransactionCount

Description:

Related issue(s):
Fixes #1856
Notes for reviewer:

Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Codecov Report
Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (4a2e9e2) 78.10% compared to head (6a5c177) 78.54%.
 Consider uploading reports for the commit d2a62d1 to get more accurate results

Files
Patch %
Lines

packages/relay/src/lib/eth.ts
66.66%
1 Missing and 3 partials :warning:

packages/relay/src/lib/clients/mirrorNodeClient.ts
33.33%
0 Missing and 2 partials :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1931      +/-   ##
==========================================
+ Coverage   78.10%   78.54%   +0.44%
==========================================
  Files          39       27      -12
  Lines        3060     2438     -622
  Branches      616      504     -112
==========================================
- Hits         2390     1915     -475
+ Misses        479      366     -113
+ Partials      191      157      -34

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


trading session list

"Trading Session List Request" and "Trading Session List Response". The two terms are used to distinguish between the two different messages that can be used to get information about trading sessions.
The "Trading Session List Request" is a message that is sent to a market data provider to request a list of all the trading sessions that are currently active. The "Trading Session List Response" is a message that is sent back by the market data provider in response to the request, containing a list of all the trading sessions that are currently active.

trading session list

TAG
FIELD NAME
FIXML
REQ'D
COMMENTS

Y
MsgType = BI

335
TradSesReqID
@ReqID
Y
Must be unique, or the ID of previous Trading Session Status Request (g) to disable if SubscriptionRequestType (263) = Disable previous Snapshot + Update Request (2).

336
TradingSessionID
@SesID
N
Trading Session for which status is being requested

625
TradingSessionSubID
@SesSub
N

207
SecurityExchange
@Exch
N

338
TradSesMethod
@Method
N
Method of Trading

339
TradSesMode
@Mode
N
Trading Session Mode

263
SubscriptionRequestType
@SubReqTyp
Y

Trading session list request reject

TAG
FIELD NAME
FIXML
REQ'D
COMMENTS

Y

MsgType = BK

335
TradSesReqID
@ReqID
Y
Matches the ID of the rejected Trading Session List Request (BI) message.

340
TradSesStatus
@Stat
Y
Indicates the status of the trading session request. Set to "0" (Rejected) for a request reject message.

567
TradSesStatusRejReason
@StatRejRsn
Y
Reason for rejecting the trading session request.

58
Text
@Txt
N
Optional additional text providing further details about the rejection.

354
EncodedTextLen
@EncTxtLen
C
Must be set if EncodedText (355) field is specified and must immediately precede it.

355
EncodedText
@EncTxt
C
Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field.

Y

Note:The TradSesReqID (335) field should match the TradSesReqID in the original Trading Session List Request (BI) message that is being rejected.The TradSesStatus (340) field is set to "0" to indicate that the request has been rejected.The TradSesStatusRejReason (567) field provides the reason for rejecting the trading session request. This field is mandatory in the Trading Session List Request Reject message.The Text (58) field is an optional field that can provide additional information or details about the rejection.If the Text field contains non-ASCII characters, the EncodedTextLen (354) field must be set to indicate the length of the EncodedText (355) field, which contains the encoded representation of the Text field.Finally, the message ends with the standard Message Trailer section.

The TradSesReqID (335) field is used to provide a unique identifier for the Trading Session List Request (BI) message. It should be a value that hasn't been used before or can be used to refer to a previous Trading Session Status Request (g) message.
In the case where SubscriptionRequestType (263) is set to "2" (Disable previous Snapshot + Update Request), the TradSesReqID can refer to the ID of the previous Trading Session Status Request message that you want to disable. This allows you to unsubscribe from a previous subscription request and stop receiving updates for that particular request.
By specifying the TradSesReqID of a previous request, the counterparty understands that you want to disable or unsubscribe from that particular request. It helps in managing the subscription and ensures that you receive the appropriate response or updates based on your request.
In summary, the TradSesReqID in the Trading Session List Request (BI) message must be unique to identify a new request. Alternatively, it can be used to refer to the ID of a previous Trading Session Status Request message to disable or unsubscribe from that request if SubscriptionRequestType is set to "2".

In Trading Session List Request and Trading Session Status Request, does the TradSesReqID have to be the same for each?

In Trading Session List Request and Trading Session Status Request, does the TradSesReqID have to be the same for each?

No, the TradSesReqID does not have to be the same for each Trading Session List Request (BI) and Trading Session Status Request (g) message.
The TradSesReqID serves as a unique identifier for each individual request, allowing you to differentiate between multiple requests and their corresponding responses. Each request can have its own unique TradSesReqID.
When you send a Trading Session List Request (BI) message, you assign a unique TradSesReqID to that particular request. This TradSesReqID is used to identify and match the response to that specific request.
Similarly, when you send a Trading Session Status Request (g) message, you assign a unique TradSesReqID to that request as well. This TradSesReqID is used to identify and match the response to the corresponding request.
By using unique TradSesReqID values for each request, you can easily correlate the request with its respective response and manage multiple requests simultaneously. It provides a way to track and associate the specific details and updates related to each individual request.

https://btobits.com/fixopaedia/fixdic44/index.html?tag_167_SecurityType.html

is the client responsible for sending trading session list request?

Yes, in most cases, the client or the requesting party is responsible for sending the Trading Session List Request (BI) message. The client initiates the request to obtain information about the available trading sessions and their respective states in a market.
The client can be a trader, a trading system, or any entity that wants to interact with the market and requires information about the trading sessions. They would send the Trading Session List Request message to the counterparty, such as a trading venue, exchange, or broker, who will respond with a Trading Session List (BJ) message containing the requested information.
The client defines the parameters of the request, such as specifying a particular trading session, trading method, trading mode, or subscription type. They also provide a unique identifier (TradSesReqID) for the request to facilitate matching with the corresponding response.
By initiating the Trading Session List Request, the client can gather crucial information about the trading sessions available in the market and make informed decisions regarding their trading activities.


fix: remove heritage from the market stats text #trivial

The type of this PR is: Bugfix

This PR resolves CX-1018
Description

Remove heritage from the market stats text

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a CHANGELOG.yml entry or my changes do not require one.

#squashongreen

I added squash on green here since it's trivial text change


{App Service}: Update Web SDK to 7.1.0 and API to version 2022-09-01

Related command
This PR updates the Python Web SDK (azure-mgmt-web) version to 7.1.0 and the default api version to 2022-09-01. No breaking changes were introduced in this version according to https://pypi.org/project/azure-mgmt-web/.
Description
All appservice tests have been rerun and new recordings have been uploaded
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

App Service


rustpython?

Description
i suggest using rustpython as an interpreter option?
https://rustpython.github.io
Suggested solution
rustpython can compile to webassembly too.
Alternative
No response
Additional context
No response

I don't think our codebase assumes that marimo is executed using CPython (correct me if I am wrong). I think you could install RustPython, get pip, and try using marimo today.
Do you mean using RustPython as an alternative to Pyodide for WASM notebooks? Or what kind of integration would you like to see?

why, yes! using rustpython for WASM notebooks could prove really useful, and is a promising altermative to pyodide.
i really have no experience and am sorry i can't help more. have a nice day!


Setting FOC Ts = 45us creates current oscillations

Setting the FOC Ts to 45us (instead of 37.5us , ndr) makes the motor spin with more oscillations, is this expected?

Originally posted by @mfussi66 in https://github.com/robotology/icub-firmware-models/issues/84#issuecomment-1983343711

This is a test with 45us . Note that with 65mA of target we get close to the no-load current.

Plots with 37.5us to follow asap.

This is a test with 45us , and the AMC_BLDC architectural model.
Note that with 65mA of target we get close to the no-load current.

Now with the 37.5us :

At a first glance, the behaviour is very much comparable between the two.
There's only an issue with -65mA, but it's probably due to a missing significant resistant load.

I think that we can reasonably consider the two outcomes very similar 👍🏻
Thanks for the test, @mfussi66!


docs: v0.26.0 update

What kind of change does this PR introduce?
Docs update for v0.26.0

Coverage remained the same at 100.0% when pulling c174b0f0c9b82ed87a1b270cef7a3dfab597f793 on v0.26-docs into 79b3262560b52e2c8b70b40cab1f6ec9570641b4 on master.


Exporting to pdf does not preserve LaTeX font

See for example the difference between the proper gitpitch rendering and the non math fonts of the corresponding pdf export.

System Version: macOS 10.12.3 (16D32)
Kernel Version: Darwin 16.4.0
Tested browsers:

Chrome Version 56.0.2924.87 (64-bit)
Safari Version 10.0.3 (12602.4.8)
Firefox Version 51.0.1 (64 bits)

Hi @boileaum thanks for reporting this issue. Looks like it might be a duplicate of #13. The issue is caused by a font config problem on the GitPitch.com Ubuntu server. I've not yet been able to find a config that works when printing MathJax through decktape.
Issue #13 has a suggested workaround if you want your PDF to look it's best, run a local copy of the GitPitch server on OSX and print from there.

Hi @boileaum just fyi, a new printing option is now available on all GitPitch presentations giving you the ability to try and print directly within the browser. The new print options are presented as follows:

The Generate PDF on Server is the original print support. The Generate PDF in Browser is new and is available to you if you are viewing your presentation in Chrome. When you select this print option a new browser window will open. Don't worry if the rendering in the new window looks odd, the applied styling is only to support PDF generation. In the newly opened browser window do the following:

Open the in-browser print dialog (CTRL/CMD+P).
Change the Destination setting to Save as PDF.
Change the Layout to Landscape.
Change the Margins to None.
Enable the Background graphics option.
Click Save.

Here is a sample GitPitch that demonstrates many uses of MathJax formulas:
https://gitpitch.com/gitpitch/feature-demo/mathjax

The generated PDF using the new Generate PDF in Browser feature for this presentation can be seen here: feature-demo_mathjax-live.pdf. You can see that the math fonts are now in use within the PDF.
There still seems to be an issue with printing your own test presentation, in fact your specific formula. The rendering must differ somehow from those formulas in the sample presentation linked above. I don't understand why yet.
Anyway, depending on what you're doing the new print feature should give you better looking PDFs for some if not yet all math formulas.

Hi @boileaum a fix has just been pushed for the Generate PDF in Browser feature that should address all of the issues raised on this thread, including solving the outstanding problem printing the sample presentation with MathJax formulas that you provided.
Now closing this issue as resolved.

Great, thank you! I may now advertise gitpitch to my coworkers (who are mathematicians)!
As soon as I have time for it, I will test a private instance of gitpitch in our lab.


generate implant/beacon error

What to generate?: implant/beacon
OS/Arch/Format: windows/amd64/exe
Listener URL to Connect: https-mantaray : https://<IP_ADDRESS>:65331
Sleep [default: 3]:
Jitter [default: 5]:
KillDate (UTC) [default: 2025-04-01 09:04:47]:
Enable Indirect Syscalls? [y/n]: y

Implant Options
===============
Type              : beacon
Target OS         : windows
Target Arch       : amd64
Format            : exe
Listener          : https://<IP_ADDRESS>:65331
Sleep             : 3
Jitter            : 5
KillDate (UTC)    : 2025-04-01 09:04:47
Indirect Syscalls : true

Proceed? [y/n]: y
[x] rpc error: code = Unknown desc = cmake error:
/home/xxxxxx/C2/hermit/payload/win/implant/src/core/syscalls.cpp: In function ‘Syscalls::SYSCALL Syscalls::FindSyscall(HMODULE, LPCSTR)’:
/home/xxxxxx/C2/hermit/payload/win/implant/src/core/syscalls.cpp:11:32: warning: converting to non-pointer type ‘UINT_PTR’ {aka ‘long long unsigned int’} from NULL [-Wconversion-null]
   11 |         UINT_PTR pNtFuncAddr = NULL;
      |                                ^~~~
[client] Hermit >

Thanks for report!
I confirmed that the same error on my another environment (Parrot OS), so I fixed it just now and the error disappeared in my environment. Please check it out.
Specifically, the following code changed at /home/xxxxxx/C2/hermit/payload/win/implant/src/core/syscalls.cpp:11:
// UINT_PTR pNtFuncAddr = NULL;
UINT_PTR pNtFuncAddr = (UINT_PTR)nullptr;


[Bug]: NeoPixel Pulse Function not working properly

What happened?
LED is pulsing, but it is just barely, occurs too quickly and does not reach a maximum dimness. Rather, it seems like the brightness resets to the maximum value too quickly.
Maybe should check for a negative number somewhere, the counters being reset, or some other bug in the NeoPixel functions.
Version
Thetis-Firmware v0.4.0-beta
ThetisLib v1.1.2
What board revisions are you seeing the problem on?
Rev F4
Relevant PlatformIO log output
No response
Relevant ESP Debug log output
No response

Debug log from testing with Firmware v0.4.0-beta
_pixelBrightness: 32
_isBrightnessInc: 0
_pixelBrightness: 30
_isBrightnessInc: 0
_pixelBrightness: 28
_isBrightnessInc: 0
_pixelBrightness: 26
_isBrightnessInc: 0
_pixelBrightness: 24
_isBrightnessInc: 0
_pixelBrightness: 22
_isBrightnessInc: 0
_pixelBrightness: 20
_isBrightnessInc: 0
_pixelBrightness: 18
_isBrightnessInc: 0
_pixelBrightness: 16
_isBrightnessInc: 0
_pixelBrightness: 14
_isBrightnessInc: 0
_pixelBrightness: 12
_isBrightnessInc: 0
_pixelBrightness: 10
_isBrightnessInc: 0
_pixelBrightness: 8
_isBrightnessInc: 0
_pixelBrightness: 6
_isBrightnessInc: 0
_pixelBrightness: 4
_isBrightnessInc: 0
_pixelBrightness: 2
_isBrightnessInc: 0
_pixelBrightness: 0
_isBrightnessInc: 1
_pixelBrightness: 2
_isBrightnessInc: 1
_pixelBrightness: 4
_isBrightnessInc: 1
_pixelBrightness: 6
_isBrightnessInc: 1
_pixelBrightness: 8
_isBrightnessInc: 1
_pixelBrightness: 10
_isBrightnessInc: 1
_pixelBrightness: 12
_isBrightnessInc: 1
_pixelBrightness: 14
_isBrightnessInc: 1
_pixelBrightness: 16
_isBrightnessInc: 1
_pixelBrightness: 18
_isBrightnessInc: 1
_pixelBrightness: 20
_isBrightnessInc: 1
_pixelBrightness: 22
_isBrightnessInc: 1
_pixelBrightness: 24
_isBrightnessInc: 1
_pixelBrightness: 26
_isBrightnessInc: 1
_pixelBrightness: 28
_isBrightnessInc: 1
_pixelBrightness: 30
_isBrightnessInc: 1
_pixelBrightness: 32


Is there a built in editor like nano or vim?

I am just curious if there is a text editor built in to LibTerm such as nano or vim. If not, would it be possible to create one or would iOS restrict that?

No there isn't for now. Vim and nano would be very difficult to integrate in LibTerm because, basically, the delete key doesn't work on LibTerm. I mean, when input is sent, the app waits the user tap "Return" because I could not make the backspace key work. Also for the cursor, and the terminal. iOS doesn't restrict that. In a separate app just made for running vim, it's easier and there are vim ports for iOS: https://itunes.apple.com/us/app/ivim/id1266544660?mt=8.
I will add a graphic text editor with syntax highlighting in LibTerm.

Ok thank you. I just want to be able to edit files from the command line.

I really love iVim and use it daily. Is there any chance you and the author of iVim could collaberate on a project to merge the two apps together.


execute show all windows causes crash

Starting with 4006 (or around then) I am seeing occasional crashes with the "execute show all windows" action  (which I have assigned to a trigger) as I arrow through the list. I have filed crash reports and can email them in if you like. Here are the console logs:
10/21/13 6:34:57.834 PM Quicksilver[1457]: An uncaught exception was raised
10/21/13 6:34:57.834 PM Quicksilver[1457]: *** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[8]
10/21/13 6:34:57.835 PM Quicksilver[1457]: (
    0   CoreFoundation                      0x00007fff8e9cbb06 __exceptionPreprocess + 198
    1   libobjc.A.dylib                     0x00007fff8e1d93f0 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8e97e117 -[__NSPlaceholderArray initWithObjects:count:] + 119
    3   CoreFoundation                      0x00007fff8e980cbf -[NSArray initWithArray:range:copyItems:] + 591
    4   UI Access                           0x000000010d78cca7 WindowDictsForApp + 211
    5   UI Access                           0x000000010d78f808 objc_unretainedPointer + 9914
    6   libdispatch.dylib                   0x00007fff95204f01 _dispatch_call_block_and_release + 15
    7   libdispatch.dylib                   0x00007fff952010b6 _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x00007fff952021fa _dispatch_worker_thread2 + 304
    9   libsystem_c.dylib                   0x00007fff931d3cdb _pthread_wqthread + 404
    10  libsystem_c.dylib                   0x00007fff931be191 start_wqthread + 13
)
10/21/13 6:34:57.836 PM Quicksilver[1457]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[8]'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff8e9cbb06 __exceptionPreprocess + 198
    1   libobjc.A.dylib                     0x00007fff8e1d93f0 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8e97e117 -[__NSPlaceholderArray initWithObjects:count:] + 119
    3   CoreFoundation                      0x00007fff8e980cbf -[NSArray initWithArray:range:copyItems:] + 591
    4   UI Access                           0x000000010d78cca7 WindowDictsForApp + 211
    5   UI Access                           0x000000010d78f808 objc_unretainedPointer + 9914
    6   libdispatch.dylib                   0x00007fff95204f01 _dispatch_call_block_and_release + 15
    7   libdispatch.dylib                   0x00007fff952010b6 _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x00007fff952021fa _dispatch_worker_thread2 + 304
    9   libsystem_c.dylib                   0x00007fff931d3cdb _pthread_wqthread + 404
    10  libsystem_c.dylib                   0x00007fff931be191 start_wqthread + 13
)
10/21/13 6:34:59.142 PM com.apple.launchd.peruser.199179[780]: ([0x0-0x35035].com.blacktree.Quicksilver[1457]) Job appears to have crashed: Abort trap: 6
10/21/13 6:34:59.366 PM ReportCrash[83145]: Saved crash report for Quicksilver[1457] version 1.1.2 (4006) to /Users/drees/Library/Logs/DiagnosticReports/Quicksilver_2013-10-21-183459_drees-macbookpro.crash

Hi there @studgeek @banjoe-zz @arezeeman - are you still able to reproduce this issue with the latest version of Quicksilver?
I will close this issue now, but if you're still finding issues, then please comment and we can re-open.
Thanks


Retrieve config from document database

Retrieve datasources configuration, parser configuration and entities from document database https://cloud.mongodb.com/v2/626fa88ee026552ec7e16d33#clusters/detail/SOFTCluster

For this the guest user should be used, but it would be great with support for a non-committed .env file where the authentication configurations could be changed.
By non-committed I mean that it the .env file should never be published in the repo and added to .gitignore.


[Ready for decision]: ADR for arc4 by default

ARCs come and go, the AVM is here forever. I'm in between 2-3 but for compatibility and ease of documentation with algopy I would go with 2

avm4lyfe :P

ARCs come and go, the AVM is here forever. I'm in between 2-3 but for compatibility and ease of documentation with algopy I would go with 2

I think the ARC4 is not just any regular ARC. It's the ABI. Any changes, even incredibly small ones, would have massive ripple effects on the ecosystem and have negative implications on composability and compatability. There is a graveyard of attempted amendments to the ABI for a reason. Also looking at other ecosystems, blockchain or otherwise, changing ABIs are rare and almost never a user-facing issue.
Within the language we can always support things on top of the ABI, but rarely should we try to change it (speaking as someone that has previously tried to change it). To quote a review comment I made

To be clear, there's a difference between changing the existing ABI and building on top of it. Maybe we have a new type timestamp that is used as a timestamp, but in the ARC4 signature it is still uint64 and encoded as such. timestamp would be reflected at higher levels like the language and ARC56. These sort of changes are possible without having to break anything.

If there were changes to the ABI, this should be a compiler option, not language syntax. How many people have written code that runs on Intel Macs and Apple Silicon Macs? A lot. How many of those developer even know what an ABI is? Probably a small percentage of them. Is the ABI used important? Of course, but I don't think it should impact the language.

Also I want to note the fact that decorator-based approach was the way TEALScript initially handled ABI routing. I got feedback from TypeScript developers that this felt foreign to them and I myself was initially against the current ABI-by-default approach TEALScript uses now which avoids decorators for most contracts, but it's what developers expressed as being the preferred way of doing things and I now tend to agree.

Also one thing I just thought of: The chosen option should allow for a mixture of ABI methods and a non-ABI router as this is really the most common use case when people choose not to use the ABI for everything.

If you had a non Abi router how would abi methods work?

TEALScript does this via a nonABIRouterFallback decorator.
class NonABIExample extends Contract {
  private add(x: uint64, y: uint64): uint64 {
    return x + y;
  }

  abiAdd(x: uint64, y: uint64): uint64 {
    return this.add(x, y);
  }

  @nonABIRouterFallback.call('NoOp')
  nonAbiAdd(): void {
    const x = btoi(this.txn.applicationArgs![0]);
    const y = btoi(this.txn.applicationArgs![1]);
    log(itob(this.add(x, y)));
  }
}

In this example, abiAdd is a ABI method, add is a subroutine, and nonAbiAdd is the method that's executed when no method selector is matched for NoOp calls.

I think it’s a fair point that avoiding boilerplate is good as long as it’s intuitive for the developer, which public/private methods are for typescript developers. One of the realisations we had for Algorand Python was that we realised that a contract instance (app) on chain effectively became a contract instance in an object oriented sense so we doubled down on that analogy in the Algorand python docs. If we take the same analogy here then it very much makes sense to use public / private in that way. And in fact, since external contracts can call an abi method it works well.
We also should support protected methods as a way of abstracting reusable subroutines for base classes in the code reuse model.

Oh, so you can co-mingle abi and non abi, cool, super interesting feature. Presumably you can only have 1 fallback for a given on-complete? And then maybe a separate bare method too?

I think it’s a fair point that avoiding boilerplate is good as long as it’s intuitive for the developer, which public/private methods are for typescript developers. One of the realisations we had for Algorand Python was that we realised that a contract instance (app) on chain effectively became a contract instance in an object oriented sense so we doubled down on that analogy in the Algorand python docs. If we take the same analogy here then it very much makes sense to use public / private in that way. And in fact, since external contracts can call an abi method it works well.
We also should support protected methods as a way of abstracting reusable subroutines for base classes in the code reuse model.

Yeah this is exactly how I wanted developer to think of TEALScript contracts. public, private, protected is nice because every developer understands it.

Oh, so you can co-mingle abi and non abi, cool, super interesting feature. Presumably you can only have 1 fallback for a given on-complete? And then maybe a separate bare method too?

Yeah exactly. For TEALScript I route differently for create+OC and call+OC. You could also define a bare method.
For example, the routing for the above looks like
*call_NoOp:
	method "abiAdd(uint64,uint64)uint64"
	txna ApplicationArgs 0
	match *abi_route_abiAdd

	// !!!! WARNING: non-ABI routing
	callsub nonAbiAdd

Without the fallback it would just err without a match.

Makes sense

After thinking about it some more do we really benefit from having multiple classes? I think the only tangible con to have a single ABI-by-default class is

The current implementation in TealScript outputs a lot of redundant teal in scenarios where an advanced user wants to do their own routing

Which is true in some scenarios, but the amount of overhead is extremely small. This can also be reduced depending on how PuyaTS routes OnCompletes. The weight of complexity and additional things we'd need to document/maintain seems to be much greater than the very very small amount of users that would want direct ApprovalProgram control (and to be honest ,I can't think of a use-case where you would want this).
For the other two cons

Doesn't give us a low friction path forward if ARC4 were to be replaced, or significantly updated

As mentioned elsewhere, the chances of this happening seem very low. If we need to target a different ABI, that should be a compiler option.

In TypeScript, class members are public by default which could lead to accidentally exposing a method which shouldn't be.

This could easily be solved by forcing public keyword and doesn't seem to really apply to the decision of ARC4 routing by default or not.

You could have a design where there is an overridable approvalProgram and if you override it then you lose ARC4 semantics and take full control of routing?

And if ARC4 ever got replaced in the future you could have a different base class so I think that's ok (and agreed it's low risk).

You could have a design where there is an overridable approvalProgram and if you override it then you lose ARC4 semantics and take full control of routing?

But you can already do that using the decorator-based approach in an ABI-by-default class. Simply don't define any ABI methods and the contract will immediately go to the "fallback".

And if ARC4 ever got replaced in the future you could have a different base class so I think that's ok (and agreed it's low risk).

I feel like targeting a specific ABI makes more sense at the compiler level than language level. Ie if I want to target ARC1337 ABI there's a --arc1337-abi flag.
Ultimately I don't feel strongly about it, it just seems a bit strange to have a class that no one would really use.

marking this one as ready as I think option 4 encompasses all the feedback received here

Two objections, the first might be outside the scope of this ADR

I'm not a huge fan of using constructor. I think this will add more confusion because the behavior of any given method will actually be split across the method itself and the constructor depending on if it's a create or not. I think it's a more simple to look at a method and know exactly everything that will happen when that method is called by looking at its definition.

What are the benefits of this approach for handling non-ABI routing over the decorator-based approach that TEALScript currently uses? This would be a significant breaking change for TEALScript and it's not entirely clear to me what the value add is here.

Two objections, the first might be outside the scope of this ADR
1. I'm not a huge fan of using `constructor`. I think this will add more confusion because the behavior of any given method will actually be split across the method itself and the constructor depending on if it's a create or not. I think it's a more simple to look at a method and know exactly everything that will happen when that method is called by looking at its definition.

It's idiomatic typescript to know that if you have a class that represents a contract - the logic that exists in the constructor will be run when the type is created, and it will run before any method you invoke. Even if we were to hide this behaviour - it would still need to exist as class field assignments are hoisted to the constructor so we would need to implement the same thing behind the scenes. Having said that, it's obviously optional to use so if it offends your sensibilities, simply don't make use of it in the contracts you write!

2. What are the benefits of this approach for handling non-ABI routing over the decorator-based approach that TEALScript currently uses? This would be a significant breaking change for TEALScript and it's not entirely clear to me what the value add is here.

I don't find the nonABIRouterFallback behaviour to be particularly self explanatory as I had to check the generated teal to see what it does. It's restrictive in that you would need to add a 'fallback' for each on completion action (and another for the create scenario(s)). It doesn't allow you to return a value. Perhaps most importantly, its implementation isn't compatible with puya's router generation.
I think unfortunately there will need to be a few breaking changes when moving from TealScript but at least this one is to a feature that nobody uses  😉

Having said that, it's obviously optional to use so if it offends your sensibilities, simply don't make use of it in the contracts you write!

The whole point of this product, and this ADR in particular, is to design a language that helps developers "fall into the pit of success". If we support constructors, a logical question would be "why does this contract have some create logic in the constructor and some create logic in this method?". The answer to that may be, "no reason". If we find ourselves creating a product that has multiple ways of doing things with no clear reason to do it one way or the other than that will lead to confusion. This has been common feedback on various developer tools within the ecosystem.

I don't find the nonABIRouterFallback behaviour to be particularly self explanatory as I had to check the generated teal to see what it does.

Agreed, but I think there is no way to this in a self-explanatory way because ABI routing (or lack thereof) is a rather complex concept.

It's restrictive in that you would need to add a 'fallback' for each on completion action (and another for the create scenario(s)).

One fallback can handle multiple actions

It doesn't allow you to return a value.

What users need this?

Perhaps most importantly, its implementation isn't compatible with puya's router generation.

My understanding is that one of the takeaways we will get from PuyaTS is learning how the backend needs to change to be more flexible so various frontends can integrate it.

I think unfortunately there will need to be a few breaking changes when moving from TealScript

Agreed and I have no problem with it if it provides value to actual users.

at least this one is to a feature that nobody uses 😉

Luckily the current mechanism in TEALScript was designed with constant input from one of the developers using this feature who happens to building some of the most important protocols and infrastructure in the ecosystem using TEALScript. I have no problem with breaking changes provided they can provide value for actual users. In this case we'd be doing a breaking change where the end-user value is not clear to me. I'm open to being convinced otherwise. As I said, I initially didn't want to support this feature at all but I listened to the users and built features so they can do what they needed to.

The whole point of this product, and this ADR in particular, is to design a language that helps developers "fall into the pit of success". If we support constructors, a logical question would be "why does this contract have some create logic in the constructor and some create logic in this method?". The answer to that may be, "no reason". If we find ourselves creating a product that has multiple ways of doing things with no clear reason to do it one way or the other than that will lead to confusion. This has been common feedback on various developer tools within the ecosystem.

There's two things here:

Conceptually we have a mental model that a deployed app is equivalent to an Object Oriented instance of the contract class, so a constructor makes a lot of sense in that mental model since it's an idiomatic part of an object oriented class
It's useful in that it allows you to define logic that will always be run on creation regardless of different create method(s) you may have.

I think there is no way to this in a self-explanatory way because ABI routing (or lack thereof) is a rather complex concept.

Personally, I think having a onUnmatchedRoute fallback that you can override, but throws an error by default is pretty easy to understand and is quite intuitive as an escape hatch. It also doesn't suffer from the non-obvious behaviour of defining a router override for the same on-complete multiple times.


Improve definition of choroid plexus cell

We currently just have

It looks like this should be defined as a specialised epithelial cell of the choroid plexus - cells form tight junctions with each other  & a brush border.  They function in the formation/production of cerebrospinal fluid. https://en.wikipedia.org/wiki/Choroid_plexus#Microanatomy

While the blood supply of the choroid plexus might be considered part of it and so might be covered by the general term, I doubt that the current term would be used for these, so suggest tightening the definition.

It looks like this should be defined as a specialised epithelial cell of the choroid plexus - cells form tight junctions with each other & a brush border. They function in the formation/production of cerebrospinal fluid.

This sounds like a description for 'choroid plexus epithelial cell'.
The intended meaning of 'choroid plexus cell' is difficult to discern since the dbxref only references the cell type in association with two genes (FOXJ1, TTR). These genes can already be associated with 'choroid plexus epithelial cell' as this class 'has part' some cilium (FOXJ1) and is 'part of' some 'choroid plexus', which secretes TTR.
I propose the following options:

keep 'choroid plexus cell' as a general term to group any cell of the choroid plexus, remove dbxref and set the class as a parent of 'choroid plexus epithelial cell'
if there is supporting literature for a distinct cell type, redefine the class so that it is clear how it differs from 'choroid plexus epithelial cell'
obsolete 'choroid plexus cell'

Obsoletion notice for 'choroid plexus cell' made on 17th of July. So far there have been no objections. Will proceed to obsolete this term.

I only saw it now, sorry! So, I happen to have worked with choroid plexus macrophages in the past.
Not sure if "choroid plexus macrophage" is a class needed by any stakeholder, but it is an example of non-epithelial choroid plexus cell.
E.g. https://pubmed.ncbi.nlm.nih.gov/34312005/ talking about "recent studies on ChP immune cells, with a focus on the ontogeny, development, and behaviors of ChP macrophages, the principal resident immune cells of the ChP."

I don't have any strong feelings on the decisions, though, I just wanted to add information that into the mix

Actually, the ChP macrophage class is already in CL: https://www.ebi.ac.uk/ols4/ontologies/cl/classes/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FCL_0000880
However, it states that ChP macrophages are located in and not part of the choroid plexus, so the reasoner does not catch it.
This seems like a grayish area.

Resolved by https://github.com/obophenotype/cell-ontology/pull/2088


Values passed via aliases ignores value type

Have an option named «save», which is boolean and has alias named «s»
executing two commands and checking type of that option «save»

cmd run --save=false
cmd run --s=false

save is type of boolean in first case and type of string in another.
P.S. Thanks for a lib, great work.

Thanks for opening up this issue, I will test it. Unfortunately, can't give any ETA, because I am very busy nowadays.
P.S. Glad you like Ronin! Psss, big update is coming soon!


Planet -> Planet Labs PBC

Forgot to update the provider name, the extension says we should use Planet Labs PBC instead of Planet...

@cholmes

Ah great, thanks! We should be using PBC.


[Transaction List v2] Pending status only if user signs the tx

Travis automatic deployment:
https://pr1890--safereact.review.gnosisdev.com/rinkeby/app

I still see the issue:

Steps:
Have a safe with 2 owners
Create the tx with the first one (a send funds is enough)
With the second one just confirm the 2nd signature, so uncheck the "Execute" checkbox
When the MM popUp shows up click on "Cancel"
Here you will see the red notification indicating the user cancel the MM tx and the Pending status on the tx status column

I still see the issue:

Steps:
Have a safe with 2 owners
Create the tx with the first one (a send funds is enough)
With the second one just confirm the 2nd signature, so uncheck the "Execute" checkbox
When the MM popUp shows up click on "Cancel"
Here you will see the red notification indicating the user cancel the MM tx and the Pending status on the tx status column

@francovenica you're right. Now it should be fixed.
Thanks!

Travis automatic deployment:
https://pr1890--safereact.review.gnosisdev.com/rinkeby/app


cellar door has a velar plosive

The output of:
--ipa --eng 'cellar door'

is:
ke̽lə̞ dɔ̈ː

But the k in IPA is (I believe) a https://en.wikipedia.org/wiki/Voiceless_velar_plosive which is a "k" sound, like in cut; this should be like an "s" sound, like snake. Similar words like celebrate, or cyborg also have this issue.
Very neat tool!

Thanks for bringing this issue to my attention! The IPA transcription for English does need some refinement. I'll be releasing version 1.9.0 of the program soon, which will include these improvements along with an additional pronunciation variant (Dallas, TX).

Update... I have been exceptionally busy recently, but I am now back to working on the program's development.

i should note that comparing results of this with e.g., python's phonemize has quite a lot of differences.

This is correct. Firstly, it's important to note that the transcriptions generated by lngcnv are phonetic rather than phonemic, unlike what you typically find in dictionaries. Secondly, the tool is designed to generate IPA for full sentences, not just single words. For instance, the word "get" in "get out" may be transcribed differently from "get back," just as it occurs in natural speech. Thirdly, I aim to represent precisely-defined dialects, such as those spoken in specific cities in real life (based solely on recordings and the study of phonetics literature in my spare time), rather than conforming to theoretical "standards." However, I am developing all of this in my spare time, and English is just one of several languages included... This tool will be quite different from anything I've encountered before, for any language, not just English. However, especially for English, honestly speaking it will take several years to make this rock-solid. Once again, I apologize for the delay. Currently, I am working on adding an alpha version of the pronunciation from Dallas, TX, and correcting errors in the pronunciation from Canberra, Australia.

context: i am an amateur linguist at best
phonetic vs phonemic, til there is a distinction which I will need to understand :)
I'm glad you clarified it's intended uses, I have primarily been using it for single words, for my uses the results of phonemize were more amenable, with lngcnv being perhaps a bit too precise/sophisticated :) most other ipa tooling seems to even ignore the basic syllabic pauses/suprasegmentals and other prosody features, let alone some of the more subtle ipa sounds that your tool sometimes produces :)
Lastly, please don't feel the need to apologize for any delays, or even if you never fix anything, this is great stuff regardless, and was very pleased to find some rust tooling in this (oft neglected) space :)

Phonetic representation of sounds is much more detailed than phonemic representation. For example, the word "duck" can be pronounced [dɐ̠k] in Canberra and [dɜ̹k] in Dallas, but in dictionaries for both variants of English, it will be phonemically written as /dʌk/. For a non-native speaker of English, the phonemic version is sufficient to be understood, but one will sound like a foreigner forever—this is all you get in dictionaries of English and most/all available tools. On the other hand, with the phonetic representation, one can theoretically learn to pronounce like a native speaker from a given locality.
However, this requires spending a lot of time on recordings and literature, and all this is challenging to code given the irregularities of English orthography.

I'm delighted to hear that you find lngcnv useful! :) However, depending on your use case, Python's 'phonemize' or some other tool may be more suitable than lngcnv. This tool is designed to be more sophisticated than those tools typically used by language learners, for example.

One more thing: There's no universal or singularly correct way to use IPA. For example, [o̞] and [ɔ̝] may both represent the exact same vowel because lowering [o] and raising [ɔ] may both result in the same position of the vowel. Differences in the outputs between lngcnv and some other tools do not necessarily imply differences in pronunciation.

Some listing of aspects of the program that aren't very clear could help me improve the documentation. If you find anything that isn't clear, feel free to open an issue... ;)

I've created a new branch called 'dev'. I don't want to make changes directly to 'main' because Canonical's Snap Store would automatically release them.
https://github.com/piotrbajdek/lngcnv/blob/dev/docs/images/help-image.png
This version is unstable (it can change rapidly) and unfinished (as of today, around half of the Texan English sounds remain unconverted and identical to Australian English). However, from now on, users will have access to the newest features if they compile the code themselves. 😊
If the problem with 'cellar door' and similar words is resolved in 'dev', this issue can be closed. 😁


abstract.php missing?

Its saying abstract.php missing which is included in very first line.
Please advice !

This file is located in the /shell folder in a default Magento installation. This script should also be placed there, and it will work :)

yes i just missed it. i found it in shell folder Thanks again


Small typo

Changed IconOveride to IconOverride

@ozdotnet : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Rosie Tannehill nonsensical clinic dialog option

Rosie Tannehill, one of the many recruitable NPCs, gives a dialog option, after asking her about her interests, that is something along the lines of "I am not familiar with the clinic."
Doesn't matter that I've been to the clinic at least a dozen times, on various missions, and know it well.
There are actually a LOT of NPCs with this particular dialog issue about the Clinic.

Game Version
<IP_ADDRESS>
Language
English (EN)
New Game
No
Reproduction Steps
Recruit Rosie Tannehill.
Ask her about her interests, and then she talks about her family a bit and mentions the clinic.
Then you're given the option to ask what the clinic is.

I am reasonably sure this is not a bug.
Dialogue options that allow the player to ask about things the player may already know are intentional.
"The Clinic" is also not the only topic with which this happens, there are plenty of utter nonsense questions the player can ask, in some cases NPCs even respond with lines that imply the player should already know the thing they asked about.


What is the training data format of commitpack-ft and oasst when finetune codegeex2?

In your paper, commitpack using following format to train:
Question: <commit_before>xxx<commit_msg>
Answer: <commit_after>xxx
but in codegeex2's vocabulary, no special token like <commit_before> <commit_msg> added. I download the checkpoint of octogeex and using this format predict, the answer is wrong.
can you explain more specifily about how you transfer commitpack_ft and oasst to finetune data format?
(what's the input and what's the output)
Thanks

We format samples into a simple Q & A format for OctoCoder & OctoGeeX:
For CommitPackFT:
Question: {subject}
{old_contents}

Answer:
{new_contents}

For OASST:
Question: {input}

Answer:
{output}

So we do not rely on any special tokens. We only use those special tokens for pretraining / fine-tuning on StarCoder & SantaCoder in the appendix. Let me know if something is unclear!

We format samples into a simple Q & A format for OctoCoder & OctoGeeX:
For CommitPackFT:
Question: {subject}
{old_contents}

Answer:
{new_contents}

For OASST:
Question: {input}

Answer:
{output}

So we do not rely on any special tokens. We only use those special tokens for pretraining / fine-tuning on StarCoder & SantaCoder in the appendix. Let me know if something is unclear!

Thank you!

I have two other quesiotns

In your script ./finetuning/starcoder/finetune.py: I find out that training samples directly concats without padding, like pretrain stage. This is different from many finetune script. Is this just for speed up training process?
Instruction tuning on code pretrain model enables it understands human instructions, and improve its score on many benchmarks. But for code completion in IDE enviroment(Like colipot or codegeex), which kind of model is more suitable? Pretrain or instruction?

Yes this is called packing. It's to make it more efficient.
For code completion in your IDE, where you just want suggestions to directly continue your code, a pretrained model is likely more suitable. I.e. I would recommend StarCoder, not OctoCoder in that case. However, if you want a model to do something specific for you, such as "Write a function to do bubble sort", I'd recommend OctoCoder. You might be able to get StarCoder to do it via comments, but then it might just end up writing # pass in the code or fail in other ways. Further, if you want to edit code or explain code, I'd also recommend OctoCoder.

Sorry to bother you again:

In Readme.md, it shows that "OctoGeeX is finetuned based on [CodeGeeX2-6B (https://huggingface.co/THUDM/codegeex2-6b) using an internal training framework." Is there any plan to opensource this part? Does finetuning/starcoder/finetune.py can train the same model?
In OctoGeex2's training hyperparameters, it shows octogeex2 only trains 50 Steps. But commitpack_ft have nearly 0.7M samples, Is this a mistake?

Sorry to bother you again:

In Readme.md, it shows that "OctoGeeX is finetuned based on [CodeGeeX2-6B (https://huggingface.co/THUDM/codegeex2-6b) using an internal training framework." Is there any plan to opensource this part? Does finetuning/starcoder/finetune.py can train the same model?
In OctoGeex2's training hyperparameters, it shows octogeex2 only trains 50 Steps. But commitpack_ft have nearly 0.7M samples, Is this a mistake?

Any questions are very welcome!

Unfortunately, we cannot open-source that framework, however, finetuning/starcoder/finetune.py should be able to train the same model.
Yes we found that performance plateaus after a few steps; We thus only use a subset of CommitPackFT (For OctoGeeX the exact dataset used for fine-tuning is uploaded here: https://huggingface.co/datasets/bigcode/co-manual)


Admin should receive an email when an order is placed.

Framework Version: 0.1.5

Framework Version: 0.1.5

Fixed. Now admin receives mail for placed order