Enhance C GLSZM

Enhance C extension algorithm for calculating GLSZM. Instead of searching over entire image for voxels to process when growing a region, instantiate a stack (max size equal to number of voxels) to hold indices for voxels that have to be processed for the current region.
When an unprocessed voxel, belonging to the ROI is found, a region is started by pushing the index of that voxels to the stack. Then a loop is started where the last added voxel in the stack is popped and its neighbours are checked. If unprocessed and belonging to the same region (same gray level), indices for those voxels are also pushed to the stack. The loop then runs until stack is exhausted (i.e. no new neighbours available, indicating the region is complete). The number of loops are counted and are equal to the size of the zone.
Reset data type for mask from signed char back to char, as negative values are not needed anymore.
Profiling results (from previous to new C extension implementation):
5 test cases, normal mask 56 ms --> 6 ms
brain1 test case, full mask 1340015 ms --> 4855 ms
Performance of GLSZM calculation now comparable to that of GLRLM (approx. 2.5x slower than GLCM)

cc @Radiomics/developers
Fixes #256

This algorithm change does require more memory, as it instantiates a temporary array (size equal to number of voxels segmented) to hold the found indices.

Big win!  Nice work.
I don't suspect the memory will be a constraining factor in most use cases, but somewhere in the documentation we should have a list of practical considerations about estimated resource requirements for various processing scenarios (expected time and memory requirements for different input types).

I don't suspect the memory will be a constraining factor

I don't think so too. Especially if you consider it's just one array , equal to the ROI size. Alternative performance enhancements, such as multithreading, etc, would require at least as much extra memory, if not more.

Nice! Should we ask Dan to test this branch with the data that was problematic for him in the past?

Good idea: @blezek can you have a look?
Oh, and by the way, @JoostJM have you re-run some datasets to confirm the results match?  Would be good to do a few real-world examples in case there are edge cases.

