Signal does not accept MicroG - cannot register

First off, thanks for this really great project! I'm excited to see a FOSS solution to the Google framework for Android.
I'm currently having an issue registering Signal. After I type in my phone number, it says "Signal relies on Google Play services, which is not supported by your device. Contact the manufacturer for assistance." Despite my best efforts with MicroG, I'm not able to get past this. I have made some progress, since it used to say that Google Play services was not available, but that message went away after I installed MicroG. Has anyone experienced this issue? Is something wrong with my setup? Tickets #135 and #198 are somewhat related, but they and the wiki suggest that Signal should be working. Please advise.
Background:
I'm running CyanogenMod 13.0 on the OnePlus One. I first installed the patches from github.com/Lanchon/haystack to enable signature spoofing, which I enabled in Developer Options and it appears to be working successfully. I then downloaded com.google.android.gms-9258259.apk and com.google.android.gsf-8.apk from microg.org and installed them using adb. Next, I disabled CyanogenMod's PrivacyGuard on MicroG Services Core and MicroG Services Framework so that there weren't any permissions restrictions there. I then rebooted the device. I added a Google account and signed in just fine. Within MicroG Settings, I checked "Enable device checkin" and "Enable Google Cloud Messaging". The Self-Check shows checks for the following items: "System spoofs signature", "Play Services (GmsCore) Installed", "Play Store (GmsCore) has correct signature", "Services Framework (GSF) Installed", "Android Version Supported", and "UnifiedNlp is registered in system". I rebooted again and then used adb to install Signal. However, I then encountered the aforementioned error message when I attempted to register my number. By all rights everything should be in place, so I am not sure what the issue is.

Did you try to re-install Signal after you setup MicroG?
I've got Signal installed and while I haven't used it much, it does seem to work with MicroG.

@n76 yes, I have tried clearing app data, uninstalling the app, and then reinstalling it again. Same issue. I get the feeling that I did something out of order, but I'm not sure what. It's not clear what the "Enable device checkin" feature does or if I needed to enable that before or after adding the Google account.

I am pretty sure you need to enable device check in and "Google Cloud Messaging" to have Signal work.

@n76 I have done this. I enabled that after signing into Google. The Google-developed Play services aren't on my phone, only MicroG on top of CyanogenMod.

Not sure which version of GmsCore the APK you downloaded is. . . I install mine through the MicroG F-Droid repository and it is showing version 0.2.4-22-gcb356d2. Not sure it makes a difference, but I am running a self-compiled AOSP v6.1 ROM rather than CyanogenMod.
It has been a while, but I am pretty sure that I setup the core messaging after I created my Google account. (Out of caution I set up a throwaway Google account a long time ago that is the one I use for this type of stuff.) And I am pretty sure I enabled all the core messaging stuff before installing Signal.
I'd show you a screenshot of the Signal app but it seems that Signal disables screen capture (which I was unaware of until just now).

@Jesse-V are you on 0.2.4 release or latest preview (0.2.4-27)? Please try with preview release and report back. Also, if possible provide a logcat from the moment the message appears in Signal.

@n76 Thanks for the tips. I wasn't able to get the F-Droid repo set up properly, so I'm downloading from microg.org and then installing over adb. I installed MicroG's gmsCore, installed the GSF component, signed into Google, then enabled cloud messaging. I then restarted my device, installed Signal, double-checked that MicroG was working, then tried to register Signal. Same issue.
@mar-v-in Thanks, I didn't see the drop-down for the preview releases. I uninstalled Core and GSF and then installed 0.2.4-27 and GSF again. The app seems to have really matured in the previous release, at least looking at the UI and the features in MicroG Settings. However, I am seeing the same issue. "Play Store (Phonesky) Installed", "Battery Optimization ignored", "System supports location provider", and the last two UnifiedNlp items are not checked, but everything else is.
It's worth noting that it's not just Signal. I recently installed another app (Duo Mobile) and it also didn't recognize that Google Play services is there.

At what point does Duo Mobile fail for you? Out of curiosity I installed it (using Blankstore) and it did not give my any error messages up to the point where I had to either scan a bar code or manually enter some account information.

@n76 I installed it via adb and I was able to re-add my company account, no problem. It just has a message banner saying "Duo Push may not work because Google Play Services is unavailable or out of date. Tap to update." and when I tap it, I get a nearly identical message to the error with Signal. This shows that it's not Signal's fault.
I haven't installed BlankStore or FakeStore, just the  Does this matter?

OMG IT WORKS! I re-read the instructions on the wiki and realized that I hadn't installed BlankStore or FakeStore. I had ignored this step because it seemed optional in the wiki and because the official GMS/push worked just fine when I had disabled the Play Store originally. I uninstalled Signal, installed BlankStore, and then installed Signal, and it worked right away!
MicroG is a beautiful project, I'm so happy right now.


[stable/node-local-dns]: feat(node-local-dns): add option to override coreDNS config

Description
Adds possiblity to completly override generated configuration.
Checklist

[x] Title of the PR starts with chart name (e.g. [stable/mychartname])
[x] I have read the contribution instructions, bumped chart version and regenerated the docs
[ ] Github actions are passing

This is good feature, and would benefit anyone using CustomCNI

Can we get input if this can be implemented or not

Can we get input if this can be implemented or not

The CI tests are failing, fix them and it can be merged.

Since https://github.com/deliveryhero/helm-charts/pull/526 was merged, I'm closing this one.


HOW TO RETRIEVE STOLEN BITCOIN

Technology plays a pivotal role in the successful recovery of lost Bitcoin assets, with advanced tools and techniques enabling efficient and thorough retrieval processes. By using machine learning techniques, Digital Funds Recovery expedites the detection and retrieval of misplaced Bitcoin assets, cutting down on the time and resources needed for recovery operations. Digital Funds Recovery leverages artificial intelligence to improve its recovery procedures. Digital Funds Recovery tracking capabilities and digital ledger analytics enable it to painstakingly locate and retrieve misplaced Bitcoin holdings. With the use of these sophisticated tools, they can precisely explore the complex blockchain network and help their clients retrieve their digital funds. Offering revolutionary solutions to counter the growing issue of cryptocurrency theft, Digital Funds Recovery is a top service provider that specializes in the recovery of stolen Bitcoin holdings. Digital Funds Recovery is at the forefront of the industry, committed to protecting digital assets and providing peace of mind to individuals and organizations impacted by cybercrime. The main services offered by Digital Funds Recovery are examined in detail in this article, along with successful case studies of recovered stolen Bitcoin and professional advice on improving security protocols. Digital Funds Recovery mission is crystal clear: to assist clients in recovering stolen Bitcoin holdings efficiently and effectively. Their objectives revolve around providing top-tier services, employing innovative strategies, and ultimately bringing a sense of justice to those affected by cryptocurrency theft. When the wallet service I was utilizing went permanently offline, I was unable to access my cryptocurrency. I have thus been having trouble trying to figure out how to get back into my wallet for months. After a lot of effort, Digital Funds Recovery came to my rescue. You can communicate with them for help with the information listed below. Contact Details
Email:  Hiredigitalfundsrecovery @ gmx . com
WhatsApp:  +1 8 1 2 2 2 7 7 4 3 8
Here is also there Telegram username:  @ Digitalfundsrecovery

I had a similar issue and it was resolved by White Express Recovery, Check my post for details or WA + 1 4 2 5 2 0 9 5 7 6 1


ISPN-7550 Remove TriangleAckInterceptor

https://issues.jboss.org/browse/ISPN-7550

@pruivo Could the NonTxPrimaryOwnerLeavingTest.testPrimaryOwnerLeavingDuringPut failure be related to the changes here?
http://ci.infinispan.org/viewLog.html?buildId=51523&buildTypeId=bt9

@danberindei I'm going to loop the test and see what is going on :)

@danberindei I was unable to get a failure locally. I'll investigate if it pops-up again in CI


New rule: request-contains-parameter

Is your feature request related to a problem? Please describe.
We need a built-in rule similar to response-contains-header but for checking request parameters: request-contains-parameter
It can't be done with configurable rules properly as parameters may exists on multiple levels: Path-level params and Operation-levle params so we probably need a separate rule for this case.
Describe the solution you'd like
rules:
  request-contains-parameter:
    severity: error
    parameters:
      get:
        - name: X-REQUEST-ID
          in: header
      post:
        - name: X-REQUEST-ID
          in: header
        - name: X-CSRF-TOKEN
          in: header

Describe alternatives you've considered
Maybe some different shapes of the parameters config?
Additional context
See related rule issue: https://github.com/Redocly/redocly-cli/issues/1253

What if we want to enforce a parameter for all operations? Use something like all keyword instead of get, post &c.?
Apart from that looks valid. I believe we can adjust the syntax during implementation.

I like this idea. It seems practical. However, what about when you want to target specific subset of operations?
Here is a practical example:

Collections are GET requests and paginated and should have specific parameters (for example limit).
Non collections could also be GET requests but wouldn't have pagination so the limit parameter shouldn't be defined there.

However, what about when you want to target specific subset of operations?

I have no ideas on this unfortunately. The only way to achieve something like that is to implement #1253.
Does anyone have some other ideas?


fix cpu

fix AttributeError: type object 'torch.storage.TypedStorage' has no attribute '_new_shared_fd_cpu'

@huonglarne This should be fixed already. See this block of code

I see. I havent updated the submodules, that's why the code is obsolete. Thanks!


Return type of pow

Seems like there's some inconsistencies:
In [6]: pd.Series([1,2,3])**2
Out[6]:
0    1
1    4
2    9
dtype: int64

In [7]: pd.Series([1,2,3])**-1
---------------------------------------------------------------------------
ValueError: Integers to negative integer powers are not allowed.

In [8]: pl.Series([1,2,3]).pow(2)
Out[8]:
shape: (3,)
Series: '' [f64]
[
        1.0
        4.0
        9.0
]

In [9]: pl.Series([1,2,3]).pow(-1)
Out[9]:
shape: (3,)
Series: '' [f64]
[
        1.0
        0.5
        0.333333
]

polars always returns floats, whereas pandas returns either integers or floats, and may error based on the value of the exponent
What do we want to do here?

