AnswerCallbackQuery URL_INVALID

here is the code
object PokerTelegramBot extends TelegramBot with Polling with Messages {
  lazy val token = "SOME_TOKEN"

  override def receiveMessage(msg: Message) = {
    msg.text.foreach {
      case "/start" ⇒
        println("start handled")
        val inlineBtns = InlineKeyboardMarkup(Seq(Seq(InlineKeyboardButton(
          text = "Play now!",
          callbackData = Some("{ game_short_name: \"cpptest\" }")))))
        reply("To play game press button", replyMarkup = Some(inlineBtns))(msg)

      case any ⇒ println(s"unhandled message <$any>")
    }
  }

  override def receiveCallbackQuery(callbackQuery: CallbackQuery) = {
    println(s"gameShortName: ${callbackQuery.gameShortName}")
    println(s"data: ${callbackQuery.data}")
    callbackQuery.data.foreach { data ⇒
      if (data.contains("game_short_name: \"cpptest\""))
        request(AnswerCallbackQuery(callbackQuery.id, url = Some("http://google.com")))
    }
  }
}

exception happens
info.mukel.telegrambot4s.api.TelegramApiException: Bad Request: URL_INVALID
        at info.mukel.telegrambot4s.clients.AkkaClient$$anonfun$apply$3.apply(AkkaClient.scala:56)
        at info.mukel.telegrambot4s.clients.AkkaClient$$anonfun$apply$3.apply(AkkaClient.scala:51)
        at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:253)
        at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:36)
        at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

From the Telegram doc:

URL that will be opened by the user's client.
If you have created a Game and accepted the conditions via @Botfather,
specify the URL that opens your game – note that this will only work if the query comes from a
callback_game button.
Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter.

There's a URL validation/restriction on the Telegram side.

You can only include arbitrary URLs to answer callback queries generated by game buttons e.g. InlineKeyboardButton.callbackGame(...)
For data callback queries (from InlineKeyboardButton.callbackData(...) buttons), you can answer with URLs like https://t.me/YourBot?start=1234 (see Deep Linking)

A TelegramApiException  means an error on the Telegram side (usually invalid/malformed input, limit rate exceeded...). It basically wraps the error message returned by Telegram.
It does not cover 400s, 500s, network, timeouts, serialization... related errors.

@mukel ok thanks for explanation


machine/gce: explain how to use image families

Explain how to create GCE instances from an image family.

Deploy preview ready!
Built with commit 269b76c5dd030c3661b29cdac2443b3c9fc54ade
https://deploy-preview-562--docker-docs.netlify.com

It's already existing functionality right?
LGTM

Thanks for the tech review, @nathanleclaire, and thanks for the PR, @pschultz :)


Use git pull to update repos

Maybe it could be better to only clone repos if needed, and pull them instead

I think git pull could lead to more problems that it solves.
What if we change the repository in lists.yml, for example?
Closing this.


Revert AccumuloIterator JAR

ClassGraph has been reverted to Fast class path scanner, these changes will need reverting.
https://github.com/gchq/Gaffer/commit/a9d155b13933476ea7e51dcdd4349af041c4db55

Merged into develop


fix: Chinese,Japanse and Korean(CJK), word count split by no space  . if text…

Chinese,Japanse and Korean(CJK), word count split by no space . if text contain english , CJK word may cause some error.
Just like this:  "上海大学是一个好大学 this is a test." will be split to words "上海大学是一个好大学" ,"this" ,"is","a","test".
and will be detected to ENGLISH。 But actually, the text belong to CHINESE, because of CJK word count split by no space.
"上海大学是一个好大学 this is a test." need to be split to words "上","海","大","学","是","一","个",好","大",学" ,"this" ,"is","a","test".
We need to specific the language, which can be split by space or not. And we can correct  in countword considering by language .

Hi @Yunin, thanks for your pull request.
The word splitting algorithm is indeed something that I was planning to improve. I'm going to review your changes now and make some suggestions for improving your code a bit.

@Yunin Can you please work on the aspects that I mentioned? You are perfectly right that words for languages supporting logograms are not counted correctly as of yet. However, unfortunately, your approach is not enough in solving this problem and would produce several other bugs. If you put more work into it, I think we will be able to come to a state that can be merged eventually. Thank you! :)


Update module k8s.io/apimachinery to v0.28.2

This PR contains the following updates:

Package
Type
Update
Change

k8s.io/apimachinery
require
patch
v0.28.1 -> v0.28.2

Release Notes

kubernetes/apimachinery (k8s.io/apimachinery)
v0.28.2
Compare Source

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (v0.28.2). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


How to deal with text input

Hi,
Thanks for providing the text descriptions in the previous post. I really appreciate it.
But I still have several questions:

I did not find the code about how you take the descriptions as text input during your training. Can you elaborate? If possible, can you send me the code (such as the data loader for image + text input) if not shown on github?
For the 10 sentences for each image, do you simply concatenate them as input or do you do any preprocessing of the raw text? May I have the proprocessing code?
For the final results reported in the paper, 96.81%, is it the accuracy of the 200 class prediction? Or it is related with attribute prediction?

Thanks!

I do not work on the text part, we train separately text and image, we extract the feature of both and after we train a model that merge that, the merging model (with the extracted features) can be founded here so I do not have a dataloader for text + Image, it must be written
I think that they concatenate but I'm not sure
the results of the paper is about classification, we do not predict attribute.

I can try to ask for the code of the text but it may have been lost, but I think that on HuggingFace you can find better model to extract features from test. For example here you can find Bart, Tapas, Bert and more Bert evolution, so I think that is not necessary to recreate the flow.

No Worries! Thank you so much for the explanation. I will try looking for text feature extractors. As long as I know that it is about classification accuracy and the text is concatenated, that should be good to me. Thanks!!


Remove Feat: Battle Medicine (Forensic Medicine)

The feat Battle Medicine (Forensic Medicine) appears to no longer be necessary.
It's description text is identical to the text in Forensic Medicine Methodology.
The Forensic Medicine Methodology grants the standard Battle Medicine feat.
Searching by the feat's ID, nothing references it in the  system.

Any difference in rule elements?

No REs on the Battle Medicine (Forensic Medicine) feat.


doesn't create products.csv file

I can run the script but it doesn't create csv files?

@ShaneAbara From what i observe this project has not been upgraded since 2017. Have created this PR for this tool containing several upgrades couple of years back. Since that was not merged i went ahead and created another tool :-P
https://github.com/kishaningithub/shopify-csv-download
The CSV generated by this tool is fully compatible with shopify's CSV format

@ShaneAbara From what i observe this project has not been upgraded since 2017. Have created this PR for this tool containing several upgrades couple of years back. Since that was not merged i went ahead and created another tool using go lang :-P
https://github.com/kishaningithub/shopify-csv-download
The CSV generated by this tool is fully compatible with shopify's CSV format

Hi , the repo you created was working well before but now its not working properly , the data that is written is courpted or is not in correct format , it all gets combine and comes in single header only and all the data is getting mixed , can you please check it ?

@pritamsw Can you give me some simulation steps so that I can reproduce ?


Incorrect retries on connection that still succeeded

