Editor not rendering soft hyphen

I ran into a case where a soft hyphen had snuck into a regex expression, yet the character was not visible in the editor. It doesn't seem to render in most places, including Stack Exchange; it has only shown up for me when pasted into a terminal window like cmd.exe or terminal.app. Full disclosure: I don't know if this is behaviour as intended or not. This could also be an Electron issue.

VSCode Version: 1.16.0
OS Version: Windows 10 Pro 15063.540

Steps to Reproduce:

Copy this regex expression using Ctrl+A: http://rubular.com/r/M58qyBfuxF (Link provided as it seems GitHub scrubs the soft hyphen before posting)
Paste it into Code, and verify that there is no hyphen visible.
Paste it into a terminal window and verify that there is a hyphen directly after the $

Reproduces without extensions: Yes
Also reproduces with both the default font and Roboto Mono

vscodebot is correct in that the integrated terminal also does not render this character, though that's not the core of the issue.

@WToorenburghEasyMarkit This is indeed an upstream issue, all of our font rendering in the editor is done by Chromium. May I kindly ask that you open an issue at https://bugs.chromium.org/p/chromium/issues/list and link to it here.

@alexandrudima Thanks for the direction. Here's the issue I filed.
After looking a bit closer at some of the bugs submitted that refer to soft hyphens (the search I used), it seems like the intended behaviour is for soft hyphens to not be rendered unless they are at the end of a line. Or, at least, it seems as though soft hyphens not being visible at all times is not unintended.

This is an upstream issue (possibly within Chromium), and there are no known workarounds that we could implement on our side. This means there is no possible code change for us to do in VS Code sources to improve things.
To keep the number of issues in our inbox at a manageable level, we’re closing issues that have been on the backlog for a long time but haven’t gained traction or that are not actionable. Thank you for your time and understanding.

Understandable! Thanks for the communication. Here's hoping the Chromium issue I filed gets some further attention.


Test and build on s390x

Supported by Travis Beta, this does no cross build but actually runs on
big endian hardware including executing our tests. The platform is
listed as Tier 2, same as the mips to which previously cross compiled.

Looks like it is beta for a reason.


[Bug]:App crashes when viewing live stream from dashboard.I have encountered a bug while using the Dimo app. Whenever I start watching a live stream from the dashboard, the app crashes, and the stream keeps repeating the last few seconds. This issue significantly impacts the user experience and prevents proper viewing of the live stream.

Version
v1.1.1
Which operating systems have you used?

[X] Android
[ ] iOS

Environment that reproduces the issue
POCO X4 pro.
Emulator with api 34.
Is it reproducible in the example application?
Yes
RTMP Server
rtmp://broadcast.api.video/s
Reproduction steps
I tried all configurations. The error is not related to the configuration I chose.
Expected result
The stream will start, and I can watch it correctly from the dashboard.
Actual result
The app is crashed when i joined to the stream and start to repeat the last few seconds.
Additional context
No response
Relevant logs output
No response

Hi,
I am not able to reproduce your issue and I don't understand what is happening as playing a stream from the dashboard have not impact on the stream provider (your phone).
Could you provide the stack trace?
Also, if you don't have a great connection and you are trying to push and to play a live stream at the same time, you might face issue in the stream and in the worst case a connection loss.

I used the sample app and made an account with the production plan. I started live streaming and went to the dashboard to check it, using the stream ID from there. But, when I viewed it, the stream only lasted for 1 second and the app stopped. When I tried to start it again, the app crashed. I tried one more time, streamed for about 2 minutes, but faced the same 1-second issue. Every time I open the stream, the app crashes. I even tried with my own app, but the same problem occurred.

Hi,
What do you mean by the app stopped? It is a disconnection or a crash? If it is a crash could you get the stacktrace?
Could you provide the video and audio configuration and the device as well?
Here is a list a thing, you could try:

Also, as I said live streaming a video and watching it on the same connection might be a source of this kind of issue. Could you use (or confirmed that you use) 2 seperate internet connections.
Reduce the video bitrate
Perform your live, stop it and check if the record of your live is okay

@ThibaultBee
yes, the app crashed the log in the photo above.
I used two different networks for connections.
reduced the video to 240
the video is just 1 sec.
all the configuration is as the sample app default.

Well, this stacktrace happens when connection is loss or sometime the server might reject the connection somehow.
It does not help.

Could you get the logs in the logcat?
What phone are you testing? Could you test on another phone?

Stalled issue -> Closing.
Please reopen the issue if you have new info.
In the meantime, you can test with 1.2.0 version.


Create switch to allow manual configuration of .ini files

Is your feature request related to a problem? Please describe.
The last update forced everyone to use environment files. I would like to see an option that allows users to turn automatic setting generation off if they would like.
Describe the solution you'd like
Setting an env var like MANUAL_SETTING_CONFIG=true to prevent the compile-setting.sh script from running
Describe alternatives you've considered
None

What default behaviour would you like to see? Create settings automatically by default?

Most people would not like to mess around with .ini files, so in my opinion by default it should be generated automatically


Do no longer use deprecated repository

As noted in the README.md of pre-commit/mirrors-isort, that repository
is deprecated.
Instead, isort should be used directly.
P.S.: I did not update the version number to the latest 4.3.21-2 on purpose, as then isort gets applied to all files, not only Python files - see https://github.com/timothycrosley/isort/issues/1154

for what it's worth, pre-commit autoupdate correctly identifies that 4.3.21 is the latest tag, not sure what's up with -2


I added a Processor Define in project, nothing show in project setting

I don't know how to add my custom processor to my project. How did you do it? Have been google all day.

In content browser the processor can be seen.
In project settings, no cdo is found for this processor. (This processor is just rename of MSBasicMovementProcessor)


fail using texture.py

Describe the bug
Hello, first of all thanks to the authors.
The problem I have is with the texture, I scanned a corner of the office, the walls and the floor came out with their colors fine, but the small objects came out with reddish tints and the table instead of coming out totally white, came out with a brown layer on top of it.
To Reproduce
Steps to reproduce the behavior:

First process the data with Colmap in Nerfstudio like this:
ns-process-data images --data /home/lidarit/sdfstudio/prueba_monica --output-dir /home/lidarit/sdfstudio/prueba_monica

obtained depth and normal maps with omnidata:
python scripts/datasets/process_nerfstudio_to_sdfstudio.py --data prueba_monica --output-dir prueba_monica/omnidata --scene-type indoor --data-type colmap --mono-prior --crop-mult 1 --omnidata-path omnidata/omnidata_tools/torch/ --pretrained-models omnidata/omnidata_tools/torch/pretrained_models

train a monosdf model with the following parameters:
ns-train monosdf --pipeline.model.sdf-field.use-grid-feature True --pipeline.model.sdf-field.hidden-dim 256 --pipeline.model.sdf-field.num-layers 2 --pipeline.model.sdf-field.num-layers-color 2 --pipeline.model.sdf-field.use-appearance-embedding True --pipeline.model.sdf-field.geometric-init True --pipeline.model.sdf-field.inside-outside True  --pipeline.model.sdf-field.bias 0.8 --pipeline.model.sdf-field.beta-init 0.1 --pipeline.datamanager.train-num-images-to-sample-from 1 --pipeline.datamanager.train-num-times-to-repeat-images 0 --trainer.steps-per-eval-image 5000 --pipeline.model.background-model none --vis wandb --experiment-name colmap-andres --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --pipeline.datamanager.train-num-rays-per-batch 2048 --machine.num-gpus 1 sdfstudio-data --data prueba_monica/omnidata --include_mono_prior True --skip_every_for_val_split 30

after the training I extracted the mesh with the following command
ns-extract-mesh --load-config outputs/colmap-andres/monosdf/2023-07-14_174149/config.yml --output-path outputs/colmap-andres/monosdf/2023-07-12_133453/mesh_monica.ply --bounding-box-min -0.5 -0.5 -0.5 --bounding-box-max 0.5 0.5 0.5 --resolution 1024 --marching_cube_threshold 0.001 --create_visibility_mask True

Extract the texture with the script texture.py
1008  python scripts/texture.py --load-config outputs/colmap-andres/monosdf/2023-07-14_174149/config.yml --input-mesh-filename outputs/colmap-andres/monosdf/2023-07-12_133453/mesh_monica.ply --output-dir outputs/colmap-andres/monosdf/2023-07-14_174149

Expected behavior
a texture with the correct colors in its entirety
Screenshots

Additional context
here is the drive with the images that I used:
https://drive.google.com/drive/folders/1vQIjXfHVD18MV7MPvwHSpTn-U8jVIg6U?usp=sharing