I think we should refer to the array API standard's description for pow. It's admittedly a bit hairy, but for any numerical behavior like this I think array libraries have thought about this a lot harder than dataframe libraries, and we should not reinvent this particular wheel.
For the examples given, that spec says, for col with integer dtype:

col**2 should given integer dtype result
col**(-1) is implementation-defined and may not be allowed

In this particular case I think the Polars choice isn't completely unreasonable, because it's the other choice that could be made to extrapolate Python's builtin behavior for scalars to a column:
>>> 2**2
4
>>> 2**-1
0.5
>>> type(2**2)
<class 'int'>
>>> type(2**-1)
<class 'float'>

But it's the opposite choice made by all array libraries and by Pandas, and makes it harder to work with lower-precision dtypes when everything ends up being float64. So it's not an ideal choice either and I'm hoping it can still be reversed.
>>> import polars as pl
>>> col = pl.Series([1, 2, 3], dtype=pl.Int32)
>>> col**2
shape: (3,)
Series: '' [f64]
[
        1.0
        4.0
        9.0
]
>>> col.pow(2).dtype
Float64
>>> (col**2).dtype
Float64

I don't see any documented casting rules in the Polars docs, although it seems dtype-preserving in general with pow being an exception, and there is manual casting support.
I haven't checked all the other dataframe libraries yet, would be good to check that first.
If it's not possible to make the pow behavior uniform, I think the other option is to recommend the array API standard behavior but not make it mandatory.

If it's not possible to make the pow behavior uniform

We can always work around this in the standard, no big deal - following the Array API looks good to me

The pyarrow.compute power kernel for integer data and integer exponent preserves the integer dtype for positive integers, and raises an error for negative integers. So that should be compatible with the Array API specification.

thanks @jorisvandenbossche ! I like that, I'd suggest standardising to that

in the last call we went for following the pyarrow behaviour


Fix save and cleanup workspace

Save workspace got broken with latest GraphiQL which now leverages localStorage.removeItem so we have to provide this method as well.
Not exactly sure how we broken cleanup workspace but in any case, we dont depend on global variable anymore to restore the initial workspace with the bootstrapped options.

@OlegIlyenko 2 more fixes :)

Thanks!


mlserver >= 1.3 doesn't work with MLflow

After the release of mlserver==1.3.1, one of our tests in https://github.com/mlflow/mlflow started failing with the following error. We're investigating the cause.
https://github.com/mlflow/mlflow/actions/runs/4716614587/jobs/8364498235?pr=8241#step:7:8138
2023-04-17 03:00:01,885 [mlserver.parallel] DEBUG - Starting response processing loop...
2023-04-17 03:00:01,894 [mlserver.rest] INFO - HTTP server running on http://<IP_ADDRESS>:8080/
2023-04-17 03:00:01,943 [mlserver.metrics] INFO - Metrics server running on http://<IP_ADDRESS>:8082/
2023-04-17 03:00:01,944 [mlserver.metrics] INFO - Prometheus scraping endpoint can be accessed on http://<IP_ADDRESS>:8082/metrics
2023-04-17 03:00:01,963 [mlserver.grpc] INFO - gRPC server running on http://<IP_ADDRESS>:8081/
INFO:     <IP_ADDRESS>:59636 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59644 - "GET /ping HTTP/1.1" 404 Not Found
2023-04-17 03:00:03,801 [mlserver] INFO - Loaded model 'mlflow-model' succesfully.
2023-04-17 03:00:03,802 [mlserver] INFO - Loaded model 'mlflow-model' succesfully.
2023-04-17 03:00:03,804 [mlserver] INFO - Loaded model 'mlflow-model' succesfully.
INFO:     <IP_ADDRESS>:59646 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59660 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59674 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59690 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59702 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59708 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59712 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:59718 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42498 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42512 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42528 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42530 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42536 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42544 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42546 - "GET /ping HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:42552 - "GET /ping HTTP/1.1" 404 Not Found
...

The error above indicates that the /ping endpoint is not registered.

https://github.com/SeldonIO/MLServer/pull/1044 might be related

Hey @harupy ,
Massive thanks for raising this one!
We'll have a look once we get a chance. It should be possible to replicate just by running the tests/models/test_cli.py::test_build_docker_with_env_override test within the MLflow repo, right?

@adriangonz Thanks for the reply! Yes, pytest 'tests/models/test_cli.py::test_build_docker[True]' or pytest 'tests/models/test_cli.py::test_build_docker_with_env_override[True]' should be able to reproduce the error.

Miminal reproducer:
FROM python:3.8

WORKDIR /mlflow
RUN git clone --branch master --depth 1 https://github.com/mlflow/mlflow.git /mlflow
RUN pip install -e .
RUN pip install -r requirements/test-requirements.txt
RUN pip install mlserver==1.3.1 mlserver-mlflow==1.3.1
RUN pip list | grep mlserver
RUN pytest 'tests/test_cli.py::test_mlflow_models_serve[True]' -s

Hey @harupy ,
Just as heads up, you were 100% right - there was an issue introduced in #1044 . Good spot!
We've just pushed a patch for review (#1104), which should do the trick for most cases. There's still an edge case with dynamic custom envs - discussed in #1103 - which should get patched soon. However, that will only get triggered when a new flag in the settings is used (which shouldn't be the case for MLflow models started from the mlflow CLI or run in SCv1 / KServe).

@adriangonz Thanks for the fix! Any plan to release 1.3.2?


Mara development

Yesterday I changed the design of the page. I added a side navigation bar where links to other pages can be found based on different topics. The home page ("index.html") also has some images that are arrange within it. Also, I created a section called "gallery" where I want to put more photos and a section called "hidden talent" which is self explanatory.
I also added a slide show gallery and I used some JS.
I deployed on the app engine as well.

Here is the license for the library that I used: https://github.com/processing/p5.js/blob/main/license.txt


Fix some build errors with disable_3d=yes

Some tests were incorrectly included
SCU builds with animation
Animation switch

I'm unsure if this is the best way with the scu, but it solves the issue, could also wrap the code in #ifndef but picked this way for right now, can switch if desired
I'm not sure why the linking fails with the SCU builds if the file is along with the others, so worth investigating separately
Edit: Swapped to the plain #ifndef version, felt more guaranteed
~The issues with the SCU is link errors, which might be MSVC specific, haven't confirmed yet~
Not MSVC specific, happens on mingw as well

Thanks!

Thank you!

Cherry-picked for 4.2.2.


Added feature to accept Firestore Value.

Fixes #3315

Would an integration test be possible?

Would an integration test be possible?

Done.


ikcp_waitsnd

why ikcp_waitsnd(m_kcp)  always 1

Will the client still send a confirmation packet after sending data?


Error from export_and_get_onnx_model()

Hi,
I am getting the following error when I run the following test snippet provided in the readme.md file. But I can see 3 onnx files are created one for encoder, one for decoder and one for init decoder.
Environment
fastT5 - 0.0.7
MacOS - Big Sur (11.2.3)
Python conda - 3.7.6
Error
Exporting to onnx... |################################| 3/3
[libprotobuf ERROR google/protobuf/descriptor_database.cc:394] Invalid file descriptor data passed to EncodedDescriptorDatabase::Add().
[libprotobuf FATAL google/protobuf/descriptor.cc:1356] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
libc++abi.dylib: terminating with uncaught exception of type google::protobuf::FatalException: CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size):
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
Test code snippet
from fastT5 import export_and_get_onnx_model
from transformers import AutoTokenizer

model_name = 't5-small'
model = export_and_get_onnx_model(model_name)

tokenizer = AutoTokenizer.from_pretrained(model_name)
t_input = "translate English to French: The universe is a dark forest."
token = tokenizer(t_input, return_tensors='pt')

tokens = model.generate(input_ids=token['input_ids'],
                        attention_mask=token['attention_mask'],
                        num_beams=2)

output = tokenizer.decode(tokens.squeeze(), skip_special_tokens=True)
print(output)

The latest version of onnx (i.e  onnx v1.10.1) is causing the issue. downgrade it to v1.10.0 and try again.

Yes, the old version was installed on my Mac. I think it was 1.7.0. But
anyway i had to upgrade both onnx and protobuf libraries. Thank you
once again for your help.
Thanks,
Phaneendra
On Thu, Oct 21, 2021 at 7:51 PM Kiran R @.***> wrote:

I was unable to reproduce the error with your given specification. onxx
version does not seem to have any effect unless you are using a really old
version. and yes the problem appears to be in the old protobuf.
Glad you made it work.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Ki6an/fastT5/issues/24#issuecomment-948667623, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AC7NJN7HKQ7HMMZAPBCHACDUIAOVHANCNFSM5GN6P2OQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Mac Advertiser

Investigate OS overriding payload contents issue.

Bluetooth LE advertisements on macOS is not such an open season as it is on, say, Linux.
Apple imposes severe advertising restrictions and has also implemented vendor specific additions (e.g. for iOS clients) in order to work with/around them (!)
For example, you can only set the device name and the service UUID's, and even then those items can get replaced when your app is not in the foreground.
Reference:
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForSettingUpYourIOSDeviceAsAPeripheral/BestPracticesForSettingUpYourIOSDeviceAsAPeripheral.html


Point macOS users to noffmpeg version of QCMA

The macOS Sierra+ recommended version crashes if FFmpeg 3.2 is not installed (and brew installs 4.0 by default)

Fixed


Update LoRaMAC FIX issue 62

https://github.com/BeelanMX/Beelan-LoRaWAN/issues/62
Fix soft Reset problem with ESP8266 after Joining
Just add yield() in while loop on RX1 wait

@daeynasvistas thanks for your contributions to ESP8266


Allow to customize the function matching in Mizar

This introduces a concept of FunctionSymbolToKey. The class maps function symbols to some keys, the functions with equal keys are matched.
Test: Compile, Unit, Manual
Bug: http://b/247977204

I has to templatize code a bit. So the PR moves chunks of code from .cpp to .h. The change is small otherwise.


DotNetCoreCLI test can't publish xml test results for multiple test projects at once

When running the .NET Core command "test", you can specify multiple projects to test with wildcard syntax. E.g. "/test//project.json". However, since there's no per-project variable, and you have to specify a full filename for the test -xml parameter, it's impossible to use the test command for multiple projects if you intend to publish the test results at all.
I'd suggest adding a $(ProjectName) parameter (or something similar) to the script that gets substituted with the current project name/folder/path during execution. Then custom arguments could change per-project.