We've wanted to upgrade OkHttp v4.x for quite a while now, but we can't because of some change regarding the connection pool and its impact on the retry policy. In some cases, we can see a connection going to a server and being answered (we use proxyman to track network flows, and we can see both request and response going through), but for some reason, OkHttp decides to silently drop that connection even though it was successful and retry it (not sure if the connection was deemed stale and thus closed). So we see a second request going through in proxyman (which ends up with an error from the server in some cases because it was already processed the first time, authentication for instance), and in our code, the only result that we receive is that second one (the server error).
We've encountered the problem with all v 4.x versions that we've tested so far, but never had the problem with v3.x (currently 3.14.9). The exact conditions are hard to reproduce, but if you disable the retryOnConnectionFailure, you end up with an IOException. This means that for some reason, the socket was closed by OkHttp v4.x, in a way that did not happen in OkHttp v3.x, leading to this exception:
Error response
java.io.IOException: unexpected end of stream on https://www.xxxxxxxxxx.fr/...
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:210)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: java.io.EOFException: \n not found: limit=0 content=…
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.kt:335)
at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29)
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:180)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:525)
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:210)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29)
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:180)
Every time that we've tried to upgrade and faced the issue, reverting to OkHttp 3 solved the problem.
PS : I opened that issue a few month ago, but it got closed erroneously (the bug that was fixed had nothing to do with the original problem.

Here's some additional logs leading up to the exception.
2024-07-11 16:01:30.624 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:01:30.630 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 run again after   0 µs: OkHttp ConnectionPool
2024-07-11 16:01:30.630 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 finished run in   9 ms: OkHttp ConnectionPool
2024-07-11 16:01:30.630 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:01:30.630 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 run again after 938 ms: OkHttp ConnectionPool
2024-07-11 16:01:30.630 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:30] Q10000 finished run in 212 µs: OkHttp ConnectionPool
2024-07-11 16:01:31.571 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:01:31.572 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 run again after   0 µs: OkHttp ConnectionPool
2024-07-11 16:01:31.573 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 finished run in   2 ms: OkHttp ConnectionPool
2024-07-11 16:01:31.573 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:01:31.573 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 run again after   4 s : OkHttp ConnectionPool
2024-07-11 16:01:31.573 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:31] Q10000 finished run in 191 µs: OkHttp ConnectionPool
2024-07-11 16:01:35.109 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:35] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:01:35.110 11418-14990 System.err      W  OkHttp Extra [2024-07-11 16:01:35] Q10000 finished run in   2 ms: OkHttp ConnectionPool
2024-07-11 16:23:58.278 11418-15506 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.278 11418-15507 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 already scheduled     : OkHttp ConnectionPool
2024-07-11 16:23:58.280 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:23:58.280 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:23:58.281 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 finished run in 430 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.440 11418-15511 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.440 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:23:58.440 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:23:58.440 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 finished run in 285 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.592 11418-15506 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.593 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:23:58.593 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:23:58.594 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 finished run in 841 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.716 11418-15511 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.716 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:23:58.716 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:23:58.717 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 finished run in 316 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.783 11418-15506 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:23:58.783 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:23:58.783 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:23:58.783 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:23:58] Q10000 finished run in 295 µs: OkHttp ConnectionPool
2024-07-11 16:28:58.602 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:28:58.624 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 run again after   0 µs: OkHttp ConnectionPool
2024-07-11 16:28:58.624 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 finished run in  30 ms: OkHttp ConnectionPool
2024-07-11 16:28:58.625 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:28:58.627 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 run again after 157 ms: OkHttp ConnectionPool
2024-07-11 16:28:58.628 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 finished run in   2 ms: OkHttp ConnectionPool
2024-07-11 16:28:58.785 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:28:58.787 11418-15510 System.err      W  OkHttp Extra [2024-07-11 16:28:58] Q10000 finished run in   2 ms: OkHttp ConnectionPool
2024-07-11 16:53:47.000 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:47] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:47.001 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:47] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:47.001 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:47] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:47.001 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:47] Q10000 finished run in 620 µs: OkHttp ConnectionPool
2024-07-11 16:53:47.253 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:47] Q10000 canceled              : OkHttp ConnectionPool
2024-07-11 16:53:56.493 11418-15756 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:56.493 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 already scheduled     : OkHttp ConnectionPool
2024-07-11 16:53:56.494 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:56.494 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:56.495 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 finished run in 539 µs: OkHttp ConnectionPool
2024-07-11 16:53:56.705 11418-15757 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:56.706 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:56.706 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:56.706 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 finished run in   1 ms: OkHttp ConnectionPool
2024-07-11 16:53:56.828 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:56.828 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:56.829 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:56.829 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:56] Q10000 finished run in 822 µs: OkHttp ConnectionPool
2024-07-11 16:53:57.050 11418-15757 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:57.050 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:57.050 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:57.050 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 finished run in 454 µs: OkHttp ConnectionPool
2024-07-11 16:53:57.123 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:57.123 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:57.123 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 run again after 300 s : OkHttp ConnectionPool
2024-07-11 16:53:57.123 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:57] Q10000 finished run in 226 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.423 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.423 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.423 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.424 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in 294 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.443 11418-15757 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.446 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.446 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.446 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in   3 ms: OkHttp ConnectionPool
2024-07-11 16:53:58.608 11418-15757 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.608 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.609 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.609 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in 317 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.642 11418-15757 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.642 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.643 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.643 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in 790 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.690 11418-15715 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.691 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.691 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.692 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in   1 ms: OkHttp ConnectionPool
2024-07-11 16:53:58.751 11418-15756 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-11 16:53:58.752 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 starting              : OkHttp ConnectionPool
2024-07-11 16:53:58.753 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 run again after 298 s : OkHttp ConnectionPool
2024-07-11 16:53:58.753 11418-15721 System.err      W  OkHttp Extra [2024-07-11 16:53:58] Q10000 finished run in   1 ms: OkHttp ConnectionPool

Here's the events log:
2024-07-12 17:00:16.543 26646-27016 System.err      W  OkHttp Extra [2024-07-12 17:00:16] Q10000 scheduled after   0 µs: OkHttp ConnectionPool
2024-07-12 17:00:16.543 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:00:16] Q10000 starting              : OkHttp ConnectionPool
2024-07-12 17:00:16.548 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:00:16] Q10000 run again after 294 s : OkHttp ConnectionPool
2024-07-12 17:00:16.549 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:00:16] Q10000 finished run in   5 ms: OkHttp ConnectionPool
2024-07-12 17:00:16.549 26646-27016 System.out      I  0063 0.037 connectionAcquired
2024-07-12 17:00:16.549 26646-27016 System.out      I  0063 0.037 requestHeadersStart
2024-07-12 17:00:16.549 26646-27016 System.out      I  0063 0.037 requestHeadersEnd
2024-07-12 17:00:16.549 26646-27016 System.out      I  0063 0.037 requestBodyStart
2024-07-12 17:00:16.549 26646-27016 System.out      I  0063 0.037 requestBodyEnd
2024-07-12 17:00:18.022 26646-27016 System.out      I  0063 1.510 responseHeadersStart
2024-07-12 17:00:18.023 26646-27016 System.out      I  0063 1.511 responseHeadersEnd
2024-07-12 17:00:18.025 26646-27016 System.out      I  0063 1.513 responseBodyStart
2024-07-12 17:00:18.026 26646-27016 System.out      I  0063 1.514 responseBodyEnd
2024-07-12 17:00:18.026 26646-27016 System.out      I  0063 1.514 connectionReleased
2024-07-12 17:00:18.026 26646-27016 System.out      I  0063 1.515 callEnd
2024-07-12 17:00:18.032 26646-27016 System.out      I  0063 1.520 canceled
2024-07-12 17:00:20.659 26646-27115 System.out      I  0064 https://www….
2024-07-12 17:00:20.660 26646-27115 System.out      I  0064 0.000 callStart
2024-07-12 17:00:20.665 26646-27016 System.out      I  0064 0.005 connectionAcquired
2024-07-12 17:00:20.665 26646-27016 System.out      I  0064 0.005 requestHeadersStart
2024-07-12 17:00:20.665 26646-27016 System.out      I  0064 0.006 requestHeadersEnd
2024-07-12 17:00:20.666 26646-27016 System.out      I  0064 0.006 requestBodyStart
2024-07-12 17:00:20.666 26646-27016 System.out      I  0064 0.006 requestBodyEnd
2024-07-12 17:00:20.668 26646-27016 System.out      I  0064 0.008 responseFailed
2024-07-12 17:00:20.670 26646-27016 System.out      I  0064 0.011 connectionReleased
2024-07-12 17:00:20.670 26646-27016 System.out      I  0064 0.011 callFailed
2024-07-12 17:05:10.697 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 starting              : OkHttp ConnectionPool
2024-07-12 17:05:10.713 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 run again after   0 µs: OkHttp ConnectionPool
2024-07-12 17:05:10.714 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 finished run in  57 ms: OkHttp ConnectionPool
2024-07-12 17:05:10.718 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 starting              : OkHttp ConnectionPool
2024-07-12 17:05:10.720 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 run again after   2 s : OkHttp ConnectionPool
2024-07-12 17:05:10.721 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:10] Q10000 finished run in   3 ms: OkHttp ConnectionPool
2024-07-12 17:05:12.638 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:12] Q10000 starting              : OkHttp ConnectionPool
2024-07-12 17:05:12.641 26646-26912 System.err      W  OkHttp Extra [2024-07-12 17:05:12] Q10000 finished run in   4 ms: OkHttp ConnectionPool
The log says response failed at 17:00:20.668, even though the request was received and the server answered.

That’s surprising. There’s gonna be a bug in our code that enforces the 250 KiB limit on headers. The root cause exception is here:
Caused by: java.io.EOFException: \n not found: limit=0 content=…
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.kt:335)
at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29)
at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:180)

The limit is supposed to start at (256 * 1024) and shrink as headers are processed.
Either way we should improve the error messaging here.

Do you have a URL that consistently triggers this? If you’d like to share it with me privately, my email address is posted at the bottom of publicobject.com.

@swankjesse No, I don't have a specific URL : it can happen on any URL we call. As far as I can tell, it's more of a time issue. The problem never happens during the first few minutes after launching the app, just after a few minutes. Thus my conclusion that it is probably more of a thread pool handling problem. As if a thread was reused, but when the response is received, the connection would be considered stale and discarded, even though it is clearly still working (the server received the request and answered it).

Interesting! I wonder if we could reproduce this with a single URL and a loop.
If you have any URL that I can use to attempt to reproduce this, that’ll help me to fix it.

(Or a test that uses MockWebServer and a loop!)

I don't have anything available, but I think you could use anything: as I mention, it can happen on pretty much any URL that we call.
I'll try and see if I can come up with a way to reproduce, but no guarantees.