@Juanjlp1109 I think the currently texturing using the inverse surface normal as the viewing direction to query the appearance network (see here https://github.com/autonomousvision/sdfstudio/blob/master/nerfstudio/exporter/texture_utils.py#L311-L315). However, these view directions are not the same as view directions in the training images so it's doing some extrapolation instead of interpolation and therefore the resulting color is not the same as training colors.

@niujinshuchong I undestand, is there a way to solve it?

I suppose the image I choose must be one that represents the whole scene? it must have some specific characteristic?

@Juanjlp1109 You are not restricted to use only one image. Maybe the easiest way to find the closest training view directions based on its cosine similarity to the inverse surface normal.

@Juanjlp1109 You can try something like this:
forward_direction = torch.tensor([0, 0, 1]).reshape(1, 3, 1) # principle direction of each camera
training_directions = c2ws[:, :3,:3] @ forward_direction # [N, 3], principle direction of each camera in world coordinate

viewing_directions = -surface_normal # [M, 3]
cosine_distance = torch.sum(viewing_directions[:, None, :], training_directions[None, :, :], dim=-1) # [M, N]
index = cosine_distance.argmax(dim=-1) # [M] find the closest direction
viewing_directions = training_directions[index] # [M, 3]

@Juanjlp1109 You can try something like this:
forward_direction = torch.tensor([0, 0, 1]).reshape(1, 3, 1) # principle direction of each camera
training_directions = c2ws[:, :3,:3] @ forward_direction # [N, 3], principle direction of each camera in world coordinate

viewing_directions = -surface_normal # [M, 3]
cosine_distance = torch.sum(viewing_directions[:, None, :], training_directions[None, :, :], dim=-1) # [M, N]
index = cosine_distance.argmax(dim=-1) # [M] find the closest direction
viewing_directions = training_directions[index] # [M, 3]

hi @niujinshuchong ! thank you for this great project, it's really awesome.
I'm having the same problem as described by @Juanjlp1109 - the mesh looks great, but the texture looks confusing when I train with monosdf (while it looks perfectly fine when I train using neus-facto). I am  a bit confused about your piece of code - I don't see c2ws anywhere inside texture_utils.py, how can I extract it? Also, what is 'surface_normal'? (I don't see it in the code neither).
Thank you!

@Juanjlp1109 You can try something like this:
forward_direction = torch.tensor([0, 0, 1]).reshape(1, 3, 1) # principle direction of each camera
training_directions = c2ws[:, :3,:3] @ forward_direction # [N, 3], principle direction of each camera in world coordinate

viewing_directions = -surface_normal # [M, 3]
cosine_distance = torch.sum(viewing_directions[:, None, :], training_directions[None, :, :], dim=-1) # [M, N]
index = cosine_distance.argmax(dim=-1) # [M] find the closest direction
viewing_directions = training_directions[index] # [M, 3]

Hello, I also do not understand the specific need to modify which code?

@niujinshuchong Hello, I also do not understand the specific need to modify which code?

The model exported using python scripts/texture.py cannot be compared with the model in the viewer at all. How can I solve it?


ci: add ci for go testing of cli

Added CI for running go test of cli packages. Added badges into Readme.md file for these CI workflows.

Thanks, PR will be accepted as soon as go-config branch is merged into master.


Make blockchain format documentation available from running node

TODO:

Add link to index page
Serve both RST and HTML formats
Generate it at runtime and cache (use database as cache storage - or is it faster just generate everytime without caching) or pregenerate (put to cache) at server start - use standard Django means of page caching as much as possible

Looks like duplicate: https://github.com/thenewboston-developers/thenewboston-node/issues/217

@dmugtasimov Do we really need to involve Django here? The only job it will have to do is serving static files.
Wouldn't it be better to delegate it to Nginx? We can generate documentation files on a building stage. Then we let Nginx manage these doc files and cache them.

@andbortnik it seems more complex job to serve static files from nginx to me, but you see it the other way let's give it a shot

@dmugtasimov Please review https://github.com/thenewboston-developers/thenewboston-node/pull/264

@andbortnik please, address comments
Please, be aware of not breaking autodeployment. Example: https://github.com/thenewboston-developers/thenewboston-node/actions/runs/1046852958

@dmugtasimov

Please check the changes in CI merged to master https://github.com/thenewboston-developers/thenewboston-node/compare/c5f3b3ee87ee54caf583e2068551e86e2e6a5d77..f6f5af9d479f2b682b4275d2468196aee80c598f
Build stage works but the deployment stage fails. Looks like there is no space left https://github.com/thenewboston-developers/thenewboston-node/runs/3124070937
ERROR: for node  failed to register layer: Error processing tar file(exit status 1): write /root/.cache/pypoetry/virtualenvs/thenewboston-node-gHi8t1rX-py3.9/lib/python3.9/site-packages/virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl: no space left on device
Review the PR again

@andbortnik merged, thank you, looks great


The calendar is lagging when scrolled (jank animation)

can you provide some more details, a video or some code? I can't really help you with just this.

https://user-images.githubusercontent.com/82443800/152991715-e7e4d8de-f443-43cf-93ff-47cef1891df7.mp4
I just have a minimal setup. I just used the PagedVerticalCalendar in the body of my app with no additional parameters

Hi, when switching between tabs, its lagging. I've used customized month and day builder

Could this issue only be on the web as some other video demonstrating another issue had the calendar scrolled without lagging?

Perhaps, I don't encounter this in regular use. it could be a web issue, or maybe just a hardware performance issue in general. it's definitely a more expensive widget to build no doubt, but it shouldn't be this bad. are you using Canvas or HTML rendering on web?

I tested this on android and there isn't any lag on android. So I guess it's something related to the web? Anyways, I just wanted this plugin for android, so I will be closing issue.

having this issue on iOS got any updates?


Update DBCP library to 2.1.1

Fix #932
The getParentLogger method was added in the new JDBC API since Java 7.
The old version of DBCP doesn't support it and causes Intellij to give
an error.
The new DBCP library is not backward compatible.
Changed a method to use a new method available in the new library.
From DBCP release history page
https://commons.apache.org/proper/commons-dbcp/changes-report.html
2.0
"This release includes new features as well as bug fixes and enhancements. Version 2.0.x supports JDBC 4.1, so requires Java 7. The Java package name has been changed from 'org.apache.commons.dbcp' to 'org.apache.commons.dbcp2'. Also the Maven groupId is now 'org.apache.commons' and the artifactId is 'commons-dbcp2' These changes are necessary because the API is not strictly binary compatible with the 1.x releases. To convert from the earlier releases, update the package name in imports, update the dependencies and recompile. There may be a few other changes to be made. Applications running under Java 7 should use DBCP 2.0.x. Java 6 users should use DBCP 1.4.x which supports JDBC 4. Java 1.4 and Java 5 users should use DBCP 1.3.x which supports JDBC 3."
Testing:
Ran some basic tests locally and in a test cluster.

Related to #933

Looks like we are using a very old version of mysql jdbc driver ( 2013 version).
see https://dev.mysql.com/doc/relnotes/connector-j/5.1/en/news-5-1.html


Is it possible to skip validation in ORM mode?

There is documentation for the construct classmethod that is much faster due to bypassing validation. I am now wondering if a similar thing exists for from_orm?
In the context of web applications, I think it is quite common to have an internal data model and another response data model that excludes some of the fields (FastAPI uses this pattern a lot). Since my internal data has already been validated, I absolutely trust it. if I now want to convert my internal to my external model (basically just omitting some fields), with from_orm can I also somehow skip validation?
I could convert the internal data to dict and then use the construct method but that seems really silly.
Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
             pydantic version: 1.4
            pydantic compiled: True
                 install path: ~/.virtualenvs/test/lib/python3.7/site-packages/pydantic
               python version: 3.7.5 (default, Oct 31 2019, 14:14:59)  [GCC 7.4.0]
                     platform: Linux-5.3.0-7625-generic-x86_64-with-debian-buster-sid
     optional deps. installed: []...

import pydantic

class Response(pydantic.BaseModel):

    name: str

    class Config:
        orm_mode = True

class Internal(Reponse):

    id: int

data = Internal(id=1, name"Sanders")
out = Response.from_orm(data)  # I would like to skip validation here.

Not possible at the moment, but I'd happily review a PR to add there feature

Okay, good to know :smiley: What would be your preferred name, e.g., BaseModel.construct_from_orm?

or a kwarg to from_orm()?

@tiangolo any thoughts on what would be easier in FastAPI? Say that a route returns a certain data model and I have a response model defined. Would it be feasible to define that the response should be created using ORM mode and bypass validation?

That would be fantastic. For a query with many rows of rather, nested complicated types the validation is a bottleneck. But then I also still run into the issue of recursive construct:
https://github.com/samuelcolvin/pydantic/issues/1168
This could be feature request as well :)

@Midnighter what I would suggest you do is generate the data in any way you want and return a response directly, that skips any validation or serialization as you are doing it all in your own code.
 But I think I would try not to make it a default in FastAPI as it could lead to unsafe operations. You could still use the same model in the response_model just for documentation. But if you return a response directly that skips everything.

Would be nice to have this also available in parse_raw and parse_obj too. I have use-case now that we are loading some json file that were constructed with same schema into python objects again and running validation again is not needed.

We have a use case that reforms a ton of calculations on a relatively large amount of data coming from the database, that has been validated with Pydantic at insert, so the validation at retrieval would be unnecessary.
We came up with something like this:
# pydantic/main.py

    @classmethod
    def from_orm(cls: Type['Model'], obj: Any, skip_validation: bool = False) -> 'Model':
        if not cls.__config__.orm_mode:
            raise ConfigError('You must have the config attribute orm_mode=True to use from_orm')
        obj = {ROOT_KEY: obj} if cls.__custom_root_type__ else cls._decompose_class(obj)

        if skip_validation:
            schema_fields = cls.__fields_set__ # also tried: schema_fields = cls.__fields__.items()
            class_schema = cls.__new__(cls)
            schema = class_schema.construct(_fields_set=schema_fields, **obj)
            return schema

        m = cls.__new__(cls)
        values, fields_set, validation_error = validate_model(cls, obj)
        if validation_error:
            raise validation_error

        object_setattr(m, '__dict__', values)
        object_setattr(m, '__fields_set__', fields_set)
        m._init_private_attributes()
        return m

# schema.py
class LanguagesSchema(BaseSchema):

    code: int
    alpha2: Optional[str]
    lang_en: Optional[str]
    lang_de: Optional[str]
    lang_fr: Optional[str]

# service.py
languages = session.query(Language).all()
languages[0].code = "a string that should be an int"
languages_schemas = [LanguageSchema.from_orm(lang, skip_validation=True) for lang in languages)]