@pieper, I ran this on the brain1 test case with full mask and tested it on the 5 test cases for profiling, I included the results for glszm. Furthermore, the matrix results are compared between C and python calculated results as part of the testing. Do you believe it is necessary to run it in more test cases? Aside from the fact that we still want to add additional test cases.
-------- Oorspronkelijk bericht --------
Van: Steve Pieper<EMAIL_ADDRESS>Datum: 22-05-17 17:24 (GMT+01:00)
Aan: Radiomics/pyradiomics<EMAIL_ADDRESS>Cc: Joost van Griethuysen<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Onderwerp: Re: [Radiomics/pyradiomics] Enhance C GLSZM (#257)
Good idea: @blezekhttps://github.com/blezek can you have a look?
Oh, and by the way, @JoostJMhttps://github.com/joostjm have you re-run some datasets to confirm the results match? Would be good to do a few real-world examples in case there are edge cases.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Radiomics/pyradiomics/pull/257#issuecomment-303132961, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ARMRw4tZ3x-jZUKjkY1LtZSE_lW63TXuks5r8aiTgaJpZM4NiZeC.

I know it's not possible to run exhaustive testing, but if it's just a matter of re-running an existing script with the with the updated code it would be a useful sanity check.  I know in some cases changing the implementation might lead to slightly different results due to rounding errors or whatever but here I think we'd expect identical results so checking should be easy.

@pieper, I took a look at @JoostJM's code changes.  For my testing I was simply looking at some of the whole brain segmentations from the http://www.oasis-brains.org/ study.  Not terribly representative of what we might wish to do with pyradiomics...  Was gearing up to look at the ADNI hippocampus as a test.
Very interesting results.  If I comment out line 29 of shape.py, the pyradiomics runs nearly instantly.  With the call to SetComputeFeretDiameter included, it takes 25 minutes!  I would give a +1 to not computing the Feret diameter.  The results were identical except for "original_shape_Maximum3DDiameter":<PHONE_NUMBER>084383 vs   "original_shape_Maximum3DDiameter": 0, but took only 3 seconds to run.

@blezek, I found similar results (#256). I'll take a look at maximum 3D diameter and see if I can optimize.

As a related issue, I think it may be misleading to the user of the library, that although we create an impression that calculation of individual features is possible, the reality is that it depends on the feature class. Most of the shape features are calculated in the constructor, and it is not possible for the user to disable, for example, Feret diameter calculation.
Should we consider passing the list of features that should be calculated to the feature class constructor?

Also for reference here's the ITK Feret diameter calculation.  I'm guessing it could be optimized.
https://github.com/InsightSoftwareConsortium/ITK/blob/9543d93dc85db3d67c6085664cffc08d946d2da2/Modules/Filtering/LabelMap/include/itkShapeLabelMapFilter.hxx#L390-L462

Indeed a lot of features are pre-calculated and this should be mentioned in the documentation at the very least. In terms of performance only the feret diameter is the real issue, although I'm working on a C extension. Current profiling is down to 90 seconds (as opposed to 270 seconds).
If I follow the lython implemetation it even went down to 10 seconds, but I also discovered that this could produce erroneous results (I created an artificial segmentation where the diameter calculated was 82, but the real diameter was 92)
Verzonden vanaf mijn Samsung-apparaat
-------- Oorspronkelijk bericht --------
Van: Andrey Fedorov<EMAIL_ADDRESS>Datum: 23-05-17 16:44 (GMT+01:00)
Aan: Radiomics/pyradiomics<EMAIL_ADDRESS>Cc: Joost van Griethuysen<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Onderwerp: Re: [Radiomics/pyradiomics] Enhance C GLSZM (#257)
As a related issue, I think it may be misleading to the user of the library, that although we create an impression that calculation of individual features is possible, the reality is that it depends on the feature class. Most of the shape features are calculated in the constructor, and it is not possible for the user to disable, for example, Feret diameter calculation.
Should we consider passing the list of features that should be calculated to the feature class constructor?

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Radiomics/pyradiomics/pull/257#issuecomment-303420907, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ARMRw1GLZr_znKnk5nq4dGnva2bXCUQCks5r8vDSgaJpZM4NiZeC.

Also for reference here's the ITK Feret diameter calculation. I'm guessing it could be optimized.

@thewtex Just to keep you in the loop, no action item from your side.

Also for reference here's the ITK Feret diameter calculation. I'm guessing it could be optimized.

This looks very similar to what I implemented in C. Main difference is that I also calculate the maximum 2D diameters in each direction and require it to have 3 dimensions. (Latest profiling +/- 2 mins for fully masked brain 1)
In essence, it compares all possible combinations of voxels on the border which is equal to numVox! calculations. The PyRadiomics implementation compared only combinations of voxels on the upper bound (for either z, y, or x) to voxels on the lower bound (for either z, y or x). This requires significantly less calculations. However, there are edge cases where the maximum diameter is NOT between a voxel on the lower bound and a voxel on the upper bound.
Let's discuss this at the hangout today.

Latest profiling (brain1, full mask)


Getting Null values when Reading xlsb file

I am getting null values for few cells when reading xlsb files . I am using v3.7.0 latest pre-release version and .net 6.
However this is not random, coming on same column but i have not found anything different in particulr column.

Do you have a sample .xlsb file that can be used to reproduce it?


image_picker pickImage disable save/cancel

In my app, I use carImage = await ImagePicker.pickImage(source: ImageSource.camera) to take a picture. This works fine. After taking the picture, two buttons are displayed, Save and Cancel (or something similar , the labels are in Swedish in my case.) After pressing Save, I am returned to the next statement in my app code.
I would prefer not to have these buttons. I want to return to my code immediately after taking the picture, without having to press a button.
Is this possible? How?
(I cannot use the camera plugin due to its orientation bug on Samsung Galaxy phones, issue #25232 )

Agree that this would be very nice.  It appears that the google drive widget to capture a PDF also started having a 'confirm' dialog recently, so it's probably an underlying code feature that might not be avoidable.

@BoHellgren First of all, thanks for raising this feature requests and I do think it is a good feature to have. I can totally imagine some apps can be improved with this feature.
@kvandivo is correct, Unfortunately, there is no way to do it with the current image picker native implementation due to the restriction on the image picker APIs of iOS and Andrioid. The camera plugin is your best bet, or you might need to add your own native camera implementation.
I am closing this issue, but if you find a way to actually do it with the native image picker, please feel free to open an issue to explain the method, I will be happy to implement. Or if you'd like to create a PR for it, I will be happy to review!


nanopb continues to compile if options have unmatched fields

Following patterns in <filename>.options did not match any fields: <list of field names>
If you specify options on a certain field name, and the generator cannot find it, it will print the above message, however the compilation process continues and files are still produced. I believe the correct behaviour should be for the process to terminate after that error message. If someone were to rename a field in their .proto file, and forget to do the equivalent rename in their .optiosn file, they would still get a compiled output, but with incorrect options.

Well, generally that would result in a compile-time error when compiling the C files.
But it is a reasonable feature to have available via some --error-on-unmatched option to the generator. I probably won't be implementing it any time soon, but pull requests are welcome.

I'm not sure how this would result in a compile time error?

That depends on the exact options used, but in many cases it will affect the field type, which would end up as an error in C.


Notes/2018-10-07 final

Thank you for contributing!Preview these changesLink expires: Mon Oct 15 03:11:15 UTC 2018


How to extract one key form a JSON array

The below  is my response.
[
{
"id": "cc0d1d2179b042459be0b336342c2e60",
"name": "sftp_s3_pipeline",
"type": "batch",
"source": {
"location": "/test",
"connection_id": "df03cc4c04ca434a8390d2161bd8f315",
"metadata": {
"compression": "NONE",
"format": "TEXT",
"file_pattern": ".psv"
}
},
"target": {
"location": "/test",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "TEXT",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "COMPLETE",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 09:42:44",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 09:58:23",
"addl_data": null,
"workflow_id": 3456
},
{
"id": "78676fe4bc914c5d8db9e11634334bf3",
"name": "SFTP-S3 pipeline",
"type": "batch",
"source": {
"location": "/",
"connection_id": "df03cc4c04ca434a8390d2161bd8f315",
"metadata": {
"compression": "ARCHIVE",
"format": "DELIMITED",
"file_pattern": ""
}
},
"target": {
"location": "/test/",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "DELIMITED",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "COMPLETE",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 09:48:12",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 09:58:23",
"addl_data": null,
"workflow_id": 3456
},
{
"id": "d81a17dd139e4b6fa52b4b07d80cc7e1",
"name": "Weather Sync",
"type": "BATCH",
"source": {
"location": "/premium/v1/weather.ashx",
"connection_id": "0a61fc2b621a4fd8a77c793b45580f5e",
"metadata": {
"content_type": "json",
"query_mapping": {
"q": "London;Tokyo;Paris;Berlin"
}
}
},
"target": {
"location": "test/",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "DELIMITED",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "COMPLETE",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 09:54:26",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 09:58:23",
"addl_data": null,
"workflow_id": 3456
},
{
"id": "d4e6b85213fd4748a447b2a864f42e9b",
"name": "SFTP-S3 pipeline-Bishwas",
"type": "batch",
"source": {
"location": "/",
"connection_id": "df03cc4c04ca434a8390d2161bd8f315",
"metadata": {
"compression": "ARCHIVE",
"format": "DELIMITED",
"file_pattern": ""
}
},
"target": {
"location": "/test/",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "DELIMITED",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "COMPLETE",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 10:03:01",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 10:08:48",
"addl_data": null,
"workflow_id": 3456
},
{
"id": "692e6e8e876c4cab82c3a18bc7154a3a",
"name": "SFTP-S3 pipeline-Bishwas",
"type": "batch",
"source": {
"location": "/",
"connection_id": "df03cc4c04ca434a8390d2161bd8f315",
"metadata": {
"compression": "ARCHIVE",
"format": "DELIMITED",
"file_pattern": ""
}
},
"target": {
"location": "/test/",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "DELIMITED",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "VALID_NOT_STARTED",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 10:04:56",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 10:04:59",
"addl_data": null,
"workflow_id": 3456
},
{
"id": "da52b2e6bdff43c8b62a9029047948b8",
"name": "Weather Sync-http-bishwas",
"type": "BATCH",
"source": {
"location": "/premium/v1/weather.ashx",
"connection_id": "6466c27c44c24bc1aec4959c90022840",
"metadata": {
"content_type": "json",
"query_mapping": {
"q": "London;Tokyo;Paris;Berlin"
}
}
},
"target": {
"location": "test/",
"connection_id": "648a6a665bc74714b376e6bdc717633e",
"metadata": {
"format": "DELIMITED",
"folder_pattern": "date split"
}
},
"validation": false,
"status": "COMPLETE",
"version": 0,
"is_active": true,
"created_by": "ADMIN",
"created_at": "2017-11-28 10:08:24",
"updated_by": "ADMIN",
"updated_at": "2017-11-28 10:12:43",
"addl_data": null,
"workflow_id": 3456
}
]
How can I get all the "id" from this entire response.
match response[].id is only matching one particular value.
But is there any way like  : * print response[].id

Please try it below:
print response.response[*].id
It would be good if you put whole response I believe the service gives response tag in the response.

No it's not happening.
My actual scenario is get the total count of all the "id"s, it shouldn't be equal to zero.
Please provide a possible way of doing the same...

Please paste the full response here or mail to me<EMAIL_ADDRESS>will look into it.

Have a look below for example:

def cat =
"""
{
name: 'Billie',
kittens: [
{ id: 23, name: 'Bob' },
{ id: 42, name: 'Wild' }
]
}
"""
def kitnums = get cat.kittens[*].id
See if it works for you or send the response details.

thanks @rgupta7888 !
closing as the solution is posted, this is not a bug. please read the doc carefully.
@BishwasPattnaik for these kinds of basic questions, kindly use Stack Overflow, thanks: https://stackoverflow.com/questions/tagged/karate


Doesnt appear to work correctly on mobile devices

The cursor is massively offset when using on a phone.
Although the text appears in the correct place, it seems the mobile doesnt render the text cursor correctly.
Any one else experiencing this?
Thanks.

Actually scratch that, I didn't even realise but this seems to be a bug in general, has nothing to do with this plugin.
Now I'm really ticked off.
Bed time I think.

https://github.com/twbs/bootstrap/issues/24835
By putting the following rules in CSS, the problem has been resolved.
html,body{ -webkit-overflow-scrolling : touch !important; overflow: auto !important; height: 100% !important; }


Update file names from AddressBook to UninurseBook

Update all occurences of AddressBook to UninurseBook
Update package name from seedu.address to seedu.uninurse

Codecov Report
Base: 71.15% // Head: 71.15% // No change to project coverage :thumbsup:

Coverage data is based on head (df910ab) compared to base (694480e).
Patch coverage: 80.76% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #169   +/-   ##
=========================================
  Coverage     71.15%   71.15%
  Complexity      491      491
=========================================
  Files            91       91
  Lines          1605     1605
  Branches        178      178
=========================================
  Hits           1142     1142
  Misses          413      413
  Partials         50       50

Impacted Files
Coverage Δ

src/main/java/seedu/uninurse/AppParameters.java
75.00% <ø> (ø)

src/main/java/seedu/uninurse/Main.java
0.00% <ø> (ø)

src/main/java/seedu/uninurse/MainApp.java
0.00% <0.00%> (ø)

.../main/java/seedu/uninurse/commons/core/Config.java
68.18% <ø> (ø)

.../java/seedu/uninurse/commons/core/GuiSettings.java
69.23% <ø> (ø)

...n/java/seedu/uninurse/commons/core/LogsCenter.java
78.37% <ø> (ø)

...ain/java/seedu/uninurse/commons/core/Messages.java
0.00% <ø> (ø)

...main/java/seedu/uninurse/commons/core/Version.java
82.50% <ø> (ø)

.../java/seedu/uninurse/commons/core/index/Index.java
100.00% <ø> (ø)

...se/commons/exceptions/DataConversionException.java
100.00% <ø> (ø)

... and 81 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update Sleep Analysis Values in getSleepSamples

Sleep values have been updated in the last IOS version. Before the update there was only “INBED” or “ASLEEP”.
Now there should be inBed, awake, asleepCore, asleepDeep, asleepREM or asleepUnspecified. The asleep value is deprecated.
Check out docs: https://developer.apple.com/documentation/healthkit/hkcategoryvaluesleepanalysis
Now when I query for sleep data I only get  “INBED” and “UNKNOWN”.
Please update the posibile values.

Found PR with fix, please merge https://github.com/agencyenterprise/react-native-health/pull/247


added CRUD operations for Employee, moved the CreateCageModel and DeleteCageModel to another folder

Codecov Report

Merging #55 (3245131) into dev (01ab2af) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev      #55   +/-   ##
=======================================
  Coverage   80.61%   80.61%
=======================================
  Files          69       69
  Lines        3064     3064
  Branches      149      149
=======================================
  Hits         2470     2470
  Misses        571      571
  Partials       23       23

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Mirrored HumanML3D

Thank you for the great work!
I'm trying to train your code with HumanML3D dataset and I have a simple question.
How did you get the mirrored data from HumanML3D?
I followed raw_pose_processing.ipynb in the repository of HumanML3D from top to bottom, but I just got npy files named with 6-digits numbers in 'joints' folder.
I confirmed that annotations.json in your repository includes data that their paths are like "M/CMU/80/80_32_poses".
How did you get these mirrored motion files?
Thank you!

I realized that your code, compute_guoh3dfeats.py is generating mirrored motions. Thank you!


chore: Provide a more meaningful SQLGlot error

SUMMARY
https://github.com/apache/superset/pull/26767 replaced the non-validating sqlparse parser with the pseudo-validating SQLGlot parser to aid with SQL parsing. The main use case for SQL parsing—from a security perspective—is to identify/extract the underlying tables/views referenced in the statement and checking whether the user is authorized to access them.
Previously, given the non-validating nature of sqlparse, virtually all SQL statements could be parsed—irrespective of whether they were valid—which meant that any syntax errors were reported by the underlying engine in a pseudo-meaningful manner. Now however, given that SQLGlot is more opinionated, syntax errors are detected by SQLGlot during the table/view extraction phase meaning that the query is never run and thus the engine's parser is never run resulting in a non-actionable error, i.e., it merely stated that the SQL could not be parsed. This is especially problematic in SQL Lab where freeform SQL is the norm and can be rather lengthy.
The TL;DR is now SQL statements which contain a syntax error are likely going to be captured by SQLGlot upstream of being executed by the engine.
This PR proposes leveraging the messaging from SQLGlot's ParseError or TokenError (example) to provide a more meaningful (and thus actionable) error message to the user.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
PREVIOUS
Prior to https://github.com/apache/superset/pull/26767 sqlparse was able to "parse" the SQL statement—missing an AND after the key = 'foobar' clause—which was then executed by the Trino engine (given that the user had access to the datainfra.one_row table) resulting in the following Trino error,

which detected the error was around the 1 token.
CURRENT
After https://github.com/apache/superset/pull/26767 SQLGlot was (rightfully) unable to parse the SQL statement and thus could not extract the underlying tables which halted the execution flow. The resulting error message isn't overly helpful as it doesn't inform the user where the actual syntax error is.

PROPOSED
Leveraging SQLGlot's ParseError et al. exceptions to provide a more meaningful error message,

which correctly detected the error was around the 1 token. The messaging is loosely based on how MySQL presents errors.
TESTING INSTRUCTIONS
CI.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

It feels to me that the SQL IDE should really just pass the SQL to the underlying connection and return the results or error message in most cases, and not get in the way of things.  Now I'm wondering if _extract_tables_from_sql needs to run at all times or only if there are schema/tables restrictions in place (?)

@mistercrunch that was the other option I considered and had discussed internally, i.e., the error being somewhat context aware. Rather than SQLGlot's error being wrapped in a SupersetSecurityException it would simply bubble up and be handled in a context aware case-by-case basis.
Thus in the context of SQL Lab—which doesn't leverage a cache and where institutions may have a third party security manager, e.g. Apache Ranger—then allowing the SqlglotError error to pass through to the engine (irrespective of if the user has access to the underlying tables/views) is likely rather safe—especially given that the engine's parser will most likely detect the error.
The challenge arrises when:

There is no underlying authorization checks at the engine level.
SQLGlot returns a false positive (example) which can be exploited by an actor if (1) is true.

Furthermore the current implement of raise_for_access() isn't context aware. Given the enumerated challenges it might be best for individual institutions to augment their security manager as they see fit. For example at Airbnb if we feel that either,

SQLGlot has a non-acceptable false positive rate ,or
SQLGlot's error messaging is too terse (when compared with the underlying engine)

then we may augment our security manager to simply not raise when the raise_for_access() method results in a SqlglotError when invoked from SQL Lab (leveraging either the referrer or call stack) as we have the peace of mind that Apache Ranger will prevent unauthorized access.

Now I'm wondering if _extract_tables_from_sql needs to run at all times or only if there are schema/tables restrictions in place.

That's a good idea! Part of the problem today is that _extract_tables_from_sql is called by simply accessing the .tables property in the parsed query, we could make it more explicit so it's only called whenever really needed and not by mistake.


Adjust implementation for BlossomResponse

Relevant issue: https://github.com/GrafeasGroup/blossom-wrapper/issues/2
Checklist:

[X] Code Quality
[X] Pep-8
[X] Tests (if applicable)
[X] Success Criteria Met
[X] Inline Documentation
[X] Wiki Documentation (if applicable)

Closing for now, as this is not actively worked on anymore. Feel free to re-open when needed!


Add dependency management files for Python scripts

When building those scripts for Red Hat's build of Jaeger, I faced some dependency problems and had to use a setup similar to what this PR contains. The changes in this PR might be useful to more folks, especially those looking for reprodubicle builds.
Signed-off-by: Juraci Paixão Kröhling<EMAIL_ADDRESS>

Could you please explain why do we need requirements-build.txt, requirements.txt and requirements-build.in? Most of the tutorials I found use only requirements.txt

I added a few words about them to the readme file.

That helps thanks. If my understanding is right we need all those 3 files for https://github.com/jazzband/pip-tools. Then the higher-level question is why do we need https://github.com/jazzband/pip-tools? The simplest python project does not require this 3rd party build tool.

Then the higher-level question is why do we need https://github.com/jazzband/pip-tools?

Developers looking to update a dependency would need this pip-tools package in order to recompile the list of dependencies based (.txt files) based on the input files (.in). The .txt files should not be manually changed.

If my understanding is right we need all those 3 files

Just a small correction: there are 4 files, being two input files, and two generated files.

I'm closing this, as the Python scripts are not being replaced by Golang implementations.


Support auto-zoom to map when photo is flicked

User reported "On the Map button when images are changed, not the location of the point is updated until you tap the image again, no change as change the image."

Fixed in the current version of Android and submission to app store


Add Support for Suppressing Content Length

The suppression of the content-length header is used by ActiveMQ to differentiate binary and text messages [1], and should be supported.
[1] http://activemq.apache.org/stomp.html

I've run into this myself. At the moment, I'm simply processing everything as a BytesMessage in Java, but obviously I'd like to give the developer the flexibility to choose whichever (s)he found more appropriate.
I'm still sketching out the best way to expose the ability to both add and suppress certain headers while keeping the API friendly. Unfortunately, Rust doesn't (yet?) support method overloading by parameter type, so it's not possible to make parameters optional. At the moment, I already have:

connect
connect_with_heartbeat
connect_with_credentials
connect_with_credentials_and_heartbeat

as variations on the connect method. If I add another optional set of Headers, things will get even more complicated.
One possibility would be to add support an on_before_connect(&mut Frame) callback that allowed the developer to manipulate the Frame directly, but that feels like overkill.

I've run into this myself. At the moment, I'm simply processing everything as a BytesMessage in Java, but obviously I'd like to give the developer the flexibility to choose whichever flavor of Message (s)he found to be most appropriate.
In the short term, I can make Sesion::send_bytes and Sesion::send_text include and exclude the content-length header respectively. Down the road I'd like to make it possible to manipulate the headers of outbound messages at a more granular level.
I hope to make the stomp crate flexible enough that it can eventually be used as the groundwork for higher-level activemq-stomp and rabbitmq-stomp crates that contain all of the broker-specific features and code required to get the most out of the system.

I have been porting a set of ActiveMQ samples to many languages and worked with many library developers, and found many times that the only way to avoid the ActiveMQ-specific flag is adding a alternative low-level API that allows users to manipulate the frames when they need to. You may want to consider the same approach here.
Note that I don't think users should need to go that far for #43 or #44, though.

This is how my code looks like if I use the low-level API:

It doesn't look too complicated! I suppose at some point I should make a Command enum with a SEND variant and the appropriate String implementation for complete type safety.

Does body really need to be a vector, instead of a byte array?

I missed your last comment somehow, sorry for the delay! I've opened #57 to look into whether Frame.body could be [u8]. I think that might help the performance of copying Frame structs.
For header suppression: I'm looking into making a 'builder' style API for some of the core functions of this library. See #54, #55 and #56 for rough sketches of what that might look like. I was thinking I might be able to allow header suppression by doing something like this:
session::message("/topics/penzance", "Modern major general")
  .with(header!("persistent", "true"))
  .with(SuppressedHeader("content-length"))
  .with(my_receipt_callback)
  .send();

This code follows the 'modifier' pattern that's used in Iron and made available in rust-modifier.

Added in v0.6.0.


Added a test for Trace calculation

Codecov Report

Merging #7 into master will increase coverage by 0.3%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master       #7     +/-   ##
=========================================
+ Coverage   87.56%   87.87%   +0.3%
=========================================
  Files         196      196
  Lines        3803     3809      +6
=========================================
+ Hits         3330     3347     +17
+ Misses        473      462     -11

Impacted Files
Coverage Δ

Tests/NiftyTests/trace_test.swift
100% <100%> (ø)
:white_check_mark:

Sources/size.swift
50% <ø> (+50%)
:white_check_mark:

Sources/trace.swift
100% <ø> (+100%)
:white_check_mark:

Continue to review full report at Codecov.

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


Inconsistent syntax highlighting for one line functions

I don't know if this is a bug or if there is a reason for this it just seems inconsistent. do has a different colour than in the full form:

This seems reasonable to me since do is serving as a keyword in the latter example, but that's just my 0.02 as a passerby :)

I have to agree with @mattbaker on this. The context is different.


New resource: Org API Tokens

upstream: https://github.com/Juniper/terraform-provider-mist/issues/47

implemented in latest release


First time opening with zoom, the second shows right

Hello guys, this is only happening on Android, iOS works fine. I want to open the image without any kind of zoom like in video.

https://user-images.githubusercontent.com/101649881/224028705-22c4689a-ee2c-4749-9de3-b62bfdef95cb.mp4

I am facing exactly the same issue on Android. Did anyone figured out why it is happening?

We're experiencing the same issue, version 8.6.3, react native 0.70.8

did those image have same url?

any fix for this?

@fukemy for me yes, same url

i hava same issue  in android

For us it also happens on 0.71.3 and 0.74.3


OTP Tokens are generated using outdated sha1 algorythm

Is there a particular reason that OTP tokens are generated using sha1 rather than sha256 or sha512?
https://github.com/ubccr/mokey/blob/56aba60d5580a88d4399b41b97dc80f33adcd040/server/otp.go#L172
As sha1 is considered insecure as a hash algorythm, I would suggest to go for sha256.

Agreed, we should probably update this. The reason for using sha1 was that it seems to be the default in FreeIPA and in our testing it was supported by most mobile OTP client applications.

Hello @aebruno
Do you know if it's still in the pipes to change the default algorythm at least to sha256? (Of course having the choice between sha1/sha256/sha512 could be cool)
Regards,

@aebruno Glad to read  !
I will be attentive for the next version.
Thank you for your quick reply and for your work.
Regards,


[Snyk] Security upgrade pillow from 9.5.0 to 10.0.1

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

requirements.txt

⚠ Warning
celery 5.3.0 requires kombu, which is not installed.

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

980/1000  Why? Currently trending on Twitter, Mature exploit, Recently disclosed, Has a fix available, CVSS 9.6
Heap-based Buffer Overflow SNYK-PYTHON-PILLOW-5918878
pillow:  9.5.0 -> 10.0.1
No
Mature

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

Checkmarx One – Scan Summary & Details – 5e3b051d-6994-4e4d-a48c-9df1ffd7f64c
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2023-40590
Python-GitPython-3.1.32
Vulnerable Package

XPath_Injection
/dojo/tools/qualys_webapp/parser.py: 152
Attack Vector

XPath_Injection
/dojo/tools/qualys_webapp/parser.py: 154
Attack Vector

XPath_Injection
/dojo/tools/qualys_webapp/parser.py: 152
Attack Vector

XPath_Injection
/dojo/tools/qualys_webapp/parser.py: 154
Attack Vector

CSRF
/dojo/finding/views.py: 484
Attack Vector

CSRF
/dojo/finding/views.py: 481
Attack Vector

CSRF
/dojo/test/views.py: 83
Attack Vector

CSRF
/dojo/test/views.py: 81
Attack Vector

CSRF
/dojo/finding/views.py: 481
Attack Vector

CSRF
/dojo/finding/views.py: 626
Attack Vector

CSRF
/dojo/finding/views.py: 945
Attack Vector

CSRF
/dojo/finding/views.py: 1022
Attack Vector

CSRF
/dojo/test/views.py: 379
Attack Vector

CSRF
/dojo/test/views.py: 396
Attack Vector

CSRF
/dojo/test/views.py: 379
Attack Vector

CSRF
/dojo/jira_link/views.py: 359
Attack Vector

CSRF
/dojo/test/views.py: 280
Attack Vector

CSRF
/dojo/engagement/views.py: 218
Attack Vector

CVE-2007-2379
Npm-jquery-3.7.0
Vulnerable Package

CVE-2014-6071
Npm-jquery-3.7.0
Vulnerable Package

CVE-2023-41040
Python-GitPython-3.1.32
Vulnerable Package

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Filtering_Sensitive_Logs
/dojo/api_v2/views.py: 1263
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 166
Attack Vector

Object_Access_Violation
/dojo/reports/views.py: 809
Attack Vector

Object_Access_Violation
/dojo/finding/views.py: 163
Attack Vector

Privacy_Violation
/dojo/benchmark/views.py: 77
Attack Vector

IAM Access Analyzer Not Enabled
/categories.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_engagement_epic_mapping_disabled_create_epic_and_push_findings.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAConfigEngagementEpicTest.test_add_engagement_with_jira_project_and_epic_mapping.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/docs.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/release_drafter_valentijn.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/bundlewatch.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/colors.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/plantuml.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_import_with_groups_no_push_to_jira_reimport_with_push_to_jira.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/integration-tests.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_import_with_push_to_jira.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/shims.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/theme-colors.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/Unusual Behaviors-User-Persistence IAMUser-NetworkPermissions.json: [43](https://github.com/TheRedHatter/django-DefectDojo/blob/snyk-fix-dae094e027627306aa6b956277676796//unittests/scans/asff/guardduty/Unusual Behaviors-User-Persistence IAMUser-NetworkPermissions.json#L43)
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/test-helm-chart.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_import_push_to_jira_reimport_with_push_to_jira.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/release-2-tag-docker-push.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/vulnerabilityreport_many.json: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/k8s-tests.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/sidebar.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/release-x-manual-docker-containers.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/GoogleSheetsConfigTestApi.test_config_google_sheets.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/flake8.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/cancel-outdated-workflow-runs.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_import_with_push_to_jira_add_comment.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/icons.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/grays.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_import_with_push_to_jira_epic_as_issue_type.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/docker-compose.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/dart-sass.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/build-docker-images-for-testing.yml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_create_edit_update_finding.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/kube-bench-controls.json: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled
/JIRAImportAndPushTestApi.test_engagement_epic_mapping_disabled_no_epic_and_push_findings.yaml: 1
IAM Access Analyzer should be enabled and configured to continuously monitor resource permissions

IAM Access Analyzer Not Enabled

More results are available on AST platform


created login page

Great job @Jasminamih. The UI looks perfect.
First we need to have the PR about the shared parent component we discussed today.
Then you will update this branch, to use that component.


CWL allows to include Dockerfile

It's not necessary to require Dockerfile in CWL we can do:
requirements:
  - "@import": envvar-global.cwl
  - class: InlineJavascriptRequirement
  - class: DockerRequirement
    dockerImageId: scidap/star:v2.5.0b
    dockerPull: scidap/star:v2.5.0b
    dockerFile: |
      #################################################################
      # Dockerfile
      #
      # Software:         STAR
      # Software Version: 2.5.0b
      # Description:      STAR image for SciDAP
      # Website:          https://github.com/alexdobin/STAR, http://scidap.com/
      # Provides:         STAR
      # Base Image:       scidap/scidap:v0.0.1
      # Build Cmd:        docker build --rm -t scidap/star:v2.5.0b .
      # Pull Cmd:         docker pull scidap/star:v2.5.0b
      # Run Cmd:          docker run --rm scidap/star:v2.5.0b STAR
      #################################################################

      ### Base Image
      FROM scidap/scidap:v0.0.1
      MAINTAINER Andrey V Kartashov<EMAIL_ADDRESS>      ENV DEBIAN_FRONTEND noninteractive

      ################## BEGIN INSTALLATION ######################

      WORKDIR /tmp

      ### Install STAR

      ENV VERSION 2.5.0b
      ENV NAME STAR
      ENV URL "https://github.com/alexdobin/STAR/archive/${VERSION}.tar.gz"

      RUN wget -q -O - $URL | tar -zxv && \
      cd ${NAME}-${VERSION}/source && \
      make -j 4 && \
      cd .. && \
      cp ./bin/Linux_x86_64_static/STAR /usr/local/bin/ && \
      cd .. && \
      strip /usr/local/bin/${NAME}; true && \
      rm -rf ./${NAME}-${VERSION}/

Interesting, I haven't seen this pattern yet.
How is this used in practice? Since quay.io and DockerHub don't understand CWL, do you have an automated mechanism that keeps this embedded Dockerfile in sync with an external Dockerfile that can trigger builds?

There is no need for external file, if .cwl changed then Dockerfile changed as well

I meant that the docker command doesn't understand CWL, as in you cannot simply call docker build working-dir where working-dir contains only CWL. So do you extract the value of "dockerFile" from the CWL file into a Dockerfile on-the-fly or do you maintain a separate Dockerfile that gets copied into this CWL file when it changes?

dockerFile: is in CWL spec - and from the spec we have "Supply the contents of a Dockerfile which will be built using docker build." So a platform has to be responsible how to do that. cwltool as a reference implementation correctly builds images. I do not support any separate files because to reproduce I just have to run CWL and the image will be assembled if it is not on DockerHub

Ok thanks, so the cwltool builds the image on-the-fly when it encounters an unknown image and it is not on Docker Hub.
When it is on Docker Hub, I would assume that the CWL author is responsible for ensuring that the embedded Dockerfile is consistent with what was used to build the image on Docker Hub.


Custom partitioner handler

First stab at allowing a Custom Partitioner Handler.
On ProducerBuilder...
.SetPartitionRequestHandler((producer, partitionRequest) => Partition.Any)
Only called when Message's partition is Partition.Any
If any guidance could be provided for the below, that'd be rad:

I can't seem to get the Librdkafka.topic_conf_set_partitioner_cb callback to be triggered. More work will need to be done there, once that gets figured out.
The Java client seems to do the same thing that I'm doing, which is to have the Produce method just call into the Partitioner class...I'm not sure what the point of the librdkafka callback is for?

Custom Partitioner logic in Java receives a Cluster object:
MetaData seems to functionally be the equivalent, but I'd be worried about calling that for each message, and I'm not sure how best that'd be cached.

@confluentinc It looks like @ChadJessup just signed our Contributor License Agreement. :+1:
Always at your service,
clabot

The partitioner_cb will be triggered from two places: from the current application thread inside produce() if the partition count of the topic is already known, or from a background librdkafka thread as metadata is received for the topic (this typically only happens at one time (but for all queued messages) per topic).
I suggest not providing a Cluster/Metadata object to the partitioner callback, all it really needs is the topic name and partition count, and they are already provided in the partitioner_cb.

I think we probably want to support custom partitioners via a SetPartitioner(topic, partitioner_cb) method on the ProducerBuilder (need to think about it more though).
Separately, it would also be good to expose the in built partitioners in librdkafka. For example, you may want to align the sharding of your web app servers with kafka partitioning. To route users to the right servers, you'll need the partitioning algorithm used by kafka outside kafka.

I think we probably want to support custom partitioners via a SetPartitioner(topic, partitioner_cb) method on the ProducerBuilder (need to think about it more though).
Separately, it would also be good to expose the in built partitioners in librdkafka. For example, you may want to align the sharding of your web app servers with kafka partitioning. To route users to the right servers, you'll need the partitioning algorithm used by kafka outside kafka.

@mhowlett  - by expose, do you mean have an override allowing the Paritioner enum alongside partitioner_cb?
Or recreating them in C# to be used directly?
How does this sound as an API - intermixed the patterns I can think of, alongside topic scenarios:
ProducerBuilder<K, V>()
.SetPartitioner("", callback_cb) <- default topic config or .SetPartitioner(callback_cb)
.SetPartitioner("Topic1", new CustomParitioner()) <- easier for caller, since might be a large chain, or instance shared
.SetPartitioner("Topic2", (string topic, K key, V value, partition_cnt, byte[] topic_opaque, byte[] msg_opaque)) => return 2)
.SetPartitioner("^Topic3|Topic4", Confluent.Kafka.Partitioner.Murmur2)

Essentially, topic + an IPartitioner, lambda, or Confluent.Kafka.Partitioner enum.
Question: Opaque data doesn't seem to be exposed in the C# library - but, I've seen partitioners use that feature, should that be taken into account?
Java's Partitioner interface:
https://github.com/apache/kafka/blob/master/clients/src/main/java/org/apache/kafka/clients/producer/Partitioner.java
public class IPartitioner<K, V> : IDisposable
{
    // Java's is Configurable, and the configuration system allows a partitioner to be configured like
    // everything else with prefixed key:values, can be removed and constructor can do what it needs
    // void Configure(Dictionary<string, sring> configs);

    int Partition(string topic, K key, V value, int partitionCount);

    // Removed since IDisposable
    // void Close();

    // came in KIP-480 for Sticky Partitioner...not sure if C# client has batches yet? Can come in later, of course, if needed
    void onNewBatch(String topic, Cluster cluster, int prevPartition) {
}

Ready for a quick look-see to see if this is a good direction for custom partitioners.
Done:

Reworked to be used by callback_cb, and allows IPartitioner to be passed in when using the ProducerBuilder.
Updated benchmark project to allow this codepath to be executed, with no noticeable difference on messages/sec. But, my dev-laptop setup isn't ideal for that amount of load.

Still need to do:

More unit tests
Integration tests.
Depending on @mhowlett feedback in my last question, probably more.

I left the key data being passed into the Partitioner as an IntPtr to the data and another for the data length. I felt that also asking the caller to provide Deserializers to the producer is a bigger change, than needed for this?
Also, since these are critical path for every message, I figured it might be good to allow the caller to manage that?  Feedback welcome on that aspect.
Hopefully, this is a good foundation to build the rest on.

@mhowlett - this has been waiting for review for a few months. With the closing of #1106 - should I just close this out? Or, should I update it to the newest version of the library?

no, don't close, likely to get to this in the next few months, it's on the list.

@ChadJessup - as you may suspect, I completely forgot about this PR (sorry!). We do want to include this feature sometime over the next few months. if you rebase onto master, that would be great, we'll use this work if possible.

@ChadJessup - as you may suspect, I completely forgot about this PR (sorry!). We do want to include this feature sometime over the next few months. if you rebase onto master, that would be great, we'll use this work if possible.

No worries, world is kind of crazy right now.  I'll rebase and do any updates needed for the new version.

Going to close and reopen under a new PR.  I screwed up juggling a rebase and multiple remotes on my end.

thanks!


Netbird self-hosted with Google Workspace IdP: Error 400: invalid_scope

Describe the problem
Hello! I’m trying to setup Netbird self-hosted with Google Workspace IdP following the instructions outlined here: https://docs.netbird.io/selfhosted/identity-providers#google-workspace
I’ve gone through the process multiple times only to encounter the same error when trying to access the Netbird Dashboard: I get redirected to Google Auth page with the error message Error 400: invalid_scope
Some requested scopes were invalid<EMAIL_ADDRESS>
Tried searching around for similar issues and solutions but didn’t manage to find anything helpful.
To Reproduce
Steps to reproduce the behavior:
Followed the steps from the guide: https://docs.netbird.io/selfhosted/identity-providers#google-workspace
Here's how my setup.env looks like:
## example file, you can copy this file to setup.env and update its values
##

# Image tags
# you can force specific tags for each component; will be set to latest if empty
NETBIRD_DASHBOARD_TAG=""
NETBIRD_SIGNAL_TAG=""
NETBIRD_MANAGEMENT_TAG=""
COTURN_TAG=""

# Dashboard domain. e.g. app.mydomain.com
NETBIRD_DOMAIN="app.mydomain.com"

# TURN server domain. e.g. turn.mydomain.com
# if not specified it will assume NETBIRD_DOMAIN
NETBIRD_TURN_DOMAIN=""

# TURN server public IP address
# required for a connection involving peers in
# the same network as the server and external peers
# usually matches the IP for the domain set in NETBIRD_TURN_DOMAIN
NETBIRD_TURN_EXTERNAL_IP="<IP_ADDRESS>"

# -------------------------------------------
# OIDC
#  e.g., https://example.eu.auth0.com/.well-known/openid-configuration
# -------------------------------------------
NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://accounts.google.com/.well-known/openid-configuration"
# The default setting is to transmit the audience to the IDP during authorization. However,
# if your IDP does not have this capability, you can turn this off by setting it to false.
#NETBIRD_DASH_AUTH_USE_AUDIENCE=false
NETBIRD_AUTH_AUDIENCE="OAUTH_CLIENT_ID.apps.googleusercontent.com"
# e.g. netbird-client
NETBIRD_AUTH_CLIENT_ID="OAUTH_CLIENT_ID.apps.googleusercontent.com"
# indicates the scopes that will be requested to the IDP
<EMAIL_ADDRESS># NETBIRD_AUTH_CLIENT_SECRET is required only by Google workspace.
NETBIRD_AUTH_CLIENT_SECRET="OAUTH_CLIENT_SECRET"
# if you want to use a custom claim for the user ID instead of 'sub', set it here
# NETBIRD_AUTH_USER_ID_CLAIM=""
# indicates whether to use Auth0 or not: true or false
NETBIRD_USE_AUTH0="false"
# if your IDP provider doesn't support fragmented URIs, configure custom
# redirect and silent redirect URIs, these will be concatenated into your NETBIRD_DOMAIN domain.
# NETBIRD_AUTH_REDIRECT_URI="/peers"
# NETBIRD_AUTH_SILENT_REDIRECT_URI="/add-peers"
NETBIRD_AUTH_REDIRECT_URI="/auth"
NETBIRD_AUTH_SILENT_REDIRECT_URI="/silent-auth"
# Updates the preference to use id tokens instead of access token on dashboard
# Okta and Gitlab IDPs can benefit from this
NETBIRD_TOKEN_SOURCE="idToken"
# -------------------------------------------
# OIDC Device Authorization Flow
# -------------------------------------------
NETBIRD_AUTH_DEVICE_AUTH_PROVIDER="none"
NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID=""
# Some IDPs requires different audience, scopes and to use id token for device authorization flow
# you can customize here:
NETBIRD_AUTH_DEVICE_AUTH_AUDIENCE=$NETBIRD_AUTH_AUDIENCE
NETBIRD_AUTH_DEVICE_AUTH_SCOPE="openid"
NETBIRD_AUTH_DEVICE_AUTH_USE_ID_TOKEN=false
# -------------------------------------------
# OIDC PKCE Authorization Flow
# -------------------------------------------
# Comma separated port numbers. if already in use, PKCE flow will choose an available port from the list as an alternative
# eg. 53000,54000
NETBIRD_AUTH_PKCE_REDIRECT_URL_PORTS="53000"
# -------------------------------------------
# IDP Management
# -------------------------------------------
# eg. zitadel, auth0, azure, keycloak
NETBIRD_MGMT_IDP="google"
# Some IDPs requires different client id and client secret for management api
NETBIRD_IDP_MGMT_CLIENT_ID=$NETBIRD_AUTH_CLIENT_ID
NETBIRD_IDP_MGMT_CLIENT_SECRET=""
# Required when setting up with Keycloak "https://<YOUR_KEYCLOAK_HOST_AND_PORT>/admin/realms/netbird"
# NETBIRD_IDP_MGMT_EXTRA_ADMIN_ENDPOINT=
# With some IDPs may be needed enabling automatic refresh of signing keys on expire
# NETBIRD_MGMT_IDP_SIGNKEY_REFRESH=false
# NETBIRD_IDP_MGMT_EXTRA_ variables. See https://docs.netbird.io/selfhosted/identity-providers for more information about your IDP of choice.
NETBIRD_IDP_MGMT_EXTRA_SERVICE_ACCOUNT_KEY="BASE64_ENCODED_KEY"
NETBIRD_IDP_MGMT_EXTRA_CUSTOMER_ID="GOOGLE_WORKSPACE_CUSTOMER_ID"
# -------------------------------------------
# Letsencrypt
# -------------------------------------------
# Disable letsencrypt
#  if disabled, cannot use HTTPS anymore and requires setting up a reverse-proxy to do it instead
NETBIRD_DISABLE_LETSENCRYPT=false
# e.g<EMAIL_ADDRESS><EMAIL_ADDRESS>
Expected behavior
I would have expected the Google authorization to succeed.
Are you using NetBird Cloud?
No, I'm using the self-host NetBird's control plane.
NetBird version
v0.27.7 (git tag of the repo with the tools I've used for the setup), latest in the generated docker-compose.yml
Additional context
Before trying the Advanced Setup with Google Workspace as IdP I tested Netbird with the Quick Start Guid with Zitadel and that worked fine but I would like to remove to remove additional component (Zitadel) and use Google as the IdP.
Thank you!

Some additional information: the management services keeps restarting, here is the log snippet that keeps repeating:
management-1  | 2024-05-20T20:03:03Z INFO management/cmd/management.go:455: loading OIDC configuration from the provided IDP configuration endpoint https://accounts.google.com/.well-known/openid-configuration
management-1  | 2024-05-20T20:03:04Z INFO management/cmd/management.go:460: loaded OIDC configuration from the provided IDP configuration endpoint: https://accounts.google.com/.well-known/openid-configuration
management-1  | 2024-05-20T20:03:04Z INFO management/cmd/management.go:462: overriding HttpConfig.AuthIssuer with a new value https://accounts.google.com, previously configured value: https://accounts.google.com
management-1  | 2024-05-20T20:03:04Z INFO management/cmd/management.go:466: overriding HttpConfig.AuthKeysLocation (JWT certs) with a new value https://www.googleapis.com/oauth2/v3/certs, previously configured value: https://www.googleapis.com/oauth2/v3/certs
management-1  | 2024-05-20T20:03:04Z INFO management/server/telemetry/app_metrics.go:177: enabled application metrics and exposing on http://<IP_ADDRESS>:8081
management-1  | 2024-05-20T20:03:04Z INFO management/server/store.go:95: using SQLite store engine
management-1  | 2024-05-20T20:03:04Z INFO management/server/migration/migration.go:128: No records in table peers, no migration needed
management-1  | 2024-05-20T20:03:04Z INFO management/server/migration/migration.go:128: No records in table peers, no migration needed
management-1  | 2024-05-20T20:03:04Z INFO management/cmd/management.go:173: geo location service has been initialized from /var/lib/netbird/
management-1  | 2024-05-20T20:03:04Z INFO management/server/account.go:889: single account mode enabled, accounts number 0
management-1  | Error: failed creating JWT validator: invalid character '<' looking for beginning of value

Tracked down the error here: https://github.com/netbirdio/netbird/blob/main/management/cmd/management.go#L242

After more digging I discovered that the GET request for https://www.googleapis.com/oauth2/v3/certs fails when performed insider the container. Tested with go code (similar to Netbird) and curl. From inside the container I get a 403, while if I do it on the host I get expected 200 response.

At this point I'm pretty sure this issue is related to some networking issues, either related to Docker or Hetzner (the provider for the VPS) or a combination of those two, so I'm closing this.

I've setup a different VPS where the networking isn't an issue anymore and now all the docker compose services are running fine  (no restarts) but unfortunately the Google Workspace Issue is still there.
This is how the manager logs look now:
management-1  | 2024-05-21T11:24:45Z INFO management/cmd/management.go:292: running gRPC backward compatibility server: [::]:33073
management-1  | 2024-05-21T11:24:45Z INFO management/cmd/management.go:324: management server version 0.27.7
management-1  | 2024-05-21T11:24:45Z INFO management/cmd/management.go:325: running HTTP server and gRPC server on the same port: [::]:443
management-1  | 2024-05-21T11:24:45Z INFO management/server/account.go:1076: 1 entries received from IdP management
management-1  | 2024-05-21T11:24:45Z INFO management/server/account.go:1107: warmed up IDP cache with 0 entries for 0 accounts

Hi @redecs,
<EMAIL_ADDRESS>should be NETBIRD_AUTH_SUPPORTED_SCOPES="openid profile email"

Hi @pascal-fischer, that worked!
Now that you point it to me, it totally makes sense.
Thank you!


Import error

Hello, I installed the library via pip, and I am getting the following error.
ImportError: cannot import name 'BleedThroughAugmentation' from 'augraphy.augmentations.bleedthrough'
Any idea why this is happening?

Hello, I installed the library via pip, and I am getting the following error.
ImportError: cannot import name 'BleedThroughAugmentation' from 'augraphy.augmentations.bleedthrough'
Any idea why this is happening?

I think it is not updated yet, could you try to install it from the repo?
!pip install git+https://github.com/sparkfish/augraphy

I still get the same error.

I still get the same error.

In that case could you try my repo? I just tested it, it shouldn't facing any issue with my repo.
!pip install git+https://github.com/kwcckw/augraphy

@mahmouddaif You can import BleedThrough from augraphy.augmentations.bleedthrough, or you can import it from augraphy.augmentations since it's available in that namespace too.
You won't be able to import BleedThroughAugmentation because we changed the naming scheme to remove "Augmentation" from the end of all the augmentation names.

@proofconstruction Thank you so much, that did it.


  PLEASE DON'T ASK FOR WORKAROUNDS OR TIMELINES - THIS IS FREE SOURCE CODE
We have issues on Ios where the WritingService is not able to print on bluetooth printer on ios.
How we search for WritingService:
private Task SetWritingService()
        {
            WritingService = null;
            try
            {
                serviceScan = CurrentConnectedDevice
                    .DiscoverServices()
                    .Subscribe(OnDiscoverServiceChanged);
            }
            catch (Exception e)
            {
                Crashes.TrackError(e, new Dictionary<string, string> { { "Bluetooth Periperhal Crash", "" + CurrentConnectedDevice?.Name } });
                _userDialogs.AlertAsync(Strings.Bluetooth, Strings.BluetoothConnectionLost);
            }

            return Task.CompletedTask;
        }

 private void OnDiscoverServiceChanged(IGattService service)
        {
            service.DiscoverCharacteristics()
                .Finally(TrackWritingServiceReference)
                .Subscribe(OnCharacteristicChanged);
        }

private void OnCharacteristicChanged(IGattCharacteristic characteristic)
        {
            //also tried with characteristic.CanWrite();
            bool canWriteWithoutResponse = characteristic.CanWriteWithResponse() || characteristic.CanWriteWithoutResponse();

            // read, write, or subscribe to notifications here
            if (characteristic == null)
                return;

            WritingService = characteristic;
            if (canWriteWithoutResponse)
            {
                serviceScan.Dispose();
            }
        }

Here is how we write:
public async Task Write(byte[] value)
        {
            try
            {
                if (value?.Length > 0)
                {
                    TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();
                    _prismDeviceService.BeginInvokeOnMainThread(async () =>
                    {
                        int counter = 0;
                        List<byte> newByteList = new List<byte>();

                        foreach (byte item in value)
                        {
                            newByteList.Add(item);
                            counter++;
                            if (counter > 10)
                            {
                                try
                                {
                                    await WritingService.Write(newByteList.ToArray(), false);
                                    newByteList = new List<byte>();
                                    counter = 0;
                                }
                                catch (Exception e)
                                {
                                    Crashes.TrackError(e, new Dictionary<string, string> { { "Failed Writing: ", "" + counter } });
                                }
                            }
                        }
                        if (newByteList?.Count > 0)
                        {
                            try
                            {
                                await WritingService.Write(newByteList.ToArray());
                            }
                            catch (Exception e)
                            {
                                Crashes.TrackError(e, new Dictionary<string, string> { { "Failed Writing last: ", "" + counter } });
                            }
                        }
                        tcs.SetResult(true);
                    });
                    await tcs.Task;
                }
                else
                {
                    throw new ArgumentNullException();
                }
            }
            catch (Exception)
            {
                await _userDialogs.AlertAsync(Strings.BluetoothSomethingWrongPlsTryAgain);
            }
        }

It works like it is supposed to work on Android devices, however it doesnt write on ios.
Thank you very much
Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[X ] iOS
[ ] Android
[ ] UWP

PLATFORMS THAT YOU CANNOT FILE ISSUES ON RIGHT NOW: Tizen, watchOS, tvOS, macOS
Feature Library
Shiny.BLE
beta components are not fully done - issues MUST include full reproducible sample and stacktrace or they will be closed without explanation!!!

[ ] Core
[ ] Locations
[ ] HTTP Transfers
[ ] Notifications
[ ] Push
[ ] Push - Azure Notification Hub
[ ] Push - Firebase (beta)
[ ] Sensors
[ ] AppCenter Logging Integration
[ ] Location Sync (beta)
[ ] Photo Sync (alpha)
[X ] BluetoothLE (beta)
[ ] Beacons (beta)
[ ] SQLite Integration

Version of Library
<IP_ADDRESS>5-beta
Version of OS(s) listed above with issue
all ios
Steps to Reproduce

Scan for Characteristics which can Write (CanWrite())
Try to use the WritingService to print on Printer

Expected Behavior
Should print
Actual Behavior
Can not print

Questions

How do you know that that is the characteristic you write to that will print?
what is the full exception stack trace for the write failure?

Till now I thought the CanWrite() function tells me whether I can print or not. Would you suggest looking for something else too?

Yeah I will attach soon

Till now I thought the CanWrite() function tells me whether I can print or not. Would you suggest looking for something else too?

Yeah I will attach soon

No.  You have to remember this library has NOTHING to do with printers.  CanWrite is whether or not the characteristics supports it.  You may have many characteristics that support write in a service.  You need to refer to the documentation on your peripheral as this is something I can't help with.

Honestly, the exception is probably irrelevant at this point.  It will likely be the peripheral rejecting the write for some reason.


Remove quotations around external resource in troubleshooting-github-codespaces-clients#jetbrains-ide-issues

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/codespaces/troubleshooting/troubleshooting-github-codespaces-clients#jetbrains-ide-issues
This issue is intended for newcomers to the OS Docs repo! 💛
If you are veteran of the OS Docs repo and are looking for issues to work on, take a look at our help wanted section ✨
What part(s) of the article would you like to see updated?

For help with issues specific to the JetBrains IDE you are using, or the JetBrains Gateway application, see "Product Support" on the JetBrains website.

Link to external resource should not have quotation marks, per our style guide
Additional information
No response

/assign

Hello @nafisreza 👋 ! We don't generally assign issues to contributors. If you find an issue to work on, you are welcome to open a PR with a fix 💛

sorry, my bad. I will link a PR


[WIP] ENH CUDA 11.0 support

Re-rendered locally and manually kept the CUDA 11 changes, which gives commit ( https://github.com/jakirkham-feedstocks/ucx-split-feedstock/commit/14598a46bd80dd1c13e7d2bb541649152d2bca1a ). Could we try adding that here?

Looking at the most recent build log, I see the following, which shows uct/ib/rc being built. However I don't see that transport included in the final package, which is kind of interesting.
  CC       rc/base/libuct_ib_la-rc_ep.lo
  CC       rc/base/libuct_ib_la-rc_iface.lo
  CC       rc/verbs/libuct_ib_la-rc_verbs_ep.lo
  CC       rc/verbs/libuct_ib_la-rc_verbs_iface.lo
  CC       rc/accel/libuct_ib_la-rc_mlx5_ep.lo
  CC       rc/accel/libuct_ib_la-rc_mlx5_iface.lo
  CC       rc/accel/libuct_ib_la-rc_mlx5_common.lo
  CC       rc/accel/libuct_ib_la-rc_mlx5_devx.lo

cc @pentschev

Yes, I think that's normal, they're not installed when building from source on baremetal either:
$ find /datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730 -iname "libuct_ib*"
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib.so.0.0.0
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib.so.0
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib.so
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib.la
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib.a
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib_cm.so.0.0.0
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib_cm.so.0
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib_cm.so
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib_cm.la
/datasets/pentschev/miniconda3/envs/ucx-src-110-0.15.0b200730/lib/ucx/libuct_ib_cm.a

Seems NUMA is disabled. Maybe we don't have the right CDTs here
configure: NUMA support is disabled

Closing in favor of a new PR that pulls in changes from #40 and changes here

Handled in PR ( https://github.com/rapidsai/ucx-split-feedstock/pull/41 ).


Schema change: Affiliations.txt

Docs Build status updates of commit e4a28a0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

academic-services/graph/media/entity-relationship-diagram-thumbnail.png
:white_check_mark:Succeeded

academic-services/graph/media/entity-relationship-diagram.png
:white_check_mark:Succeeded

academic-services/graph/reference-data-schema.md
:white_check_mark:Succeeded

academic-services/graph/samples-azure-data-lake-analytics.md
:white_check_mark:Succeeded

academic-services/graph/tutorial-azure-data-lake-hindex.md
:white_check_mark:Succeeded

academic-services/graph/tutorial-azure-search-org-patents.md
:white_check_mark:Succeeded

academic-services/graph/tutorial-azure-search-reference-parsing.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


CC0009 eats pragmas and trivia

    private void AppointmentRowActivated(bool edit)
    {
        if (!edit)
        {
            SelectedAppointment = new AppointmentDataModel();
            // test trivia
#pragma warning disable CS0618 // Type or member is obsolete
            SelectedAppointment.Patient = SelectedPatient;
#pragma warning restore CS0618 // Type or member is obsolete
        }
        var appointmentPopup = new AppointmentAddEditPopup(SelectedAppointment);
        appointmentPopup.ShowDialog();
        if (appointmentPopup.DialogResult == true)
            LoadAppointments();
    }

becomes
    private void AppointmentRowActivated(bool edit)
    {
        if (!edit)
        {
            SelectedAppointment = new AppointmentDataModel
            {
                Patient = SelectedPatient
            };
        }
        var appointmentPopup = new AppointmentAddEditPopup(SelectedAppointment);
        appointmentPopup.ShowDialog();
        if (appointmentPopup.DialogResult == true)
            LoadAppointments();
    }

Bug confirmed. Correct result should be:
SelectedAppointment = new AppointmentDataModel
{
#pragma warning disable CS0618 // Type or member is obsolete
    Patient = SelectedPatient
#pragma warning restore CS0618 // Type or member is obsolete
};


animated: true is not reliable.

Current behavior
Dialog cannot be fully closed.
Steps to reproduce the bug

Open sandbox: https://codesandbox.io/s/awesome-wave-n79cp7
Double click the button

Expected behavior
Dialog closes properly.
Possible solutions
Use a timeout in ms might help.
https://reactcommunity.org/react-transition-group/transition#Transition-prop-timeout

The animated prop accepts a number, which is the animation duration in ms.
But your code has a bug. You forgot to set transition-property.

The animated prop accepts a number, which is the animation duration in ms.

I didn't know before! Thanks for explaining.

But your code has a bug. You forgot to set transition-property.

I add the transition-property, and the bug still exists. I believe this bug is caused by dismissing dialog during the enter animation. Setting the transition-duration to a larger value could make it easier to reproduce.

I can't reproduce it after adding transition-property: https://codesandbox.io/s/brave-lamarr-77z84m?file=/src/dialog-animated.tsx

It's weird. I can still reproduce this bug in my browser. But on another device, it seems to work fine. Let me close this issue for now.


Fix pipfile to work with python 3.6?

Shall we change the required python to 3.6?  (Currently the
I think currently some libraries do not fully support 3.7.
For example Tensorflow.

We can make 3.6 the current version, but we should wait a bit until 3.7 is getting more support.
As for 3.5, i guess we can start dropping it, now that even anaconda made it the 'official' version :)
I guess it's not easy to 'detect' the current mainstream python version, we will have to update it every time manually when it becomes the new mainstream.

Apparently also Heroku don't support yet 3.7...
so we should change it also in the Pipfile


museum: photos-v0.9.35 -> photos-v0.9.46

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/ente-io/ente/releases.
meta.description for museum is: API server for ente.io
meta.homepage for museum is: https://github.com/ente-io/ente/tree/main/server
Updates performed

Golang update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found photos-v0.9.46 in filename of file in /nix/store/rhn81lpmi61dqqlh4qk2s2d2czfqqng0-museum-photos-v0.9.46

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

museum

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rhn81lpmi61dqqlh4qk2s2d2czfqqng0-museum-photos-v0.9.46 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A museum https://github.com/r-ryantm/nixpkgs/archive/956c34edd6a6a15a55e291b5d140b6596442b8f6.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/956c34edd6a6a15a55e291b5d140b6596442b8f6#museum

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rhn81lpmi61dqqlh4qk2s2d2czfqqng0-museum-photos-v0.9.46
ls -la /nix/store/rhn81lpmi61dqqlh4qk2s2d2czfqqng0-museum-photos-v0.9.46/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

museum

Maintainer pings
cc @surfaceflinger @pinpox for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 346534 run on x86_64-linux 1

1 package built:

museum

@NixOS/nixpkgs-merge-bot merge


LICENSE file readability

The LICENSE file contents are unusual as of commit https://github.com/llmnetes/llmnetes/commit/74ed0d012c14c1d1477c214fade3a8a0e19790c6
At a minimum, this results in GitHub no longer recognizing the project license and is confusing.

Thank you for catching that @tpepper! I have opened https://github.com/llmnetes/llmnetes/pull/8 to fix it.


Extended GCD and Inverses

This PR adds the Extended GCD for cyclotomic polynomials. Inverses can be computed using this primitive. For our parameters choices we have high probability of finding an invertible element for relatively small randomly sampled polynomials. Therefore we don't expect to sample multiple times before finding an invertible element. This is compatible  with experiments carried out in the C++ repo.
This is efficient enough to be used for key generation of the YASHE construction.
Closes #10

Cyclotomic inverse: polynomial/1 relatively small random poly of degree N

I already added "inv" to the important benchmarks list in PR #57, so this is appearing as expected.

Looks like these changes saved about 5ms / 196ms.

I fixed the tests for tiny polynomials, because they fail occasionally:
https://github.com/Inversed-Tech/eyelid/actions/runs/8779228223/job/24086917262?pr=48


Cant build with cross

What happened:
When running make build-image (or more exactly build-linux-binary) I get
make: *** [Makefile:94: build-linux-binary] Error 127

This also happens when running the failing step without make:
docker run --rm \
  -w /workspace \
  -v /path/to/quilkin:/workspace \
  -v ~/.cargo/registry:/usr/local/cargo/registry \
  -v /var/run/docker.sock:/var/run/docker.sock \
   --entrypoint=cross quilkin-build build --target x86_64-unknown-linux-gnu ; echo $?
127

What you expected to happen:
Quilkin to build successfully with cross.
How to reproduce it (as minimally and precisely as possible):
docker run --rm \
  -w /workspace \
  -v /path/to/quilkin:/workspace \
  -v ~/.cargo/registry:/usr/local/cargo/registry \
  -v /var/run/docker.sock:/var/run/docker.sock \
   --entrypoint=cross quilkin-build build --target x86_64-unknown-linux-gnu

Just changing the entrypoint to cargo makes it work.
Anything else we need to know?:
I don't get any output from the Makefile or when running Docker manually but if I attach to the image and try to run cross manually I get the following:
docker run --rm -it \
  -v /path/to/quilkin:/workspace \
  -v ~/.cargo/registry:/usr/local/cargo/registry \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -w /workspace \
  --entrypoint=/bin/bash quilkin-build

root@6f37b81e4dcc:/workspace#  echo $PATH
/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

root@6f37b81e4dcc:/workspace# echo $CARGO_HOME
/usr/local/cargo

root@6f37b81e4dcc:/workspace# cross build --target x86_64-unknown-linux-gnu
info: syncing channel updates for '1.59.0-x86_64-unknown-linux-gnu'

  1.59.0-x86_64-unknown-linux-gnu unchanged - rustc 1.59.0 (9d1b2106e 2022-02-23)

info: checking for self-updates
info: downloading component 'rust-src'
info: installing component 'rust-src'
sh: 1: cargo: not found

Environment:

Quilkin version: 0.4.0
Execution environment (binary, container, etc): -
Operating system: WSL Ubuntu 20.04 under Windows 11
Custom filters? (Yes/No - if so, what do they do?): No
Log(s): -
Others: -

I was hoping that this was a "things break if you start from scratch" problem, but I cleared out all my docker images and tried it again on my Debian machine, and it all still worked for me.
Sounds like I might need to provision a Windows machine and get a Docker Desktop licence to work through this (unless you have some bandwidth to investigate?)

I was hoping that this was a "things break if you start from scratch" problem, but I cleared out all my docker images and tried it again on my Debian machine, and it all still worked for me.
Sounds like I might need to provision a Windows machine and get a Docker Desktop licence to work through this (unless you have some bandwidth to investigate?)

Interesting, I would've guessed this was platform independent since it's in Docker. 🤔
I can do some investigation tomorrow or early next week so feel free to put this on hold on your side for a while!

Interesting, I would've guessed this was platform independent since it's in Docker. thinking

Yeah same. I'm also confused. Something is weird somewhere.

Seems 100% related to cross, added a comment and MRE in the issue you linked. I can't make it work in Docker in Docker in Windows or WSL. Well, with one weird exception that I can run any alpine based image (vanilla or f.ex. docker:dind) and have cross build successfully, even if Docker is not even available but I have no clue how that works so I don't trust it.

Yeah, definitely does seem related to cross - one thought I had was - I can spin up a blank Ubuntu instance, and see if that is the issue, rather than WSL. Far easier and faster to check to see if it's the Ubuntu layer in your stack rather than the WSL layer.
I am wondering if the workaround
RUN printf '#!/bin/sh\nexport CARGO_HOME=/opt/cargo\nexec /bin/sh "$@"\n' >/usr/local/bin/sh
RUN chmod +x /usr/local/bin/sh

From https://github.com/cross-rs/cross/issues/260#issuecomment-520193756 will solve the issue for us.  If you have a chance to drop it into the Dockerfile (it will rebuild automatically on next run) and see if it works for you, that would be great - otherwise I'll see if I can replicate on Ubuntu as a next step, before going full Windows (and having to get a Docker Desktop licence).

After a reboot of my computer and restart of Rancher Desktop, I actually can build with cross in DinD from Windows so it seems only related to WSL.

I can spin up a blank Ubuntu instance, and see if that is the issue, rather than WSL

It sounded unlikely given it works on Debian and Manjaro but just to confirm this I created a VM instance with Ubuntu 22.04 and that worked as expected. Tried both vanilla Ubuntu on the VM and also DinD in the VM with the steps from my comment.
I also tried to test this on macOS but I can't successfully even install cross in Docker on my M1 MacBook.
# cargo install cross
    Updating crates.io index
Killed Fetch [======>                  ]  28.46%, 4.52MiB/s

I am wondering if the workaround

I tried explicitly setting CARGO_HOME but when reproducing I'm not using the Quilkin image but rather this: https://github.com/cross-rs/cross/issues/260#issuecomment-1135568872. However I tried doing this anyway to have it tested (both in my example and in the Dockerfile) without any success.

Uh. I wish cross compilation with Rust was easier (or maybe I'm missing something).
https://www.reddit.com/r/rust/comments/r60fzb/m1_users_how_are_you_cross_compiling/ seems like a whole thread on cross and M1.
You know, I never actually tried using cargo build --target - since I assumed we weren't going to be pure rust always (are we pure rust now), but maybe that's something to go back to?

From the meeting today -- it sounds like it's worth experimenting to see if we can build with cargo build --target rather than cross, since that would simplify things considerably.

So I always believed it was supposed to work:
For example: https://tomgregory.com/running-docker-in-docker-on-windows/
But maybe WSL is causing issue? 🤔
On WSL, I assume you can stat /var/run/docker.sock ?

So just running some tests, and, unfortunately, it looks like we'll still need cross for cross compilation - or we'll need to include the appropriate linkers in the Docker image (maybe that is better?):
cargo build --target=x86_64-pc-windows-gnu
...
   Compiling hyper v0.14.18
   Compiling hyper-timeout v0.4.1
   Compiling tonic v0.6.2
error: linker `x86_64-w64-mingw32-gcc` not found
  |
  = note: No such file or directory (os error 2)

Either that, or maybe we setup some time on a video call, and try and debug this together?

Was doing some hunting around, and found this recent article:
https://kerkour.com/rust-cross-compilation
Which shows some clever ways to avoid the need for cross. Definitely worth taking for a spin and seeing if we can make it work.

Actually, this wasn't very hard at all - been pottering on this this evening. WIP here:
https://github.com/markmandel/quilkin/tree/feature/remove-cross
I expect we can leave the cross compile to mac in place, since none of that uses Docker in Docker.
I just need to make sure the generation of the Docker image still works (some of the paths of binary creation may have changed), then I can submit PRs.


optimize public/img/loading.png

Losslessly saves 515 bytes via apngopt.

Codecov Report

Merging #10372 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #10372   +/-   ##
=======================================
  Coverage    43.7%    43.7%
=======================================
  Files         585      585
  Lines       81024    81024
=======================================
  Hits        35409    35409
  Misses      41229    41229
  Partials     4386     4386

Continue to review full report at Codecov.

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


Citations graph doesn't load when many citations for the first time

When many properties citations need to be computed at once (like the landing page diffusivity for tungsten), then the following error is raised:
Failed to load resource: the server responded with a status of 503 ()

{
    "message": "Callback error updating graph_nb_citations_diffusivity.figure",
    "html": "Service Unavailable"
}

I noticed it sometimes takes time to load many citations number at once.
Things to test:

upgrade dependencies
cache the number of citations somwhere (and update it say every week)

https://dash.plotly.com/long-callbacks#why-job-queues?

https://community.plotly.com/t/callback-returns-503-failed-to-load-resource-error/77466


added resource requests and limits for whereami

related to https://github.com/GoogleCloudPlatform/kubernetes-engine-samples/issues/1056
otherwise, running on GKE Autopilot consumes too much memory

@gbrayut @bourgeoisor

Autopilot already defaults to 0.5cpu, so would be better to do 0.25 since that is currently the minimal value

Autopilot already defaults to 0.5cpu, so would be better to do 0.25 since that is currently the minimal value

done


feat: added SQL error messages and functions

Source: https://portswigger.net/web-security/sql-injection/cheat-sheet#extracting-data-via-visible-error-messages

I don't see any changes to test files in your PR.

@theseion is a test really necessary? I just checked @azurit has created the tests with something like this:-
https://github.com/coreruleset/coreruleset/blob/249a0b7aa4cb18f50577f47bdb38d5836044524b/tests/regression/tests/RESPONSE-951-DATA-LEAKAGES-SQL/951230.yaml#L25-L27
As we're checking the response body for the desired error messages, it's just a simple copy/paste of the rules created by @azurit

In my opinion yes, the tests are necessary. We have too little test coverage. I know that it's a little bothersome but doing this kind of work pays off in the long run. Not only that, we will be able to reuse tests for things like performance measurements.

I'll make it a single commit. :)

The change from /anything to /get causes the tests to fail. The data in the GET body will not be reflected by the backend, because GETs are not supposed to have a body. Hence, the rule will not detect anything in the response body. Changing the request method to POST solves this issue.

Guys, LGTM.

Thanks!


Plotting Functions

https://github.com/swharden/ScottPlot/tree/master/cookbook#plotting-functions
(This will inevitably involve a math parser, look to yoink this from an open source solution, because writing your own will not be fun.

gg ez, you just need using Microsoft.CodeAnalysis.CSharp.Scripting;

the library is on nuget and it is under MIT license

you'll probably want using static System.Math just because namespaces.
This link details how to do it through an optional parameter as opposed to globally:
https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples#add-namespace-and-type-imports
You should probably also add a link to either an HTML file you make detailing the System.Math namespace and members, or just link to MSDN


WIP use sendgrid to send emails for password reset

Dev Summary

Mocks

Test Plan

repro steps:

localhost:3000
click X button
expected:

Resources

stackoverflow is cool

TODO:

[ ] compare to https://github.com/Nonprofit-Exchange-Hub/web-app/pull/184/files and take the good parts

closing in favor of https://github.com/Nonprofit-Exchange-Hub/web-app/pull/259


Tests not running automatically

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Insert the MWE of how to reproduce the error
YOUR CODE GOES HERE

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Versions
Please add the output of:
straxen.print_versions()

All italic comments can be removed from this template.

Seems to be secrets not loaded correctly


Add target-namespace option

Currently, job deployment is assumed to be in the same namespace as the
targetted pod. When utilizing bpf tracing, for example, a privileged
pod may be required. In many situations, namespaces have security
restrictions preventing them from scheduling privileged pods.
This commit adds an optional argument target-namespace to allow
selecting pods from an unprivileged namespace.
I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

lgtm


[Bug Report] - Molten Tool Head Issue

Describe the bug
When a tool that has the Molten Tool Head enchant is used to break a block like sand it becomes unsmeltable in all forms by any mod and furnace. A restart of the server fixes it until someone does it again.
To Reproduce
Steps to reproduce the behavior:

Use a tool enchanted with Molten Tool Head to break sand
Attempt to smelt sand into glass using a furnace, or another mod that has autosmelt (e.g Ars Noveu, MiningMaster etc.)
Unable to Smelt into Glass until Server Restart

Expected behavior
The block broken with the Molten Tool head Enchant should smelt the block, and should still allow other methods to smelt the block without requirement of a server restart.
Screenshots

Mod Info (please complete the following information):

Forge: 40.2.9
MC Version: 1.18.2
Mod Version: 2.0.1

Additional context
I am unsure if this affects singleplayer, it could also be a conflict with a mod. I am playing in the Ragnamod 7 Modpack, where we have experienced this issue.

1.18.2 is unsupported at the moment, sorry! This is not an issue in newer versions though. Sorry for the inconvenience!


Generate enum and union with zodios

I think it's common issue for generate type from open api spec.
I am using with zodios https://github.com/astahmer/openapi-zod-client/ openapi-zod-client. But did not found any possible solution to generate enum , instead I see that only union types is possible . Any idea to generate TS enum to use this enum in a code durin compile time .
Example schema json
 {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "flat",
                "grouped"
              ],
              "type": "string",
              "default": "flat",
              "title": "Format"
            }

By default it's generated to union with type flag enabled or via handlebars templates you can do your self. But it is not possible to generate TS enum.
Output:
export const Format= z.enum([
  'Flat',
  'Grouped',
])
export type FormatType = z.infer<typeof Format> // union one

Exacted/Desire output
export enum FormatEnum {
Flat = 'Flat',
Grouped = 'Grouped'
}

not zodios issue


Filter for multiple value

Hi there,
How I can filter a field by some value? For example Unit == 'A' || Unit == 'B' || Unit == 'C'
I tried with :
datalist.FilterBySearch(db.Units.Where(x => x == "A" || x == "B" || x == "C"));
But it doesn't works.

It already does a case insensitive contains search on all the string fields automatically.
Is it not working?

I'm not quite sure how to do that. Actually it is an enum.
I have tried so many things like making virtual field in model for this search but it doesn't work and return error that linq (Iqueryable) just work with mapping field.
Also I have tried with
            filter.AdditionalFilters["MasterPriceUnit.Unit"] = EnumBasicPrice.A;
            filter.AdditionalFilters["MasterPriceUnit.Unit"] = EnumBasicPrice.B;
            filter.AdditionalFilters["MasterPriceUnit.Unit"] = EnumBasicPrice.C;

But it is just return the first filter, which A.

Additional filter does that but it uses && operator and doesn't include enums, your best bet would be
public override IQueryable<TView> FilterByAdditionalFilters(IQueryable<TView> models)
{
    return models.Where(...); // using values from Filter.AdditionalFilters
}

however if it's not an a filter specified by the user, you should filter the data in GetModels method instead.

Thank you alot. I just know I can override FilterByAdditionalFilters :D