In fact, the same problem can also occur in OkHttp 3.x. The fundamental reason is that there is something wrong with the judgment of "requestSendStarted = e!is ConnectionShutdownException".
For example, as shown in the following information: "okhttp3.internal.http2.StreamResetException caught in networkInterceptor". The HTTP request has already been sent out, but it is considered that the request sending has failed, and then the request is sent again.
It is very likely to happen on mobile devices. That is, just after a request is sent out, the network connection changes, such as switching from Wi-Fi to 4G.
error: okhttp3.internal.http2.StreamResetException: stream was reset: CANCEL
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:158)
at okhttp3.internal.http2.Http2Codec.readResponseHeaders(Http2Codec.java:131)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at com.xxxxxx.core.http.RetrofitFactory.networkInterceptor$lambda$3(RetrofitFactory.kt:132)
at com.xxxxxx.core.http.RetrofitFactory.$r8$lambda$FEMrfWVAkhITHim8vIPzXv6mX0w(Unknown Source:0)
at com.xxxxxx.core.http.RetrofitFactory$$ExternalSyntheticLambda1.intercept(Unknown Source:18)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:127)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at com.xxxxxx.core.http.RetrofitFactory.$r8$lambda$n2cYmcgOuwqUUqzroLejnouixAc(Unknown Source:0)
at com.xxxxxx.core.http.RetrofitFactory$$ExternalSyntheticLambda2.intercept(Unknown Source:18)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at com.xxxxxx.core.http.RetrofitFactory.getInterceptor$lambda$9(RetrofitFactory.kt:425)
at com.xxxxxx.core.http.RetrofitFactory.$r8$lambda$ydCeRem1DXGu8KqBh-vj8zwTs-w(Unknown Source:0)
at com.xxxxxx.core.http.RetrofitFactory$$ExternalSyntheticLambda3.intercept(Unknown Source:18)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at me.jessyan.retrofiturlmanager.RetrofitUrlManager$1.intercept(RetrofitUrlManager.java:136)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:257)
at okhttp3.RealCall.execute(RealCall.java:93)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204)
at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:46)
at io.reactivex.Observable.subscribe(Observable.java:12284)
at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35)
at io.reactivex.Observable.subscribe(Observable.java:12284)
at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:933)"}

This sounds like a similar issue I ran into, I was making http1.1 requests though.
It seems to occur when the server killed the connection (Based on server keep-alive), okhttp would attempt to make a request on the closed connection and give the same EOFException.
retryOnConnectionFailure seems to be a workaround as it will make the request again, or make connections close after each request but both were not ideal as I lost visibility for when it would happen.
The following is what I used to replicate the issue (tested again nginx docker with keepalive_timeout set to 5 seconds)
fun main() {
   val client = OkHttpClient()
        .newBuilder()
        .retryOnConnectionFailure(false)
        .build()

    val request = Request.Builder()
        .url("http://localhost:8080")
        .build()

    client.newCall(request).execute().use { response ->
        println(request)
    }

    Thread.sleep(10000)

    client.newCall(request).execute().use { response ->
        println(request)
    }
}

I don't think that fits my issue: when I set a proxyman in between, I can
see that the server receives the request properly and answers with a
response. What I've seen is that the connection is dropped on the client
side, not on the server. Using retryOnFailure would work fine if the server
was the one dropping the connection (that's what it's for), but it doesn't
work in my case because the request has already been processed the first
time and the second time, it fails or end up with a duplicate transaction.
Le lun. 30 déc. 2024, 06:35, lclc98 @.***> a écrit :

This sounds like a similar issue I ran into, I was making http1.1 requests
though.
It seems to occur when the server killed the connection (Based on server
keep-alive), okhttp would attempt to make a request on the closed
connection and give the same EOFException.
retryOnConnectionFailure seems to be a workaround as it will make the
request again, or make connections close after each request but both were
not ideal as I lost visibility for when it would happen.
The following is what I used to replicate the issue (tested again nginx
docker with keepalive_timeout set to 5 seconds)
fun main() {
val client = OkHttpClient()
.newBuilder()
.retryOnConnectionFailure(false)
.build()
val request = Request.Builder()
    .url("http://localhost:8080")
    .build()

client.newCall(request).execute().use { response ->
    println(request)
}

Thread.sleep(10000)

client.newCall(request).execute().use { response ->
    println(request)
}

}
—
Reply to this email directly, view it on GitHub
https://github.com/square/okhttp/issues/8587#issuecomment-2565043789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEF3IGHMTJTLAGNAVPH46KL2IDLSDAVCNFSM6AAAAABSEYMZXOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRVGA2DGNZYHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Sorry, you are right, I will delete my comment so I don't add confusion to the issue. When i was looking at wireshark, I thought I was also getting a similar duplicate request issues, but doing more testing that doesn't seem to be the case.


SAM{E,V,S}7X SVDs are outdated

After a chat with Microchip it was pointed out that http://packs.download.atmel.com/ is outdated. The up-to-date pack repository is https://packs.download.microchip.com/, where much more recent SVD files for the SAM{E,V,S}7X chips can be found: the latest version for the SAME70 is 4.8.125 (from 2022), versus 2.4.166 (from 2019) mirrored in this repo.
An SVD issue regarding USART-SPI clock sources has also been filed recently; a bug-fix release is expected soon.
I have not checked if updates are available for other chip families.

CC @michalfita


Documentation / Guidance for Tagging

Mike is putting together a list of default tags.
This needs to be solidified and documented.

I put together docs here:  https://unity-sds.gitbook.io/docs/developer-docs/common-services/docs/users-guide/deployment/unity-aws-resource-tagging-conventions
Closing this.

These docs have just had an extensive round of updates, after getting more info from MCP about Kion cost tags.  Some tags have been collapsed.  Docs have been simplified and made more user-friendly as well.


Incompatibility with Ship Windows

Hey!
I'd like to inform you about the incompatibility with the Ship Windows mod.
It fails to reset the Shutter Switch position:
[Debug  :UnlockableDefaults] Unlockable Shutter Switch / 25 : False // True
[Debug  :UnlockableDefaults] Unlockable Shutter Switch position: 5.931543, 2.434655, -10.85178
[Debug  :UnlockableDefaults] Unlockable Shutter Switch rotation: 270, 180, 0
[Error  :UnlockableDefaults] Error placing Shutter Switch : System.NullReferenceException: Object reference not set to an instance of an object
  at BetterDecorPlacement.BetterDecorPlacement+ShipBuildModeManagerPatch.PlaceShipObjectPatch (UnityEngine.Vector3 placementPosition, UnityEngine.Vector3 placementRotation, PlaceableShipObject placeableObject, System.Boolean placementSFX) [0x00010] in <46bcbfbbb84741908be77527a31a8f21>:IL_0010
  at (wrapper dynamic-method) ShipBuildModeManager.DMD<ShipBuildModeManager::PlaceShipObject>(ShipBuildModeManager,UnityEngine.Vector3,UnityEngine.Vector3,PlaceableShipObject,bool)
  at UnlockOnStart.NewSavePatch.LoadFromConfig () [0x00210] in <acba285b264f4d50b83fb8ed8afe0bec>:IL_0210

Would be nice to see this fixed :)

Hey, sorry for the late reply - I'm gonna look into it soon


fixes #6: Allow connecting to socket instead of $host:$port

I'm a shitty ruby dev, but something along these lines might work?
only thing is @redis_url variable, which isn't reflected in this change. Not exactly sure what that's there for anyways.

Jenkins standing by to test this. If you aren't a maintainer, you can ignore this comment. Someone with commit access, please review this and clear it for Jenkins to run; then  say 'jenkins, test it'.

Closing idle.


Getting Airport Data

Hi, Thanks for awesome library, and i have a question, how to just getting airport data? Thank You

Hey ! What do you mean @luthfirrahmanb by just Airport Data ?
Do you want to restrict autocomplete results to only airport related results across the world ? How do you define if it is "Airport data"?
Maybe if you just want results that have to do with one airport, just use the options prop as described in the readme : https://github.com/kenny-hibino/react-places-autocomplete#options
You'll see how you can "bias" with the location, radius etc to in effect restrict the results to a specific area, which could be your airport !

I found this from google places api documentation : https://developers.google.com/places/supported_types#table1
It seems the really precise type "airport" for getting only airport places, is "only for searches and when adding a place.

I'm trying the type 'establishments' which should be supported. But no matter how I try to specify it to  searchOptions it doesn't reflect in the queried url? Had any success with this?
types: ['establishment']
types: 'establishment'
type ['establishment']
type: establishment


Is Jupyterlite along with Pyodide kernel supported?

I tried jupyterlab-variableInspector in Jupyterlite along with Pyodide kernel and the UI of "Variable Inspector" always had no variable shown.
A deployment from someone else, https://ogig3.github.io/litetest/lab/index.html, has the same issue.
Just wonder whether Jupyterlite along with Pyodide kernel is supported.
Please clarify.
Thanks,

From your test it clearly does not :wink:
But to provide more info for those wanting to fix this, this is related to the snippet injected by this extension to perform the introspection. If you execute within Pyodide the snippet:
https://github.com/jupyterlab-contrib/jupyterlab-variableInspector/blob/ab68f8d1a47f9a24aa1da3c25c571738536cdac0/src/inspectorscripts.ts#L19
You will get:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[5], line 12
     10 _jupyterlab_variableinspector_nms = NamespaceMagics()
     11 _jupyterlab_variableinspector_Jupyter = get_ipython()
---> 12 _jupyterlab_variableinspector_nms.shell = _jupyterlab_variableinspector_Jupyter.kernel.shell
     14 _jupyterlab_variableinspector_maxitems = 10
     16 __np = None