This seems to partially work with Pydantic: the validation doesn't happen, and allows me to instantiate the LanguageSchema (with wrong data), but it seems that it still grabs SQLAlchemy fields, and I get an error while decoding the response
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type MetaData is not JSON serializable`

I guess this is probably because the  schema_fields = cls.__fields_set__ is the wrong way to get only Pydantic's schema fields (and throw away SQLALchemy fields like the metadata, query object, registry etc).
If I delete SQLAlchemy's attributes manually:
del language.query
del language.registry
del language.metadata

It works.
The downside is: FastAPI would be unaware of the skip_validation, and when using the response_model argument on the route it would still try to validate the model. Specifically related to FastAPI, maybe this could be optional, otherwise it would be necessary to propagate the skip_validation, or also implement the same argument elsewhere. The option is to use the JSONResponse directly.

@samuelcolvin as we advance in our codebase we realize that we have been doing unnecessary validations, specially if use Pydantic internally as well (think of having ItemModel(BaseModel) that is used across the whole system, and ItemCreate which is used mostly to make a safer API interface with validation at entry (exactly when we want it). ItemResponse is also an API object (meaning it's not really used anywhere else) apart from being internal (we don't need validation on data that has been validated at entry.
Would you consider to add the skip_validation to from_orm method in a design similar to what I had posted? Any specific restrictions/ideas to add? Would it be worth a PR?  Also, would it make sense to add a recursive functionality to the construct method?
Thanks

I think the best version of this in v2 will be to use a @model_validator(mode='wrap'), and in the case where you don't want to perform validation (e.g., if the value received is not a dict), call model.construct using the appropriate attributes.
If that's not sufficiently descriptive or doesn't address the use case, please comment here and we can re-open the issue.


When putting in admin days available to work, calander to book is off by a row.

Describe the bug
Even in the example page, it shows Sunday-Thursday days avaiable to work.
To Reproduce
Make monday day avaiable to work, shows only tuesday as day avaiable, and says no one avaible to work on tuesday.
Expected behavior
Should show monday
Can you fix the bug?

[ ] Yes, I can fix the bug and will open a pull request.
[ ] No, I can't fix the bug, but I can assist in testing and providing feedback.
[ ] No, I can't fix the bug, but I can provide more information to help you fix it.
[x] No, I can't fix the bug, but I can open an issue to report it.

Hi @nadermx, can you provide screenshot ? I tried to reproduce the bug describe, but was unable to do so.

Sure, I have a few.
When I make a new staff memeber their username does not appear in the admin

The staff memeber doesn't appear in the drop down when adding in working hours either,

But as seen here, I make the working hours, Monday from 6am to 6pm, and it shows it closed still

And in your home page example it also shows days available as Sunday through thursday, altough I'm sure you have it set as monday-friday?

Okay, just saw that the staff memeber didn't have in the user profile a first and last name, that fixes the name issue, but the day issue on the map is still off.

I was checking the views.py in the appointment folder, and I think it has to do with either not saving the working days timezone specific, or not calling the days timzone specific.  Been messing with it to no avail thus far

Did a pull request with the fix https://github.com/adamspd/django-appointment/pull/174

Hi @nadermx, I will have a look. Thanks

And in your home page example it also shows days available as Sunday through thursday, altough I'm sure you have it set as monday-friday?

The homepage is a screenshot from a project that I use the package in, and no, it's not set from monday - friday but from sunday to thursday. I can't seem to find out why it behaves differently when you're running it...But I'll investigate from your pull request.

Okay, just saw that the staff memeber didn't have in the user profile a first and last name, that fixes the name issue, but the day issue on the map is still off.

As mentioned by @deronnax, I need to use the username a little bit more than just first and last name. I will fix that in a coming release.

Interesting.  On a fresh install when I tried to make as shown on
screenshots, it allowed it Tuesday.  I ha e Django timezone set to
America/Mexico_city
On Thu, Apr 4, 2024, 6:28 PM Adams Pierre David @.***>
wrote:

And in your home page example it also shows days available as Sunday
through thursday, altough I'm sure you have it set as monday-friday?
The homepage is a screenshot from a project that I use the package in, and
no, it's not set from monday - friday but from sunday to thursday. I can't
seem to find out why it behaves differently when you're running it...But
I'll investigate from your pull request.
—
Reply to this email directly, view it on GitHub
https://github.com/adamspd/django-appointment/issues/172#issuecomment-2038496061,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABYACXADCXYUJYTC5AI3CS3Y3XV33AVCNFSM6AAAAABFS3UJACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZYGQ4TMMBWGE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Interesting. On a fresh install when I tried to make as shown on screenshots, it allowed it Tuesday. I ha e Django timezone set to America/Mexico_city
…
On Thu, Apr 4, 2024, 6:28 PM Adams Pierre David @.> wrote: And in your home page example it also shows days available as Sunday through thursday, altough I'm sure you have it set as monday-friday? The homepage is a screenshot from a project that I use the package in, and no, it's not set from monday - friday but from sunday to thursday. I can't seem to find out why it behaves differently when you're running it...But I'll investigate from your pull request. — Reply to this email directly, view it on GitHub <#172 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYACXADCXYUJYTC5AI3CS3Y3XV33AVCNFSM6AAAAABFS3UJACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZYGQ4TMMBWGE . You are receiving this because you were mentioned.Message ID: @.>

Noted. It shouldn't be that way indeed.

Hi @nadermx,
Sorry for the late response to your issue. I've been busy with work and other things. Would you be willing to show me your settings file and a screenshot of the error where the timezone is not updating, resulting in the incorrect day?

When I make a new staff memeber their username does not appear in the admin

I fixed that in the latest release

Did a pull request with the fix #174

Unfortunately, you didn't run the test files.

Hi @nadermx, I've reviewed and tested your changes. Unfortunately, it introduces a mismatch between Python and JavaScript's handling of weekday indices, leading to potential bugs in date-related functionalities.
Specifically, while JavaScript treats Sunday as 0, Python treats Monday as 0 as you did in your PR. The thing is, one way or another, you have to align both languages somehow, either you use Python's way, or Javascript's way. I chose Javascript's way because it was easier to maintain, thus I added the functions to send the data to the frontend in Javascript's way.
Accepting your PR will add a discrepancy that will particularly affect scripts that depend on synchronized day indices between the client and server sides, leading to calculation errors and display issues.
Maintaining alignment with JavaScript conventions in the backend ensures that both sides interpret weekday indices consistently, avoiding these issues.
Now, maybe your specific problem is due to something else, if you're still interested, perhaps we can have a look at it together.

Damn, it's okay thanks for checking not sure why it's doing that
On Sat, May 25, 2024, 4:50 AM Adams Pierre David @.***>
wrote:

Hi @nadermx https://github.com/nadermx, I've reviewed and tested your
changes. Unfortunately, it introduces a mismatch between Python and
JavaScript's handling of weekday indices, leading to potential bugs in
date-related functionalities.
Specifically, while JavaScript treats Sunday as 0, Python treats Monday as
0 as you did in your PR. The thing is, one way or another, you have to
align both languages somehow, either you use Python's way, or Javascript's
way. I chose Javascript's way because it was easier to maintain, thus I
added the functions to send the data to the frontend in Javascript's way.
Accepting your PR <#m_-5618441542710306507_174> will add a discrepancy
that will particularly affect scripts that depend on synchronized day
indices between the client and server sides, leading to calculation errors
and display issues.
Maintaining alignment with JavaScript conventions in the backend ensures
that both sides interpret weekday indices consistently, avoiding these
issues.
Now, maybe your specific problem is due to something else, if you're still
interested, perhaps we can have a look at it together.
—
Reply to this email directly, view it on GitHub
https://github.com/adamspd/django-appointment/issues/172#issuecomment-2131209730,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABYACXHI7WXWQFTCGA2RCTLZEBUGDAVCNFSM6AAAAABFS3UJACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZRGIYDSNZTGA
.
You are receiving this because you were mentioned.Message ID:
@.***>


Initial commit of gpu test utility

Basic test of memory coherence. We run a simple test of acquire / release semantics under four conditions:
* Pure array access, no expectation of any memory semantics
* Same but with buffer annotated as "volatile"
* All access to memory is through atomics
* Use Vulkan memory model to specify acquire / release semantics

This is now subsumed by the work in the tests/ subdirectory, particularly #127.


Excessive SQL call to UP_USER_LOCALE

Describe the bug
It has been reported that the following SQL is called excessively while load testing:
SELECT * FROM UP_USER_LOCALE WHERE USER_ID=? ORDER BY PRIORITY

To Reproduce
Steps to reproduce the behavior:

Load test uPortal
Check query stats for the above query (db dependent)

Expected behavior
Locale call should be cached for a lengthy duration given this value is rarely updated.

Solution:
Implement a cache on https://github.com/Jasig/uPortal/blob/fb42cf9525325f6fea234bf9593910e0ef45d51f/uPortal-i18n/src/main/java/org/apereo/portal/i18n/RDBMLocaleStore.java#L80
Cache should be of <IPerson, Locale[]>, set in getUserLocales() and cleared for a person in updateUserLocales()


Fix failing 'Swiftlint' Github Actions workflow

The 'SwiftLint' workflow is currently failing in GitHub Actions, with the the following error:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/swiftlint
Target /usr/local/bin/swiftlint
already exists. You may want to remove it:
  rm '/usr/local/bin/swiftlint'

To force the link and overwrite all conflicting files:
  brew link --overwrite swiftlint

To list all files that would be deleted:
  brew link --overwrite --dry-run swiftlint

Possible conflicting files are:
/usr/local/bin/swiftlint
==> Summary
🍺  /usr/local/Cellar/swiftlint/0.43.0: 6 files, 13.4MB
Error: Process completed with exit code 1.

The exit code of '1' then causes the workflow to fail.
The root cause of this failure is that, from macos-10.14 onwards, SwiftLint is installed in the base image used by
the workflow.  Attempting to install SwiftLint using brew then causes the errors seen above.
This PR simply removes the 'Install SwiftLint' step, so that we just rely on the underlying version of SwiftLint installed on the base image.

I've realised that this PR won't be able to be merged until the 'Run tests' workflow also passes.
Although the tests are all passing locally, some of them are failing because some of the tests in PersistenceStore_DownloadsTest and DownloadServiceTest are exceeding the 5-second timeouts specified in various places (e.g. here and here.
Is it acceptable to bump some of these timeouts within the scope of this PR?

@martinrist Yeah since this PR is about fixing CI I'm happy to bundle increasing the timeouts onto it

I've reviewed the recently-failing workflow runs, and have adjusted the timeouts on the affected tests, so I now have a passing build.  I'm happy to adjust all the other timeouts as well if it's felt that would be appropriate at this stage.

Nope this was all good on my end


(Too) large profile image after upload

I've noticed, that after uploading a profile picture, it gets converted to a 400x400px png-image. These files get quite large (200-400kB) which leads to an extended access time, when switching to the blog after changing the pic. Is there a specific reason for not using a more compressed JPG in the uploader.php and other files that use the profile-pic? In my opinion a 20-50kB pic would be enough.
And: uploading an profile-image that is smaller than 400x400px leads to black boarders around the picture (uploader.php forces 400x400px) instead of just a smaller profile picture.
Any thoughts on that?

Diego will have a look at it when he will be back of his holidays.
What is the size (kb) of the original picture?

Nice to hear that!
I've tried various images: uncompressed .PNG with ~750kb down to compressed .jpg with ~20kb. All of them had at least 400x400px due to the black borders the processed images get after upload.
All of them are 200-400kb big after processing.
I already played around with the code and managed to get two working versions: one with a smaller, uncompressed PNG (e.g. 200x200px, 50-100kb) after upload, the other with a compressed jpg after upload (various px, various KB - easily down to 20 KB)
I'm not sure what would be the best thing to do. Do we need high quality profile pics? Do we always need PNG? Would it be cool to have a compressed jpg when uploading a jpg and an uncompressed PNG when uploading a PNG?

Similar problem with images and thumbnails. Thumbnails are larger than images.

Hi,
the png format is because some users need to upload profile picture with transparent background.
There are two constants, in /bl-kernel/boot/init.php
THUMBNAILS_WIDTH
THUMBNAILS_HEIGHT
You can change the size of the thumbnails.
PD: I will add two constants more, for the size of the profile picture.


Sorry for the Inconvenience. Please refresh your browser to restart H2O LLM Eval.

psycopg.OperationalError: connection failed: FATAL:  password authentication failed for user "maker"
Following the basic docker-compose instructions from the README.md

@sAbhay ^^

I ran the docker compose setup and was not able to reproduce the issue; it ran fine. Did you have any luck with the local setup instructions?
Please let me know if the issue persists. @srini-x or I could record a video of the setup if that would be helpful.


[WIP] Utilize AniDb Scrapping to DB matching

Description
Summary
Utilize an AniDB Scrapper library to automatically pull AniDB matching, rather than have to enter everything manually.
Details

Added some support for TMDb/tv
Stopped using "private" methods outside of convert.py
Switched X_to_anidb and anidb_to_X to consistently be 1 to Many.

Type of Change

[ ] New feature (non-breaking change which adds functionality)

Checklist

[ ] My code was submitted to the nightly branch of the repository.

Coding part of these changes are done, in process of testing.

the linkage to that github json should just be put into https://github.com/Kometa-Team/Anime-IDs

Also do have more information on where this data is coming from? Did you just find this repo or are you involved with it?
https://github.com/notseteve/AnimeAggregations

Kometa also uses TVDb IDs as the main source for show ids not TMDb anytime i get TMDb Show IDs theyre just converted to TVDb IDs

the linkage to that github json should just be put into https://github.com/Kometa-Team/Anime-IDs
This doesn't work for many many anime, for two different reasons.

This json file does not include TMDb/tv nor a way to distinguish between TMDb/movie and TMDb/tv. So I am unsure how you'd like me to modify this file. Or are you saying you'd like me to make changes to regularly import the JSON to that library?

Also do have more information on where this data is coming from? Did you just find this repo or are you involved with it?
https://github.com/notseteve/AnimeAggregations

Data is straight from AniDB, it gets aggregated every 15 days.

Kometa also uses TVDb IDs as the main source for show ids not TMDb anytime I get TMDb Show IDs theyre just converted to TVDb IDs

But then instantly convert it to TVDb, and if the TVDb doesn't exist, you are just out of luck.

I have ran this against my local database, and I went from a little over 1200 unmatched items to 83.

Not sure why switching from the most trusted source for animes mappings (anime-lists) to this repo is interesting, a simple search on the list (https://raw.githubusercontent.com/notseteve/AnimeAggregations/main/aggregate/AnimeToExternal.json) return 1056 tmdb tv entry, animes-lists got over 6600 tvdb id entry (including seasons and special mappings), and if looking only for season 1 (what you're doing here i think), it's got 3800 entry.
I found 476 tmdb movie entry, animes-lists got 1600 entry for movies with an imdbid.
Also what happen to seasons and episodes offsets, kometa currently don't use them, but they are needed to work on the seasons (that all other agent use and maybe kometa one day)

Not sure why switching from the most trusted source for animes mappings (anime-lists) used by all animes agent (HAMA, anidb.net, MAL agent ...) to this repo is interesting. A simple search on the list (https://raw.githubusercontent.com/notseteve/AnimeAggregations/main/aggregate/AnimeToExternal.json) return 1056 tmdb tv entry, animes-lists got over 6600 tvdb id entry (including seasons and special mappings), and if looking only for season 1 (what you're doing here i think), it's got 3800 entry. I found 476 tmdb movie entry, animes-lists got 1600 entry for movies with an imdbid. Also what happen to seasons and episodes offsets, kometa currently don't use them, but they are needed to work on the seasons (that all other agent use and maybe kometa one day)

Values are taken straight from AniDB (Values come from: https://anidb.net/anime/17906/resource and are compiled into a single file for easier matching.)
Change also allows matching for tmdb/tv which the other list does not handle tmdb/tv

As Sohjiro said i think the best would be to add them to kometa animes-id repo, with key like tmdb_tv and tmdb_movie so they could be used in as fallback if tvdb or imdb fail.

As Sohjiro said i think the best would be to add them to kometa animes-id repo, with key like tmdb_tv and tmdb_movie so they could be used as fallback if tvdb or imdb fail.
That should be easy enough.

As Sohjiro said i think the best would be to add them to kometa animes-id repo, with key like tmdb_tv and tmdb_movie so they could be used as fallback if tvdb or imdb fail.

https://github.com/Kometa-Team/Anime-IDs/pull/1

@meisnate12 Why was this closed?


User flow is missing in the authorization request for B2C

Environment

Spring boot starter:

azure-active-directory-b2c-spring-boot-starter

OS Type: Windows/Linux
Java version:

1.8

Summary
The Docs tutorial (in this repo) results in 404 error. It seems to be because a user flow isn't specified in the authorization request. Like,
GET https://contosob2c.b2clogin.com/contosob2c.onmicrosoft.com/oauth2/v2.0/authorize
?response_type=code
&client_id=7a945e86-c12e-4f0c-b1a0-942f1857f953
&scope=7a945e86-c12e-4f0c-b1a0-942f1857f953%20openid
&state=2ada18rj8X9cXb6pTknrZe3_1pWOu1la8-ctjY-ZAZM%3D
&redirect_uri=http://localhost:8080/home
&nonce=hl3FFEoVEZraN6D1Fm0uwp5v8qnDWhlerN4rya4h5fM

The authorization request for B2C requires a user flow to run. It must be in the authority uri (https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/) or with p parameter (p={policy}).

OAuth 2.0 authorization code flow in Azure Active Directory B2C

Reproduce steps
The same steps in the Docs tutorial.
Expected Results
The same result shown in the Docs tutorial.
Actual Results
After the step 3 in the 'Build and test your app', the browser shows 404 error page instead of a login page.

Thanks for reaching out. I've checked the tutorial you followed, there's some inaccuracy in it. This one is correct about the tenant name part.
Take the domain name contosob2c.onmicrosoft.com for instance, the tenant name should be contosob2c not the domain name.
I'll create a PR to fix this and sorry for the inconvenience.

Thank you for checking.  However, I already tried the correct tenant name before posting this issue. So I think the error occurs because a user flow parameter is missing in the authentication request generated by AADB2CAutoConfiguration.

The application works on my side. Could you please provide the application.yml you configured, with no confidential info, to help check the issue?

And for the policy parameter, it's added here.

Thank you for clarification I tried the tutorial again in my new env and the sample worked well! I'll recheck my former env and will share the cause if I find it. Anyway I would be glad if you fix the Docs' known inaccuracy you mentioned.

I see the error happend just because of  my misconfiguration. I created controller and security folders under src/main instead of src/main/java/com/example/demo.
By the way, there are still some inaccuracies in the tutorial. It would be helpful if you fix them even though they might be trivial.

HelloController.java -> WebController.java
WebSecurityConfig.java -> WebSecurityConfiguration.java
sample.aad -> com.example.demo, if users follow the Spring Initializr's screen shot.

Thanks for your suggestion. We'll fix them.

Close this issue for now.


How to encrypt a file?

I would like to encrypt this information ssid and passw in 'wifi.dat'. how can I do this?

There isn't much point in encrypting this as you'ld need to decrypt it to use it.
Also, you'ld need to either have the decryption key on the device or manually enter it every time it needs to be decrypted.

I partially agree with you. Having the password displayed legibly, can bring discomfort depending on the security policy adopted. I understand that keeping the decryption key on the device only makes it difficult to read the password, but that's the intention

The point is that it is security by obscurity (which is known to not really work) if you have a ready-to-use decryption key on the device.
You can not read the password in the encrypted file, but you can use the key to decrypt it and then read it.

Ok, would you have any suggestions for solving this problem?

It is unclear what the problem is and what you are trying to achieve.
Depending on that, there might be a solution or it might be fundamentally impossible.


Handle UnivCo

Handle UnivCo: navigation, transformation, pretty-printing. I was in some unfamiliar territory, and I don't have any tests. Some questions:

ppCoercion in HERMIT.PrettyPrinter.AST: should there be a catch-all here as in ppCoercionR from HERMIT.PrettyPrinter.Clean?
I'm skipping UnivCo in allR in the Walker c Coercion instance in HERMIT.Kure. Is that what we want? I guess so, as with Refl.
In HERMIT.PrettyPrinter.Clean.ppCoercion, for the UnivCo case, should I use retApps?

I see the "Merge remote-tracking branch 'upstream/master'" commit listed here (presumably for @xich's merge of my previous pull request) in addition to my new content. Am I doing something wonky with git?

See conversation at #160.

I think, instead of a catch-all case, we should use readerT (http://hackage.haskell.org/package/kure-2.16.12/docs/Language-KURE-Combinators-Transform.html) so we get an exhaustiveness check from GHC... but we can do that in another diff.
Yes, no need for UnivCo in the Walker c Coercion instance because a UnivCo doesn't contain other coercions.
Yes, I would use retApps so the types get parens around them if necessary.
I think the merge commit would disappear if you rebased this onto my merge commit for SubCo, but that would probably require a git push -f... we can just see what happens to it when I merge this in. Mind doing the retApps bit? Otherwise looks good!

@xich Thanks. I added a commit with retApps.
Makes sense about UnivCo having no sub-conversions.
I need to learn git better.

Eh, git I understand... github, on the other hand, is still a mystery much of the time.
Thanks for the patches!


Correct shapes of images in cifar10 and cifar100

Description
The image shapes of cifar10 and cifar100 must be [32, 32, 3], but the current description says the shapes are [32, 32, 1]. Because of tiny changes, I did not cut JIRA ticker for this.
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[X] Changes are complete (i.e. I finished coding on this PR)
[X] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[X] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[X] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

@mxnet-label-bot add [pr-awaiting-merge]
Thanks for your contribution @harusametime


template execution error in search results display

when performing a search, it successfully returns results but also displays the following error message on the page:

<p>{{truncate .Content 150}}</p> use this instead

Thanks! @avary,  I have pushed the change here #3


[AVM Module Issue]: Deploy Azure Firewall Across Availability zones

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
Module Name
avm/res/network/azure-firewall
(Optional) Module Version
No response
Description
Module not compliant with APRL: https://azure.github.io/Azure-Proactive-Resiliency-Library-v2/azure-resources/Network/azureFirewalls/#deploy-azure-firewall-across-multiple-availability-zones
Per: https://azure.github.io/Azure-Verified-Modules/specs/shared/#id-sfr5---category-composition---availability-zones
Modules that deploy zone-redundant resources MUST enable the spanning across as many zones as possible by default, typically all 3.
Modules that deploy zonal resources MUST provide the ability to specify a zone for the resources to be deployed/pinned to. However, they MUST NOT default to a particular zone by default, e.g. 1 in an effort to make the consumer aware of the zone they are selecting to suit their architecture requirements.
For both scenarios the modules MUST expose these configuration options via configurable parameters/variables.
Ask: The AZs parameter (zones) should be defaulted to [1,2,3] to span across all zones as its a PaaS resource
(Optional) Correlation Id
No response

@maurojasmsft aren't the defaults of this module already in alignment with the proposed suggestions:
@description('Optional. Zone numbers e.g. 1,2,3.') param zones array = [   '1'   '2'   '3' ]

@maurojasmsft aren't the defaults of this module already in alignment with the proposed suggestions:
@description('Optional. Zone numbers e.g. 1,2,3.') param zones array = [ '1' '2' '3' ]

I agree. @maurojasmsft, could you elaborate?
That's what I see in the module
https://github.com/Azure/bicep-registry-modules/blob/3cfea57db03dc0d73fbad40a8a2924e6cb54fcdc/avm/res/network/azure-firewall/main.bicep#L63-L67

@AlexanderSehr This issue might also be fixed by https://github.com/Azure/bicep-registry-modules/pull/1939, as I had to update the formatting of the zones param.

I just came back from vacation. The problem is that this is optional when it should be mandatory. Can we make it mandatory to make  AZs parameter (zones) to be defaulted to [1,2,3] and span across all zones.

I set the param to conditional and indicated it was for WAF Alignment. The defaults do deploy to 3 zones.
PR: https://github.com/Azure/bicep-registry-modules/pull/2021

Hey @maurojasmsft thanks for raising this issue.
I also share some confusion regarding this request.
The parameter type is Optional because of the default value already covering the WAF requirement. Making it mandatory (Required) would mean to remove the default value.
The type Conditional, on the other hand, is usually for parameters optional by default, but becoming required under a specific condition. For example, required if a different parameter is set to a certain value. They also require to specify the condition under which they become mandatory in the description metadata.
Given the above, I don't think this parameter type should change, but open for discussion 🙂

@eriqua I confirmed within my team and I think I understand better that the default value is to deploy all 3 zones in the Azure Firewall. Thanks a lot you may close the issue

Closing issue.


Feature request: Support multiple Vault backends

Hi guys!
First of all - thank you very much for creating this product, its very useful! 👍
I'd like to offer an improvement idea.
In environments where there are few instances of Vault (prod and non-prod are separated), it would be super convenient to be able to pass  VAULT_ADDR in the CRD itself, so the controller reads the manifest and route the secret fetch request to the specified instance of Vault. So, it's similar to what is already done for DEFAULT_VAULT_ROLE when you can rewrite it on a resource level.
For example, the manifest could look like that (see the added vaultAddr field):
apiVersion: 'kubernetes-client.io/v1'
kind: ExternalSecret
metadata:
  name: hello-vault-service
spec:
  backendType: vault
  vaultMountPoint: my-kubernetes-vault-mount-point
  vaultRole: my-vault-role
  vaultAddr: https://vault-dev.example.com
  data:
  - name: password
    key: secret/data/hello-service/credentials
    property: password
separately
  - name: api-key
    key: secret/data/hello-service/credentials
    property: api-key

Thank you in advance for looking at this!

In the go rewrite there should be support for multiple backends of the same type, for more details you can check the planned crd-spec.
I don't think this is something we will support in the current version of KES.


Add support thunder SVM method and weights for IDP sklearn

@agorshk, @Alexander-Makaryev  @oleksandr-pavlyk  Please, look this changes for SVM

@PetrovKP Would it make sense to also make _daal4py_kf support CSR input as we discussed some time back? Or perhaps it should be done in a separate PR.

@PetrovKP Would it make sense to also make _daal4py_kf support CSR input as we discussed some time back? Or perhaps it should be done in a separate PR.

Yes. It will be in another PR. And most likely in the next release. We need to spend some time passing all the tests.


Process API to support Windows

Process API must support spawning processes on Windows.
References

https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/
https://docs.microsoft.com/en-us/windows/console/createpseudoconsole

done


Feature: NixOS Modules

Instead of importing individual configs, import a single modules that enables something along the lines of setting options in hardware.nixos-hardware or similar.
This would play nicer with some situations such as me wanting to use specializations with different hardware support than the default config. If I inherit the default config, I currently cannot easily disable one hardware import and use another. For example, having a specialization that enables nvidia optimus while the default config disables the nvidia card.
Of course, maybe there is a reason it is currently the way it is, and I am not aware?

This would make it cleaner to add optionals to hardware configs. I could optionally have an opencl setting for a laptop with an enable option. Without importing another module.

Of course, maybe there is a reason it is currently the way it is, and I am not aware?

We have a wide range of hardware in nixos-hardware with sometimes only 0-2 people that are available to test a particular hardware. As such I think it's a good strategy to avoid too many abstractions and instead make hardware profiles independent from each other so that we can test and change it without breaking different profiles. However feel free to modularize a particular model with more options if you feel that the current structure forces you to use options that you don't want to use. I think this is an independent feature from merging all modules into one namespace.

Id like to express want for something like this, even if it is only the .enable option for each module.
As a use-case, a flake that is supporting multiple pieces of hardware, may very likely have a module similar to this:
{ lib, pkgs, config, inputs, ... }:
with lib;
let
  cfg = config.foo.hardware.framework;
in {

  imports = [
    inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
  ];

  options.foo.hardware.framework = {
    enable = mkEnableOption "default framework options";
  };

  config = mkIf cfg.enable {
    <some other default framework configuration>
  };
}

With the intention being to set some default configuration in addition to the contents of the nixos-hardware module.
The downside to this is that you cannot gate the import of nixos-hardware, and so it gets included in every configuration when the flakes module list is loaded, which is exasperated for every other piece of hardware in the flake.
The work around to this is to import nixos-hardware directly in each nixosConfiguration, which means you cannot group it logically with the rest of the hardware configuration.
Giving each module an enable option would allow this usecase to work.

Write now I use disabledModules for my specialisations, but it feels gross


Dereferencable labels

Occasionally there are resources referenced in IIIF that have labels that do not match the labels on the resource after dereferencing.
Example: https://iiif.wellcomecollection.org/presentation/b18031511
In the manifest
{
  "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
  "type": "Manifest",
  "label": {
    "en": [
      "Volume 1",
      "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar."
    ]
  }
}

When you dereference it:
{
  "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
  "type": "Manifest",
  "label": {
    "en": [
      "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar."
    ]
  }
}

The way the vault works at the moment, the first label inside of the collection (with "Volume 1") would be saved in the vault when you import the collection. When you then did vault.load(manifestId) the label would be replaced with the new one (and "Volume 1" would be lost).
The issue is that there are 2 labels, one for the reference - and one for the resource.
Link to the code where references are added - https://github.com/IIIF-Commons/parser/blob/main/src/presentation-3/normalize.ts#L79-L80
Possible fixes or improvements

Add labels to some references like collection items or annotation pages that are known to be external
Better merging of entities, so no values are lost (but loses contextual information of where they came from)
Using meta to store supplemental labels that can be accessed if required.

The problem is one of adding different parts of the graph together and sometimes getting different facts from different parts. I think, though, that this becomes a problem for software that uses vault to solve, if we can get vault to do the following:

All refs retain their label property (so they are {id, type, label}). Not just refs to external-but-still-iiif resources like AnnotationPage or Collection (or Manifest, sometimes). This makes it quicker to build UI that doesn't have to go to Vault again to get the strings to display on the parts.
It also means you don't have to load an external resource to find a label for it, if there is already one in the initial resource.
It solves a problem in the current impl where if the external reference in the manifest has a label but the external resource itself does not, there's no way in Vault to see what that label in the reference is.
If vault gets one label from the reference and another from the corresponding external resource, then that resource simply has both labels. This is consistent with the graph. The language maps are merged (if the string values differ). It might gain more keys or it might gain more strings for existing keys, last in appended.

If you are using Vault in a read-only way (e.g., in a viewer) then these rules don't really give you a problem. You can even keep track of the label of a resource before you did vault.load(..) and "pulled more information into the graph", and the label after, and do whatever you need to do if they are different.
The problem of splitting them out again if you want to save a part of the vault state is deferred to vault-using software. Let's see if that becomes a problem.
Scenario... a Collection Editor. It's job is to save some JSON, a IIIF Collection. Obviously does not contain embedded manifests, just refs (but obviously, useless without labels).
You add 10 manifests to the collection. You use vault to load them, validate them, grab their labels - but you're just adding refs to the Collection JSON you are creating. They bring their source labels with them.
If you edit those labels to work better as member items in a collection, you're just editing them in the collection - even if vault is modifying the manifest it loaded, you're never going to save that manifest out of that vault, you're only going to save the collection, to JSON.

One idea, only for representations in Vault and abstracted when serialised, could be introducing a new property on any stored resource:
{
  "id": "https://example.org/manifest-1",
  "...": "...",
  "dcterms:hasPart": [
    {
      "id": "https://example.org/manifest-1",
      "type": "Canvas",
      "label": "A different label",
      "partOf": "https://example.org/collection-1"
    }
  ]
}

For example the above would say, when this resources is "partOf" https://example.org/collection-1 it should use this snippet instead of the main resource. It would be completely excluded when serialising the manifest, but would appear when serialising the manifest.
I think it would be generic enough to work across most scenarios too:
{
  "id": "https://example.org/large-image.jpg/full/300,200/0/default.jpg",
  "type": "Image",
  "width": 300,
  "height": 200,
  "dcterms:hasPart": [
    {
      "id": "https://example.org/large-image.jpg/full/300,43/0/default.jpg",
      "type": "Image",
      "service": "{ ... inline image service ... }",
      "width": 300,
      "height": 200,
      "partOf": "https://example.org/painting-anno-1"
    }
  ]
}

This would fix a bug in Manifest Editor where if the image resource on the painting annotation is the same as the canvas thumbnail it can have different properties (maybe I don't want an image service on the thumbnail - just a single size).

The problem of splitting them out again if you want to save a part of the vault state is deferred to vault-using software. Let's see if that becomes a problem.

Yeah I think that Vault needs to help here, contrary to my earlier comment.
However it does it, it needs to be aware of the serialisation boundary a resource came into Vault from, so that if it's serialised out again to that boundary, the correct slice of Vault gets serialised.
IIIF is a serialisation-specific spec first and graph data second.
This is like tagging everything with some kind of context id of the relevant serialisation boundary (typically a Manifest id, but could be anything).

This is now implemented in: #23
Here's roughly how it works. Using the original example where the Collection and Manifest have different values. When you first load the Collection the following will be saved:
{
  "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
  "type": "Manifest",
  "label": {
    "en": [
      "Volume 1",
      "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar.",
    ],
  },
  "iiif-parser:hasPart": [
    {
      "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
      "iiif-parser:partOf": "https://example.org/collection-1",
      "type": "Manifest",
    },
  ],
}

And if you were to load only the manifest on it's own, you would get:
{
  "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
  "label": {
    "en": [
      "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar.",
    ],
  },
  "iiif-parser:hasPart": [
    {
      "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
      "iiif-parser:partOf": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
      "type": "Manifest",
    },
  ],
  "type": "Manifest",
}

But if you load both, then regardless of the order it will look like:
{
  "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
  "type": "Manifest",
  "label": {
    "en": [
      "Volume 1",
      "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar.",
    ],
  },
  "iiif-parser:hasPart": [
    {
      "@explicit": true,
      "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
      "type": "Manifest",
      "label": {
        "en": [
          "Volume 1",
          "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar.",
        ],
      },
      "iiif-parser:partOf": "https://example.org/collection-1",
    },
    {
      "@explicit": true,
      "id": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
      "type": "Manifest",
      "label": {
        "en": [
          "The biological basis of medicine / edited by E. Edward Bittar ; assisted by Neville Bittar.",
        ],
      },
      "iiif-parser:partOf": "https://iiif.wellcomecollection.org/presentation/b18031511_0001",
    },
  ],
}

During serialization this is transparent, you just get the right variation at the correct time. However for Vault this will have to change slightly to support it - with the optional partOf option for .get() and some caching considerations / documentation as the instances of the objects change each time you request them.
Image resources
The other example that's cropped up is image resources (inside annotations) sharing IDs with thumbnails - sometimes with different values.
This is the manifest I put together, based on a cookbook one. Note the canvas.thumbnail is just an image, but inside the annotation it has an image service and height and width.
{
  "@context": "http://iiif.io/api/presentation/3/context.json",
  "id": "https://iiif.io/api/cookbook/recipe/0005-image-service/manifest.json",
  "type": "Manifest",
  "label": {
    "en": [
      "Picture of Göttingen taken during the 2019 IIIF Conference"
    ]
  },
  "items": [
    {
      "id": "https://iiif.io/api/cookbook/recipe/0005-image-service/canvas/p1",
      "type": "Canvas",
      "label": {
        "en": [
          "Canvas with a single IIIF image"
        ]
      },
      "thumbnail": [
        {
          "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
          "type": "Image",
          "format": "image/jpeg"
        }
      ],
      "height": 3024,
      "width": 4032,
      "items": [
        {
          "id": "https://iiif.io/api/cookbook/recipe/0005-image-service/page/p1/1",
          "type": "AnnotationPage",
          "items": [
            {
              "id": "https://iiif.io/api/cookbook/recipe/0005-image-service/annotation/p0001-image",
              "type": "Annotation",
              "motivation": "painting",
              "body": {
                "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
                "type": "Image",
                "format": "image/jpeg",
                "height": 3024,
                "width": 4032,
                "service": [
                  {
                    "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen",
                    "profile": "level1",
                    "type": "ImageService3"
                  }
                ]
              },
              "target": "https://iiif.io/api/cookbook/recipe/0005-image-service/canvas/p1"
            }
          ]
        }
      ]
    }
  ]
}

The V2 branch can now correctly parse this and serialize it out back to this exact JSON (🎉 ) It does that by storing it with a JSON-LD framing:
{
  "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
  "type": "Image",
  "format": "image/jpeg",
  "height": 3024,
  "width": 4032,
  "iiif-parser:hasPart": [
    {
      "@explicit": true,
      "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
      "type": "Image",
      "format": {},
      "iiif-parser:partOf": "https://example.org/canvas-2",
    },
    {
      "@explicit": true,
      "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
      "type": "Image",
      "format": {},
      "height": {},
      "service": {},
      "width": {},
      "iiif-parser:partOf": "https://example.org/canvas-1",
    },
  ],
  "service": [
    {
      "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen",
      "profile": "level1",
      "type": "ImageService3",
    },
  ],
}

So unpacking both of the frames:
{
  "@explicit": true,
  "id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
  "type": "Image",
  "format": {},
  "iiif-parser:partOf": "https://example.org/canvas-2",
}

This is what should be embedded on the canvas (thumbnail property).

@explicit states that the resource should only include properties listed (W3C)
{} is a wildcard that says "include this value" (W3C)
"type": "Image" is a literal which will just be included, this will be how differing values will be stated
"iiif-parser:partOf" is where this framing applies

The other frame includes lots of wildcards. These rules are all computed when you serialize it out - and is largely non-breaking for the serializer.
Limitations
You could construct a case where this would break, where the partOf is not specific enough. A workaround could be to extend it to  "iiif-parser:partOf": "https://example.org/canvas-2#thumbnail" to be more specific - however I can't think of a real-world case where this might happen and it complicates the parsing.
Additionally, this will add some complexity to Manifest Editor, if it came across these types of cases. When editing, a context for where a resource is being edited will have to be added - and potentially some rules for which properties to change and when to update the "merged" state.


Burn nft button & refresh store and localStorage

add Burn button on Nft detail page
after burn, comme back to NftsList page without displaying burned nft

Burn function is available in "OpenNFTs" collections, but seems not working


chore(main): release bot.gateway 0.1.1

:robot: I have created a release beep boop
0.1.1 (2024-01-26)
Bug Fixes

and again (6243e0b)
bump Bot.Gateway readme (cc26acc)
bump Bot.Gateway Readme.md (51d83ba)
CI (149a3ae)
CI (b15d121)
CI again (85e717e)
CI and bump Bot.Gateway (eea6bf5)
CI and semver release versioning (ffe5dcc)
CI env (e6c11d8)
file_pattern in commit back (9c1b74e)
hypothetical fix (ab5810d)
nullable release-please (f0fd138)
path (74be0ba)
Readme bug test (60afd85)
Readme.md bump (3abadde)
release-please CI fixes (3c8816d)
switch back to release-please (e36c458)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Sillock-Inc/Dotbot/releases/tag/bot.gateway-v0.1.1 :sunflower:


Allow to exclude by buffer types

This is useful for Neovim terminal, which doesn't set the filetype but buftype terminal.

Thanks.


Missing Recipient in SAML2 Response - SubjectConfirmationData

After some tests with CAS (5.1.0-RC3-SNAPSHOT) as SAML 2 IdP and SAP as SAML 2 SP we encountered that SAP demands the Recipient attribute within the SubjectConfirmationData. Even if SAP is complaining about an invalid NotBefore attribute we could find out in the SAP code that the Expression lead to this Exception also checks that a Recipient is present :see_no_evil:
After some investigation of the CAS code I found out that CAS tries to use the AssertionConsumerServiceURL from the AuthNRequest. I didn't check the SAML 2 spec and I'm not sure what is the right handling here.
I did read [1] that the Recipient is mandatory if the Assertion is signed during the investigation of the SAP issue.
So probably the Recipient in the SubjectConfirmationData should be the same as the  Destination of the SAML Response. In fact SAP is accepting my CAS SAML response if it is set that way.
I found that the Destination is determined in the SamlIdPUtils.preparePeerEntitySamlEndpointContext(). Here the first AssertionConsumerService is used without any checking. This might be the problem of #2493 as the same method is used to build the MessageContext for the SOAP binding too, if I followed the code correctly (not that easy because all the different builder using the same interface).
        final Endpoint endpoint = assertionConsumerServices.get(0);
        if (StringUtils.isBlank(endpoint.getBinding()) || StringUtils.isBlank(endpoint.getLocation())) {
            throw new SamlException("Assertion consumer service does not define a binding or location for " + adaptor.getEntityId());
        }

So I'm not really sure what's the best way to fix the missing recipient in the Subject as I don't want to duplicate this logic which may differ in the near future.
    private Subject buildSubject(final HttpServletRequest request,
                                 final HttpServletResponse response,
                                 final AuthnRequest authnRequest, final Assertion assertion,
                                 final SamlRegisteredService service,
                                 final SamlRegisteredServiceServiceProviderMetadataFacade adaptor) throws SamlException {
        final NameID nameID = this.ssoPostProfileSamlNameIdBuilder.build(authnRequest, request, response, assertion, service, adaptor);
        final String recipient = adaptor.getAssertionConsumerService().getLocation();
        final ZonedDateTime validFromDate = ZonedDateTime.ofInstant(assertion.getValidFromDate().toInstant(), ZoneOffset.UTC);
        final Subject subject = newSubject(nameID.getFormat(), nameID.getValue(),
                recipient,
                validFromDate.plusSeconds(this.skewAllowance),
                authnRequest.getID());
        subject.setNameID(nameID);
        return subject;
    }

Best
-- Robert
[1] https://lists.oasis-open.org/archives/saml-dev/200711/msg00002.html

Here the first AssertionConsumerService is used without any checking. This might be the problem of #2493 as the same method is used to build the MessageContext for the SOAP binding too

Yes. You want to handle this one as well? You could use the same solution provided here https://github.com/apereo/cas/commit/94fa16a7920ff1fbc0a4ff8d7be41d575d6883cc#commitcomment-21554165 though it still needs a bit of work.
I'll take a look at this bit:

So probably the Recipient in the SubjectConfirmationData should be the same as the Destination of the SAML Response.

Sound good?

I ran a quick test after a few changes, and here is what I see:
<?xml version="1.0" encoding="UTF-8"?><saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified" Destination="https://mmoayyed.unicon.net:9443/sp/saml/SSO"
ID="_5335885234031651031" InResponseTo="a1fb1a0b96j5134c3f14ebafgbe4600"
 IssueInstant="2017-03-30T11:22:31.484Z" Version="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://mmoayyed.unicon.net:8443/idp</saml2:Issuer>

...

   <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_1341558091995025942"
IssueInstant="2017-03-30T11:22:12.867Z" Version="2.0">
      <saml2:Issuer>https://mmoayyed.unicon.net:8443/idp</saml2:Issuer>
      <saml2:Subject>
         <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">casuser</saml2:NameID>
         <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
            <saml2:SubjectConfirmationData InResponseTo="a1fb1a0b96j5134c3f14ebafgbe4600" NotOnOrAfter="2017-03-30T11:22:12.853Z"
Recipient="https://mmoayyed.unicon.net:9443/sp/saml/SSO"/>
         </saml2:SubjectConfirmation>
      </saml2:Subject>
     ...
</saml2p:Response>

Is this good?

Fixed via https://github.com/apereo/cas/commit/b21d7be6ee00c60a62c0e1fd203574615a1151ac and family.

When you get a chance, please confirm this and if the issue persists, we can investigate further.

Thanks for the quick response and solution! I have to work on another project the rest of the day but I will try to test it in the evening and will report back any finding.

Tested with SAP and ADFS 2.0 and everything seems to work.
Thank you very much. Now lets see that I get some notes together for contribution :)

Excellent. Thanks. This seems like the ideal location for the notes: https://apereo.github.io/ or all other mediums are fine too!

How are the docs coming along @ledermueller ? Any updates?

Nope, not yet - sorry.

Does this issue fixed?
I use lastest relase v5.0.5, receive request from SAP system, everything looks like ok,and the response for the request build ok, but SAP system raise an exception,like this:
Caused by: CX_SAML20_ASSERTION:  element  'SubjectConfirmationData'  attribute  'NotBefore' is invaild.


Automatic-Module-Name

Hello,
Can you add Automatic-Module-Name to the MANIFEST.MF so that it can be used in module-info.java

Thx for the hint, I added a more verbose manifest:
Manifest-Version: 1.0
Build-Timestamp: 2023-08-11T06:33:27.903+0000
Created-By: Gradle 8.2.1
Build-Jdk: 17.0.8 (Azul Systems, Inc. 17.0.8+7-LTS)
Build-OS: Linux amd64 5.15.0-1042-azure
Implementation-Title: JSON:API for Spring HATEOAS
Implementation-Version: 2.0.6-SNAPSHOT
Automatic-Module-Name: spring.hateoas.jsonapi
The Automatic-Module-Name is the same as if where no entry in the manifest since it is derived by the JAR name if no manifest entry is available.
It is in the current snapshot and will be in the next release.


Update Tabler assets

Could you update the CSS and JS with the latest version of Tabler? The package uses v1.0.0-beta2, while beta6 is currently the latest version. I am implementing some elements of the Tabler preview and have the feeling I'm missing some styling.

Hi! Can you re-test latest master and let me know if it works now?

@kevinpapst Thank you for the quick fix, perfect! The styling is consistent now.

Thanks for your feedback 👍


feat(n-tree): adds ignore-empty-children prop

ref  https://github.com/tusen-ai/naive-ui/pull/4176 https://github.com/tusen-ai/naive-ui/commit/73eade2a26c1bdef236a570393d3e36c4ce6a42c

使用 :get-children="(v) => (v.children?.length ? v.children : undefined)"

Fuck, I've forgot my solution. We should add a demo instead of current solution.

TODO add docs


Does the repo provide any scripts for visualization of results?

Hello! For now, visualization tools are not supported.

Alright. Thanks for letting me know!


Speed up loading trusted setup

This PR speeds up loading the trusted setup. It does this by:

Swapping out the G1 points (in monomial form) with G1 Lagrange points.

Both are provided in the trusted setup in the specs.
This will require clients update their trusted setup files.
Another benefit of this, we get to remove the fft functions & tests.

When loading the trusted setup, replace validate_kzg_g1 with less expensive alternative.

Now it just does blst_p1_uncompress and blst_p1_from_affine.
The blst_p1_in_g1 (subgroup) check takes about 170ms on my system.

On my system, this results in 28x speed-up (2050ms -> 71ms).
Without the extra extra optimization (replacing validate_kzg_g1), it's an 8x speed-up (2050ms -> 250ms).

Nice, thanks! Will review your PR & pull it into this branch soon.

LGTM!

Merging this. Thanks everyone!

I don't understand this change from the crypto side, but is there a way to check that we have new trusted_setup and throw if an old one provided? When using an old one I still produce some commitments and proofs, but they are not correct and fails on verification. So it would be great to throw if trusted_setup doesn't follow new expectations. Is it possible?


documentation on foundation cli up to date?

On http://foundation.zurb.com/sites/docs/v/5.5.3/sass.html#cli I do see this command to install the cli tool gem install foundation, from my understanding this is old/obsolete and replaced by gem install foundation-cli. Could you please update the doc or clearify this matter?
Thx and Greets,
Peter

The former (foundation) works for me; the latter (foundation-cli) doesn't:

$ sudo gem install foundation-cli
ERROR:  Could not find a valid gem 'foundation-cli' (>= 0) in any repository
ERROR:  Possible alternatives: foundation-css, foundationapi, foundation, foundation-sass, codelation-cli

$ sudo gem install foundation
Fetching: thor-0.19.1.gem (100%)
Fetching: foundation-1.0.4.gem (100%)
Successfully installed thor-0.19.1
Successfully installed foundation-1.0.4
2 gems installed

https://github.com/zurb/foundation-cli is a nodes module and not a gem package, so I'd like to rephrase my question to this:
Is gem install foundation replaced by `npm install -g foundation-cli'?