Hi @kyschouv,
This is valuable feedback. Thanks!!
We have added it to our backlog.
regards,
Atul Malaviya
Program manager | VSTS

closing the issue, will track in backlog


Add build.propertes, declaring sbt.version 0.13.8.

It's much safer to always declare what version of sbt the build is defined for.

Didn't know about that. Thanks!


Update multiply.py

Thank you @Abhishekmamidi123 for your PR!
Since we want to keep the mistakes for other participants to work on, we wouldn't be merging this PR. Hope the practice was good nevertheless :)


Add NATS support

Add NATS support to allow for async functions.

@cpitkin I have a branch now /nats which adds configurable options for function timeouts which allows values greater than the default of 30s.  This is nearly done will hopefully merge today sometime.

@cpitkin this has now been merged to master the new image version is v0.2.23 which accepts a new parameter set:
 args = [
   "-nomad_region", "${NOMAD_REGION}",
   "-nomad_addr", "${NOMAD_IP_http}:4646",
   "-consul_addr", "${NOMAD_IP_http}:8500",
   "-statsd_addr", "${NOMAD_ADDR_statsd_statsd}",
   "-node_addr", "${NOMAD_IP_http}",
   "-logger_format", "json",
   "-logger_output", "/logs/nomadd.log"
   "-function_timeout", "5m"
]

You should now be able to set the function timeout as requested.


⚠ Bofrost.nl has degraded performance

In 750b31f, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 4256 ms

Resolved: Bofrost.nl performance has improved in 1110bb1 after 6 minutes.


Add additional sampler states

Noticed that a couple of Metal sampler states were not supported for SamplerDescriptorRef, including border color that I needed.
So have exposed the border color and the remaining missing ones such as lod average, normalized coordinates & support argument buffers.

Created https://forum.bors.tech/t/reviewer-permissions-broken-on-moved-repositories/93 to investigate...

Bors r+

On Dec 23, 2017, at 21:10, bors[bot]<EMAIL_ADDRESS>wrote:
🔒 Permission denied
Existing reviewers: click here to make kvark a reviewer
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks for merging!
Will you publish the latest also on crates.io? It is still on 0.6.0 so missing this fix.

@repi Sure! https://crates.io/crates/metal-rs/0.6.1

Thanks!


RFC: Support tagged template parsing

Currently parse(node)(input) works using a string, i.e. input is expected to be a string.
It would be interesting to allow parse(node)(quasis, ...expressions) to be passed, where quasis is an array of strings and expressions is an array of interpolations.
This way it'd be possible to parse a tagged template literal input by introducing just one new matcher: match.interpolation('interpolation').

Resolved by https://github.com/kitten/reghex/commit/43d3bf383ac10cc97d17d3ac6da862d9db482173

Resolved by https://github.com/kitten/reghex/commit/43d3bf383ac10cc97d17d3ac6da862d9db482173


Fixed #22268 -- Documented values_list() behavior for multivalued relations.

Reworded #5976 with a more detailed explanation and two examples for both direct and reverse relations

Edited and merged in 7d485d5d75bd9faab0b949fd34d4f098f8079452, thanks!


Clarification Needed on Custom Icon Support for Unordered Lists (LeadingBlockBuilder)

Is there an existing issue for this?

[X] I have searched the existing issues

The question
I have been exploring the new LeadingBlockBuilder feature for customizing the leading icons in unordered lists, and I’ve encountered some challenges. The goal is to apply different icons to unordered list items, allowing each list block within a document to have its own unique icon as seen in issue 1611. This new feature claims to do that, but based on the comments, I'm unsure whether the feature fully supports this use case or if there's a workaround or future plans to enhance it.
As of now, it seems that the current implementation does not persist these custom icons in the document's Delta format, or I could not figure it out.
Currently, when a custom icon is selected and applied, it is correctly displayed within the editor. However, upon saving and reloading the document, the custom icons revert to the default, because I can't figure out how to store the icon choice in the document's Delta. This is particularly limiting as it prevents the icons from being different in each block or, at a minimum, from being retained uniquely across different documents.
Any help or suggestions would be greatly appreciated!
Widget? customLeadingBuilder(quill.Node node, quill.LeadingConfigurations config) {
  if (config.attribute == quill.Attribute.ul) {
    final customIconAttr = config.attrs['custom_icon'];
    if (customIconAttr != null) {
      final iconData = IconData(
        int.parse(customIconAttr.value),
        fontFamily: 'MaterialIcons',
      );
      return Icon(iconData, size: config.style?.fontSize ?? 14);
    }
    return Icon(Icons.star, size: config.style?.fontSize ?? 14); // Fallback icon
  }
  return null;
}

Never mind, figured it out, by using custom attributes 😳.


Add windows support

Thanks for PR,
I'm very sorry, I haven't paid attention to this repository recently, but I don't have a Windows computer and it's difficult to test, but I will release a release with a Windows version.

All good :) I'm currently using on a day to day basis. Actually working fine for now :) Thanks for your work


chore: release 0.6.4

:robot: I have created a release *beep* *boop*
0.6.4 (2023-03-17)
Bug Fixes

update all dependencies (777331d)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/werf/trdl/releases/tag/v0.6.4 :sunflower:


Sequential audio fixes

This PR should implement the changes requested in davidsansome#465.
I have confirmed tests are passing.

@realericmc Here's a mention in case you're using the mobile app! ;)

Thanks for the prod.  Sorry for the delay.  I think I have clicked the necessary boxes to accept your version.  Please let me know if I missed something (I am not a GitHub expert :-).

On Jun 15, 2021, at 13:33, turtlemaster19 @.***> wrote:
@realericmc https://github.com/realericmc Here's a mention in case you're using the mobile app! ;)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/realericmc/tsurukame/pull/2#issuecomment-861738657, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJ2NDX7ME2H6HMNMXYQ2J43TS6MHJANCNFSM46VQOWVQ.

@realericmc The merge worked perfectly. Hopefully the resulting PR still works as the original was intended! ;)


[5.3] Laravel Middleware Request Merge Not Return Any Value

Hi,
All my code is working on Laravel 5.2. Now I try to upgrade to Laravel 5.3 it breaks on middleware.
// Verify Middleware
public function handle($request, Closure $next)
{
    // I already make sure the data is exists
    $user = User::find('abc');

    if (!$user) {
        return responseHandler()->unauthorized('Unauthorized');
    }

    $request->merge(['user_id' => $user->id, 'device' => $device]);

    return $next($request);
}

// User Controller
 public function __construct(Request $request)
{
    var_dump($request->all());
    $this->user_id = $request->user_id;
    $this->device = $request->device;
}

public function getProfile(Request $request)
{
    $data = User::find($this->user_id);

    $result = Fractal::item($data, new UserTransformer)->getArray();

    return responseHandler()->success(0, $result, 'user');
}

The problem is $this->user_id is always null. But if I request from getProfile function it return correctly.
var_dump result only the login info. it not received any merge request from middleware
On Laravel 5.2 this code is working properly. Any solution?.

you cant get the user in the constructor anymore

In 5.3 you can no longer do this, the reason is that the controller class is constructed before running any middleware in the stack, so by the time you code is called that merge() method won't be fired yet.
Check the Upgrade guide for more information about how to use the request object in your controller constructor:
public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->user_id = $request->user_id;
        $this->device = $request->device;

        return $next($request);
    });
}


Protocol support in host url

Maybe I am missing something but passing in the host and port to the mqtt options.servers array inside lib/MqttClient.js doesn't seem to allow me to connect to a tls secured mosquitto broker.
If I manually change the code to be var client = mqtt.connect('tls://mqtt.example.com', options) then everything works as expected and a connection to the mqtt broker is established.
I have tried messing around with putting the url in the "Host url" section of the web UI and that results in connection failures that look like:
1556827963: New connection from <IP_ADDRESS> on port 8883.
1556827963: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1556827963: Socket error on client <unknown>, disconnecting.

Will submit a commit with the fix today

@papertigers Please pull last version and tell me if it's working.
Just add the protocol in the host url like: tls://mqtt.example.com

Working perfectly.
Thanks!
Side note, I am using lets encrypt and I had to add the lets encrypt root cert to my local certs.
It's possible that others may be issuing a self signed cert instead and they might want a check mark in the UI for "rejectUnauthorized": false.  I can open another issue for that if you would like.

I think that I could add that option by default to be false. Would it be ok for you?

I think a default of false would be bad because it exposes the user to a potential mitm attack.  I think the default of true that's implied now is the right way to go.  I think a user should explicitly have to click a "I am using a self signed cert" box.

Yep sure you right, now I will submit the fix with the ui improovments than let me know if it works

@papertigers Please check now and let me know, I have added an option Allow self signed certs on MQTT settings UI. Enable that flag and that will set the "rejectUnauthorized": false on connection options.
Remember to rebuild the project with npm run build to see the ui changes.
If your problem is fixed close this issue


Run subdirectory test suites

Changes

Minor config change needed to run test suites in subdirectories in /test/browser_tests/spec_suites/ by default.

Testing

gulp test:acceptance --sauce=false should pass.

Review

@KimberlyMunoz
@jimmynotjim
@sebworks

:+1:

:+1:


notify.html5 with chrome "Notification Registration Fails"

Home Assistant release (hass --version):
0.29.6
Python release (python3 --version):
3.4.2
Component/platform:
notify.html5
Description of problem:
Click on "Push Notifications" toggle and receive "Notification Registration Fails"
Verified API and ID.  No further information in logs.
Problem-relevant configuration.yaml entries and steps to reproduce:
notify:
  name: HTML5
  platform: html5
  gcm_api_key: 'XxXxxxxxxXXXXxxxxxxXXXxxxxxXXXXxxxx'
  gcm_sender_id: 'xxxxxxxxxxxx'

hass -c /var/opt/homeassistant
Connect with chrome
Click on "Push Notifications" toggle

Additional info:
I am using firebase as GCM is discontinued, is this supported?

Incorrectly reported issue. I was using local dev machine with certs from live server. Configuration works on live server.  Thanks!


Disable background image