AttributeError: 'PyodideKernel' object has no attribute 'shell'

So the first step to fix this, it is likely to find a workaround for the injected snippet.


User story 5a cigarette butts

To see the new trash in-game, change the selected trash in the FishingFeature script.

The trash that I fish does not change when I set the trashPrefab in the playerPrefab to CigaretteButt instead of Trashbag

This is because that was another system developed in the minigame branch of last sprint, that is unused now and what you change is the enum given in the trash factory in the fishing feature code.


app: return the class from the route decorator

Without the return in the decorator the effect is that after
@app.route('/')
class MyView(LonaView):
...
the name MyView is bound to None, because the decorator syntax is just
a nice way to write:
class MyView(LonaView):
...
MyView = app.route('/')(MyView)
With the return added, MyView holds the class as expected.

force-push to (hopefully) make tox happy

@ukleinek: Great! Thanks for contributing! :)


Introduce global logging properties

This allows us to use quarkus.langchain4j.log-requests=true instead of specifying needing to specify the provider as well

Great idea!
There's a failure in a watsonx test that seems related

Right, I'll fix it soon

I think it would also be nice to mention it on the Getting started page in the docs

Having it in the docs definitely makes sense, but I am not sure which page you are referring to.

the landing page https://docs.quarkiverse.io/quarkus-langchain4j/dev/index.html :)

Would you like to push a commit with that change?

Sure

🙏🏼

Bedt feature ever ! (At least this morning thus far).


Size of the output enhanced image

Hi, I am a newbie, can I output only 216*216 images with the weights you provided?