@pniederlag The new CLI doesn't install Foundation 5 projects, so if you need to do that, stick with the Ruby CLI for now.
We'll update the F5 docs with a note about this.

Added that note: 7ad066ee81e1c26e4ee8ac87a186a112ca61291c
Deploying to the live docs shortly!


Typewriter Extension is not working anymore

Since updating to 1.22 (I assume) the Typewriter extension is not working anymore...
The only output is:
WARNING: Failed to save source map for 'file.cs'. Project type not supported.
What is the problem here? I can't install the old version anymore, as it will be updated automatically to 1.22
I am using Visual Studio 2019 CE

Not working for me neither.
What Visual Studio version are you using? I'm on 2019  16.7.2. It worked fine in my older version of VS 2019

I'm having the same issue. I just set up a new machine and the newer version is giving me the is error.

VS Professional 2019 v4.8.03752
Typewriter 1.22

Typewriter is working fine for me and has been for years:

VS 2019 CE: v16.8.4 (4.8.04084)
Typewriter 1.22.0

The only issue I have is that it slows down the UI quite a bit when rendering the templates but that is a long standing issue.

Typewriter is working fine for me and has been for years:

VS 2019 CE: v16.8.4 (4.8.04084)
Typewriter 1.22.0

The only issue I have is that it slows down the UI quite a bit when rendering the templates but that is a long standing issue.