It would be great if we could generally disable the background image. Besides being slower than a solid background color, very often it confuses more than helps because it's totally unrelated to the opened model.

+1 for this issue. I think it would be more nice to be disable or specify the background image.

Hello,
This is amazing extension.
I think so too about the function of disabling/enabling background image.
Thanks.

Hi! I created a pr with some changes regarding background handling. The details are in #25
This pr also makes it possible to disable the background image using the 'none' value. When this is set the backgroundColor gets used, but that can be set to any color values (defaults are in settings, but can be changed in the right side menu too)

Can looking for this myself, would be nice to see the pr accepted.


Make unifi device tracker more resiliant to failures

There are a lot more classes of failures than just the caught
HTTPError case that can happen when the unifi controller goes
offline. This catches exceptions more broadly to prevent stack traces
for potentially very normal events of controllers being rebooted.
Fixes issues #7330
Description:
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Thank you for doing this work!  I have been investigating it and trying different fixes but was not having much luck.  I think it relates to my novice (yet continually improving) programming skills. 👍

@finish06 I was just looking at the source for pyunifi and I see a glaring security hole! You are disabling all the security warnings in Requests!! https://github.com/finish06/unifi-api/blob/master/pyunifi/controller.py#L59 Please update this ASAP.

@sdague instead of catching Exception, can you catch the Requests base exception? That way we don't swallow things unintentionally.
We should also remove the option to disable SSL verification since it impacts the whole system. We can reinstate that when fixed.

@balloob would a simple replacement of the 'glaring security hole' code with the following work: logging.captureWarnings(True)?  If so, I will get it up ASAP.
Thanks!

Well, it could also be the APIError, but sure I can probably rescope.
If we remove the disable SSL verification option, it will pretty much break everyone's unifi. Most people are just running those with the snakeoil certs for home network and it doesn't respond to http. I do agree we need to not have it destroy the security for everyone else.