The network pretrained weight I provided can only output pictures with a size of 256 * 256. I suggest you intercept or resize the output image to 216 * 216.
------------------ 原始邮件 ------------------
发件人:                                                                                "LintaoPeng/U-shape_Transformer_for_Underwater_Image_Enhancement"                                                                                @.>;
发送时间: 2022年4月23日(星期六) 下午3:26
@.>;
@.***>;
主题: [LintaoPeng/U-shape_Transformer_for_Underwater_Image_Enhancement] Size of the output enhanced image (Issue #4)
Hi, I am a newbie, can I output only 216*216 images with the weights you provided?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

ok ，i got it, thank you

ok ，i got it, thank you


tensorflow c++ Not found: Op type not registered 'ImageProjectiveTransformV2'

I run my c++ code, it load file .pb have op tf.contrib.image.transform() and out error:
Not found: Op type not registered 'ImageProjectiveTransformV2' in binary running on mendel. Make sure the Op and Kernel are registered in the binary running in this process. Note that if you are loading a saved graph which used ops from tf.contrib, accessing (e.g.) `tf.contrib.resampler` should be done before importing the graph, as contrib ops are lazily registered when the module is first accessed.

I use tensorflow 1.14 build from source on ubuntu16.04.
How to build to use op ImageProjectiveTransformV2 ?

@anhtu812 ,
Can you please provide standalone code to reproduce the issue being reported here?Thanks!

my code:
#include "tensorflow/core/public/session.h"

namespace tf = tensorflow;

int main(int argc, char** argv) {

    std::string model_path = "model.pb";
	tf::Session* session;
	tf::Status status;
	tf::GraphDef graph_def;
	status = tf::ReadBinaryProto(tf::Env::Default(), model_path, &graph_def);
	if (!status.ok()) {
		std::cout << status.ToString() << "\n";
		exit(-1);
	}

	auto options = tf::SessionOptions();
	status = tf::NewSession(options, &session);
	if (!status.ok()) {
		std::cout << status.ToString() << "\n";
		exit(-1);
	}
	status = session->Create(graph_def);
	if (!status.ok()) {
		std::cout << status.ToString() << "\n";
		exit(-1);
	}

	// to build with link library "libtensorflow_cc.so.1" to fix error "2019-12-18 14:11:44.824639: E tensorflow/core/common_runtime/session.cc:81] Not found: No session factory registered for the given session options: {target: "" config: } Registered factories are {}."
	tf::Tensor tensor;
	auto tensor_1 = tensor.flat<float>();
}

file model: https://1drv.ms/u/s!AhFk3ICqlZI2irgK0pAnbDbE8DWSoQ?e=GhZojc

Hi @ymodak
how to fix?

Hi @oanush, @ymodak not answer.

Is this still an issue with latest TF version?


[Web] VideoElement lacks the requestPictureInPicture method.

I wanted to use a button to trigger the picture-in-picture feature during Web development, but dartSdk doesn't seem to have this feature.

Video can be triggered by right-clicking in the browser.
Use case
    VideoElement videoElement = VideoElement();
    videoElement.src = "xxx.mp4";
    videoElement.play();

    /// click Button
    videoElement.requestPictureInPicture();

Proposal
Because the demand side wants this feature,
I hope to add this feature to the SDK or other solutions that can implement picture-in-picture functionality.

The Dart team will need to add this to dart:html.
For the time being, you can use JS-interop as a workaround to call the method directly in JavaScript:
import 'dart:js_util' as js_util;

dynamic requestPIP(VideoElement videoElement) {
  js_util.callMethod(videoElement, 'requestPictureInPicture', <Object>[]);
}

// Later ...

VideoElement videoElement = VideoElement();
videoElement.src = "xxx.mp4";
videoElement.play();

/// click Button
requestPIP(videoElement);

The Dart team will need to add this to dart:html.
For the time being, you can use JS-interop as a workaround to call the method directly in JavaScript:
import 'dart:js_util' as js_util;

dynamic requestPIP(VideoElement videoElement) {
  js_util.callMethod(videoElement, 'requestPictureInPicture', <Object>[]);
}

// Later ...

VideoElement videoElement = VideoElement();
videoElement.src = "xxx.mp4";
videoElement.play();

/// click Button
requestPIP(videoElement);

DOMException: Failed to execute 'requestPictureInPicture' on 'HTMLVideoElement': Must be handling a user gesture if there isn't already an element in Picture-in-Picture.
    at Object.callMethod$ [as callMethod] (http://localhost:50513/dart_sdk.js:61551:22)
    at zego_ww_video_view_impl_state.ZegoWwVideoViewImplState.new.requestPIP (http://localhost:50513/packages/zego_ww/src/web/zego_ww_video_view_impl_state.dart.lib.js:173:15)
    at http://localhost:50513/packages/zego_ww/src/web/zego_ww_video_view_impl_state.dart.lib.js:168:14
    at _rootRunUnary (http://localhost:50513/dart_sdk.js:39567:45)
    at async._CustomZone.new.runUnary (http://localhost:50513/dart_sdk.js:38736:14)
    at _FutureListener.then.handleValue (http://localhost:50513/dart_sdk.js:34073:29)
    at handleValueCallback (http://localhost:50513/dart_sdk.js:34633:49)
    at Function._propagateToListeners (http://localhost:50513/dart_sdk.js:34671:17)
    at _Future.new.[_complete] (http://localhost:50513/dart_sdk.js:34505:25)
    at http://localhost:50513/dart_sdk.js:33638:30
    at _rootRun (http://localhost:50513/dart_sdk.js:39553:45)
    at async._CustomZone.new.run (http://localhost:50513/dart_sdk.js:38729:14)
    at async._CustomZone.new.runGuarded (http://localhost:50513/dart_sdk.js:38629:14)
    at http://localhost:50513/dart_sdk.js:38683:33
    at _rootRun (http://localhost:50513/dart_sdk.js:39559:14)
    at async._CustomZone.new.run (http://localhost:50513/dart_sdk.js:38729:14)
    at http://localhost:50513/dart_sdk.js:38668:33
    at internalCallback (http://localhost:50513/dart_sdk.js:25311:11)

Solved using the above solution.


Hot reload

Readme mentioned
**Hot Reloadable**

- Easily update your code without having to restart the bot everytime.

However I can't seem to make it work, nor I see a sight of denon or anything else that would make it realoadable.
Is it just readme error, or it should be working?
deno 1.7.2 (release, x86_64-apple-darwin)
v8 <IP_ADDRESS>
typescript 4.1.3

What we mean by this: You can edit most of the files like a command but then you don't have to restart your bot but you can just send this message !reload commands.

Readme mentioned
**Hot Reloadable**

- Easily update your code without having to restart the bot everytime.

However I can't seem to make it work, nor I see a sight of denon or anything else that would make it realoadable.
Is it just readme error, or it should be working?
deno 1.7.2 (release, x86_64-apple-darwin)
v8 <IP_ADDRESS>
typescript 4.1.3

If you want to "watch" for file changes, simply add the --watch flag to deno run command.

Alright thanks, I'll add it to the readme if that's okay with you


Incorrect server.port from inactive profile is applied when having spring-cloud-starter-bootstrap as a dependency

I'm upgrading a Spring Boot application to the new 3.x version. I dependended on a few spring-cloud projects so I also updated them pointing at 2022.0.0-RC3.
As a sidenote: I was surprised that the bootstrap.yml file was being ignored. I had to manually add the dependency with spring-cloud-starter-bootstrap. It wasn't necessary with 2021.x.x was it? I think it was a transitive dependency. Has this changed on purpose?
Consider this bootstrap.yml:
spring:
  application:
    name: boot3cloud

logging:
  level:
    org.springframework.web: info

---
spring:
  config:
    activate:
      on-profile: local

---
spring:
  config:
    activate:
      on-profile: alt

logging:
  level:
    org.springframework.web: debug

server:
  port: 9696

If I start the application with no profile selected or the local profile, the default server.port should be 8080. However, the alt profile server.port is incorrectly being applied:
 :: Spring Boot ::                (v3.0.0)

2022-12-03T20:47:22.672+01:00  INFO 66426 --- [           main] c.e.b.Boot3profileApplicationKt          : The following 1 profile is active: "local"
2022-12-03T20:47:23.139+01:00  INFO 66426 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=70415907-40e8-328a-96ef-8fd2f45c0e3b
2022-12-03T20:47:23.592+01:00  INFO 66426 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2022-12-03T20:47:23.936+01:00  INFO 66426 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 9696
2022-12-03T20:47:23.953+01:00  INFO 66426 --- [           main] c.e.b.Boot3profileApplicationKt          : Started Boot3profileApplicationKt in 2.038 seconds (process running for 2.586)

Notice it only wrongly applied the server.port=9696, but the logging.level.org.springframework.web is correct (info, instead of debug).
if I remove the spring-cloud-starter-bootstrap dependency and move the config to application.yml it behaves as expected (8080 as the default port when alt profile is not selected).
Sample
https://github.com/codependent/boot3profile

Does this happen when using Spring Cloud 2021.0.5?

Here is what is happening.
In Spring Cloud 2022 we changed how we are processing bootstrap.yaml to use BootstrapConfigFileApplicationListener.  This code was take from Spring Boot 2.7.x.  In Boot 2.7.x the code was only used when spring.config.use-legacy-processing was true, which means it only new how to separate documents by profiles using spring.profiles and had no idea about spring.config.activate.on-profile.  The problem is that if you have configuration that uses spring.profiles in Boot 3.0.x the application will fail to start because spring.profiles is no longer supported so Boot throws an exception.
We need to update BootstrapConfigFileApplicationListener so it now uses spring.config.activate.on-profile instead


[proposal] Remove BV and HM country codes.

I use the country-list from https://github.com/umpirsky/country-list, and my tests randomly fail because of 2 unrecognized country codes: BV & HM (https://github.com/umpirsky/country-list/issues/52).
According to the Symfony sources, they are Uninhabited islands, hence blacklisted.
Would it be somehow possible to account for this? (either remove them, or add an nonBlacklistedCountryCode generator, or..?)

Agreed on this one. There's no reason to keep these 2 codes.

@oliverpool can you raise a PR with the removal? If not let me know so i can handle it upcoming week


OLS-431: evaluation using groundtruth

Description

Capability to evaluate different provider+models using same pre-defined answer (currently similarity score)Save result with all model responses.
Save summary score which can be used to compare different models (currently average of similarity score is used)
Enable run from CI (currently not used to gate PRs)
Combined with existing consistency check, just to avoid duplicate llm calls. If response is not available then only call api to get response.

Note: groundtruth answer is not relevant for this PR. Currently BAM+Granite result is used as ground-truth to test the approach.
Sample summary result - json
sample full result - csv

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.48%. Comparing base (af52fb1) to head (a4f5c8d).
Report is 16 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1147      +/-   ##
==========================================
+ Coverage   93.04%   95.48%   +2.43%
==========================================
  Files          56       56
  Lines        2388     2390       +2
==========================================
+ Hits         2222     2282      +60
+ Misses        166      108      -58

see 5 files with indirect coverage changes

/lgtm

/approve

/override "Red Hat Konflux / lightspeed-service-on-pull-request"


implements $unwind in the aggregation pipeline

also adds some error handling on $group if execjc not installed

Thanks!


Service Unavailable

I'm seeing 503 responses for both stamen-tiles.a.ssl.fastly.net and tile.stamen.com, but see that the main site is still receiving these layers using {a}.tile.stamen.com
Am I being rate limited or is the service broken?
e.g.

https://stamen-tiles.a.ssl.fastly.net/watercolor/16/64787/40309.jpg
http://tile.stamen.com/watercolor/16/64787/40309.jpg

Also curious what the cause of this is...
Same issue: #97

Still the same. Even today.


Fix reboot logic

@andig Look at 8110e1e
Waiting for signal was blocking http server start, so I wrapped it in goroutine

Thank you, added your fix!


Populate JSON values to different input fields

Hello I'm new to Flexdatalist but really found it cool.
How ever, I'm trying to do following thing, tried googling and searching here but got no luck.
I would like to populate each JSON values to different inputs, something like this:
My JSON:
id: "84",
first_name: "David",
last_score: "100",
reg_date: "2018-08-06 10:21:34"
},
{
id: "85",
first_name: "Peter",
last_score: "200",
reg_date: "2018-08-06 10:22:00"
},

my input fields:
<input class='form-control flexdatalist' id="firstname" value="">
<input class='form-control' id="lastscore" value="">
<input class='form-control' id="id" value="">

So when user types "David" into input "firstname", it can automatically populate "last_score" and "id" to "lastscore" and "id" input.
Hope somebody can help!
PS: Actually I know that EasyAutocomplete has this feature, it called "Function .getSelectedItemData()" which can be found here: http://easyautocomplete.com/guide
But.. I love Flexdatalist more, it's much faster and cleaner 👍

did you find a solution?


System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'. The system cannot find the file specified

I have an application that has been using netcoreapp1.0 for the last few months.  I found your library and saw that you recently upgraded it to work with netcoreapp1.1.  I changed my application and libraries to netcoreapp1.1 in my project.json and recompiled with your nuget package.
When GetClone() is called, it throws:
System.TypeInitializationException: The type initializer for 'CloneExtensions.CloneFactory' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'. The system cannot find the file specified.
The framework section of my app is:
"frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
      },
      "imports": [
        "dotnet5.6",
        "portable-net451+win8"
      ]
    }
  }

Have you tested this library with those imports?

I figured it out.  I was loading the old dll into my debugger, which was still on netcoreapp1.0.  I am not sure how this even worked.
Everything is fine now.  Thanks for a great library!

I'm glad you made it work!


Schedule Update

Since it looks like PSF Chair is not available, free up a keynote slot for another line of XTalks.

Currently 72 XTalk slots free (talks that are not in special tracks)
cat schedule.rst | grep -o XTalk | wc -l
72
We can squish in a few more, in theory, but I am keeping some flexibility (e.g. if Van does come back).


Expense is getting paid out multiple times

Check expense id: 1737. It has 4 transactions in table.

This is weird because:
1- It shouldn't let you pay an expense that is PAID
https://github.com/opencollective/opencollective-api/blob/master/server/graphql/mutations/expenses.js#L155
2- It shouldn't let you edit an expense (and reset its status) that is PAID
https://github.com/opencollective/opencollective-api/blob/master/server/graphql/mutations/expenses.js#L27
I'll keep investigating.

Looks like it went from PAID back to APPROVED
 by User 772 which is our host user.
@piamancini could it be that you approved an expense by email?


Offset model does not consider kafka topic name potentially causing wrong dedupe with multi source

https://github.com/numaproj/numaflow-java/blob/main/src/main/java/io/numaproj/numaflow/sourcer/Offset.java#L12-L13

@nagarajatantry is this regarding a pipeline having multiple udsources and they all read from the same Kafka topic?

I think this is when a single source vertex is reading from multiple kafka topics.

Today we add vertex name to the message-ID so this won't be a problem.

Oh cool, I didn't know we could read from multiple topics in a single source. Then, maybe we should change the Offset class to interface like we did in our built-in sources.

It is not an issue; in the worst case with multiple topics, the ud-source user can attach the topic name (compose) and later decompose it.


♻  Add default logo for tools

Draft release - https://github.com/scriptified/scriptified/releases/edit/untagged-928526b01a9936c5ec69


When I click on a suitpoint it crashes

Describe the bug

Reproduction Steps

Expected behavior

Attachments

System Info

OS:

Command Line:

Source of resources

Panda Version:

Checklist

[x] Did you read the entirety of the readme?

[x] Did you check for duplicate issues?

[
![

]`

Fill it out properly.


Move all jit to internal packages and implement a common documentation interface

Right now, there are lack of overview comments on compiler methods and if we did, they would need to be copy/pasta'd and drift. Moreover, the compilers don't need to be exposed publicly as they can be hidden internally and where needed only an entry point exposed public. If we had all these things internal, we could make a documentation-only interface (with a test compile check) that has overview notes on for example, what compileUnreachable should do in abstract (ex any wasm opcodes or whatever). Then, the precise implementations can re-use those docs, like
// compileUnreachable implements Compiler.compileUnreachable for the arm64 (s390x risc-v etc) architecture.
//
// Specifically, this does blah blah and blah because blah

Note: this is documentation-only, meaning we can still use structs, this just allows us to ensure we have minimally documented things with no repetition and also we can easily identify what isn't common (ex. if compileXXX is specific only to one arch, we would see no compileXXX implements Compiler. compileXXX in the doc

Ps I notice jit.compiler, and if we want to use this for the same purpose, let's add the docs then backfill the compileXXX implements compiler.compileXXX before people end up copy/pasting functions without any docs

Ps I notice jit.compiler, and if we want to use this for the same purpose, let's add the docs then backfill the compileXXX implements compiler.compileXXX before people end up copy/pasting functions without any docs

I will follow this path for now rather than digging internal package as we certainly end up cycle imports in tests (decoupling engine from assembler logics is really hard by design). In anyway we won't export any compiler methods/consts/etc so that's fine for user-facing concerns.

SGTM thanks!


new instance will be opened when I used the Powertoys run

Microsoft PowerToys version
"0,56.2"
Running as admin

[ ] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce
open any windows app, and then use  Powertoys run or alt+space,then it will open the new instance of that app instead of opening the previous instance
✔ Expected Behavior
should open the previous instance
❌ Actual Behavior
No response
Other Software
No response

yes, I can understand, but I thought it would be nice if it opens the already opened instance, like open the app's new instance if it's not opened else open the opened instance :)

So, this is more like a feature request than a bug.
This would not be something straightforward, and opening new instances is a valid scenario. An application might also have more than one Window open, so these are not equivalent.
If you want to use one or the other in different situations, I suggest setting a keyword for the plugins in settings.

yah thanks  :)


Lost configure file

configure file is not in the master branch. Are there any easier way to compile this thing without configure file ？

Actually, configuration file will be generated by issuing ./bootstrap command. So, after creating configure file you could continue to the installation with regular ./configuration, make, make install chain. This was not clear in the documentation and i fix it now. Thanks for pointing this out. Let me know if you have still problem and i'll keep open this issue.

Yeah, already find, thanks a lot. But here come out an other bug.
ifort -Iutil -I/opt/esmf-7.1.0-ifort-icpc/mod/modO/Linux.intel.64.intelmpi.default -I/opt/esmf-7.1.0-ifort-icpc/include -I/opt/netcdf-4.1.3-icc-ifort-icpc/include -I/opt/hdf5-1.8.19-icc-ifort-icpc/include -I/opt/zlib-1.2.8-icc/include -I/opt/xerces-3.2.1-icc-icpc/include -I/HGST_SAS_1/RegESM/regcm-release-450/Main -I/HGST_SAS_1/RegESM/regcm-release-450/Main/mpplib -I/HGST_SAS_1/RegESM/regcm-release-450/Main/batslib -I/HGST_SAS_1/RegESM/regcm-release-450/Share -I/HGST_SAS_1/RegESM/roms-release-809/Build     -O3 -fp-model precise -fp-model source -ip -g -c mod_esmf_atm.F90
mod_esmf_atm.F90(2274): error #6580: Name in only-list does not exist or is not accessible.   [HTSIG_S]
use mod_hgt, only : htsig_s, nonhydrost_s
--------------------------^
mod_esmf_atm.F90(2274): error #6580: Name in only-list does not exist or is not accessible.   [NONHYDROST_S]
use mod_hgt, only : htsig_s, nonhydrost_s
-----------------------------------^
mod_esmf_atm.F90(2275): error #6580: Name in only-list does not exist or is not accessible.   [INTLINREGZ]
use mod_vertint, only : intlinregz
------------------------------^
mod_esmf_atm.F90(2277): error #6580: Name in only-list does not exist or is not accessible.   [EXPORTFIELDS3D]
use mod_update, only : exportFields, exportFields3d
-------------------------------------------^
mod_esmf_atm.F90(2677): error #6404: This name does not have a type, and must have an explicit type.   [EXPORTFIELDS3D]
call htsig_s(exportFields3d%t, hzvar, exportFields%psfcd_100,&
---------------------^
mod_esmf_atm.F90(2677): error #6460: This is not a field name that is defined in the encompassing structure.   [T]
call htsig_s(exportFields3d%t, hzvar, exportFields%psfcd_100,&
------------------------------------^
mod_esmf_atm.F90(2708): error #6460: This is not a field name that is defined in the encompassing structure.   [Q]
call intlinregz(zvar, exportFields3d%q, hzvar, sigma,           &
---------------------------------------------^
mod_esmf_atm.F90(2712): error #6460: This is not a field name that is defined in the encompassing structure.   [U]
call intlinregz(zvar, exportFields3d%u, hzvar, sigma,           &
---------------------------------------------^
mod_esmf_atm.F90(2716): error #6460: This is not a field name that is defined in the encompassing structure.   [V]
call intlinregz(zvar, exportFields3d%v, hzvar, sigma,           &
---------------------------------------------^
mod_esmf_atm.F90(2720): error #6460: This is not a field name that is defined in the encompassing structure.   [W]
call intlinregz(zvar, exportFields3d%w, hzvar, sigma,           &
---------------------------------------------^
mod_esmf_atm.F90(2724): error #6460: This is not a field name that is defined in the encompassing structure.   [CLDFRC]
call intlinregz(zvar, exportFields3d%cldfrc, hzvar, sigma,      &
---------------------------------------------^
mod_esmf_atm.F90(2728): error #6460: This is not a field name that is defined in the encompassing structure.   [CLDLWC]
call intlinregz(zvar, exportFields3d%cldlwc, hzvar, sigma,      &
---------------------------------------------^
I've already checked in the regcm-4.5.0 (successfully compiled), and there actually No "htsig_s","nonhydrost_s","intlinregz","exportFields3d" in ${regcm_path}/Share/mod_hgt.f90
I'm using intel 2018 compiler with netCDF4.1.3,HDF5-1.8.19,esmf-7.1.0

In the README.md, it is said "it needs extra patch for co-processing", but the patch cannot be found.

Yes. For co-processing, there are some extra modification in atmosphere model to provide also three-dimensional fields (interpolated to z-coordinates from sigma). Unfortunately, we are not add those modifications directly to RegCM and now we have our own version and only patch. We are currently testing WRF as new atmosphere model component. The interface is ready but it is still in testing phase. Anyway, are you planing to use co-processing? We are currently working on a paper for GMD and it will be submitted in a couple of months. If not please comment out all code related with 3d fields and also vertical interpolation. If you don't activate co-processing component, the rest of the driver works just fine. Let me know if you need help.

That is very nice of you!
Looking forward to your WRF version.

在 2018年4月21日，上午2:18，Ufuk Turunçoğlu<EMAIL_ADDRESS>写道：
Yes. For co-processing, there are some extra modification in atmosphere model to provide also three-dimensional fields (interpolated to z-coordinates from sigma). Unfortunately, we are not add those modifications directly to RegCM and now we have our own version and only patch. We are currently testing WRF as new atmosphere model component. The interface is ready but it is still in testing phase. Anyway, are you planing to use co-processing? We are currently working on a paper for GMD and it will be submitted in a couple of months. If not please comment out all code related with 3d fields and also vertical interpolation. If you don't activate co-processing component, the rest of the driver works just fine. Let me know if you need help.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah, already find, thanks a lot. But here come out an other bug.
ifort -Iutil -I/opt/esmf-7.1.0-ifort-icpc/mod/modO/Linux.intel.64.intelmpi.default -I/opt/esmf-7.1.0-ifort-icpc/include -I/opt/netcdf-4.1.3-icc-ifort-icpc/include -I/opt/hdf5-1.8.19-icc-ifort-icpc/include -I/opt/zlib-1.2.8-icc/include -I/opt/xerces-3.2.1-icc-icpc/include -I/HGST_SAS_1/RegESM/regcm-release-450/Main -I/HGST_SAS_1/RegESM/regcm-release-450/Main/mpplib -I/HGST_SAS_1/RegESM/regcm-release-450/Main/batslib -I/HGST_SAS_1/RegESM/regcm-release-450/Share -I/HGST_SAS_1/RegESM/roms-release-809/Build -O3 -fp-model precise -fp-model source -ip -g -c mod_esmf_atm.F90
mod_esmf_atm.F90(2274): error #6580: Name in only-list does not exist or is not accessible. [HTSIG_S]
use mod_hgt, only : htsig_s, nonhydrost_s
--------------------------^
mod_esmf_atm.F90(2274): error #6580: Name in only-list does not exist or is not accessible. [NONHYDROST_S]
use mod_hgt, only : htsig_s, nonhydrost_s
-----------------------------------^
mod_esmf_atm.F90(2275): error #6580: Name in only-list does not exist or is not accessible. [INTLINREGZ]
use mod_vertint, only : intlinregz
------------------------------^
mod_esmf_atm.F90(2277): error #6580: Name in only-list does not exist or is not accessible. [EXPORTFIELDS3D]
use mod_update, only : exportFields, exportFields3d
-------------------------------------------^
mod_esmf_atm.F90(2677): error #6404: This name does not have a type, and must have an explicit type. [EXPORTFIELDS3D]
call htsig_s(exportFields3d%t, hzvar, exportFields%psfc_d_100,& ---------------------^ mod_esmf_atm.F90(2677): error #6460: This is not a field name that is defined in the encompassing structure. [T] call htsig_s(exportFields3d%t, hzvar, exportFields%psfc_d_100,&
------------------------------------^
mod_esmf_atm.F90(2708): error #6460: This is not a field name that is defined in the encompassing structure. [Q]
call intlinregz(zvar, exportFields3d%q, hzvar, sigma, &
---------------------------------------------^
mod_esmf_atm.F90(2712): error #6460: This is not a field name that is defined in the encompassing structure. [U]
call intlinregz(zvar, exportFields3d%u, hzvar, sigma, &
---------------------------------------------^
mod_esmf_atm.F90(2716): error #6460: This is not a field name that is defined in the encompassing structure. [V]
call intlinregz(zvar, exportFields3d%v, hzvar, sigma, &
---------------------------------------------^
mod_esmf_atm.F90(2720): error #6460: This is not a field name that is defined in the encompassing structure. [W]
call intlinregz(zvar, exportFields3d%w, hzvar, sigma, &
---------------------------------------------^
mod_esmf_atm.F90(2724): error #6460: This is not a field name that is defined in the encompassing structure. [CLDFRC]
call intlinregz(zvar, exportFields3d%cldfrc, hzvar, sigma, &
---------------------------------------------^
mod_esmf_atm.F90(2728): error #6460: This is not a field name that is defined in the encompassing structure. [CLDLWC]
call intlinregz(zvar, exportFields3d%cldlwc, hzvar, sigma, &
---------------------------------------------^
I've already checked in the regcm-4.5.0 (successfully compiled), and there actually No "htsig_s","nonhydrost_s","intlinregz","exportFields3d" in ${regcm_path}/Share/mod_hgt.f90
I'm using intel 2018 compiler with netCDF4.1.3,HDF5-1.8.19,esmf-7.1.0

Hi! Qi, have you solved this problem already? if yes, could you please share your solution with me?

@BGM-USD2020 if you don't need to use latest code please download version 1.0 from https://github.com/uturuncoglu/RegESM/releases/tag/1.0.0. The WRF coupling and in-situ visualization are added after that release.

Hi! I got an error with regcm. Tried version 1.0.0. But another compilation error appeared
mod_esmf_ocn_roms.F90 (111): error # 7062: The characteristics of dummy argument 2 of the associated actual procedure differ from the characteristics of dummy argument 2 of the dummy procedure. [OCN_SETCLOCK]
specRoutine = OCN_SetClock, rc = rc)
-------------------------------------------- ^
compilation aborted for mod_esmf_ocn_roms.F90 (code 1)


nestedtext: init at 1.1.0

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@AndersonTorres thanks for the review! I just incorporated your feedback.

Fine. I will just wait Borg finish and accept the PR.

A little bit of annoyance: get rid of those "commit code review suggestion" messages by rebasing/squashing those commits. Those messages can't appear in the final tree of Nixpkgs.
Many thanks!

Done.

There's a small forward-tick in a file, but I will not complain this time.


Log SMS in database but NOT display content in activity log + UI suggestion

I refer to the Log SMS Content option:

Is it possible to add an option to Log SMS Content to database but NOT display it in the activity log? At present, the UI allows the user to tap to view the contents in Spamblocker if logging is enabled OR tap/swipe right to open in the native SMS app if logging is disabled. It would be good if more granular control is available by making logging to database independent of content viewing.
Perhaps to simplify matters,

Tap to expand/collapse content to view.
Swipe to open in SMS app (currently in place).
Separate Option to Enable/Disable Logging to Database.

I find having the content displayed (even in part) can clutter up the display and increase the level of visual distraction as seen below. This is especially so if there are emojis in the content. Comparing the messages with no content displayed ① and those with content ② should illustrate my point. Having the content displayed in the same area as the number and description (2nd line?) also makes it harder for the eye to "see" the description as it tends to get lost and overwhelmed due to the color of the 1st line and the possible colors in the 3rd line (content). I think by making viewing the content intentional (maybe also optional?) via tapping and separating it from logging will be better.

Just my opinion and for your consideration.

I think a better solution would be to add an option for customizing the number of displayed rows when collapsed.
The default value would be 1, same behavior as now.
You can change it to 0 to completely hide it.
Some might want to set it to 2+.

Yeah, logging or not remains unchanged, when logging is enabled, there will be a new integer option "default rows".

done. https://github.com/aj3423/SpamBlocker/actions/runs/11625659999

I don't understand, what's the expected result?

File isn't imported correctly "as a single rule"

It works fine, what's the problem?

That's expected, for a single rule, it can only be either blacklist or whitelist, can't have both.

Makes sense, I'll change it to generate two rules if there are different types.

what do you think about to have two chapters of rules. First chapter is a whitelist's rules. Second chapter is a blacklist

It's useful to group them together, they are sorted by priority, which gives you a clear visual representation of which takes precedence in case of a conflict.

Could you make feature to change quantity displaying rows for rules in Rule-list.

How many rules do you have? What's the current problem with it?

done. https://github.com/aj3423/SpamBlocker/actions/runs/11649954291

Buit-in Android Contacts has no access to my real Contact-database. Only SpamBlocker will have this base of my contacts.

That's unexpected... You store contact numbers in SB rather than the Contacts app, now I see why you have lots of rules, the description is used for their names.
I'll add some UI options:

maxLines of the description text
maxLines of the regex text
max height of the rule list

When the logging is disabled, there is nothing to expand, what's the point to customize the number of rows?

when logging is off, all Spamblocker has is the originating number after processing with regex.

Yeah, that's right.

Yeah, like this:

Some languages have very long text, and this color Light Magenta is used to indicate the priority throughout the app, along with the icon, this combination is easy to understand, I suppose.

done. https://github.com/aj3423/SpamBlocker/actions/runs/11649954291

Ah, wrong action link... This is the correct link: https://github.com/aj3423/SpamBlocker/actions/runs/11663611939

I am not sure, in rule I set 'Raw Number'. App doesn't save +111111 number, writes 'invalid regex'

The + symbol has special meaning, should be escaped like \+111111 when being used as a literal string.

I see,  the red error is updated on input change, so it doesn't disappear when you turn on the RawMode, just type something and it will disappear, I'll fix it later.


.sum_axis() without new allocation possible?

Methods like .sum_axis() allocate a new array for their result. Is is possible to prevent that?
Say, if I have a hot loop, where I sum over an axis of a big array. Then a lot allocations are happening. How can I reuse a preallocated array for the result?

Hi, it's not possible to prevent in those methods. You have Zip (and its macro interface azip!()) which should make it relatively easy to write good custom array computations without indexing.
There's an example that matches your question in the documentation -- find Example 2 in the example block in https://docs.rs/ndarray/0.10.12/ndarray/struct.Zip.html
We can adapt that example to sum over arbitrary axis using the lanes producer:
Given an array a, write the sum of each row/col into an array sums
// in this example I'm still assuming that the input array is 2D
let a = unimplemented!(); // The given array.
let axis = Axis(1); // axis to sum over
let mut sums = Array1::zeros(a.len_of(Axis(0)));  // use the len of the other axis

Zip::from(&mut sums)
    .and(a.lanes(axis))
    .apply(|s, lane| {
        *s = lane.scalar_sum();
    });

The producer lanes is just a generalization of genrows/gencolumns.

Sweet! Zip is a real working horse. I have to try that.


API: Simplify zmq filtering.

It is possible to have multiple Publisher instances pushing documents to the same Proxy. A RemoteDispatcher can filter which Publisher(s) it is interested in by filtering on a prefix. Previously, this prefix was automatically cobbled together from the Publisher's hostname, process ID (pid), and the Python id() of its RunEngine instance. This PR replacing that automatic scheme was a single, user-configurable bytestring.
While we are breaking the API, I also propose deprecating automatic subscription. See commit message for rationale.
@Sasaank and @CJ-Wright -- I found it easier to start with passing tests (on the master branch) and make the simplest possible change to the tests, rather than heavily reworking them. I apologize for not building on your PR, which would have been my preference and usual way of operating. I found the test changes are too difficult to follow. Would you like to add a commit to this branch testing the prefix functionality specifically?

Thank you very much for this! I'll add a PR to your PR.

Power-cycled...

Thank you!


Cython not installed

In step 4 of "Set up you machine", it said that mkl-random and mkl-fft required cython but cython wasn't installed.
Successfully built absl-py gast termcolor pyyaml html5lib pycparser pywin32-ctypes
mkl-random 1.0.1 requires cython, which is not installed.
mkl-fft 1.0.0 requires cython, which is not installed.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 25565324-f64d-a8db-bc1c-e50956e6e878
Version Independent ID: a6c9ffa3-c085-b4fc-7153-06adb8a50ce4
Content: How to deploy a model as a web service on an FPGA with Azure Machine Learning
Content Source: articles/machine-learning/service/how-to-deploy-fpga-web-service.md
Service: machine-learning
GitHub Login: @tedway
Microsoft Alias: tedway

@nuiwos Thank you for your feedback, can you use the service to deploy the model successful? Though I have the issue too, I can deploy successfully.
@tedway Hi, I have verified the issue, do you think it's necessary to add some notes in the doc? Can you please help and update the document as necessary? Thanks a lot.

@YutongTie-MSFT - this article was deprecated in September and is no longer maintained. #please-close.


Update lt.coffee

added some more translations, and fixed some sentences of other contributors

Hello, @darulis1! Thank you for contributing. Can you sign our CLA so that I can merge your pull request?

Hello, signed as darulis1.


Type declaration: add boolean return value from KeyHandler

KeyHandler may return a false per https://github.com/jaywcjlove/hotkeys/blob/master/src/main.js#L186.
This PR amends the type declaration to reflect that.

Pull Request Test Coverage Report for Build 336

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.821%

Totals

Change from base Build 335:
0.0%

Covered Lines:
194

Relevant Lines:
214

💛  - Coveralls

Codecov Report

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

@@           Coverage Diff           @@
##           master     #164   +/-   ##
=======================================
  Coverage   90.65%   90.65%
=======================================
  Files           1        1
  Lines         214      214
=======================================
  Hits          194      194
  Misses         20       20

Continue to review full report at Codecov.

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


Middleware execute returns a promise (v3)

Updated my PR #1370 with v3 changes, including refactoring async middleware tests in js (from coffeescript) and I added some tests for response class, showing variations using / not-using returned promise.
There were no tests for the response class previous to this, so I'm pretty positive I haven't done it the best way, but I've at least provided a baseline for the team to review. Please give me feedback for how I can improve those tests.

We should probably use async/await instead.


bug:  not work correctly in beta.10

Problem
After loading a page my slider doesn't work correctly (show only 1 bullet point and slide don't work), but after resizing page, bullets have a right number and slider work correctly. I mean this is bug in beta.10.
Ionic version: Ionic 2 beta.10
Example
http://g.recordit.co/5D2CzdZa1o.gif
Discussion
https://forum.ionicframework.com/t/ion-slide-not-work-correctly-in-beta-10/56026

Anyfix?

+1

Hello everyone! I can confirm this issue and will be looking more into it. What platforms are you all seeing the issue on?

Just on browser. Something with NaN value instead of number. It looks like widget problem. Do you update slider.js?

Copied from forum discussion:

[...]
The problem was that the swiper container has already been in the DOM but not rendered when I instantiated the Swiper code. Swiper's calculations rely on the container's width which is 0 when the container is not rendered.
My (hacky) solution was to use requestAnimationFrame() until the container's width is >0 and instantiate Swiper after that.
[...]
See the following repo for an example app containing a temporary fix:
https://github.com/GerritErpenstein/ionic2-slides-temp-fix/
You can find the relevant code in "app/pages/slides".
I'm really curious whether somebody comes up with a better solution!

Hey @jgw96 any update on this? It's kind of a big deal :smiley:

@javebratt, yep would you mind giving the latest Ionic 2 nightly a try and see if you still run into the same issues? To install Ionic 2 nightly just run npm install ionic-angular@nightly. Thanks for using Ionic!

Hey @jgw96 I'm trying nightly, but it half works, I'm on Ionic Serve right now, it works only if I emulate iOS, if I emulate android the slider only slides half way, it doesn't move to the next slide.
And my this.slider.slideNext(); stopped working altogether.

@javebratt yeah, we did a refactor of the overlay components such as alert and loading. When beta.11 gets released we will have directions on how to use the new api. Here is an example of creating an opening an alert with the new api
Alert is now a provider called AlertController
import {AlertController} from "ionic-angular";

Inject it in your constructor
constructor(private alertCtrl: AlertController){};

And use it like this
let alert = this.alertCtrl.create({
      title: 'Error',
      subTitle: 'There was an error getting this song',
      buttons: ['OK']
    });
    alert.present(); ```
Hope that helps!

+1

+1

Probably related: to #7192

Yes, same problem as #7192.
Also having the issue on Android (browser and emulator, and probably device as well)

Concerning 580b8d5:
Is there a reason to wait exactly 300ms until the swiper instance is rendered and is it guaranteed that is rendered after this amount of time?

+1 very strange fix...
What about use ngAfterViewInit or ngAfterContantInit?
Move from ngOnInit
var swiper = new Swiper(this.getNativeElement().children[0], options);
this.slider = swiper;

to ngAfterViewInit block

@GerritErpenstein @xr0master So for now we had to use the fix of setting the timeout to 300ms because none of the Angular lifetime hooks happened at exactly the right time that swiper needed unfortunately. We are going to be taking a deeper look at slides in the future, but this was the best fix for now. I tested it on all of my devices, including slower android devices and an old iphone 5 and this fix is solid.

@jgw96 I understand... However how did it work before beta.10?

For me the following workaround works (no need to add 300ms to setTimeout):
Before Beta 10:
nextSlide() {
        this.slides.slideNext();
    }

Beta 10:
nextSlide() {
        this.slides.update();
        this.slides.slideNext();
    }

Why did you close this issue? Still there and fixes are not clear.
I was trying to go with tabs first. It wont work due to another issue. Then I tried to use slides. It does not work in beta 10 due to this existing issue. Concerning.

I think its fixed with this commit https://github.com/driftyco/ionic/commit/580b8d5f0bd7753bc755b3b23dbc0dae164caf0b
But its not available in beta-10. So you have to wait for beta 11 :-/

Thanks!

Hello @barocsi thid was fixed in the above mentioned commit and will be in the beta.11 release. Thanks for using Ionic!

Can we get a rough time range when beta 11 will be released? :)
The milestone beta-11 is 66% completed

@hackfrag You can always use a nightly release: npm install ionic-angular@nightly

Beta 11 here and the bug is still there.
Refresh:

Refresh again:

Issue still present on beta 11!


feat(OnyxListbox): add loading and empty state

Relates to #743
Add loading and empty state to the OnyxListbox.
Checklist

[x] The added / edited code has been documented with JSDoc
[x] If a new component is added, at least one Playwright screenshot test is added
[x] A changeset is added with npx changeset add if your changes should be released as npm package (because they affect the library usage)

@BoppLi I refactored the loadingMode as discussed, what do you think? :)

@BoppLi I refactored the loadingMode as discussed, what do you think? :)

It's amazing!!!
I love that the button just has the :loading and it looks exactly like before when you did it by hand 🥳


Update 3D_wire_frame_rendererV2.js

now has rotational support and it can import legacy .stl files from programs like blender
Your checklist for this pull request
Author name
**Author: Patcybermind **
 Patcybermind
About your game
What is your game about?
you can import stl files from programs like blender and explore them with your sprig
How do you play your game?

[x ] The game was made using the Sprig editor.
[ x] The game is placed in the in the /games directory.
[ x] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x ] The game runs without errors.
[ x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x ] The game name is not the same as the others from gallery

Image (If an image is used)

[ x] The image is in the /games/img directory.
[ x] The name of the image matches the name of your file.

Thanks for your PR!
btw this is just an update to my game which i shouldve released a while ago

@Patcybermind please resolve whatever conflicts are on this pr - then I will review

Resolve conflicts? What do you mean by that?

Thanks!


crash for any action with latest version of nvim

Error executing vim.schedule lua callback: ...r/.local/share/nvim/lazy/ollama.nvim/lua/ollama/init.lua:173: start_col must be less than end_col
stack traceback:
[C]: in function 'nvim_buf_get_text'
...r/.local/share/nvim/lazy/ollama.nvim/lua/ollama/init.lua:173: in function 'parse_prompt'
...r/.local/share/nvim/lazy/ollama.nvim/lua/ollama/init.lua:249: in function 'callback'
...r/.local/share/nvim/lazy/ollama.nvim/lua/ollama/init.lua:205: in function 'cb'
...ocal/share/nvim/lazy/dressing.nvim/lua/dressing/util.lua:203: in function <...ocal/share/nvim/lazy/dressing.nvim/lua/dressing/util.lua:202>
Press ENTER or type command to continue

I got this as well. Code needs to be selected first.

I've faced similar issue (not the same though) and tried to debug, it leads me to this line https://github.com/nomnivore/ollama.nvim/blob/d99e2462be8875602d173c117d5301862669d985/lua/ollama/actions/factory.lua#L145
It was my first experience with lua, but seems that vim.api.nvim_buf_set_text is a bit fragile, and might be no the best choice when number of lines doesn't match for original and suggested text. I ended up by replacing it with:
    vim.api.nvim_buf_set_lines(bufnr, start_line, end_line, false, {})
    vim.api.nvim_buf_set_lines(bufnr, start_line, start_line, false, lines)


ipsec: move styles to theme

move all styles to sass file and recompile the CSS
closes #2695

@AdSchellevis our them developers usually fix those issues in approximately a week to a maximum of two releases. For that time the patch can be hold back on master until the themes are ready but that is up to you.

@fabianfrz there are way more theme's around then the ones publicly available, hence the major release switch. Other parties should have the opportunity to change their products in time.

Then I would suggest keeping it on master until the next major release, the public templates can update (it would not have any impact because the selectors / properties) would not change anything because the element style is higher weighted then the class selector.

I've made no changes to Rebellion, but I now see this. On 18.7.2:

On 19.1.a_187 With @fabianfrz patch:

Don't think  I need to do anything.

I'm just heading out of the door so manyana. :)

unfortunately this needs to be redone due to conflicts

@fichtner do I have to do that or the theme team?

good question. I'm not even sure what @AdSchellevis prefers as a solution here. the firewall live log has embedded classes now that can be safely overwritten...

we probably better opt for a similar solution as the firewall live log, embed css, let the theme overwrite if needed.
@fabianfrz do you have time to create a pull request for that?

@AdSchellevis done - see the new PR