Use spot instances for dask workers

Don't change the instance type of the dask workers - so no
mixed instances. This is a straight port of what we have now
to just use spot instances.
x1 spot instances can't be created due to quota issues,
so we remove them from the pool.

Fixes https://github.com/2i2c-org/pilot-hubs/issues/490

I've deployed and tested this.

Issues to create from here:

Fix x1 instances, for both notebooks and dask
Consider using mixed-instance types, to ensure better pricing & availability of nodes

@yuvipanda I've created a tracking issue for this one, think we could use that to track the extra items you wanted to follow-up on? And merge this PR since it is deployed? https://github.com/2i2c-org/pilot-hubs/issues/607

Thanks a lot, @consideRatio! what do you think of it now?

@consideRatio we're discussing that topic over in here too: https://github.com/2i2c-org/team-compass/issues/175


add option to skip freelist sync

When the database has a lot of freepages, the cost to sync all
freepages down to disk is high. If the total database size is
small (<10GB), and the application can tolerate ~10 seconds
recovery time, then it is reasonable to simply not sync freelist
and rescan the db to rebuild freelist on recovery.

@heyitsanthony fixed. PTAL.

overall looks OK, but is switching between no free list sync and free list sync safe?

it is safe from free list sync to no sync, but not the other way around.

@heyitsanthony fixed. PTAL.