I updated the pyunifi repository with a few try/ except clauses in the necessary places.  Now if the user has to login again, pyUnifi will perform a repeat login request.  If the server is down, pyUnifi will sleep 60 seconds and then try to access the server again.
This would require additional changes to the unifi_tracker.  We need to catch a possible TypeError in the _update clause and pass the exception to pyUnifi.  Like so I believe.
        clients = self._controller.get_clients()
        try:
            self._clients = {client['mac']: client for client in clients}
        except TypeError as err:
            pass```

@finish06 could you turn TypeError into some other more native pyunifi exception class? Raise that instead? Then hopefully we'd only need to catch 3 base types, requests, urllib3, and pyunifi's

@sdague aren't all urllib3 errors wrapped by Request exception?
@finish06 whenever you make a request with requests, pass in verify=False to disable SSL verification.

Thanks for fixing pyunify @finish06. Would you be able to push a new version to pypi that we can use?

@balloob - I will attempt to package it up ASAP.  I think I have the exception handling improved too so that it will attempt logging into the controller multiple times over after brief time.sleep pauses.

@finish06 just looking through the pyunifi changes. I think they went too far to be ideal in keeping this whole chain going. Especially the long loop on login, which is going to be synchronous, and plays less nicely with the async core.
Here is my high level thinking of how this all should work:
We know that the controller can go away for a couple of reasons while home assistant is running. The controller VM is rebooted (maybe a kernel update, maybe a reboot of the server it is running on). That just means it goes away for some amount of time, but it will be back. The token might even be valid still. Or the controller software might be upgraded, which definitely invalidates the token, and in my experience took quite a while (like an hour) before everything was responding again (though that may not have been helped by the 12 second device tracker heartbeat).
The only interface to the user is the persistent_notification in the HA module, so we definitely need to expose to the user when things go wrong (logs are fine, but they aren't a user interface, and digging on logs isn't going to happen from a phone).
So... that being said, when something goes wrong in pyunifi (like login fails) don't retry there, throw an exception up that login has failed, and any retry logic for "this system is completely gone" should be done at the HA module level, as it needs to alert the user that things are wrong (and probably do something sensible like only try every 30 minutes from that point on instead of every 12s).
However, if pyunifi tries a network operation that fails like it looks like the token expired (or was invalidated), it has the credentials, so it should try to login one more time and retry the operation. That is doable with a decorator, which I'd be happy to bang out if you are interested (though I'm at a conference next week, so it might take me a bit).

@balloob placing verify=False does not stop the warning from the requests module.  The only options (to my knowledge) are to either let the warning fill the screen when a user starts hass via cmdline, i.e. hass or capture the warning into the log as I do now, i.e. logging.captureWarnings(True).  Neither option pleases the end users.  What would you recommend?

@finish06 I didn't realize it would issue a warning on each request even if verify is set to False. I guess that means it's still verifying the cert but just not using the verified result. My concern with disabling the warning is that we would also hide legitimate security warnings and that's not good either. I don't really have a recommendation 😢
I guess we could add an option to the unify platform to allow hiding the warnings. That way it's a conscious decision by the user.

@balloob I actually think I found a way around it.  In the urllib3 package, the InsecureRequestWarning is set to action="always" resulting in a warning being issued on each request.  I adjusted the warning action back to "default" and it only fires once for the first request.
        if ssl_verify is False:
            warnings.simplefilter("default", category=requests.packages.
                                  urllib3.exceptions.InsecureRequestWarning)

Additionally, I implemented a decorator as @sdague recommended and raise a custom exception, APIError, up to the unifi component.  This allows for the unifi component to handle the custom exception however it deems necessary.
def retry_login(func, *args, **kwargs):
    """To reattempt login if requests exception(s) occur at time of call"""
    def wrapper(*args, **kwargs):
        try:
            try:
                return func(*args, **kwargs)
            except (requests.exceptions.RequestException,
                    APIError) as err:
                log.warn("Failed to perform %s due to %s" % (func, err))
                controller = args[0]
                controller._login(controller.version)
                return func(*args, **kwargs)
        except Exception as err:
            raise APIError(err)
    return wrapper

@sdague is this PR still relevant and does it have to be updated to new pyunify errors ?

This PR seems to have gone stale. Closing it. You can reopen it when you're ready to finish it.


[Bug]: After entering the configuration name, and then turn on the advanced options, the Provider EntityID will not be automatically generated

ODC version
4.3.3
OB version
no related
What happened?

After entering the configuration name, and then turn on the advanced options, the Provider EntityID will not be automatically generated
What did you expect to happen?
After entering the configuration name, turn on the advanced options, and the Provider EntityID must be generated normally
How can we reproduce it (as minimally and precisely as possible)?
After the name information is filled, you can open the advanced options to observe whether the Provider EntityID is generated
Anything else we need to know?
No response

Fixed In Commit 74dba94343f7b87b9f3c40c62a1905a0c77b8d51
------
艺泽
Wed Dec 25 18:05:25 2024 +0800

pass


Small typo

https://quickstarts.sigmacomputing.com/guide/embedding_03_secure_access/index.html?index=..%2F..index#10
But wait; could'nt some bad actor use inspector t

Corrected. Thanks for reporting the issue.


Add PostgreSQL ActiveRecord Sample

Fixes #471
Region tags are in config/database.yml and app/controllers/votes_controller.rb

@TheRoyalTnetennba - Would you mind reviewing this from a Ruby perspective?


[Task]: Make Box Shadow control keyboard accessible

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks

Check Theming DP for new controls

The PR got merged to Theming (#9714)

Discussed with @aswathkk - since this is done in Theming EPIC and It’s not merged in to release yet, will wait for the merge into release to proceed with testing.

Tab to focus
ArrowRight and ArrowLeft to cycle through items
Space|Enter to select the item
Verifying this issue.


Sort/filter icons look-and-feel customization

We need to add config optiuon to customize sort and filter icons in data viewer columns header.
Original ticket: #18589

Let me share my 2 cents on this issue. I think the new design of having the triangle to set sorting is not a bad idea in itself and I like the fact that I can easily choose my desired sort type without having to click on the sort arrow multiple times until dbeaver switches to the one I want. The only problem is that the old behaviour of changing the sort type by a single click has been removed because it was also very convenient.
I think there is a way to keep both features while not cluttering the UI with multiple icons: simply keep the visual sort icons like in the previous versions and get rid of the new triangle. When I left click the arrow then the sort is changed immediately like in the previous version and when I use the right click then I get the new context menu sort options that are accessible in the new version under the triangle. This way we need only one icon and get both functionalities. Of course, this could be further configurable - for those who want to prevent accidental clicks by disabling the instant click sort behaviour, etc. Then we would get the best of both worlds.

imo this almost feels like a microsoft update .. making good things worse .. will go back to prev version till fixed
thanks

Sorting and filters menu config was fixed.
Now you can enable old behavior in preferences.
By default sort icons are disabled.

@vatsake this fix will be available in v.22.3.5 (Release date: February 19, 2023)


[SPARK-18278] [Scheduler] Documentation to point to Kubernetes cluster scheduler

What changes were proposed in this pull request?
Adding documentation to point to Kubernetes cluster scheduler being developed out-of-repo in https://github.com/apache-spark-on-k8s/spark
cc @rxin @srowen @tnachen @ash211 @mccheah @erikerlandson
How was this patch tested?
Docs only change

Can one of the admins verify this patch?

I dont think we should be pointing to third party projects in spark documentation - for example, it might be possible that some other effort gets merged in instead of the above.
If/when it does eventually get merged, we can add the appropriate cluster manager entry for it - until then, there are other means of evangelizing user participation.

Seems fine to me, since the number of external resource managers are small. We should definitely make it clear there is no firm commitment currently to merge this into Spark though.

@mridulm, I understand your concern here. This is however an effort from the Kubernetes community (https://github.com/kubernetes/kubernetes/issues/34377), so, the eventuality of a different parallel effort, is unlikely.
@rxin thanks for reviewing. I've updated the wording as @markhamstra just suggested. Do we want more clarification about the level of commitment or does this look ok?

Removed the controversial line about the merging upstream. PTAL

Thanks - merging in master.


bug: Catalog not updating for run

Related topics:

https://github.com/meltano/meltano/issues/2848

Meltano Version
2.3.0 / 2.4.0 / 2.6.0
Python Version
3.8
Bug scope
CLI (options, error messages, logging, etc.)
Operating System
Windows 10, Ubuntu
Description
Catalog isn't updating properly when using run. It's possible this is just with the run command and/or just with Windows I haven't verified anything beyond this setup. Repro steps below
Code
1.  Create a new meltano project, `meltano init catalog_bug`
3. Add this `meltano.yml`

version: 1
default_environment: dev
plugins:
  extractors:
  - name: tap-postgres
    namespace: tap_postgres
    pip_url: git+https://github.com/AutoIDM/tap-postgres.git
    executable: tap-postgres
    capabilities:
    - state
    - catalog
    - discover
    settings:
    - name: sqlalchemy_url
      kind: password
    select:
    - autoidm-testh.col1
  loaders:
  - name: target-jsonl
    variant: andyh1203
    pip_url: target-jsonl
environments:
- name: dev
- name: staging
- name: prod
project_id: 0386f428-f486-4e8c-8ea3-75146356d2f1

meltano install (Note a .env var of TAP_POSTGRES_SQLALCHEMY_URL="postgresql://postgres:postgres@localhost:5432/postgres" maybe be helpful!)
Create some test data

CREATE TABLE autoidm.testh (
	col1 text NULL
);

insert into autoidm.testh (col1)
    VALUES('row1');

Run meltano meltano run tap-postgres target-jsonl
Alter the table schema

alter table autoidm.testh
add column col2 text NULL;

insert into autoidm.testh (col1, col2)
    VALUES('row2', 'row2');

Manually update meltano.yml to include the new column

    select:
    - autoidm-testh.col2

Run meltano run tap-postgres target-jsonl , note the new output data

{}
{}
``
Two empty rows as col2 doesn't exist
10. Run `rm -r .meltano\run\tap-postgres\`
11. Run `meltano run tap-postgres target-jsonl` everything works now

Verified this happens on Linux as well (Ubuntu atleast)

Thanks for this @visch - I added it to https://github.com/meltano/meltano/milestone/12 since we have quite a few catalog related issues.
We're going to have to put more focused effort into catalog management in the coming months. cc @aaronsteers

Compiling here a list of possible solutions that we have logged as of now:

#6915
#6919
#2848

And the general discussion thread for this topic:

https://github.com/meltano/meltano/discussions/6757#discussioncomment-3650870

And a related issue for improving docs to make caching methodology clear:

#6292

Arguably addressed by #8580. Do comment if we're missing something and I'll reopen.


Hello author Several bugs, please take a look

Hello author, I found several bugs, you can pay attention to:
1At present, Codex mode will report an error and cannot be requested
2 In the first mode, an error will also be reported when I enter too much text in the input box.
Author Da, you can look at these questions.

Check error message. Error message says it all.
OpenAI token has limitations.


Conflicting certifier.ph.h in the include

OE and asylo uses different certifier.ph.h header file as the one included in the ./include.
Should we remove the header file and add the instruction on how to build it?
../../../include/certifier.pb.h:12:2: error: This file was generated by a newer version of protoc which is
#error This file was generated by a newer version of protoc which is
 ^
../../../include/certifier.pb.h:13:2: error: incompatible with your Protocol Buffer headers. Please update
#error incompatible with your Protocol Buffer headers. Please update
 ^
../../../include/certifier.pb.h:14:2: error: your headers.
#error your headers.
 ^

fixed


What does the "use_dilated" mean in "build" function?

I can't understand what codes below want to do, does anybody can explain?
Thanks so much !!!
if use_dilated:
    pad = [[0, 0], [0, 0]]
    self.pool4 = tf.nn.max_pool(self.conv4_3, ksize=[1, 2, 2, 1],
                                strides=[1, 1, 1, 1],
                                padding='SAME', name='pool4')
    self.pool4 = tf.space_to_batch(self.pool4,
                                   paddings=pad, block_size=2)
else:
    self.pool4 = self._max_pool(self.conv4_3, 'pool4', debug)

This implements dilated (atrous) convolutions.


Add capacity to run in time-backward mode

For the GMD manuscript, we will need to have functionality to run particles in time-backward mode. As for the integration, this can be done by simply negating velocity fields. The trick is to also handle input fields in reverse order

OK, so I'm started looking into this. Initially, I thought I would just write a simple kernel
def reverseUV(particle, grid, time, dt):
    grid.U[time, particle.lon, particle.lat] = -1 * grid.U[time, particle.lon, particle.lat]
    grid.V[time, particle.lon, particle.lat] = -1 * grid.V[time, particle.lon, particle.lat]

And then prepend that kernel to the pset.execute set
However, this will not work for three reasons:

While the right hand sides of these equations can be executes, they can't be assigned to the left hand side because [time, particle.lon, particle.lat] are floats, rather than integers
Even if we would be able to make this work, it will only negate velocities on the location where the particles are now. However, RK4 will also require the velocities at the intermediate points to be negated
There is no way to check that we haven't doubly-negated a velocity field if we call reverseUV for the same location again

So really, it seems that we have a few options:

Put the negation inside the Advection* kernels (with the disadvantage that is a user defines its own kernel it will not necessarily use the same negated velocities)
Negate all the grid cells around the particles (although this will not fix problem 3. above)
Negate the entire velocity field when we read it in

Option 3. is the easiest to implement, but it can also be quite slow. In scipy mode python will probably do some under the hood vector magic; but not sure how this works in JIT mode. @mlange05 any thoughts?

Ok, I hadn't really thought about this problem in detail yet. Option 3 should work for both modes, but will probably be costly, as you point out. So how about option 4: Optionally perform negation in-place as part of the sampling routine. What I had in mind is this:

Add an attribute negate to Field objects and ensure that it is True for U and V if we call execute(..., reverse=True). We don't want to negate temperature, right?
For Python, we then adjust Field.eval() to do:

val = ...
if self.negate:
    val *= -1.
return val

For JIT mode we add a function temporal_interpolation_linear_reverse, which directly calls the original interpolation function temporal_interpolation_linear, but negates the return value. Then all we need to do is conditionally replace the function name in Field.ccode_subscript with the reverse function and we should achieve the desired in-place auto-negation. Does this sound sensible?

OK, so I've almost implemented time-backward mode. The branch now works now for scipy, and in principle also for JIT. However, test_moving_eddies doesn’t work yet because something strange is happening during compilation.
If I run only in backward mode both JIT and scipy work fine, but if I do a test where I first advect particles forward in time and then reverse velocity files to advect them backward in time, the particles should end up at the same location where they started (within to RK4 errors).
This works perfectly in scipy mode (see the moving_eddies_fwdbwd function). But in JIT mode, the velocity fields do not get negated for some reason. Even if we recompile the code after reversing time (and the compiled .c file does call the _negate function), the particles are still advected with non-negated fields. It's as if the new, second .c file is not used..
Not sure what's going on. @mlange05 any ideas?

Ok, I don't think removing the (still very minimal) kernel compilation caching we do is the right way to go (see inline comment on ef16c88). Instead we probably want to avoid the need for recompilation here altogether.
So, how about this: Instead of calling a different interpolation function, we could store a float dtsign on the struct CField in parcels.h and pass this down as either 1 or -1 when creating the struct in Field.ctypes_struct. All we need to do then is multiply the result of temporal_interpolation_linear with dtsign in-place and set the field according to Field.negate. Does this sound like better solution?

OK, I see your point on removing the kernel compilation caching. I like your idea of adding a float dtsign, will implement that when I have time!

Implemented in PR #52


chrore: retry rmSync many times with delay in tests

Summary

use option retryDelay and maxRetries in function fs.rmSync

Test plan

@SimenB
I added the execution of the 'npm cache clean --force' script before and after the tests to avoid the 'EBUSY: resource busy or locked issue'.


Updated git.host and git.api for configuration of Bitbucket Cloud [Documentation Update]  #3238

As discussed in, Hygieia/hygieia-scm-bitbucket-collector#20
I have created this pull request to update the above parameters in the application.properties of Bitbucket Cloud.
This PR closes#20

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

@kopal2212 Thanks for your contribution, Can you sign the CLA so that this change can be merged.

@rvema I have signed the CLA.


chore: Update to work on latest CI 4.3

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+6.7%) to 96.063%

Totals

Change from base Build<PHONE_NUMBER>:
6.7%

Covered Lines:
244

Relevant Lines:
254

💛  - Coveralls


Uninstall guide

What would you like to see added?
hello i was reinstalling fluidd, and i thought this one was raabi91 one, do you have a uninstall guide to uninstall this app ?

Run the uninstall script.


[Bug] Time Bounds Handling through GeoWaveFeatureReader

Logic in the QueryIndexHelper produces undesired results through GeoServer. If the bounds of the query fall outside the bounds of available data for the feature, based on the TimeRangeStatistics, it removes the temporal constraints from the query, instead of producing no results. This is documented in the TODO of the clipIndexedTemporalConstraints function.

that TODO was mine - I had noticed very suspect logic there while I was working something else


Feature request: Add optional input for alternate image to use when sandwiching OCR data

Hi,
I recently started using tesseract to help unclutter my desk at home, so forgive me if this is a n00b question/request.
I use textcleaner from Fred's ImageMagick Scripts to cleanup my scanned images for better OCR accuracy. However, the images that are optimized for OCR do not necessarily look good from a human standpoint, and I would like the final OCR'd PDF to look visually identical to the original scan.
So here's my feature request: Add an optional argument to take a cleaned image. Example invocation: tesseract -l eng -psm 4 --cleaned-image ${SRC}_cleaned.pnm ${SRC}.pnm out pdf
It will use ${SRC}.pnm to generate the final PDF image but layout detection, character recognition, etc. will be done using the --cleaned-image argument for better accuracy. That way the user will be given a final PDF that looks like the original but searches as well as the cleaned-up image.
I'd be surprised if nobody has already thought of this, so maybe work is already underway or maybe it's not possible. Thoughts?

From #83, @zdenko's quote:

What I want to say is that if you run:
tesseract OCR.tif ORIGINAL pdf
than ORIGINAL.tif is included in ORIGINAL.pdf WITHOUT any modification.

should be readed as: OCR.tif is included in ORIGINAL.pdf WITHOUT any modification. ;-)
And OCR is run on OCR.tif
IMO dhendrix what something else - he want to run OCR on image_b (improved for OCR), but include image_a (original) to pdf...

zdenop: Yes, that is correct. I want to run OCR on image_b (improved for OCR), but inclide image_a (original) in the resulting PDF.
BTW - I just realized that there is a user forum (https://groups.google.com/forum/#!forum/tesseract-ocr). Maybe somebody has asked / answered my question there. My apologies for not looking at that forum earlier.

Please post an example of a cleaned vs uncleaned image where accuracy improves significantly. Or even better, point to some documentation that has some examples. In the long term, one would hope that OCR could improve such that having a separate cleaned image is unnecessary.
Regarding this feature request, I think it is probably better to use an outside utility that can replace the images in a Tesseract produced PDF. The caller is already generating a separate set of clean images, so is therefore comfortable with pre/post processing. This approach also lets us keep the design intent and implement of PDF generation simple. I don't know if such a tool exists already, but based on my knowledge of the Tesseract PDF itself it shouldn't be too hard to write. (Apologies, but I am not volunteering to write one unless I need it myself for something).
The closest existing thing I know about is OverlayPDF from Apache PDFBox. Previously mentioned here<EMAIL_ADDRESS>

Hi jbreiden,
There are lots of tutorials on-line for how to clean-up images for improved accuracy OCR out there, just use your favorite search engine. Here's a good one from 2014 (not too old): http://www.christophermchurch.com/my-struggles-with-ocr-and-microfilm-scans/ . Yes, it would be nice if OCR engines were perfect and didn't need cleaned-up images. But that's currently not a realistic expectation when papers get crumpled, have background images, have shaded regions, are "scanned" using a cell phone camera with poor lighting conditions, etc.
I don't think it would be wise to try to add all that clean-up functionality into tesseract, which is why I'm proposing a solution to take an image that has already been processed externally. The exact intent is to "not mess with the images."
An external tool that could replace the image layer would certainly be good, but I haven't found any (suggestions welcome!). I tried to use hocr2pdf to use tesseract's .hocr data from my cleaned image and add it to a PDF with my original image but ran into a showstopper issue - When searching for a word in the document, the PDF viewers I tried would highlight the wrong part of the document. Maybe there is a bug with hocr2pdf or I am using it incorrectly. Tesseract already knows how to make a PDF so this reduces the possibility of an external program interpreting the PDF spec differently and ruining the output.
Anyway, thanks for the pointer to api/pdfrenderer.cc! I might just add the feature locally to address my needs, or maybe try to start a new program based off of it as you suggest.
I don't mind closing this issue if others feel this feature is inappropriate or a better solution is made.

Maybe this tool could help.
https://github.com/tmbdev/hocr-tools/blob/master/hocr-pdf

Swapping images in Tesseract a PDF is pretty easy for a programmer if destination images are JPEG or JPEG 2000. It is really just a matter of cutting and pasting the data, then cleaning up the results with qpdf.  The hardest part is getting the courage to open up a PDF file and look inside it.
Regarding HOCR and bounding boxes, make sure you have image resolution metadata set correctly everywhere. The hocr-pdf program mentioned above works okay, but is limited to latin character sets and will also struggle with ligatures in English.

Heh, yeah, I opened up a PDF and saw the stream content for the image and was thinking of how to replace it that, but it seemed like there'd be a non-trivial amount of work to get right for a PDF n00b such as myself.
As far as I could tell the image resolution metadata was correct, or at least consistent. Couldn't get hocr-pdf working unfortunately due to some python module dependency that I couldn't find (I installed PyXML but no dice).
In the end I just went ahead and hacked my feature into Tesseract and it works pretty well :-) Here it is if you're interested, though be warned that it's a bit of a kludge in its current state: https://github.com/dhendrix/tesseract/commit/6cc206f5e4f734ba178c18e5a962563aace35018
Thanks for the helpful pointers! Feel free to close if this feature is not desired for upstream, it can live on my github account.

The python dependency is reportlab.


Fixed an issue with DetailViews relating to MaintainedModel's threading.local data

Summary Change Description
Added a check and set of the class's attributes if not set.
Affected Issues/Pull Requests

Resolves an issue Lance encountered on main

Review Notes
This might not be the best or only way to fix this issue.  According to this stack post, it suggests I might be setting the threading.local values in an unsupported way, but I'm pretty sure I'd looked it up.
This PR fixes this error when you try to look at any model's DetailView:
Traceback (most recent call last):
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/views/generic/detail.py", line 106, in get
    self.object = self.get_object()
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/views/generic/detail.py", line 52, in get_object
    obj = queryset.get()
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/db/models/query.py", line 431, in get
    num = len(clone)
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/db/models/query.py", line 262, in __len__
    self._fetch_all()
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/db/models/query.py", line 1324, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/db/models/query.py", line 69, in __iter__
    obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
  File "/home/lparsons/mambaforge/envs/tracebase/lib/python3.8/site-packages/django/db/models/base.py", line 515, in from_db
    new = cls(*values)
  File "/home/lparsons/Documents/projects/tracebase/DataRepo/models/maintained_model.py", line 650, in __init__
    self._maintained_model_setup(**kwargs)
  File "/home/lparsons/Documents/projects/tracebase/DataRepo/models/maintained_model.py", line 660, in _maintained_model_setup
    coordinator = self.get_coordinator()
  File "/home/lparsons/Documents/projects/tracebase/DataRepo/models/maintained_model.py", line 1119, in get_coordinator
    return cls._get_current_coordinator()
  File "/home/lparsons/Documents/projects/tracebase/DataRepo/models/maintained_model.py", line 1123, in _get_current_coordinator
    if len(cls.data.coordinator_stack) > 0:

Exception Type: AttributeError at /DataRepo/samples/1/
Exception Value: '_thread._local' object has no attribute 'coordinator_stack'

Checklist

This pull request will be merged once the following requirements are met.  The
author and/or reviewers should uncheck any unmet requirements:

Review requirements

Minimum approvals: 1
No changes requested
All blocking issues resolved by reviewers
Specific reviewers: @add_username_here

Review period: 2 days

Associated issue/pull request requirements:

[x] All requirements in affected issues marked "resolved" are satisfied
[x] All required pull requests are merged (or none)

Basic requirements

[x] All linters pass
[x] All tests pass
[x] All conflicts resolved

Overhead requirements

[ ] New/changed method tests implemented/updated (or no change)
[ ] Added changes to Unreleased section of changelog.md
[x] Migrations created & committed (or no change)

I have learned that the error had to do with the DetailView running in a different thread, where the initialization hadn't taken place. So for right now, the solution I implemented here should suffice, but I need to make sure that the thread instantiations happen in each new thread in an intentional way.

So, as a stop-gap, I think this PR is good.  It's only 3 lines of code.  I think that a good follow-up PR to this would be to remove direct access to the threading.local class attribute (data), e.g.: MaintainedModel.data.coordinator_stack and MaintainedModel.data.default_coordinator, from everywhere but 1 method, and in that method, address the thread initialization, if necessary.  Initialization only ever needs to happen once, the first time it's ever accessed.  After that, it's all managed automatically.
And there is already a method for coordinator default/stack initialization:
    @classmethod
    def _reset_coordinators(cls):
        cls.data.default_coordinator = MaintainedModelCoordinator()
        cls.data.coordinator_stack = []

but I currently only use it for tests.

Thanks @hepcat72. I'm eager to get this fix in since it's holding up my progress at the moment. I can still work on things, but views are broken.
While I'm glad you are confident in the fix, I would caution you against believing there is nothing left to learn/understand. These low level changes to how the DB interface works are complex and we don't have a complete understanding how the Django ORM.
We should think about how urgent the full fix to this is. Josh is increasingly impatient about getting mzXML storage implement and having TraceBase in greater use. Each week that passes means more data is generated and not stored in TraceBase.

Thanks @hepcat72. I'm eager to get this fix in since it's holding up my progress at the moment. I can still work on things, but views are broken.

Sorry. There's no holdup to merging this, which solves your problem.  I had suggested you merge this branch into your branch. I assumed you would do that.  But I'll merge this into main now.

While I'm glad you are confident in the fix, I would caution you against believing there is nothing left to learn/understand. These low level changes to how the DB interface works are complex and we don't have a complete understanding how the Django ORM.

I don't know what has made you think I feel like there is nothing left to learn. That couldn't be further from the truth. I always feel like I can learn anything from anyone, which I often say in dancing, but that philosophy definitely applies here too, as in any topic. Part of the reason I'm excited to work on the better fix is the learning aspect.

We should think about how urgent the full fix to this is. Josh is increasingly impatient about getting mzXML storage implement and having TraceBase in greater use. Each week that passes means more data is generated and not stored in TraceBase.

This fix solves the immediate problem and I am very confident that the full fix will only affect places where context managers are used for running loading code.


OpenShell not show in boot menu

With recent release of NDK OpenShell.efi not show on boot menu. All other icons and tool items work. Same plist works on standard fork.

All tools are checked for file existed before it's added to the boot menu, so make sure the file is there in Tools folder and matched the name in config.plist.

Doesn’t work


Check if IMP and NIMP semantics are switched [CT]

@BSnoeijerCD @dih-cdisc : I have just confirmed that the IMP and NIMP definitions in the valid value sets tab of the 2-9 release CT deliverable are NOT switched around. However, we will be updating the semantics for IMP, specifically the NCI c-code will change from CNEW to C202579.


autoinject fix #121

the for-loop fixed.
hieracrchical injection fixed.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Crash during repair_antennas

OpenROAD 273a9ac3a

OpenROAD v2.0-4585-g273a9ac3a
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO]: Setting signal min routing layer to: met1 and clock min routing layer to met1.
[INFO]: Setting signal max routing layer to: met5 and clock max routing layer to met5.
-congestion_iterations 50 -verbose
[INFO GRT-0020] Min routing layer: met1
[INFO GRT-0021] Max routing layer: met5
[INFO GRT-0022] Global adjustment: 30%
[INFO GRT-0023] Grid origin: (0, 0)
[INFO GRT-0043] No OR_DEFAULT vias defined.
[INFO GRT-0088] Layer li1     Track-Pitch = 0.4600  line-2-Via Pitch: 0.3400
[INFO GRT-0088] Layer met1    Track-Pitch = 0.3400  line-2-Via Pitch: 0.3400
[INFO GRT-0088] Layer met2    Track-Pitch = 0.4600  line-2-Via Pitch: 0.3500
[INFO GRT-0088] Layer met3    Track-Pitch = 0.6800  line-2-Via Pitch: 0.6150
[INFO GRT-0088] Layer met4    Track-Pitch = 0.9200  line-2-Via Pitch: 1.0400
[INFO GRT-0088] Layer met5    Track-Pitch = 3.4000  line-2-Via Pitch: 3.1100
[INFO GRT-0019] Found 0 clock nets.
[INFO GRT-0001] Minimum degree: 2
[INFO GRT-0002] Maximum degree: 65
[INFO GRT-0003] Macros: 0
[INFO GRT-0004] Blockages: 896

[INFO GRT-0053] Routing resources analysis:
          Routing      Original      Derated      Resource
Layer     Direction    Resources     Resources    Reduction (%)
---------------------------------------------------------------
li1        Vertical            0             0          0.00%
met1       Horizontal       4480          2626          41.38%
met2       Vertical         3360          2308          31.31%
met3       Horizontal       2240          1521          32.10%
met4       Vertical         1344           949          29.39%
met5       Horizontal        448           208          53.57%
---------------------------------------------------------------

[INFO GRT-0197] Via related to pin nodes: 1363
[INFO GRT-0198] Via related Steiner nodes: 18
[INFO GRT-0199] Via filling finished.
[INFO GRT-0111] Final number of vias: 1494
[INFO GRT-0112] Final usage 3D: 5428

[INFO GRT-0096] Final congestion report:
Layer         Resource        Demand        Usage (%)    Max H / Max V / Total Overflow
---------------------------------------------------------------------------------------
li1                  0             0            0.00%             0 /  0 /  0
met1              2626           372           14.17%             0 /  0 /  0
met2              2308           574           24.87%             0 /  0 /  0
met3              1521             0            0.00%             0 /  0 /  0
met4               949             0            0.00%             0 /  0 /  0
met5               208             0            0.00%             0 /  0 /  0
---------------------------------------------------------------------------------------
Total             7612           946           12.43%             0 /  0 /  0

[INFO GRT-0018] Total wirelength: 11799 um
[INFO GRT-0014] Routed nets: 372
Error: groute.tcl, 41 TypeError in method 'sta_to_db_mterm', argument 1 of type 'LibertyPort *'

repro.tar.gz

This is crashing because when the code is looking for the diode specified, it returns a list of three diode ports (from the sta::get_lib_pins function). I see that the diode cell sky130_fd_sc_hd__diode_2 is defined in three different liberty files.
Are you reading all of them in this run?

@donn @maliberty Also, is it valid to have multiple definitions of the same cell in different liberty files and read them in the same run? If so, I think I have a fix for this issue, but I'm not sure if it's ok to have this scenario.

You could have multiple liberty files for different corners however there should only be one LEF.
    foreach lib $::env(LIB_SLOWEST) {
        read_liberty -corner ss $lib
    }
    foreach lib $typ {
        read_liberty -corner tt $lib
    }
    foreach lib $::env(LIB_FASTEST) {
        read_liberty -corner ff $lib
    }

is legal


Error on OpenBSD 7.6-current

./ereandel[179]: syntax error: `(' unexpected

Hello blmayer,
The shell is ksh.  The terminal is DWM ST (st-256color).  I'm running these via Xenodm.
OpenBSD 7.6-Current.

Hello TheWanderer1983,
I tried ksh on st on dwm on archlinux, and could not get your error. Are you using ereandel's latest code? Can you check if using ereandel version from main also fails?
If it fails, please share what versions of the aforementioned programs are you using?

This was tried on the github clone and on the latest release ereandel-0.26.1. Same error.

Hi, I was using the wrong shell, but I still can't get your result. I changed some suspect code. Can you please try with this latest commit?
Thanks in advance.

Okay it now runs, but  I can't go to anything.
When I run it with example  ./ereandel gemini://gemini.circumlunar.space
I get the following:
Only gemini links are supported.
Type a key to continue.
Only gemini links are supported.
Type a key to continue.
Only gemini links are supported.
Type a key to continue.

debug=2 ereandel
DEBUG: read configs
DEBUG: parsing: gemini.circumlunar.space/ oldhost:  oldpath:
DEBUG: url: gemini.circumlunar.space/
DEBUG: parsed: proto: gemini host: gemini.circumlunar.space port: 1965 path: gemini.circumlunar.space/ rest:
DEBUG: requesting gemini://gemini.circumlunar.space:1965/gemini.circumlunar.space/
DEBUG: response status - meta: 51 - Not found!
Page not found!
and
debug=2 ereandel gemini://gemini.circumlunar.space
DEBUG: read configs
DEBUG: parsing: gemini://gemini.circumlunar.space oldhost:  oldpath:
DEBUG: url: gemini.circumlunar.space
DEBUG: parsed: proto: gemini:// host: gemini.circumlunar.space port: 1965 path: gemini.circumlunar.space rest:
Only gemini links are supported.
Type a key to continue.


Allow to override v-model callback

What problem does this feature solve?
v-model is great to bind form fields (and child components) to data fields. Unfortunately you cannot currently use it with component props because v-model is effectively @input="newValue => field = newValue" and if field is a prop it would change the prop, which is not allowed.
If it would be possible to change this "newValue => field = newValue" to a custom callback, then you could instead for example emit an event when the form field gets changed. This way you could directly use v-model with props and you don't need to copy props into data fields.
What does the proposed API look like?
A Vue instance configuration object already has an option model that allows to change the prop and the event that is used for v-model. This could simply be extended with a callback option:
{
  model: {
    prop: 'value', // the default
    event: 'input', // the default
    callback: function (modelName, newValue) {
      this.$emit('field_changed', modelName, newValue);
    }
  }
}

You can use a computed property with a setter (https://vuejs.org/v2/guide/computed.html#Computed-Setter) to emit the event

Do you mean that as an alternative to the proposed change or just for my information? I could also copy all props to data and use a deep watcher, but the proposed syntax seems still much cleaner. (Actually I don't know how I could implement this with a computed setter.)
See this example: https://jsfiddle.net/np7n0d72/
(Of course it throws warnings when changing data because {model:{callback: ...}} isn't actually supported yet.)

The model option is only for v-model on components, not v-model on form fields inside components.

Oh, you are right. model is supposed to be given in the child component while my new option is supposed to be given in the component that contains v-model. I renamed it to modelCallback and I have updated my proposal.

Having a modelCallback isn't quite flexible as an api because modelName is just the expression of the v-model which may not be the name of a prop.
On a second thought, this is something that shouldn't be solved with an extra property because it would apply to every v-model and it doesn't feel as intuitive as the rest of the API.
You have two choices, the first one is expanding the v-model into one v-bind and one v-on:
<input :value="foo" @input="e => $emit('update:foo', e.target.value)" type="text">

or to use computed properties with setters: https://jsfiddle.net/g6pp8d9d/
You could also create a helper function that generates those computed properties for you in a similar way to mapGetters from Vuex (https://vuex.vuejs.org/en/getters.html#the-mapgetters-helper)

If the application developer puts an expression (which currently would have to be assignable) in v-model, of course he also has to provide a callback that can handle that expression. I see no problem there.
Yes, the point of the new modelCallback option is to apply to every v-model in that component, exactly because the default v => modelName = v feels like an arbitrary choice and doesn't cover many important use cases.
Manually expanding v-model into :value and @input might work for components (but still less intuitive than v-model) but it doesn't work at all for checkboxes, radiobuttons and selects.
Sure, having something like mapGetters would be a workaround for the example problem, but it would still require listing all the modelNames and I don't understand why it should be better to force v => modelName = v and having the user catch that with a computed setter instead of allowing it to be changed in the first place.

FYI checkboxes, radios and selects emit change events


Optimized version of secp256k1?

What's the right way to force the secp256k1 C dependency to be compiled with -O2 (vs. the default of -O0)?
Setting HOST_CFLAGS=-O2 for the entire dependent's build (a la HOST_CFLAGS=-O2 cargo build) seems to work, but is there a more surgical way?

There is the OPT_LEVEL environment variable which cc reads when compiling but cargo should be setting this for you in release mode.

Some more details -- I was using the default/dev profile with RUSTFLAGS="-C opt-level=3" thinking that this would percolate to the build of the C library.  I noticed that using the release profile turned the optimizer on (-O3).  Further reading lead me to be less confused and to use CARGO_PROFILE_DEV_OPT_LEVEL=3 to globally override the default profile.
Sorry for my confusion.


Implement Python API for setting check metadata

What does this PR do?
API
This adds a method set_metadata to the AgentCheck base class that updates cached metadata values, which are then sent by the Agent at regular intervals.
It requires 2 arguments:

name - the name of the metadata
value - the value for the metadata. if name has no transformer defined then the raw value will be submitted and therefore it must be a str

The method also accepts arbitrary keyword arguments that are forwarded to any defined transformers.
Transformers
Transformers are defined via a class level attribute METADATA_TRANSFORMERS.
This is a mapping of metadata names to functions. When you call self.set_metadata(name, value, **options), if name is in this mapping then the corresponding function will be called with the value, and the return value(s) will be sent instead.
Transformer functions must satisfy the following signature:
def transform_<NAME>(value: Any, options: dict) -> Union[str, Dict[str, str]]:

If the return type is a string, then it will be sent as the value for name. If the return type is a mapping type, then each key will be considered a name and will be sent with its (str) value.
Initially, there are 2 default transformers: version and config
version
This transforms a version like 1.2.3-rc.4+5 to its constituent parts. In all cases, the metadata names version.raw and version.scheme will be sent.
If a scheme is defined then it will be looked up from our known schemes. If no scheme is defined then it will default to semver.
The scheme may be set to regex in which case a pattern must also be defined. Any matching named subgroups will then be sent as version.<GROUP_NAME>. In this case, the check name will be used as the value of version.scheme unless final_scheme is also set, which will take precedence.
config
This transforms a dict of arbitrary user configuration. A section must be defined indicating what the configuration represents e.g. init_config.
The metadata name submitted will become config.<section>.
The value will be a JSON str with the root being an array. There will be one map element for every allowed field. Every map may have 2 entries:

is_set - a boolean indicating whether or not the field exists
value - the value of the field. this is only set if the field exists and the value is a primitive type (None | bool | float | int | str)

The allowed fields are derived from the optional whitelist and blacklist. By default, nothing will be sent.
User configuration can override defaults allowing complete, granular control of metadata submissions. In any section, one may set metadata_whitelist and/or metadata_blacklist which will override their keyword argument counterparts. In following our standard, blacklists take precedence over whitelists.
Motivation
https://github.com/DataDog/datadog-agent/pull/4234
https://github.com/DataDog/datadog-agent/pull/4158
Additional Notes
In another PR I will implement a mechanism to automatically perform config metadata collection to avoid redundant calls in every check.

/azp run

@FlorianVeaux As far as I know this will be supported, but the backend parsing has yet to be written


Using custom callback to set trainable=true doesn't work when use model.fit()

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): MacOS Big Sur 11.2.2
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: No
TensorFlow installed from (source or binary): pip
TensorFlow version (use command below): tensorflow==2.3.0
Python version: 3.6.10
Bazel version (if compiling from source): None
GCC/Compiler version (if compiling from source): None
CUDA/cuDNN version: None
GPU model and memory: None

Hi, I want to train the model with transfer learning. First, I load the pretrain model, then I freeze some of layer at front of model. After several epoch, I want to unfreeze the weight for training. I use callback to write some  snippet to test it. But I found that when I set the trainable to True, the model still not training...
Code:
Colab link
import tensorflow as tf
import tensorflow_datasets as tfds
import os
from tensorflow.python.keras.callbacks import ModelCheckpoint

class UnFreezeWeight(tf.keras.callbacks.Callback):
    def __init__(self, freeze_before_epoch):
        super().__init__()
        self.freeze_before_epoch = freeze_before_epoch

    def on_epoch_begin(self, epoch, logs=None):
        if self.freeze_before_epoch != epoch:
            return

        # Unfreeze all weight.
        print('set trainable to True.')
        for layer in self.model.layers:
            layer.trainable = True

def _normalize_img(img, label):
    img = tf.cast(img, tf.float32) / 255.
    return img, label

def main():
    train_ds = tfds.load('mnist', split='train', as_supervised=True)
    train_ds = train_ds.batch(32)
    train_ds = train_ds.map(_normalize_img)

    valid_ds = tfds.load('mnist', split='test', as_supervised=True)
    valid_ds = valid_ds.batch(32)
    valid_ds = valid_ds.map(_normalize_img)

    model = tf.keras.models.Sequential([
        tf.keras.layers.Flatten(input_shape=(28, 28)),
        tf.keras.layers.Dense(128, activation='relu'),
        tf.keras.layers.Dropout(0.2),
        tf.keras.layers.Dense(10)
    ])
    loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

    # Freeze all weight.
    for layer in model.layers:
        layer.trainable = False

    # If I unfreeze at epoch index 0, the model will learning.
    # But if I un freeze after epoch index 1, the model won't training.
    freeze = UnFreezeWeight(1)

    model.compile(optimizer='adam',
                  loss=loss_fn,
                  metrics=['accuracy'])

    model.fit(train_ds,
              validation_data=valid_ds,
              callbacks=[freeze],
              epochs=5)

if __name__ == '__main__':
    main()

Output:
When unfreeze weight at epoch 2
Epoch 1/5
1875/1875 [==============================] - 9s 5ms/step - loss: 2.3907 - accuracy: 0.1362 - val_loss: 2.3740 - val_accuracy: 0.1488
Epoch 2/5
set trainable to True.
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3922 - accuracy: 0.1349 - val_loss: 2.3740 - val_accuracy: 0.1488
Epoch 3/5
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3910 - accuracy: 0.1361 - val_loss: 2.3740 - val_accuracy: 0.1488
Epoch 4/5
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3914 - accuracy: 0.1378 - val_loss: 2.3740 - val_accuracy: 0.1488
Epoch 5/5
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3926 - accuracy: 0.1346 - val_loss: 2.3740 - val_accuracy: 0.1488

When unfreeze weight at epoch 1
Epoch 1/5
set trainable to True.
1875/1875 [==============================] - 12s 6ms/step - loss: 0.4833 - accuracy: 0.8568 - val_loss: 0.1364 - val_accuracy: 0.9607
Epoch 2/5
1875/1875 [==============================] - 5s 3ms/step - loss: 0.1502 - accuracy: 0.9567 - val_loss: 0.0991 - val_accuracy: 0.9711
Epoch 3/5
1875/1875 [==============================] - 5s 3ms/step - loss: 0.1100 - accuracy: 0.9668 - val_loss: 0.0870 - val_accuracy: 0.9751
Epoch 4/5
1875/1875 [==============================] - 5s 3ms/step - loss: 0.0910 - accuracy: 0.9734 - val_loss: 0.0776 - val_accuracy: 0.9744
Epoch 5/5
1875/1875 [==============================] - 5s 3ms/step - loss: 0.0768 - accuracy: 0.9759 - val_loss: 0.0790 - val_accuracy: 0.9751

@jason9075
I ran the code shared please refer to this gist and let us know the expected output.

Hi Saduf2019
I have some problem at line:
freeze = UnFreezeWeight(10)

If I unfreeze at 0, everything runs as expected.
But if I unfreeze at other epoch index, the val accuracy won't raise.
colab gist
Epoch 1/20
1875/1875 [==============================] - 9s 5ms/step - loss: 2.3982 - accuracy: 0.0804 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 2/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3993 - accuracy: 0.0809 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 3/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3977 - accuracy: 0.0804 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 4/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3957 - accuracy: 0.0788 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 5/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3995 - accuracy: 0.0792 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 6/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.4004 - accuracy: 0.0801 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 7/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3998 - accuracy: 0.0789 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 8/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.4010 - accuracy: 0.0781 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 9/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3972 - accuracy: 0.0790 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 10/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3991 - accuracy: 0.0777 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 11/20
set trainable to True.
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3996 - accuracy: 0.0795 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 12/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3996 - accuracy: 0.0767 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 13/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3981 - accuracy: 0.0794 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 14/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3993 - accuracy: 0.0795 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 15/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3993 - accuracy: 0.0769 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 16/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.4013 - accuracy: 0.0807 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 17/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3984 - accuracy: 0.0808 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 18/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3989 - accuracy: 0.0786 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 19/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.4007 - accuracy: 0.0785 - val_loss: 2.3787 - val_accuracy: 0.0685
Epoch 20/20
1875/1875 [==============================] - 3s 2ms/step - loss: 2.3982 - accuracy: 0.0800 - val_loss: 2.3787 - val_accuracy: 0.0685

@jason9075
Incorrect gist shared in the above comment, please share the colab for which the output is posted above.

@Saduf2019
Sorry, wrong url...
this one

@jason9075
I ran the gist shared on tf 2.3, tf 2.4 and nightly, please refer to this gist and confirm.

Hi, @Saduf2019
In your gist, the tf2.4 the val_loss remain at 2.4462 and val_accuracy remain at 0.0984 after epoch 6 just show that the model is not learning.
And tf 2.3 and nightly is also remain at same val_loss and val_accuracy.
I expect my model start learning after epoch 6 but is not.

Was able to replicate the issue in TF 2.6.0-dev20210531,please find the gist here..Thanks !

@jason9075 This got resolved in TF2.7. Please check the gist here.
I updated your code by adding one line to the callback.
# Unfreeze all weight.
self.model.make_train_function(force=True)

Please verify once and close the issue if this was resolved for you. Thanks!

@jvishnuvardhan It works!
Thanks!


make the required use of ampersand a bit clearer in docs

I originally confused the use of @ in docs as part of the formatting for the README.
This snippet should make it clear that

it's code
it's required

Inspired by my errant bug here: https://github.com/lihaoyi/Ammonite/issues/546

Looks good, thanks!


Add react-native-qwidgets to haste/cli whitelists

This pull request adds support for my (currently unreleased) React Native renderer for QWidgets. I am not yet ready for a public release but would like to see if I could get this in to 0.57 so it works with the bundler out-of-the-box when I do release it.
Context: this is how platforms windows (https://github.com/facebook/react-native/commit/54942746d4037e1153e14fcfc95e4edc772d296a) and dom (#20393) were added. Echoing the sentiments in both links ideally there should be some kind of API for adding these platforms, but I'm not sure what it could look like.
Test Plan:
I have tested and successfully bundled using this command:
react-native bundle --entry-file index.js --bundle-output test.bundle --platform qwidgets

Release Notes:
[CLI] [ENHANCEMENT] [jest/hasteImpl.js] - Add react-native-qwidgets and qwidgets to haste whitelist
[CLI] [ENHANCEMENT] [local-cli/core/index.js] - Add react-native-qwidgets and qwidgets to metro config

I like where you're going with that pull request. I will give it a try on my end and see how it does. One thing you may want to do to help it along the review process is to remove the committed yarn.lock file.

crap. sorry!

no worries 😄

Closing this because I would prefer to get a commit in that doesn't need platform hardcoding for a renderer to work with the packager


Error in package installation with pandas==1.4.2

Hi Edwin,
Happy Holidays! Incredible work here. Thank you so much for sharing such an impressive modeling work. I have been trying to start testing the model and I keep running into issues with pandas==1.4.2. I followed your instructions, and I hope you don't mind helping me. pystan==<IP_ADDRESS> requires python<3.8 so I install python 3.7. Does Karpiu use python 3.8 because no matter how many times that I tried, I couldn't install Karpiu

 Did you run into any issues with the python conflicts? Sorry for the question. I appreciate your help very much and I hope to hear back from you. Thank you so much!

Maybe you can try Python 3.8? It seems my workflow only test on Python 3.8 right now.  And there will be a better solution upcoming by using cmdstanpy in the upstream package orbit-ml once the PR is done.

And appreciate your attention of this super early work.

@nguye2tl a new version just pushed and is using cmdstanpy in the backend now


widhrt - improved image for widget to a full heart, color changes to red if HRM is on

thank you Gordon for your support.

Thanks! just FYI you can turn on 'crop' in the image converter which will strip out excess passing around the edge of the image. You'd have to reposition it but the image base64 will be a bit smaller.
Not a big deal but worth bearing in mind for other stuff in the future