lgtm but the test/second patch seems to have code that belongs in the implementation/first patch.
Also it'd be nice to have some way to protect against no sync -> sync (commit with no-sync writes an invalid page for the freelist?), but that can be deferred; open an issue?

lgtm but the test/second patch seems to have code that belongs in the implementation/first patch.

yea... i made a mistake when rebasing... I guess i will just squash the two commits into one.
I will open an issue on the other thing you mentioned.


avoid indexing every time?

is there a feasible way to do this? maybe it makes no sense, if displaying file size. but if i'm using this as an ls substitute, it feels weird for it to take 5 seconds every time. maybe let me set an ls alias to use a cached index, then other commands update this index?

Whether or not to leverage the cache is a decision made by the underlying read_dir API from libc; but rest assured the cache is indeed being utilized automatically. Checkout the following screenshot:

I color coordinated the highlights for the stats from iostat on the left with the timeed erd runs on the right. You'll notice two things:

The subsequent erd run is approx 1.8 times faster than the first
The amount of 4KB transfers per second (tps) is lower on the subsequent erd run

This all lends credence to the fact that we're not always making round-trips to the disk when disk data already exists in the cache.
Now as to why erd may not be 100% suitable as an ls alternative: Ultimately in order for us to get disk usage information of directories we need to do a full-depth traversal of a directory's descendants. Even if you were to limit the depth to 1 (-L1), erd accurately reports disk usage information which necessitates the traversal.
There IS an option to --suppress-size but this issue is still ongoing.
Would you want ls-like performance at the cost disk usage information? Could I also ask how you're using erd currently as an ls-alternative?


RunKit link on README defaults to v2.1.3

On the README, there is a "Try it yourself" link, which links to https://npm.runkit.com/ion-js (this is also linked from the npm packge).
However, opening this link defaults to RunKit importing v2.1.3, which is an older, buggier version of ion-js (according to the README, the current version is 3.0.0-beta3).
Is it possible to get RunKit to import the latest supported version of ion-js instead of v2.1.3?

I spoke with the runkit team and they said as long as we are tagging revisions as beta their system will not update. So we could do so but it might be confusing for consumers in npm

If it can't be forced to resolve to the new version, should we just remove that link?  Or should the old version be marked as deprecated in npm?
It's creating confusion -- I had another developer look at IonJS and they came back to tell me it was broken in ways that I know have already been fixed, and only once I had them show me in RunKit did we realize it was loading an old version.

Im about to push a new revision with typescript readers/writer classes exported. I can remove the beta revision tag and it will reflect the changes.

#207 tries to clarify this until we have a stable 3.x version

fixed: https://github.com/amzn/ion-js/pull/488


writeStream.write callback

When using a write stream, the Node spec says that you can pass in a callback as last argument like this:
var ws = db.createWriteStream();
var o = {key:'k1', value: 'v1'};
ws.write(o, function() {
  console.log('wrote', o);
});

I don't need the the write stream interface to be 100% compliant, but I do need to get write acknowledges, which the current implementation does not provide.
I looked at the source code and I couldn't find an obvious way around this (except for reimplementing the write stream on top of db.put and db.del, but I didn't want to go that way).
For instance, is there any event that is emitted after a flush? I was looking at the drain event emitted here, but I think that _writeBlock is not always true, so I can't trust that, can I?

@pgte Closing this because write-stream removal in 1.0.0


[Feature Request] Drag and Drop files into GUI

A drag and drop feature would be very useful. It would save time.
By the way, on Manjaro KDE folders with "umlaut" vowels are not recognized. For example, I have a folder called "die Müllmafia" with a .pdf (a graded reader).
The software does not recognize the folder with that "umlaut" and I cannot process the .pdf

I am currently in the transition to GTK. Will look at this again in the future.


fix: cleanup after pages dev tests

We weren't killing the process started by wrangler whenever its parent was killed. This fix is to listen on SIGINT/SIGTERM and kill that process. I also did some minor configuration cleanups.
Fixes https://github.com/cloudflare/wrangler2/issues/397
Fixes https://github.com/cloudflare/wrangler2/issues/618

(fyi this does NOT cleanup the occasional flake with the remix test where the text doesn't render)

oh lol this hangs on windows and ubuntu huh

Aight, looks like forceExit is still necessary for windows/ubuntu.

🤞


fix broken link

@casperdcl thanks!

darn yarn

Lol @casperdcl do you have the pre-commit hook setup? See https://dvc.org/doc/user-guide/contributing/docs#development-environment

I committed directly from GitHub

@casperdcl @jorgeorpinel yep, that's why we need to install restyled :) so, that it's easy to edit it directly using Github as CMS admin :)


Instrument with OpenCensus

This is for monitoring the sidecar itself, not how we write the Prometheus data.
This is important so we don't rely on Prometheus to monitor the Prometheus sidecar (although that will be an option with OpenCensus).
https://opencensus.io/go/index.html

OpenCensus now supports a view type of LastValue which is like a gauge https://godoc.org/go.opencensus.io/stats/view#LastValue

Thanks, Bill. We are working with OpenCensus to have a first-class gauge in Go soon, like it was added to Java https://github.com/census-instrumentation/opencensus-java/blob/master/api/src/main/java/io/opencensus/metrics/LongGauge.java

This is a cleanup. We'll take care of this if necessary, but currently it's not a blocker, so I'm closing the issue.


Responsive font size issue

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
Hi! I have an issue regarding overriding font sizes. Locally I do not have any issues overriding variables, but on a staging environment with docker, the font-sizes that I am overriding are becoming negative.
This image represents the local version. The responsive font sizes variable is enabled and the overridden value for the display 2 is represented by that 1.75rem value.

And this is the staging environment with docker where the display 2 font size is negative, but the same 1.75 rem as in the photo above. Because the value is negative, bootstrap turns to the default from the node modules file.

Reduced test cases

What operating system(s) are you seeing the problem on?
Windows, macOS
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
v4.5.0

It looks like you have double the CSS perhaps? Hard to say without any kind of demo or extra details. How are values becoming negative?

Closing for now until we hear more since this isn't an issue in our docs usage.


return node fit error in advance

There are many filter policies in the current node fit, similar to the filter plugin in the scheduler. The correct logic should be: if any plugin does not meet the conditions, it should be terminated in advance. The current check logic is incomprehensible, and it actually performs all filter check logic, which is not only time-consuming, but also very unnecessary.(https://github.com/kubernetes-sigs/descheduler/blob/master/pkg/descheduler/node/node.go#L107)
Because the default loop time is 5min, this time can be adjusted. The larger the cluster, the longer the nodeFit time, so the full loop time can easily exceed 5min. What if the user sets the loop time to 1 minute? Comparing one by one I think is very, very unnecessary, too time-consuming, we should be the same as the filter policy in the scheduler.
When checking the pod at https://github.com/kubernetes-sigs/descheduler/blob/master/pkg/framework/plugins/defaultevictor/defaultevictor.go#L67, it also returns early

/ok-to-test
/assign @ingvagabund given the recent discussions on future of NodeFit

Or, we could run the checks in parallel. The question is whether it's useful to notify about all individual checks errors. If the goal here is to reduce the computation time, then parallelization works better.

Or, we could run the checks in parallel. The question is whether it's useful to notify about all individual checks errors. If the goal here is to reduce the computation time, then parallelization works better.

thank you, master, I just added the parallel logic. I forgot to submit the code for parallel processing earlier.

I just added the parallel logic.

This is another parallelization. Originally, I mean to parallelize internal of NodeFit itself. E.g. the individual checks. If we parallelize on the level of PodFitsAnyNode/PodFitsAnyOtherNode we need a different discussion.

@fanhaouu in my proposal I'd like to allow users to extend available nodeFit checks through custom plugins. For which we need to make sure none of the individual checks modifies pod/node arguments. Though, I can make a note in the proposal to revisit the parallelization later so I don't block this PR.

With the new parallelization would you please create new test cases for both PodFitsAnyOtherNode and PodFitsAnyNode to make sure each node is processed properly? E.g. run PodFitsAnyOtherNode with a list of e.g. 4 nodes:

1st and 3rd nodes do not fit a pod
2nd and 4th nodes do not fit a pod

To make sure the parallelization works as expected.

ok, master

Given there's podFitsNodes function would you please create a new test specifically for testing the parallelization? Something like this:
nodesTraversed := make(map[string]struct{})
...
podFitsNodes(
	nodeIndexer,
	pod,
	nodes,
	func(pod *v1.Pod, node *v1.Node) bool {
		nodesTraversed[node.Name] = struct{}{}
		return false
	},
)
...
// checking all four nodes have been processed/read.
for _, nodeName := range nodeNames {
	if _, exists := nodesTraversed[nodeName]; !exists {
		t.Failf("Node %v was not proccesed", nodeName)
	}
}

To make sure every node is checked. With this the new tests are no longer needed.

ok, thank you, master

/approve
/lgtm


Add default content-type value when setting stream content

We missed adding a minor version bump to the previous release by adding a required contentType parameter with no default value causing errors on Graph Core & Graph preview service libs
This adds a default value for the parameter.
@baywet would adding this default match the desired functionality?

We can release this alongside #91

We can release this alongside #91

Rebased. Waiting for @baywet's sign-off.


Shader editor doesn't work with new ui

Uncaught Error: ace.edit can't find div #shader-ace-1443950065283
Create a material

https://github.com/vizorvr/vizor/blob/develop/browser/plugins/three_material_shader.plugin.js#L114  - looks incomplete..


[WIP] plugin/general docs update

@mantis-toboggan-md Can we get these changes in! I will update the plugins/extensions docs a bit more, but  what you've done here is a definite improvemement.

Sure thing @nwmac, would you mind re-approving?

@mantis-toboggan-md This failed the build, could you take a look? Once resolved I'll branch for 2.7.0 https://github.com/rancher/dashboard/actions/runs/3420704433/jobs/5695865887