Fastnlight: Watch UPGOALIA(?!.com)

Fastnlight requests the watch of the watch_keyword UPGOALIA(?!\.com). See the MS search here and the Stack Exchange search in text, in URLs, and in code.

UPGOALIA(?!\.com) has been seen in 2 true positives, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


TabNavigator vanished with latest git pull vs npm pull

Hi
Awesome library ... very straightforward and logical.  I'm a bit new to all this so apologies if I've made a dumb error.
This is my simple code:
import React, { Component } from 'react';
import {  AppRegistry, Text, StyleSheet, View, Button, Icon } from 'react-native';
import { StackNavigator, TabNavigator } from 'react-navigation';

import ChatScreen from './ChatScreen'
import RecentChatsScreen from './RecentChatsScreen'
import AllContactsScreen from './AllContactsScreen'

const TabScreen = (
  TabNavigator({
    'Recent Chat': { screen: RecentChatsScreen },
    'Contacts': { screen: AllContactsScreen },
  })
)

TabScreen.navigationOptions = {
  title: 'Welcome',
}

const StackNav = StackNavigator({
  Home: { screen: TabScreen },
  Chat1: { screen: ChatScreen },
  Chat2: { screen: ChatScreen },
});

AppRegistry.registerComponent('navigationAppProto', () => StackNav);

Using the npm version I get to see the two Tabs at the bottom (top image)
Using the latest github clone version they're not showing (bottom image)
Any ideas?
Thanks in advance

It looks like this is a result of commit edad95a96da3829a191e46d5d65a43b502d9e936. The visible param is not defaulting to true.


Engine: Moving sample data files, index, perftest-files to dedicated resources folder

In Java it is good practice to put data files that are not source files in a dedicated resources folder, which can then be accessed with reference to classes. Refer to this for more information.
Moving these files required by perftest to resources also ensures that they can be referenced in a location/machine independent manner, and it no longer matters what the working directory is.
This PR makes changes to the different source code locations in which these files and folders are being referenced, and does in the correct manner.
The index/, perftest-files/, and sample-data-files/ were moved from textdb-perftest/ to textdb-perftest/src/main/resources/

@kishore-narendran In the PR comments can you summarize the source and destination folders of the moves?
@zuozhiw Please review this PR.

@chenlica: I have mentioned the directories of the move in the PR's description

@chenlica @zuozhiw Have you had a look at this PR?

If @zuozhiw approves it, you can go ahead to do the merge.

After several discussions with @kishore-narendran This PR is ready to merge. We should also adopt the "resource folder" practice in the future if needed. This approach is more solid than using relative/absolute paths.

Cool and agreed.   If @zuozhiw has the green light for this PR, please do the merge

I am going to merge this PR. @chenlica @zuozhiw


Fix counts on the archive details page

NOTE: This only fixes the archive details page and not the badge counts.
It looks like we changed the criteria for what an active image is midway thru the project. This made the active counts off. To get the information back I re-purposed the unused recordsComplete function in archive.coffee to calculate the completed records as the total minus the active records.

LGTM


Make sub-items visible in localizations

Fixes #28616
In localization we noticed an issue displaying sub-items in the side nav when only the _index.md page was translated. Specifically, this was noticed when comparing the Kubeadm reference docs when all sub-items under kubeadm show in English, but are missing in the Korean docs. The sub items appear correctly in the French docs, where more sub pages have been translated.

English: https://kubernetes.io/docs/reference/setup-tools/kubeadm/
Korean: https://kubernetes.io/ko/docs/reference/setup-tools/kubeadm/
French: https://kubernetes.io/fr/docs/reference/setup-tools/kubeadm/

The side nav should show any untranslated page as a link to the english docs. This is an attempt to correct this behavior and have all sub-items listed, even when pages aren't translated.
More details in the original issue, and the fix specifically in this comment

korean kubeam page in preview: https://deploy-preview-36898--kubernetes-io-main-staging.netlify.app/ko/docs/reference/setup-tools/kubeadm/

/area localization
/approve

LGTM
I verified that this doesn't add much extra build time (I couldn't spot a difference).

/lgtm


fix: 933161 regex

same fix made on #2301

converted to draft because of https://github.com/coreruleset/coreruleset/pull/2301#issuecomment-965315843

Do we have a status here?

after rebase the regex still vulnerable to redos.
I've just inverted the position of comment sequences and crs-toolchain done the magic!
Now seems fixed:
Welcome to Regexploit. Enter your regexes:
(?i)\b(?:a(?:bs|cosh?|r(?:ray|sort)|s(?:inh?|(?:o|se)rt)|tan[2h]?)|b(?:asename|indec)|c(?:eil|h(?:dir|eckdate|mod|o(?:p|wn)|root)|lose(?:dir|log)|o(?:(?:mpac|(?:nsta|u)n)t|py|sh?)|(?:ryp|urren)t)|d(?:ate|e(?:coct|fined?)|i(?:(?:skfreespac)?e|r(?:name)?)|(?:oubleva)?l)|e(?:a(?:ch|ster_da(?:te|ys))|cho|mpty|nd|r(?:egi?|ror_log)|x(?:(?:i|trac)t|p(?:lode)?))|f(?:close|eof|gets|ile(?:owner|pro|(?:siz|typ)e)|l(?:o(?:atval|ck|or)|ush)|(?:mo|rea)d|stat|t(?:ell|ok)|unction)|g(?:et(?:date|t(?:ext|ype))|mdate)|h(?:ash|e(?:ader(?:s_(?:lis|sen)t)?|brev)|ypot)|i(?:conv|(?:dat|mplod)e|n(?:(?:clud|vok)e|t(?:div|val))|s(?:_(?:a(?:rray)?|bool|(?:calla|dou)ble|f(?:inite|loat)|in(?:finite|t(?:eger)?)|l(?:ink|ong)|n(?:an|u(?:ll|meric))|object|re(?:al|source)|s(?:calar|tring))|set))|join|k(?:ey|sort)|l(?:(?:cfirs|sta)t|evenshtein|i(?:nk(?:info)?|st)|o(?:caltime|g(?:1[0p])?)|trim)|m(?:a(?:i[ln]|x)|b(?:ereg|split)|etaphone|hash|i(?:crotime|n)|y?sql)|n(?:atsor|ex)t|o(?:ctdec|penlog|rd)|p(?:a(?:ck|thinfo)|close|i|o[sw]|r(?:ev|intf?))|quotemeta|r(?:an(?:d|ge)|e(?:adlin[ek]|(?:cod|nam|quir)e|set|wind)|ound|sort|trim)|s(?:(?:candi|ubst)r|(?:e(?:rializ|ttyp)|huffl)e|i(?:milar_text|nh?|zeof)|leep|o(?:rt|undex)|p(?:liti?|rintf)|qrt|rand|t(?:at|r(?:coll|(?:le|sp)n))|y(?:mlink|slog))|t(?:a(?:int|nh?)|e(?:mpnam|xtdomain)|ime|ouch|rim)|u(?:cfirst|mask|n(?:iqid|link|(?:se|tain)t)|s(?:leep|ort))|virtual|wordwrap)(?:[\s\v]|/\*.*\*/|(?:#|//).*)*\(.*\)
No ReDoS found.

rolled back to t:none tfunc!
if you agree, we can merge.

I don't believe that there's a significant difference between the two versions. I rather think that regexploit doesn't know how to find a ReDOS for your new version. regex101 also reports a very low number of steps for both versions (using PHP and PCRE2), regardless of the number of # (I tried with 7000+). TBH, I'm not sure that there really is a ReDOS here (the number of steps does increase depending on the number of characters after the comment character, but that increase is close to linear).

Anybody has a status or a plan what to do here?

I'm all for merging this as is, as regexploit doesn't flag any redos problems anymore.


Implement ShouldWorkFromInsideAnExposedFunction

I also removed all warnings from the main project
closes #194

Ready to review @Meir017


BLE Central Arduino Example

Hi Neil, as posted on the ESP-Arduino repo, a BLE Central scan for device, connect, enable notifications or other characteristic and read/write the value example would be really useful.

Howdy John ... noticed and received.  Lets see if we can't get specific on what you'd like to see so that we can deliver the example as close as possible to what you want.  As we see here, there is ambiguity in phrases like central and peripheral, so I'm going to spell out what I think you'd like to see and then see how close this comes to what you actually want.
You want the ESP32 to be a "client" in that it will perform a scan for a "server" that is continually broadcasting.  When it finds a suitable server, it will then connect to that server, enable notifications and start receiving notifications from the server.  In addition, the ESP32 will want to read the value of the characteristic and write a new value at any given time.
Is that correct?  When you confirm or tweak, we'll start writing the sample for your review.

Hi Neil, wow, that's very kind, thank you. I'm sorry I couldn't help more, I wanted to try to contribute to the examples. Your description is exactly right in every way! It will also make a wonderful central example.

Okly dokly ... on it my friend.

I'd be writing Hex byte arrays if that helps

A first pass at a full BLE Client application running in Arduino has been made available here:
https://github.com/nkolban/esp32-snippets/tree/master/cpp_utils/tests/BLETests/Arduino/BLE_client
The paint is still wet on it and there may very well be problems but built and tested on my system and so far so good.
You will need an external BLE Server such as the nRF Connect application.  The sample expects a BLE Server with an exposed service with UUID of 91bad492-b950-4226-aa2b-4ede9fa42f59 that exposes a characteristic with UUID 0d563a58-196a-48ce-ace2-dfec78acc814.  These are just generated UUIDs but what your server uses and what your client expects must match.  The sample does a few things:

It scans for a suitable advertised server.
It connects to the server.
It downloads from the server he value of the characteristic at the start and logs it.
Every second, it writes a new value of the characteristic to the server.
If the server issues a notification, the client detects that and logs that a notification occurred.

That's a lot of function.  Usually much more than we put in a "sample".  Please have a read of the code and then we can start the discussions on how much is understandable and work together to make what isn't clear clearer for the next person.

It looks great! I'll throw in my uuids and give it a go tomorrow. Thank you very much, this is a great help.

Hello Neil. When a server is detected, the following error occurs and a cyclic reboot.
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:588
load:0x40078000,len:0
load:0x40078000,len:9768
entry 0x400789b8
Starting Arduino BLE Client application...
BLE Advertised Device found: Name: , Address: 63:03:2a:64:67:33, serviceUUID: 91bad492-b950-4226-aa2b-4ede9fa42f59
Found our device!  address: Forming a connection to 63:03:2a:64:67:33

Created client
E (37489) BT: l2cble_start_conn_update, the last connection update command still pending.
E (37489) BT: l2cble_start_conn_update, the last connection update command still pending.

Howdy,
Can you paste bin your code and point out the line at which the crash is happening.  I have seen this before when using the BLE Server (not client) and the solution was to add a 200msec delay after initialization.  I have a "gut feel" that the same thing may be happening with the client.  If you can post your sketch, I'll take a good look.

This is your example BLE_cient.ino. And as a server NRF connect.

Where do I need to add a delay? After BLEDevice :: init ("") ?

What I'll need to do is see if I can recreate to pin it down.  I have been testing with debugging on which means that my app is slowed down and hence isn't finding the "race condition".

I sat down to try and recreate the problem.  Using nRF Connect and exactly the sample code in the repo, I ran the test.  I must have started the device 50 times.   Once (and only once) I got the exact same error as you did.  It felt like it was somewhere in the range 20-30.  The fact that I saw it once does mean that there is something wrong ... however the fact that I can't reproduce it means its going to be a booger to track down.  Experience tells me that we have a programming concept called a "race condition" going on.  This means that in our multi-tasking environment something gets released/used before it is finished/ready in another task.  Since we have multiple tasks at play and when a task runs is mostly non-deterministic, these become royal pains to diagnose.  If I could recreate even 1 in 10 times I'd be happy.  Switching on trace is likely not going to help as the act of trace is likely to synchronize things and the problem will never show up.
What I'm interested in finding out is why your device keeps hitting the problem every startup.  What kind of ESP32 module are you using?  I'm using an Espressif DevKit-C.  Lets see if you can't liberally sprinkle Serial.println() statements in your source and see if we can't find the last statement entered.  That might give us some more hints/clues.  If we think it might help, we can maybe arrange a live debug session over the weekend.

The board is called Wemos Lolin 32 OLED.
My attempts to insert Serial.println ().  :)
https://pastebin.com/MvBK5HfV
https://pastebin.com/dAFK7ZpT

If I set the output #define CONFIG_LOG_DEFAULT_LEVEL 5, then everything works, the characteristic value in the NRF Connect program changes.
Here's the log: https://pastebin.com/TpS39wyc
Another bug - if you disable the GATT server in the NRF Connect program and leave only the advertiser with the desired UUID, then a cyclic restart occurs.
log: https://pastebin.com/86jvnygu

Howdy @nklys ... re the new bug ... disabling the GATT server in nRF Connect.  Awesome catch.  The code didn't check that the request to connect to the BLE Server has succeeded and merrily wen't on its way as thought it had ... even though the variables relating to the characteristics were null.  Not pretty.  Thankfully the fix was easy and has been done and committed to the repository.
The race condition issue is going to be tricky to track down.  As soon as we switch on debug level diagnostics, the problem fails to manifest which means that it is a race condition issue.  I call these kinds of problems "Shrodeinger's bugs".   As soon as you try and look at them, they no longer exist to be looked at.  What we will need to do is continually splatter manually inserted debug statements into the code while not switching on ALL the debug.  At some point we will then see that there is a common "last thing BLE APIs do before crash" and that will tell us where we should put in our manual synchronization to prevent the race condition.  Another possible solution is to NOT use loop() but instead put 100% of our code in setup() and control our execution ourselves.  My gut says that will also resolve the issue.  How does that feel to you?  Do you actually need "loop()" in your code?

With an empty "loop()", nothing has changed. Bug stayed.
I added to "setup()"
pBLEScan->start(30);
delay(1000);
connect To server(*pServerAddress);
I do not know where to insert println (), there are closed libraries. An error, perhaps when calling esp_ble_gattc_open.

Hmm the mystery continues.   What kind of ESP32 module are you running?  I have many/most types and have been testing with DevKitC.  If you tell me which one you are using, I can test against that to eliminate another possibility.

The board is called Wemos Lolin 32 OLED.

Perfect ... I have two of those on my desk right now still in their wrappers.  I haven't soldered the pins on yet so that will have to be tomorrow now.  If this is more urgent than that, you can always ping me live on channel #ESP32 on IRC.

Hello Neil.
Have you found a solution to my problem? This simple code, also causes a reboot:
#include "BLEDevice.h"
static BLEAddress pServerAddress;
void setup() {
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("");
delay(1000);
pServerAddress = new BLEAddress("c8:0f:10:54:bd:00");
delay(1000);
Serial.print("Forming a connection to ");
Serial.println(pServerAddress->toString().c_str());
BLEClient  pClient  = BLEDevice::createClient();
Serial.println("Created client");
pClient->connect(*pServerAddress);
Serial.println("Connected to server");
}
void loop() {}
Log:
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:588
load:0x40078000,len:0
load:0x40078000,len:9768
entry 0x400789b8
Starting Arduino BLE Client application...
Forming a connection to c8:0f:10:54:bd:00
Created client
Guru Meditation Error of type LoadStoreAlignment occurred on core  1. Exception was unhandled.

If enable debug information output, everything starts working. Did you succeed in repeating this bug?

I tried your sketch but it all seemed to work on my board.  Here is the sketch I used:
#include "BLEDevice.h"
static BLEAddress *pServerAddress;
void setup() {
   Serial.begin(115200);
   Serial.println("Starting Arduino BLE Client application...");
   BLEDevice::init("");
   delay(1000);
   pServerAddress = new BLEAddress("12:3B:6A:1A:E2:FD");
   delay(1000);
   Serial.print("Forming a connection to ");
   Serial.println(pServerAddress->toString().c_str());
   BLEClient* pClient = BLEDevice::createClient();
   Serial.println("Created client");
   pClient->connect(*pServerAddress);
   Serial.println("Connected to server");
}
void loop() {}

I'm hearing you loud and clear that switching on debug "masks" the problem.  So here is another idea ... I haven't had the opportunity to test it myself ... but Ive heard good things.   See the following:
https://github.com/me-no-dev/EspExceptionDecoder
Follow those instructions and get it working.  Now when the exception occurs again, follow that recipe and we will decode the backtrace addresses to be able to see where within the code the exception is occurring.  Run it a few times, I want to see if it is always the same place that the exception happens.

Thank you for helping. Here is the output of the exception decoder
for BLE_Client.ino- https://pastebin.com/iE8X4XzV
for code from my past message -https://pastebin.com/uJHaCL9i

After updating arduino-esp32 in the log another line was added. With multiple starts, the backtrace sometimes changes, there are three variants:
https://pastebin.com/Umr6uTFk - log
https://pastebin.com/st5dsrMp - decoder

Argh ... that's the problem with asynchronous callbacks and race conditions.  Each run can produce a distinct result and when we switch on tracing, things are "slowed down" enough that we have trouble recreating.
Before we go too much further, I'd like to see the content of the "sdkconfig.h" in play in your environment.  Find your Arduino IDE install directory and south of there, we will find a file called "sdkconfig.h".  Likely in hardware/espressif/tools/sdk/include/config (or something similar to that).  I'm explicitly looking for the BT task stack size but if we pastebin the whole file, that would be useful.
What has me puzzles is that you are experiencing the problem but yet we don't have the same reports from others.  This makes me want to look at what is "special" in your environment.  I'm going to re-read this whole thread from the start and see if I can't find some other clues.

sdkconfig.h  - https://pastebin.com/t51hSjf7

Sigh ... well ... I was hoping the stack size might have been too low.  But what you have is:
#define CONFIG_BTC_TASK_STACK_SIZE 8192

which is just fine.

Hi @nkolban, @nklys,
After having a similar issue with the debugging level (1 won't work, 5 works well)
here is a minimum, reliable failing ble arduino example:
.ino file: https://pastebin.com/BXBJkzFX
BLE.cpp: https://pastebin.com/t9wLFD6A
BLE.h: https://pastebin.com/kJwXTU4Y
Just put all 3 files in the same directory (remember naming the .ino file after your directory)
and it should crash 99% of the time (one time it actually did work).

Hi guys, funny enough I've moved to the Wemos board too and am having this same issue with my code Neil. Same canary crash.

Mine says this before load prohibited on core 0, seems like a nullpointer thing:

Created client
E (95540) BT: bta_gattc_conn_cback() - cif=3 connected=0 conn_id=3 reason=0x0100
E (95540) BT: p_conn is NULL in bta_gattc_conn_cback

E (95541) BT: bta_gattc_conn_cback() - cif=4 connected=0 conn_id=4 reason=0x0100
E (95548) BT: p_conn is NULL in bta_gattc_conn_cback

Obtained a Wemos board ... going to solder pins on it now and test with that too.

@DonWasabi
I soldered in the headers on a Wemos board (the one with the LED display) and powered it up.  I then created the 3 files for your sample, compiled them and flashed them.
I ran the test about a dozen times by running "make monitor" from an ESP-IDF environment.  This reboots the ESP32 and shows the console log.  Each run it seemed to run fine.  Here is my log:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:708
load:0x40078000,len:0
load:0x40078000,len:11460
entry 0x400789f4
tick
tick
tick
tick
tick
tick
...

I'm assuming you are seeing the crash before this point?
I didn't think the Wemos board would make a difference but a test did no harm.  Most of the boards mount an ESP32-WROOM module so the cores should be about the same.
So lets compare how I am building and running vs others:

I am working exclusively in Ubuntu.
I have Arduino IDE 1.8.4 installed as my IDE.  I am not using platformio
I have the latest Arduino EPS32 libs installed.

I follow these instructions to perform that step:

Enter the Arduino installation directory

Change into the "hardware" directory:
$ cd hardware

Make a directory called "espressif":
$ mkdir espressif

Change into the "espressif" directory:
$ cd espressif

Download the ESP32 package for Arduino:
$ git clone https://github.com/espressif/arduino-esp32.git esp32

Change into the "esp32/tools" directory:
$ cd esp32/tools

Run the supplied "get.py" script
$ python get.py

Start Arduino

Pick "ESP32 Dev Module" from the Boards menu

And that's it.  Now we get to see what may be distinct in the way I am preparing the app as compared to yours.  If we don't spot anything soon, then I'll build a brand new Linux Virtual Box image and record the steps I follow to build the environment and run the app from scratch ...

Good news! If I choose "ESP32 Dev Module" everything works fine. A bug occurs when you select "WEMOS LOLIN32". It remains to find the difference.

Ooooh!!! @nklys   That is a GREAT clue.  Everything else remained the same?  The only thing you changed was the board definition?

Yes, I changed only the board definition.

When i change the board definition in arduino ide 1.8.2 from "Adafruit ESP32 Feather" to "ESP32 Dev Module" it works too. If i change it back, the rebooting starts again and this message occurs:
https://pastebin.com/GFNfkTx0

@DonWasabi
That is also good news.  We owe mr @nklys a debt of gratitude for his find.  Now we can start to take apart the concept of "board definitions" (something I personally have never needed to look inside) and see if we can spot the distinction that causes the puzzle.

I will try to find some time on the weekend to play around with the board settings :)
At the moment i have a ble server in arduino with 2 services, 5 characteristics (2 of them with notifications) running on debug lvl 5 and an android app which communicates with the esp32 and it works somehow, but if i change some minor things, like adding/removing printf's etc. it crashes. So there is definitely an issue somewhere hidden.

@DonWasabi I hope to play around too.  Be sure and feel free to ping me over the weekend on IRC in channel #ESP32 if there is anything I can do to help.  The fact that it kind-of-works is encouraging.  The crashes are not good though ... but I have confidence/hope we'll fix them.

Hello every one! I am in the same situation that @nklys. @nklys did you make the UART.ino example work? I'm trying with a Wemos Lolin 32 (without OLED) and always get the same result (the rebooting loop). I set the debug configuration at 5 but nothing different happens and change the target device to "ESP32 Dev Module". Thanks a lot for your help and congratulation for your great job 👍 👍

Howdy .... in this document:
https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/ArduinoBLE.md
At the bottom in a section titled "Decoding an exception stack trace" there is a recipe for getting information from a stack trace.  Can I ask you to recreate the problem, copy the stack trace and paste it into the exception decoder.  From there, can you post back what you find?

Thank you for your help @nkolban and sorry for the delay in the response. This is the result:
Rebooting...
ets Jun  8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0010,len:4
load:0x3fff0014,len:716
load:0x40078000,len:0
load:0x40078000,len:11572
entry 0x40078a14
abort() was called at PC 0x40083a7f on core 0
Backtrace: 0x400893a8:0x3ffe3bc0 0x400894a7:0x3ffe3be0 0x40083a7f:0x3ffe3c00 0x40083c1c:0x3ffe3c30 0x4007886a:0x3ffe3c50 0x400788d1:0x3ffe3c80 0x40078a0e:0x3ffe3cb0 0x40078b33:0x3ffe3e70 0x40007c31:0x3ffe3eb0 0x4000073d:0x3ffe3f20
Rebooting...

0x400893a8: invoke_abort at /Users/ficeto/Espressif/ESP32/esp-idf/components/esp32/./panic.c line 553
0x400894a7: abort at /Users/ficeto/Espressif/ESP32/esp-idf/components/esp32/./panic.c line 553
0x40083a7f: start_cpu0_default at /Users/ficeto/Espressif/ESP32/esp-idf/components/esp32/./cpu_start.c line 340
0x40083c1c: call_start_cpu0 at /Users/ficeto/Espressif/ESP32/esp-idf/components/esp32/./cpu_start.c line 207

@elloza Many thanks for the traces ... that helps.  The good news is that we have a match for your problem ... see issues #110 and #81.  In that story, the problem can be traced back to an attempt to run WiFi and BLE at the same time and running out of RAM.  In your application, can we examine the nature of it.  Does it attempt to use WiFi and BLE together?  Would you be able to pastebin your script so that we can take a look at it?

Hello again @nkolban! I have been seeing the issues #110 and #81. My code is exactly this:
BLE UART Arduino and I'm using BLE ESP Arduino Library Version 4.2.
I don't know if someone have a simple example using only BLE comunication (in fact, I only need BLE for my current project). If I can help in any way please let me know it. 👍 👍

Hi @nkolban! Thank you so much for your help! I was reading deeply the issues #110 and #81 and I have updated my ESP32 core libraries to the last commit available. Now the UART example is working great! :) I will continue developing with the LOLIN32 board so I will give you more feedback :)
Thanks so so much!!!! 👍 👍

Excellent... that is great news.  My tinkering hours on the libraries are evenings and weekends but I'll try and assist as quickly as I can if new issues appear.

Closing for now.  Re-open as needed.

Hi all, I am using ESP32 "BLE Client" and "BLE uart". I can do Scan well and connect, able to read notify data sent from "Server/BLE uart"  in "BLE Client". Reverse way I want to read data in "BLE uart" from "BLE Client" to "BLE Server".
I am expecting to read below data sending in BLE Client,
String newValue = "Time since boot: " + String(millis()/1000);
Serial.println("Setting new characteristic value to "" + newValue + """);
// Set the characteristic's value to be the array of bytes that is actually a string.
pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());

The above data sending on every second, how can I read it from the "Server/BLE uart", I am getting no callbacks to,
class MyCallbacks: public BLECharacteristicCallbacks {
void onRead(BLECharacteristic *pCharacteristic) {
    Serial.println("Test01");

}

void onWrite(BLECharacteristic *pCharacteristic) {
    Serial.println("Test01");

}

/**

A BLE client example that is rich in capabilities.
*/

#include "BLEDevice.h"
//#include "BLEScan.h"
// The remote service we wish to connect to.
static BLEUUID serviceUUID("91bad492-b950-4226-aa2b-4ede9fa42f59");
// The characteristic of the remote service we are interested in.
static BLEUUID    charUUID("0d563a58-196a-48ce-ace2-dfec78acc814");
#define SERVICE_UUID            "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" // UART service UUID
#define CHARACTERISTIC_UUID_RX  "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX  "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
static BLEAddress pServerAddress;
static boolean doConnect = false;
static boolean connected = false;
static BLERemoteCharacteristic pRemoteCharacteristic;
BLEClient*  pClient;
BLERemoteService* pRemoteService;
std::string value;
static void notifyCallback(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify) {
Serial.print("Notify callback for characteristic ");
Serial.print(pBLERemoteCharacteristic->getUUID().toString().c_str());
Serial.print(" of data length ");
Serial.println(length);
Serial.print("The Recieved value was: ");

//    Serial.println(value.c_str());
for(int i=0; i<length; i++){
Serial.print(char(pData[i]));
}
Serial.println();

}
bool connectToServer(BLEAddress pAddress) {
Serial.print("Forming a connection to ");
Serial.println(pAddress.toString().c_str());
//    BLEClient*  pClient  = BLEDevice::createClient();
pClient  = BLEDevice::createClient();
Serial.println(" - Created client");
// Connect to the remove BLE Server.
pClient->connect(pAddress);
Serial.println(" - Connected to server");

// Obtain a reference to the service we are after in the remote BLE server.

//    BLERemoteService* pRemoteService = pClient->getService(serviceUUID);
pRemoteService = pClient->getService(serviceUUID);
if (pRemoteService == nullptr) {
Serial.print("Failed to find our service UUID: ");
Serial.println(serviceUUID.toString().c_str());
return false;
}
Serial.println(" - Found our service");
// Obtain a reference to the characteristic in the service of the remote BLE server.
pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID);
if (pRemoteCharacteristic == nullptr) {
  Serial.print("Failed to find our characteristic UUID: ");
  Serial.println(charUUID.toString().c_str());
  return false;
}
Serial.println(" - Found our characteristic");

// Read the value of the characteristic.
value = pRemoteCharacteristic->readValue();
Serial.print("The characteristic value was: ");
Serial.println(value.c_str());

const uint8_t v[]={0x1,0x0};
pRemoteCharacteristic->registerForNotify(notifyCallback);
pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)v,2,true);

}
/**

Scan for BLE servers and find the first one that advertises the service we are looking for.
/
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
/*

Called for each advertising BLE server.
*/
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.print("BLE Advertised Device found: ");
Serial.println(advertisedDevice.toString().c_str());
//    Serial.print("BLE Advertised Device Name: ");
//    Serial.println(advertisedDevice.getName().c_str());
if(advertisedDevice.getName() == "BLE01"){
Serial.println("My Device Found");
advertisedDevice.getScan()->stop();
pServerAddress = new BLEAddress(advertisedDevice.getAddress());
doConnect = true;
}

} // onResult
}; // MyAdvertisedDeviceCallbacks
void setup() {
Serial.begin(9600);
Serial.println("Starting Arduino BLE Client application...");
BLEDevice::init("NEC_BLE_CLIENT");
// Retrieve a Scanner and set the callback we want to use to be informed when we
// have detected a new device.  Specify that we want active scanning and start the
// scan to run for 30 seconds.
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->start(30);
} // End of setup.
// This is the Arduino main loop function.
void loop() {
  Serial.print(".");

// If the flag "doConnect" is true then we have scanned for and found the desired
// BLE Server with which we wish to connect.  Now we connect to it.  Once we are
// connected we set the connected flag to be true.
if (doConnect == true) {
if (connectToServer(*pServerAddress)) {
  Serial.println("We are now connected to the BLE Server.");
  connected = true;
} else {
  Serial.println("We have failed to connect to the server; there is nothin more we will do.");
}
doConnect = false;

}
// If we are connected to a peer BLE Server, update the characteristic each time we are reached
// with the current time since boot.
if (connected) {
String newValue = "Time since boot: " + String(millis()/1000);
Serial.println("Setting new characteristic value to "" + newValue + """);
// Set the characteristic's value to be the array of bytes that is actually a string.
pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());

}
delay(1000); // Delay a second between loops.
} // End of loop

Hi chegewara, I am using the same "BLE CLient" in the BLE examples of ESP32

Ok, but if your server device is esp32 with BLE_uart example code, then you have to write to characteristic with this UUID:
CHARACTERISTIC_UUID_RX.
This part of code is useless for you:
// The remote service we wish to connect to.
static BLEUUID serviceUUID("91bad492-b950-4226-aa2b-4ede9fa42f59");
// The characteristic of the remote service we are interested in.
static BLEUUID charUUID("0d563a58-196a-48ce-ace2-dfec78acc814");

Hi chegewara, thank you for figure out my fault. Now I am getting call back to here
void onRead(BLECharacteristic *pCharacteristic) {
Serial.println("Test01");
std::string value = pCharacteristic->getValue();
  if (value.length() > 0) {
    Serial.print("Read : ");
    for (int i = 0; i < value.length(); i++)
    {
      Serial.print(value[i]);
    }

    Serial.println();
  }

}

After "Test01", nothing is printing. Am doing write here to read value in "BLE uart".

This should be onWrite, not onRead:
void onRead(BLECharacteristic *pCharacteristic) {
Serial.println("Test01");
std::string value = pCharacteristic->getValue();

  if (value.length() > 0) {
    Serial.print("Read : ");
    for (int i = 0; i < value.length(); i++)
    {
      Serial.print(value[i]);
    }

    Serial.println();
  }

}

I dont really know, you have 2 apps and hard to say why its not working.
Try to use nRF connect on android device. You can do 2 things:

connect nRF connect to BLE_uart and send some data,
clone esp32 on android device (not hard if you know what to do) and test your client code.

Hi I am always getting this,
My Device Found
.Forming a connection to 24:0a:c4:82:7a:ca

Created client
Connected to server
abort() was called at PC 0x40183bb3 on core 1

Backtrace: 0x40092dbc:0x3ffd5a30 0x40092fbf:0x3ffd5a50 0x40183bb3:0x3ffd5a70 0x40183bfa:0x3ffd5a90 0x4017166f:0x3ffd5ab0 0x400d2e91:0x3ffd5ad0 0x400d2f9b:0x3ffd5b30 0x400d1592:0x3ffd5b80 0x400d17ca:0x3ffd5bd0 0x4018b770:0x3ffd5c30
Rebooting...
⸮r⸮1⸮B⸮⸮⸮:!y⸮⸮⸮⸮⸮1⸮8⸮⸮Starting Arduino BLE Client application...
BLE Advertised Device found: Name: , Address: 23:7d:74:a8:f0:24, manufacturer data:<PHONE_NUMBER>0080a0e54a773cc3c591faffe203546b34ed9bf836dc9868
BLE Advertised Device found: Name: , Address: 38:9b:a2:6f:d8:c3, manufacturer data:<PHONE_NUMBER>00c16dfd021e6bbd242438315ca1cce63fcbb490adb753d8
BLE Advertised Device found: Name: , Address: 3f:9f:aa:ed:fa:60, manufacturer data:<PHONE_NUMBER>00f1e851948925d72828b875edadf5212cc33d518286de45
BLE Advertised Device found: Name: , Address: 0d:f1:aa:28:a0:e1, manufacturer data:<PHONE_NUMBER>000141e8c2bc0cacb6572b1ea7e89766649786cbb93a1d9b
BLE Advertised Device found: Name: , Address: 2b:c0:0c:2e:d8:d8, manufacturer data:<PHONE_NUMBER>02003661633914801e2257ce53caf3d8334acf4adb329c27
BLE Advertised Device found: Name: NEC_BLE01, Address: 24:0a:c4:82:7a:ca, txPower: -21
My Device Found
.Forming a connection to 24:0a:c4:82:7a:ca

Created client
Connected to server
Found our service
Found our characteristic
The characteristic value was:
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Why its happening

Hi I got it, the problem occurs because of this,
const uint8_t v[]={0x1,0x0};
pRemoteCharacteristic->registerForNotify(notifyCallback);
pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)v,2,true);
instead of this,
pRemoteCharacteristic->registerForNotify(notifyCallback);
I made this change to get the callbacks to "notifyCallback" on every notify from server. without adding above 2 lines I won't getting calback's on notify data from server.
If add above 2 lines device will always reeboot and data will not receive at the server sending as
pRemoteCharacteristic->writeValue(newValue.c_str(), newValue.length());

Please tell me write way to get the callbacks in BLE Client for every notify from Server
Thank you

Im guessing You are trying to write to descriptor to wrong characteristic (this characteristic does not have descriptor 2902):
pRemoteCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)v,2,true);

Hi,
what characteristics I have to write?
I am using below UUID's at server
#define SERVICE_UUID            "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_RX  "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX  "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"

Hi chegewara, I have not understood what you are trying to say. Can you please brief
I am doing notify in Server like this,
char valuetosend[8];
("Live " + String(Cnt)).toCharArray(valuetosend, ("Live " + String(Cnt)).length()+2);
pCharacteristic->setValue(valuetosend);
pCharacteristic->notify(); // Send the value to the app!

I came across this issue while looking for a full client UART example. This was close but fell short on the client sending data back to the server. If anyone else ends up here looking for the same thing this is my solution, built on Niel's BLE_client example.
https://github.com/ThingEngineer/ESP32_BLE_client_uart


Cyclone bot crashes

Describe the bug
Cyclone bot crashes when I try to run it.
To Reproduce

Run py run_custom.py -p1 cyclone
Oserve crash

ERROR:sc2.main:AI on_start threw an error
Traceback (most recent call last):
  File "python-sc2\sc2\main.py", line 115, in _play_game_ai
    await ai.on_start()
  File "C:\Dev\sc2\sharpy-sc2\sharpy\knowledges\knowledge_bot.py", line 97, in on_start
    await self.real_init()
  File "C:\Dev\sc2\sharpy-sc2\sharpy\knowledges\knowledge_bot.py", line 35, in real_init
    self.plan = await self.create_plan()
  File "C:\Dev\sc2\sharpy-sc2\dummies\terran\cyclones.py", line 58, in create_plan
    ActTech(UpgradeId.TERRANVEHICLEANDSHIPARMORSLEVEL1),
  File "C:\Dev\sc2\sharpy-sc2\sharpy\plans\acts\act_tech.py", line 34, in __init__
    from_building = UPGRADE_RESEARCHED_FROM[self.upgrade_type]
KeyError: UpgradeId.TERRANVEHICLEANDSHIPARMORSLEVEL1

Expected behavior
A game should run.
Version
> git last
commit 88e9287bd63caae6fc342f0eb0278d1d55355919 (HEAD -> develop, origin/develop)

This is caused by PR #13

Fixed in #44


basically Quick Look from macOS

📝 Provide a description of the new feature
Inspired by Quick Look on macOS, select a folder and hit/hold space bar, a popup will appear showing files from that folder you can drag and drop stuff from it
concept from twitter
If you'd like to see this feature implemented, add a 👍 reaction to this post.

I have even a better idea, click twice, folder will open and you can drag anything from it, no need to touch your keyboard! 😉

I have even a better idea, click twice, folder will open and you can drag anything from it, no need to touch your keyboard! 😉

I have even a better idea, click twice, folder will open and you can drag anything from it, no need to touch your keyboard! 😉

keyboard > mouse
also having one huge explorer window open just for some items to be in it is pretty unnecessary and worsens the experience

I have even a better idea, click twice, folder will open and you can drag anything from it, no need to touch your keyboard! 😉

keyboard > mouse
also having one huge explorer window open just for some items to be in it is pretty unnecessary and worsens the experience

Please add your comments to #5147

Please add your comments to #5147

Duplicate of #5147

Duplicate of #5147

You still need to use a mouse for doing drag&drop.
Also, pressing enter opens a selected folder if you want to avoid that second click

You still need to use a mouse for doing drag&drop.
Also, pressing enter opens a selected folder if you want to avoid that second click

Duplicate of #5147

not really the same but I would be happy with this

Duplicate of #5147

not really the same but I would be happy with this

You still need to use a mouse for doing drag&drop.
Also, pressing enter opens a selected folder if you want to avoid that second click

unfortunately I have to expect the explorer to open at a random position in a random size

You still need to use a mouse for doing drag&drop.
Also, pressing enter opens a selected folder if you want to avoid that second click

unfortunately I have to expect the explorer to open at a random position in a random size

Closing as duplicate

Closing as duplicate


"Error: Invalid Semantic Version" running make run/pipecd

What happened: Attempting to install pipeCD in my local cluster, it threw an error about invalid semantic versioning
What you expected to happen: It installed successfully.
How to reproduce it: Follow the local running steps on a linux laptop.
Environment:

piped version: https://github.com/pipe-cd/pipecd/commit/13c3ca06b6669af999750636091233005b967338
control-plane version: N/A
Others:
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"

Helm: version.BuildInfo{Version:"v3.14.3", GitCommit:"f03cc04caaa8f6d7c3e67cf918929150cf6f3f12", GitTreeState:"clean", GoVersion:"go1.21.7"}

@dgannon991 Thank you for submit this bug noticed at the contribute fest's one :)
If possible, can I add the logs to the comment?

📝 It happens when executing make run/pipecd

Hi Guys,
The logs are
david@Davids-Laptop:~/Projects/contribfest/pipecd-pipecd$ make run/pipecd Building go binary of Control Plane... GOOS=linux GOARCH=amd64 CGO_ENABLED=0  go build -ldflags "-X github.com/pipe-cd/pipecd/pkg/version.version="db771fe-1711281878" -X github.com/pipe-cd/pipecd/pkg/version.gitCommit=db771fe61f5f68d944869b7624759a2c91bdbf68 -X github.com/pipe-cd/pipecd/pkg/version.buildDate=20240324-120438 -w" -o ./.artifacts/pipecd ./cmd/pipecd Building web static files... yarn --cwd web build yarn run v1.22.22 $ PIPECD_VERSION=git describe --tags --always --dirty --abbrev=7` webpack build --mode production --env htmlTemplate=./base.html --config ./webpack.config.js
assets by status 4.38 MiB [cached] 14 assets
assets by path . 15.7 KiB
asset favicon.ico 15 KiB [compared for emit]
asset index.html 635 bytes [compared for emit]
Entrypoint index [big] 1.53 MiB (4.24 KiB) = assets/951.528cb1bdf.js 270 KiB assets/814.e1312c730.js 984 KiB assets/index.e79098ecf.js 318 KiB 1 auxiliary asset
orphan modules 8.46 MiB [orphan] 6913 modules
runtime modules 7.86 KiB 13 modules
cacheable modules 9.39 MiB (javascript) 4.24 KiB (asset) 2552 modules
WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets:
assets/index.e79098ecf.js (318 KiB)
assets/951.528cb1bdf.js (270 KiB)
assets/767.7a1667348.chunk.js (1.92 MiB)
assets/814.e1312c730.js (984 KiB)
assets/648.81af83f31.chunk.js (622 KiB)
WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
index (1.53 MiB)
assets/951.528cb1bdf.js
assets/814.e1312c730.js
assets/index.e79098ecf.js
webpack 5.76.0 compiled with 2 warnings in 14373 ms
Done in 15.23s.
Building docker image and pushing it to local registry...
docker build -f cmd/pipecd/Dockerfile -t localhost:5001/pipecd:"db771fe-1711281878" .
[+] Building 0.9s (10/10) FINISHED                                                                                docker:default
=> [internal] load build definition from Dockerfile                                                                                0.0s
=> => transferring dockerfile: 673B                                                                                0.0s
=> [internal] load metadata for docker.io/library/alpine:3.13                                                                                0.5s
=> [internal] load .dockerignore                                                                                0.0s
=> => transferring context: 2B                                                                                0.0s
=> [1/5] FROM docker.io/library/alpine:3.13@sha256:469b6e04ee185740477efa44ed5bdd64a07bbdd6c7e5f5d169e540889597b911                                                                                0.0s
=> [internal] load build context                                                                                0.1s
=> => transferring context: 37.72MB                                                                                0.1s
=> CACHED [2/5] RUN     apk add --no-cache         python3         curl &&     curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-324.0.0-linux-x86.tar.gz &&     tar -zxv  0.0s
=> CACHED [3/5] RUN mkdir -p web/static                                                                                0.0s
=> [4/5] ADD .artifacts/pipecd /usr/local/bin/pipecd                                                                                0.1s
=> [5/5] ADD .artifacts/web-static web/static                                                                                0.0s
=> exporting to image                                                                                0.1s
=> => exporting layers                                                                                0.1s
=> => writing image sha256:c5a67bd8d457ebd30cd3edd9af8f16ce12a1735efdf8c72fd31583e6977eca06                                                                                0.0s
=> => naming to localhost:5001/pipecd:db771fe-1711281878                                                                                0.0s
docker push localhost:5001/pipecd:"db771fe-1711281878"
The push refers to repository [localhost:5001/pipecd]
221f4e91b83d: Layer already exists
bba438c2dfb2: Pushed
448fc077177f: Layer already exists
11e070ec3584: Layer already exists
7df5bd7bd262: Layer already exists
db771fe-1711281878: digest: sha256:455fba718eb712c7601ded86853128be078279ca23e39b26f2febd3382240f67 size: 1371
Installing Control Plane in kind...
mkdir -p .artifacts
helm package manifests/pipecd --version "db771fe-1711281878" --app-version "db771fe-1711281878" --dependency-update --destination .artifacts
Error: Invalid Semantic Version
make: *** [Makefile:116: run/pipecd] Error 1`
It looks like the issue is helm doesn't accept a version number like "db771fe-1711281878". When we hardcoded this to 0.0.1 it worked just fine :)
Cheers


visual bug

mods:
fabric api v0.37.1
sodium v0.3.0 build.529
immersive portals v0.16
images:

when you get away, there's no such bug, but when you look, it looks buggy with game particles

Does it occur without sodium?

I'm having this issue 2 and I don't have sodium. I also noticed it immediately when I set up dimensional stacking. And same version 0.16.

Does it occur without sodium? Did you turn on fabulous graphics?

I haven't tested yet if this bug only occurs with sodium, and no, it's not with the fabulous graphics

merged to #801


Add card_item_limit, with default value 3 for all cards

Yes, I have been following along (with thought bubbles like "How did he do that?"). It looks good!


[ENH] Forecasters: prediction interval, probabilistic forecasting interface refactor

We're currently working on a major refactor of the forecasting core interfaces to allow probabilistic and interval predictions.
The design is here:
https://github.com/sktime/enhancement-proposals/blob/main/steps/13_proba_forecasting/step.md
Major work items:
Design:

[x] STEP (design) #984

Interface/framework refactor:

[x] framework: predict_interval and predict_quantiles
[ ] framework: predict_var
[ ] framework: predict_proba

Refactoring or adding individual methods:

[ ] predict_interval and predict_quantiles

[x] ARIMA,  AutoARIMA (inherit from same intermediate adaptor class) #1874
[x] AutoETS #1874
[x] BATS/TBATS - https://github.com/alan-turing-institute/sktime/pull/1842 by @k1m190r
[x] ThetaForecaster - https://github.com/alan-turing-institute/sktime/pull/1579
[ ] Prophet

[ ] predict_var

[ ] ARIMA,  AutoARIMA (inherit from same intermediate adaptor class)
[ ] AutoETS
[ ] BATS/TBATS
[ ] ThetaForecaster
[ ] Prophet

[ ] predict_proba

[ ] ARIMA,  AutoARIMA (inherit from same intermediate adaptor class)
[ ] AutoETS
[ ] BATS/TBATS
[ ] ThetaForecaster
[ ] Prophet

Capstone activities:

[ ] refactor capstone

[ ] predict_interval and predict_quantiles
[ ] predict_var
[ ] predict_proba

[ ] deprecation complete

According to my initial checks the forecastors that should have probabilistic capabilities and still need to be refactored are:

[ ] ARIMA
[ ] AutoARIMA
[ ] AutoETS
[ ] BATS
[ ] TBATS
[ ] Theta - I am working on refactoring predict_quantiles and predict_intervals here https://github.com/alan-turing-institute/sktime/pull/1579

Hi! I am working on the other forecasters, starting with ARIMA. I am not very sure about the predict_in_sample and predict_fixed_cutoff functions, which currently return pred_int. Given that we are trying to separate the quantile/interval functionality from the predict functions, do we want to have a separate one for quantiles i.e. predict_in_sample_quantiles and predict_fixed_cutoff_quantiles or do we want to introduce a new variable in predict_quantiles that determines if we want in_sample predictions or not?

@kejsitake, I just tried to prepare the refactor capstone (for deprecation).
It would look like we forgot Prophet!

From our discussion on slack: @kejsitake has tentatively taken Prophet on for refactoring.

All done:

framework functionality and default for predict_proba and predict_var was added in https://github.com/alan-turing-institute/sktime/pull/2100
defaults were added in https://github.com/alan-turing-institute/sktime/pull/1879
deprecation of return_pred_int is done in preparation for 0.11.0, #2271


Proposal for Search Result Extended Filtering

Overview
We propose to add an option to perform extended filtering at search time as well as post search. This proposal is dependent on issue #317 and #319.
Extended Filtering
Examples: by author, by license type, by last commit date, by license, by various rankings.
Can be applied in two cases:

Query specification: Ability to select filtering at search time. Examples:

All packages with a tag of networking. Packages that don’t have the tag networking would not show in the results.
All packages with a tag of database and commit date > 2014.

Organizing and post filtering search results. Examples:

Original search: all packages with a tag of networking.
Search result organized by: year, author, tags
Quantity may be displayed next to each individual value for the organization attributes. Example: 2015 (10), 2014 (5).

References:
http://www.creativebloq.com/navigation/design-better-faceted-navigation-your-websites-41411437
https://www.searchify.com/documentation/tutorial-faceting
http://studygolang.com/articles/2537
http://www.blevesearch.com/docs/Result-Faceting/
http://www.nngroup.com/articles/filters-vs-facets/
https://en.wikipedia.org/wiki/Faceted_search

Contributors to this proposal
@carlisia
@gdey
@rafaeljusto

It seems that this proposal is blocked by #317, the proposal to introduce tags.
What are the 'year' and 'author' fields?

@adg The year is a reference of the last commit date of the package, we thought about retrieving the date from releases to use it as reference, but not all projects use release tags. And the author could be any commiter of the package retrieved from the SCM.


cloudflare_origin_ca_certificate resource state mismatch

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.1.6
on linux_amd64

provider registry.terraform.io/cloudflare/cloudflare v3.10.1
provider registry.terraform.io/hashicorp/aws v3.75.0

Affected resource(s)
cloudflare_origin_ca_certificate
Terraform configuration files
resource "cloudflare_origin_ca_certificate" "certificate" {
  csr          = "-----BEGIN CERTIFICATE REQUEST-----\nMIICXDCCAUQCAQAwFzEVMBMGA1UEAwwMKi5kb21haW4uY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzU9sIq+9h5dmSBq9+kmTsqSOXDexzpurOHFJ\nDjnawcLa35+h3xi/hZjfbXaV3Jh+l+kgFEnW27oBET9VBMnvdwXGkZJQ2cBOKGlU\nsLOZ2JDnQVl0y84MYkEe7DY41QVezipQJAth+BqSHPYxtScZpyM1p24rQVKmdB3T\n+uWYrVvmUSCJcb94sWy11ZzFJ1+vQQlqryOuqZcbJ7VBXY2dl1VzUH5i6i28ur3N\nIQ25SHdg2DUN5cOEg4MoDWYLt+OXac8wCKpYiCSE2Rs/UqOIRIkBpgzdnM6YotQO\njLpY9q17tVkwlgdNt2f6kXtzqkEFDOtreF8lLt+o9khpsIGdqwIDAQABoAAwDQYJ\nKoZIhvcNAQELBQADggEBAII8zyxq6oIm2Co88QvWLMG+AecL2/5PFmuML39pXrsi\ngWronsOB8Wg1hkT2hZtw1JvhzUOkPQLHrZME8LkLTJ9mYtwc3ki5Yw7JCwyOX8TR\nY4056ATSmQuuUUlvnRlDCWUNzlQ/yWaN9zS4KGnFF2ojuELnJCEbJrxx0RWJR6D8\nrHWclErnuNprbP3IW25rrPYJ4uHamA3tqEEwPkpokhiUT9xvlWqJYL2amMuv9jVF\noivFJyjx/QcWkT7KAOqCqGR06RHe6c+4gj3GfmC55J+EBkwxE6pOnVu0en7+3PbL\n+rEhf2l2zR5jIECjLFcJa85jSAVKMjLdKXlB1aRqSGw=\n-----END CERTIFICATE REQUEST-----"
  hostnames    = ["*.domain.com"]
  request_type = "origin-rsa"
}

Debug output
-----------------------------------------------------: timestamp=2022-03-21T12:07:01.112Z
2022-03-21T12:07:01.145Z [INFO]  provider.terraform-provider-cloudflare_v3.10.1: 2022/03/21 12:07:01 [DEBUG] Cloudflare API Response Details:
---[ RESPONSE ]--------------------------------------
HTTP/2.0 400 Bad Request

Cf-Cache-Status: DYNAMIC

Cf-Ray: 6ef69090299405ff-IAD

Content-Type: text/plain; charset=utf-8

Date: Mon, 21 Mar 2022 12:07:01 GMT

Expect-Ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"

Server: cloudflare

Set-Cookie: __cflb=0H28vgHxwvgAQtjUGU56Rb8iNWZVUvXhbNCRaCD3E29; SameSite=Lax; path=/; expires=Mon, 21-Mar-22 14:37:02 GMT; HttpOnly

Set-Cookie: __cfruid=311dd9af3e408176f89f91bead60ebf18250b5e0-1647864421; path=/; domain=.api.cloudflare.com; HttpOnly; Secure; SameSite=None

Vary: Accept-Encoding

X-Envoy-Upstream-Service-Time: 73

{
 "success": false,
 "messages": [],
 "errors": [
  {
   "code": 1101,
   "message": "Failed to read certificate from Database"
  }
 ],
 "result": {},
 "result_info": {
  "count": 0,
  "total_count": 0
 }
}
-----------------------------------------------------: timestamp=2022-03-21T12:07:01.145Z
2022-03-21T12:07:01.145Z [INFO]  provider.terraform-provider-cloudflare_v3.10.1: 2022/03/21 12:07:01 [DEBUG] OriginCACertificate: (*cloudflare.OriginCACertificate)(nil): timestamp=2022-03-21T12:07:01.145Z
2022-03-21T12:07:01.145Z [INFO]  provider.terraform-provider-cloudflare_v3.10.1: 2022/03/21 12:07:01 [INFO] OriginCACertificate<PHONE_NUMBER>04604285066919094852375016983595856334 does not exist: timestamp=2022-03-21T12:07:01.145Z
2022-03-21T12:07:01.145Z [WARN]  Provider "registry.terraform.io/cloudflare/cloudflare" produced an unexpected new value for module.domain.cloudflare_origin_ca_certificate.domain during refresh.
      - Root resource was present, but now absent

Panic output
No response
Expected output
I expected the certificate data that is already created to be fetched from Cloudflare and match what is stored on the state.
Actual output
Terraform states that the origin certificate was removed outside Terraform and, when applying the changes, Terraform removes it from the state despite it still exists on Cloudflare. The apply also tries to recreate the certificate but gets a 400 when doing so:
╷
│ Error: error creating origin certificate: HTTP status 400: Failed to validate requested hostname *.domain.com: This zone is either not part of your account, or you do not have access to it. Please contact support if using a multi-user organization. (1010)
│
│   with module.domain.cloudflare_origin_ca_certificate.domain,
│   on ../../modules/domain/main.tf line 10, in resource "cloudflare_origin_ca_certificate" "domain":
│   10: resource "cloudflare_origin_ca_certificate" "domain" {
│
╵

I've replaced the actual domain with domain.com and CSR was modified for privacy reasons.
Steps to reproduce

Create a cloudflare_origin_ca_certificate through terraform
Apply the changes
Try to run plan and apply again

Additional factoids
No response
References
No response

this looks to be a service failure so you should definitely log a support ticket about this. i can see we have at least one other ticket related to this so it might be worth going that route. there isn't anything we can do about that in the provider itself.


Mark “Remembering Dan Kohn” article evergreen

This change updates https://kubernetes.io/blog/2020/11/02/remembering-dan-kohn/ to remove a banner that (currently) reads:

This article is more than one year old. Older articles may contain outdated content. Check that the information in the page has not become incorrect since its publication.

@onlydole feel free to LGTM this once you're happy with it

/lgtm


AJ 1563 Reorganize recordstream classes

This is prefactoring for AJ-1563.
The goal of this PR is to reorganize existing classes and responsibilities to roughly:

BatchWriteService
BatchWriteService.RecordSource (implemented by various format-specific sources (Parquet, Pfb, Json, TSV) which used to be called StreamWriteHandlers
BatchWriteService.RecordSink (implemented by RecordService, and will also be implemented by a new class for writing Rawls JSON)

The actual (rough) steps to get there, mostly driven by IDE refactoring:

Move WriteStreamInfo into BatchWriteService
Convert WriteStreamInfo to a record class. (<-- this was an amazing IDE trick BTW, 10/10 stars would recommend)
Rename StreamWriteHandler to RecordSource.
Cascade this naming convention change to subclasses and their tests.
Extract RecordSink interface from BatchWriteService.  The default implementation for this is the RecordService, but for cWDS an alternate implementation will be provided which knows how to generate and handle Rawls-compatible JSON.  This also is intended to pair with a RecordSource interface which is what StreamingWriteHandler is renamed to.
privatize RecordService.prepareAndUpsert which isn't used externally (cleanup).
Rename RecordService.batchUpsertWithRecordCapture -> batchUpsert (readability)
Prefer ImportMode over fully qualified name (just for readability).

Heh this PR makes me wonder if we should rewrite the whole thing as Spring Batch :)

Heh this PR makes me wonder if we should rewrite the whole thing as Spring Batch :)

Hackweek!!!


Sender backpressure?

Caveat: I looked for this in the issues and didn't see it; if I missed it I apologize.
Imagine I have an aioquic server and a client asks me to send something absolutely huge.  As far as I can tell, as fast as my server can call send_stream_data(), I'll extended the _buffer bytearray in the stream's sender.  Aioquic will deal with congestion sending to the client, but there's nothing to stop me from buffering excessive amounts of memory in the buffer and getting killed by the operating system's out-of-memory mechanism.  I'd like a way to have backpressure on the sender.  E.g. have whatever write() method I have that's calling into aioquic know if "too much" is buffered in aioquic, and if so block the thread/coroutine until the buffer is smaller or empty.  But I don't see any way to manage knowing when to block, and more importantly, when to wake up.
Have I missed something?  If I haven't, then a mechanism that preserves the separation between the Quic machine and I/O would be returning a "hey, you are over the limit" indication from send_stream_data(), and calling a callback when it goes below the limit.  I picked a callback here as we don't want the blocked thread to poll, as that introduces latency in it waking up and/or wastes effort polling when progress is still not possible.  I considered returning an event too, but that had the same latency issue due to event processing being associated with timers or the send thread typically.  Of course, there might be other mechanisms!  This is just what I've thought of so far.
So maybe we have:
def send_stream_data(self, stream_id: int, data: bytes, end_stream: bool = False,
ok_to_send: Callable[[int], None] | None = None) -> bool
where the the function returns True if not over the limit, and False if over.  The parameter to the callback is the stream_id.
There would also need to be functions to get and set the blocking limit on the stream.
I just extended send_stream_data() as it seemed pretty backwards compatible given the ok_to_send callback is optional and defaults to None, and the prior return value was None, but I'm happy enough if you wanted a separate method for this.
Thoughts?

After slightly more thought, probably the return value should be an int, which is how much of data got copied into the buffer.  Then if < len(data) I know to block, and I know how much got copied.  This makes things simpler than the boolean scheme as you can have an absolute buffer size limit in the stream sender.

There's a similar issue for reader backpressure too, in that if I have a bunch of streams but one of them is not reading input for a long time, I want some way to get aioquic to stop emitting events for that stream until I say it is ok, buffer the data it got, and initiate flow control to the other end if the buffer for the stream gets too big.


ms-vscode.csharp to ms-dotnettools.csharp

C# extension has changed its name from "ms-vscode.csharp" to "ms-dotnettools.csharp", this means all extensions depending on it needs to be updated and all repositories with extension.json containing
"recommendations": [
    "ms-vscode.csharp"
 ]

or you get errors like

Is this decision final? I saw a couple of bugs open against it yesterday, but seemingly no maintainers chiming in saying they were going to fix the issue, or keep it as is. I would prefer official word one way or another before accepting a PR to change it.
Still, thank you.

It's already changed and published
https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp

Yes, which broke a bunch of extensions - hence the issues I mentioned I found yesterday after I kept seeing that error message. What wasn't clear in any of the issues I found in their repo was whether they were going to keep the name change since a bunch of extensions broke.

https://github.com/OmniSharp/omnisharp-vscode/issues/3633
https://github.com/OmniSharp/omnisharp-vscode/issues/3631
https://github.com/OmniSharp/omnisharp-vscode/issues/3623

...and many more. None with any maintainer comment as to whether this change will stick. As much as they broke, I hope it won't and they revert it.

Intresting, several extensions already charged and published,  charging back would break them again...

I feel that was premature until maintainers confirm the change is final. That said, those extensions could always update again. But in this case for which you submitted a PR, having both would always cause an error at any point in time.
That said, maybe a reasonable change in VSCode is to ignore unknown extensions from these files to support cases like this. Still, given the extension ID is a moniker, I think changes like this are irresponsible (like changing URLs without redirects).

Let's try this method of contact if they haven't yet responded to any issue I could find (or at least a large sampling of them): https://twitter.com/mrhestew/status/1236375328605343750

Well server side it redirects, it's client side it doesn't work.  So marketplace redirects, extension gets updated, issue is VSCode doesn't "follow" the redirect for dependencies.

@JoeRobich the publisher change is final right?

Yes, someone pointed to a comment from him that it is (not exactly explicit, but good enough for me).


Dependency strategy

I'm still unsure whether to merge #66 as-is, that PR removes eslint v7 support, it is of course good to keep dependencies clean and updated, but it seems there are still many eslint v7 users.

On the other hand, eslint v9 is a big major version, it removes legacy RuleTester class and made previous FlatRuleTester as now RuleTester, so it's difficult to test eslint v9- versions and v9+ at the same time. Maybe we can use something like "eslint9": "npm:eslint^9.0.0-rc.0" to test flat config only for eslint v9.
For @typescript-eslint/utils, I don't know how many efforts it would take to support both v6 and v7 for eslint v7.
However, the last version of eslint v7 was released 3 years ago, maybe we should just consider it as legacy and drop its support.
cc @SukkaW @antfu

I don't think that the overwhelming majority of ESLint 7 users update their plugins. I think that it's better to drop its support.

From my point of view, since this project is supposed to be the "modern fork" of eslint-plugin-import, I would personally expect it to be up-to-date with lean and efficient code as possible. Giving v7 is already 3 years ago, I would vote to drop the support as well.

Let's support down to ESLint 8.56.0 then.

Definitely drop v7 support. I'd even go as far as saying drop v8 soon after v9 release when everyone will be moving their configs to flat format.

Definitely drop v7 support. I'd even go as far as saying drop v8 soon after v9 release when everyone will be moving their configs to flat format.

Let's keep ESLint v8 support, but only down to the 8.40.0 (or even 8.56.0). ESLint 8.40.0 is where the context properties were added and ESLint 8.56.0 is currently the most popular ESLint v8 version.

Indeed, we are going to be a "modern fork", I've changed to request eslint>=8.56.0 at #66


When merge conflicts are detected, we should clear the repo, and only pull the commit sha

Thread terminated with exception: git '--git-dir=/Users/jliebowitz/.fastlane/ci/32903571-271e-4c87-9b32-11df3c82d5aa/worker_checkout/.git' '--work-tree=/Users/jliebowitz/.fastlane/ci/32903571-271e-4c87-9b32-11df3c82d5aa/worker_checkout' pull 'origin' 'master'  2>&1:From https://github.com/fastlane/ci
 * branch            master     -> FETCH_HEAD
Auto-merging fastlane_app.rb
CONFLICT (content): Merge conflict in fastlane_app.rb
Removing app/src/styles.scss
Automatic merge failed; fix conflicts and then commit the result.
[2018-03-24 10:52:30] DEBUG GitRepo:  Starting setup_repo https://github.com/fastlane/ci
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/lib.rb:937:in `command'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/lib.rb:747:in `pull'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/base.rb:351:in `pull'
  /Users/jliebowitz/dev/ci/app/shared/models/git_repo.rb:327:in `block in pull'
  /Users/jliebowitz/dev/ci/app/shared/models/git_repo.rb:316:in `block in perform_block'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/bundler/gems/TaskQueue-5b3f459be5c4/lib/queue_worker.rb:82:in `block in process'
bundler: failed to load command: rackup (/Users/jliebowitz/.rbenv/versions/2.3.3/bin/rackup)
Git::GitExecuteError: git '--git-dir=/Users/jliebowitz/.fastlane/ci/32903571-271e-4c87-9b32-11df3c82d5aa/worker_checkout/.git' '--work-tree=/Users/jliebowitz/.fastlane/ci/32903571-271e-4c87-9b32-11df3c82d5aa/worker_checkout' pull 'origin' 'master'  2>&1:From https://github.com/fastlane/ci
 * branch            master     -> FETCH_HEAD
Auto-merging fastlane_app.rb
CONFLICT (content): Merge conflict in fastlane_app.rb
Removing app/src/styles.scss
Automatic merge failed; fix conflicts and then commit the result.
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/lib.rb:937:in `command'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/lib.rb:747:in `pull'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/git-1.3.0/lib/git/base.rb:351:in `pull'
  /Users/jliebowitz/dev/ci/app/shared/models/git_repo.rb:327:in `block in pull'
  /Users/jliebowitz/dev/ci/app/shared/models/git_repo.rb:316:in `block in perform_block'
  /Users/jliebowitz/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/bundler/gems/TaskQueue-5b3f459be5c4/lib/queue_worker.rb:82:in `block in process'

Which is the context of this issue? CI repo or builder?

I mean if this is something of the CI repo conflicts, with the decorators of the PR this should never happen again, and if it's something from the builder, I think I have a fix for that too😁

This is also kind of related to https://github.com/fastlane/ci/issues/170, right?


Changed the broken link to a working link

Summary

The  earlier link to the licensing policy was incorrect and has been changed to the right one in this PR
Ticket Link

Fixes #5977

Hello @uravgkarthik,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


Support different resolutions and resizable window

Support drawing the game in different resolutions and make the window resizable.
Also, support "desktop" fullscreen mode (see #11).

Still need to lock down alignment. It works pretty good now, but when the screen is narrower than it is tall, the vertical alignment is off. (Also I forgot to check the lower bounds, so making the window too small crashes the game, lol.)


CapacityService bugfixes & refactor Ports

fix CoresValue Cores() method, which was always returning 1
fix instance type sorting issue in capacityService
fix nil container.Resources.Limits issue in capacityService (was
breaking on containers with no resource limits set)
fix projectedNode.usedVolumes() (should not count non-EBS volumes)
fix crashing bug in capacityService (was calling
ProviderCreationTimestamp on wrong Node object)
consolidate ExternalPort and InternalPort into Port to clean up logic
in Release for coming service-per-instance feature

Coverage increased (+0.3%) to 26.365% when pulling fa3cc66ba0108496c6c739b66dc6b83f5e605437 on 0.6.1-bugfix into 09d507949a2d64f2d58522b55c82f8cb5f1d248b on master.


help(Migrating to MDC-based Angular Material Components): TextEncoder is not defined error

What are you trying to do?
I'm currenctly trying to upgrade my legacy material components to MDC and I'm getting the following error:

What troubleshooting steps have you tried?
I tried some solutions like messing around with node_modules dependencies, but no success.
Reproduction
Steps to reproduce:

Run ng generate @angular/material:mdc-migration
Select one or more components to migrate:

Environment

Angular: 15.1.0
CDK/Material: 15.1.0
Browser(s): Google Chrome Version 109.0.5414.74 (Official Build) (64-bit)
Operating System (e.g. Windows, macOS, Ubuntu): Ubuntu 22.04.1 LTS x86_64

I've experienced the same behavior. What I did is modify the file:
<EMAIL_ADDRESS>adding this line at the top:
var { TextEncoder, TextDecoder } = require("util");
After this the migration ran as expected.
node v18.13.0 btw

Same here - with the provided fix the command run as expected

Out of 10 projects, 9 failed with this error. Luckily the provided workaround fixed the migration for all projects.

Thanks to @mstawick I fixed that issue when adding the TextEncoder/TextDecoder on the mdc-migration module.
It works as expected now!
Thank you so much!

Just as side note after analysis on our side: the command shell was running with Node 19.2.0 while the installed version pointed to 19.4.0. Util is available since 8.3.x - so it should be found within the context anyway.
It's the fingerprint method which uses the first time the Text decoder.
The other problem is that it's highly unclear if the script finished or not. Would be great to have at least an end notification plus documented what to expect when the script finished.

The script will output a list of all files updated. From memory, it looked something like:
[UPDATED] src/main.ts

If you have no output at all, maybe checked last exit code with something like echo $?. But most likely it finished without finding anything to update. Or else you'd see error thrown.

Is this maybe related to this issue? https://github.com/angular/angular/issues/48748

Or maybe related to this? https://github.com/angular/angular-cli/pull/24662

Closing as a dup of https://github.com/angular/angular-cli/pull/24662

@mstawick  will it not work for node -v 18.11.0 ?


Driver: loosen restrictions for -force-autolink-symbol

On targets which support COMDAT (PE/COFF, ELF), use that to relax the
constraints on the emission of -force-autolink-symbol so that it is
possible to use that with -incremental.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @jckarter @rjmccall @jrose-apple
MachO does not support COMDAT, which means that we cannot have the linker coalesce and preserve a single definition - if there is a way to emulate that, it would be useful.

@swift-ci please test

MachO does not support COMDAT, which means that we cannot have the linker coalesce and preserve a single definition - if there is a way to emulate that, it would be useful.

Er.  I don't know how you think MachO supports C++ without a basic ability to coalesce definitions.  Weak linkage is a totally adequate facility for 99% of what languages need from symbol coalescing; all of COMDAT's complexity goes into supporting the relatively marginal use case of needing coordinated coalescing across multiple symbols.
Does this require coordination across symbols?

@rjmccall - hmm, the only coordination that is required is that a definition is preserved, nothing else.  If there is a way to ensure that the symbol is preserved, then, I think that this is something that I can generalise to all targets.  I'll do a follow up change to enable this for Darwin as well.

This may have caused a regression on the Windows build: https://dev.azure.com/compnerd/windows-swift/_build/results?buildId=6214&view=logs&j=2d2b3007-3c5c-5840-9bb0-2b1ea49925f3&t=2fdae087-0aee-589c-2ab0-2b8fc539478d&l=228

#15647 also explains why we can't use weak_odr.

@rjmccall - #26635 should also lift the restriction on MachO targets!  Thanks for the reminder :-)

We could presumably use a used, weak_odr, hidden symbol if common isn't good enough for some reason.


about raw KB data?

hi, how the raw KB data get?

The raw KB data is automatically parsed from captions in the Conceptual Caption dataset. For example, from "the cat eats the fruit", we can get "(cat, eat, fruit)". You can download the raw KB from https://thunlp.oss-cn-qingdao.aliyuncs.com/CC_allobjs_4000rels.json.

hi, can you share the code to extract the KB?

This is the link to the tool: https://nlp.stanford.edu/software/scenegraph-parser.shtml.

This is the link to the tool: https://nlp.stanford.edu/software/scenegraph-parser.shtml.

ok, thank you very much.


Satatus view count

Hello
Can you help me how can I get Status view count in Whatsapp Web? I know it's not implemented in this library but I hope you can give some headings.

Hello
Can you help me how can I get Status view count in Whatsapp Web? I know it's not implemented in this library but I hope you can give some headings.

Hello,
if you want to implement this feature on your own you can fork the project, download https://github.com/Auties00/whatsappweb4j-request-analyzer, find the nodes that whatsapp uses for said feature (they are printed on the console) and implement it on your own in the WhatsappAPI class. Then open a pull request and I'll merge the feature


Rio install give false-alarm warning message

Version: v0.3.1
Step to reproduce:

rio install
The following message will be shown:

Defaulting cluster CIDR to <IP_ADDRESS>/16
Deploying Rio control plane....
rio controller version v0.3.2-rc1 (a6eeebe4) installed into namespace rio-system
Detecting if clusterDomain is accessible...
Warning: ClusterDomain is not accessible. Error: Get http://rbar7f.on-rio.io:9080: dial tcp: lookup rbar7f.on-rio.io on <IP_ADDRESS>:53: no such host
Controller logs are available from `rio systemlogs`

Welcome to Rio!

Run `rio run https://github.com/rancher/rio-demo` as an example

Fixed by v0.3.2


Flutter firebase_performance  Plugin issue in iOS

Steps to Reproduce

I cannot able to see any performance monitoring items on Firebase console from iOS app ,but I can see the items like api.crashlytics.com graph.facebook.com/** app-measurement.com/** .however It works fine for the  Adrorid App
This is the imlementation
 Future<T> get<T>(URLRequestConvertible request) async {
    final HttpMetric metric = FirebasePerformance.instance.newHttpMetric(_urlFromRequest(request), HttpMethod.Get);
    await metric.start();
    var client = new http.Client();
    try {
      _log(
          baseUrl: _baseUrl,
          path: request.path,
          header: _mapHeader(request.header, request.requiredAuth),
          method: "Get",
          parameters: request.parameters);
      http.Response response = await client.get(_urlFromRequest(request), headers: _mapHeader(request.header, request.requiredAuth));
      _addRequestResponseToMetric(metric: metric, response: response);
      client.close();
      await _validateResponse(response);
      return _decode(response.body);
    } on Exception catch (e) {
      print(e);
      client.close();
      rethrow;
    } finally {
      await metric.stop();
    }

[✓] Flutter (Channel dev, v0.11.5, on Mac OS X 10.13.6 17G65, locale en-DE)
    • Flutter version 0.11.5 at /Users/driveddy_android/Applications/flutter
    • Framework revision 97e03104a0 (6 days ago), 2018-11-13 09:53:56 -0800
    • Engine revision 4959b71d6a
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.2)
    • Android SDK at /Users/driveddy_android/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 30.0.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[!] VS Code (version 1.29.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • HTC M10h      • FA65ZBN04140                             • android-arm64 • Android 8.0.0 (API 26)
    • Eike's iPhone • 3b6a808dd97d33fb81c835e0881490bdc769b9d1 • ios           • iOS 12.1
    • iPhone SE     • 8EA2A341-569B-4626-9C20-F31A5D8CAC16     • ios           • iOS 12.0 (simulator)

! Doctor found issues in 1 category.

@Abgaryan
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/572. Any further collaboration will be done there.


Robo tasks

Create a set of default robo tasks for being able to work with change logs.

Will be done in the https://github.com/stevewest/robo-changelog repo.


we wonder if we can just make android or iOS app act as an OTA provider?

Feature description
...
As far as i know, when the firmware of the matter device need to be updated, the only way is to query from the other devices which had implemented the OTASoftwareUpdateRequestor Cluster (acted as a Matter hub). Is there any way to OTA the device without another device? Can it be possible if we can only use our iOS or android app to do this?
Platform
android, darwin
Platform Version(s)
No response
Anything else?
No response

Yes, this should be doable.  On iOS, Matter.framework has facilities for specifying your OTA provider delegate and whatnot, for example.

Yes， thanks! It's a good job! But, android not supported. I have done in android as iOS, but when I use controller to act as a node to provider the OTA and set OTA delegate, in the OTAProvider SetDelegate method, emberAfFindClusterServerEndpointIndex always return Invalid endpoint. So, I don't know where is wrong? Can you help me?

Sounds like the Android bits you are using need to hook up actually being used as an OTA provider.  Someone who understand that Android stuff would need to do that.

Thank you!

related to https://github.com/project-chip/connectedhomeip/issues/26868


Support for alternative loading strategies

Apologies if this is documented somewhere, but I have not been able to find anything about it.
Is your feature request related to a problem? Please describe.
Not really a problem, but more of an inconvenience. It would be nice to be able to specify the Loading technique without having to drop to using the query builder.
Describe the solution you'd like
I would like to be able to specify the loading technique at the time I choose to load relationships.
Looking at the docs on Collections and seeing how relationships are currently loaded, one potential API for this could be something like:
type Strategy = 'lazy' | 'joined' | 'subquery' | 'selectin';

const author = orm.em.findOne(Author, '...', ['books', 'publishers']); // current

const author = orm.em.findOne(Author, '...', {
  books: {
    strategy: 'joined',
  },
  publishers: {
    strategy: 'subquery',
  },
}); // suggested

await author.books.init({
  strategy: 'joined',
});

Similar to SQLAlchemy, you could even specify the load type at the relationship level:
@Entity()
export class Book {
  @ManyToOne({
    entity: () => Author,
    strategy: 'joined',
  })
  author!: Author;
}

Describe alternatives you've considered
As mentioned above, the alternative right now seems to be to use the query builder.
Additional context
This feature seems fairly standard to ORMs. Some examples include SQLAlchemy and Objection.js

Thanks for the great project btw!

Currently not supported, as you said, you need to use QB if you do not want to load entities as the ORM does it by default (1 query per entity).
The problem is not really in the query construction, but rather in the mapping. I am quite happy with how it works now as the mapping part is deadly simple, but I was planning to support mapping joined results too at some point of time.
So not a priority for now I would say, having quite a lot of things I want to focus in following months.

Thanks for the quick response.
I would be happy to help implement this feature if it is only a matter of bandwidth.
If you are willing, you can point me in the right direction with any designs you might already have in mind and I can take a stab at it.

Great to hear that!
I already started working on v4 and soon I want to split the ORM into several packages, so the time for a PR will come once that is done. Also I am not sure if we need all those options, the subquery one sounds a bit unnecessary (and also there is no support for subqueries in the QB currently, so that would be probably prerequisite). I would start with fetch joining as additional variant to the current way.
I definitely want to have this option on the property level too. Not sure about the API you proposed, but that is not really important for now. We can always rename things later, and I would start with version where one can set this only at the property level.
About the direction, I guess EntityLoader is one place to look, then ObjectHydrator, also AbstractSqlDriver/DatabaseDriver I guess, rest I am not sure right now :]

Great!
I watch releases on this repo, but let me know once you feel you are ready to accept a PR. In the meantime, I'll poke around and get familiar with the codebase.

Also I am not sure if we need all those options, the subquery one sounds a bit unnecessary (and also there is no support for subqueries in the QB currently, so that would be probably prerequisite). I would start with fetch joining as additional variant to the current way.

I definitely want to have this option on the property level too. Not sure about the API you proposed, but that is not really important for now. We can always rename things later, and I would start with version where one can set this only at the property level.

I definitely think we would wanna spec out what would be supported. My examples were mostly for demonstrative purposes using prior art from a great ORM 😄
Once we get to that point, we can discuss that here.

Join with condition would be 🔥

It's already supported (https://mikro-orm.io/docs/entity-manager/#searching-by-referenced-entity-fields), this issue is about being able to allow using single query and mapping the results to entities. Currently it will always fire 1 query per entity, with this change we could fire only 1 query for multiple entities.

@willsoto So the split into packages is done (#475), feel free to PR this into dev branch where v4 development is happening.
As discussed, I would add the fetch joining as an alternative to current where in way. Not sure about the naming but we can improve that later, so for now let's use strategy and joined/selectin as you suggested (let's keep the selectin as default). I would add that only to the property options first, but the suggested change for populate is also fine - although I want to maintain the array way too, so only optionally.
Not sure about the suggestion about collections, as Collection.init() does fire only one query, there is no need for this unless you provide also the populate param.
Also I don't understand the lazy option, this is about the strategy (how), not about being lazy/eager (when). Relations are lazy by default, one can make them eager via eager: true.

@B4nan That is great! Thanks for following up with me.
I'll spend some time hopefully tonight / this week and start browsing the dev branch to get familiar with it. Before I start writing any code, I'll comment here with the proposed naming and scope and make sure you are in agreement at least in principle. Like you said, naming and stuff can be improved later. 😄

Ok. So I've spent some time browsing the code and I think I have a good sense of where stuff needs to happen, but I wanna make sure I got it right.
I will add a property named strategy to this interface:
https://github.com/mikro-orm/mikro-orm/blob/dfd731e446b5e2067e178e14bbcbe898c11445a6/packages/core/src/decorators/Property.ts#L58-L62
strategy will be defined for now as:
type Strategy = 'joined' | 'selectin';

It seems like I will have to make some changes to the QueryBuilder and the ObjectHydrator. You also mention the EntityLoader and the AbstractSqlDriver.
I haven't gotten a sense of the order in which things should happen, so any guidance there would be good. If you have any additional thoughts or preferences, please let me know. Also let me know if I am missing anything.

Not sure if you will need to change QB itself, this should be more about how AbstractSqlDriver instructs/uses it. And I mentioned EntityLoader as that is where current populate implementation lives.
Agreed with the rest, most of the work will be probably in the hydrator part. Also to be able to map multiple entities from one query, you will probably need to explicitly select all the fields aliased so you can be sure they won't collide (e.g. Author.name and Publisher.name).

So I finally had some time to work on this. Although I was planing to do something else, until I realised that what we merged was really just a proof of concept and it was blocking me from implementing the lazy scalar props.
So with my recent changes:

composite keys should be supported (you always used fieldNames[0])
we load relation props (you only used scalar props in select, no m:1 or 1:1 owners)
we handle this on em.find() too, but the mapping part is still missing
lazy scalar props should be supported too with the joined strategy

I also needed to redesign the populate param so we can actually bare the information for nested populate, as your version simply skipped unknown keys - and for nested population all of them were unknown as they were concatenations (e.g. books.author). So we now have a PopulateMap<T> where one can also set the strategy for given relation, overriding what is in the property metadata:
await orm.em.findOneOrFail(Author2, { id: author2.id }, { populate: { books: LoadStrategy.JOINED } });

I also added few more test.todos. I hope you will have some more time for this, as there is still a lot to do. I would focus on supporting the em.find() mapping first, followed by mapping of nested relations (it looked like we support only 1 level currently). If you won't have time for this in the near future, please let me know so I can focus on it myself, as currently this is somewhat blocking the release (we still have few weeks for sure, will be releasing the first alpha now, but a WIP like this shouldn't be part of future RC versions or late betas).
My changes are not yet merged, but you can see it here: #585. Need to add more tests first to verify it actually works with all the use cases, also lazy props are not yet working in mongo, but should be merging this later today.

If you won't have time for this in the near future, please let me know so I can focus on it myself, as currently this is somewhat blocking the release (we still have few weeks for sure, will be releasing the first alpha now, but a WIP like this shouldn't be part of future RC versions or late betas).

I honestly can't commit since my schedule has become increasingly busy in the past couple of weeks. As much as I would like to see the feature through to completion, I don't want to be the reason you are holding up a release.
If there are any smaller pieces of work (<5-6 hours) that can be done in isolation or with minimal interaction (thinking about rebases, merge conflicts, etc) feel free to point me to them.

No worries, I should be able to finalize this myself.

If there are any smaller pieces of work (<5-6 hours) that can be done in isolation or with minimal interaction (thinking about rebases, merge conflicts, etc) feel free to point me to them.

Would be great if you could prepare some of the missing tests, and write a bit of docs, that should fit in few hours for sure :]

No worries, I should be able to finalize this myself.

If there are any smaller pieces of work (<5-6 hours) that can be done in isolation or with minimal interaction (thinking about rebases, merge conflicts, etc) feel free to point me to them.

Would be great if you could prepare some of the missing tests, and write a bit of docs, that should fit in few hours for sure :]

You got it. I'll wait till #585 is merged for tests but I can start writing docs tomorrow most likely.

Closing as finalized via #600 (and https://github.com/mikro-orm/mikro-orm/commit/3b0384e2c01813f111dcaa96aa954add9945c7e4, https://github.com/mikro-orm/mikro-orm/commit/90dc71f9dcbcb8314deae5b5c3475427a0af7c04 and https://github.com/mikro-orm/mikro-orm/commit/c25782ead50f0170b180b61f645978ffa3e658ea), feel free to try out and add more tests if you can think of something missing. Same applies to the docs, it could be much more verbose, but now I want to focus on actual development, time for improving docs will come later.

@B4nan It would be great to have some additional documentation on when you would want to use what strategy.
The existing documentation does a good job telling you that you can use either strategy, but the trade offs between the different strategies are still unclear.
I would expect it would have to do with the latency to the database, the complexity of the sql statement, etc.
However I am just speculating with that.


neon/tbl: Wasm optimization

Argh, I just did these, too.  I should have looked at the PRs before I wrote the code instead of after.
I'm going to use mine for this one; it generates the same code, but avoids aliasing.  I'll take a look at the others right now.


Rating refactoring

Big refactoring of rating module. Hope you will like it...

Be careful... It should break compatibility with previous module.
But it adds "clearable", "interactive" and "on-rate" options, as described in original semantic-ui module.


fix: update BaseLeaf when keep_up_to jumps to end

#564  👈 (View in Graphite)
master

This stack of pull requests is managed by Graphite. Learn more about stacking.


Alternative routes with node-based CH

So this is my attempt. Goal was to start with few moving parts, and finish with fewer. :-)
Note that this doesn't even use the existing AlternativeRoutes. This is really all the code there is.
Actually, the most hairy code in this class is stuff for walking backwards and forwards on Path because we don't have that as a utility.
The algorithm seems to be pretty "self-regulating" -- thanks to CH, candidates are already filtered down. So we don't have to check so many candidates. The share-factor is a very good filter criterion, so we don't even seem to really need a maximum number of paths here.

Cool! I def. agree that the Path class needs some thought. Especially because it is half algorithm (path extraction) and half a data/result type. I'll open an issue for this (started typing it earlier, but not finished yet).
The method used here is one that (in literature) predates the one used in #1524 ? What are the advantages/disadvantages of the two methods ?

For the path issues I opened https://github.com/graphhopper/graphhopper/issues/1727

I was going to merge master but the newly introduced tests fail:
[ERROR] Tests run: 3, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 0.021 s <<< FAILURE! - in com.graphhopper.routing.AlternativeRouteCHTest

[ERROR] testCalcAlternatives2(com.graphhopper.routing.AlternativeRouteCHTest)  Time elapsed: 0.011 s  <<< FAILURE!
java.lang.AssertionError: expected:<3> but was:<1>
	at com.graphhopper.routing.AlternativeRouteCHTest.testCalcAlternatives2(AlternativeRouteCHTest.java:128)

[ERROR] testCalcAlternatives(com.graphhopper.routing.AlternativeRouteCHTest)  Time elapsed: 0.005 s  <<< FAILURE!
java.lang.AssertionError: expected:<2> but was:<1>
	at com.graphhopper.routing.AlternativeRouteCHTest.testCalcAlternatives(AlternativeRouteCHTest.java:98)

Is this a work in progress?

Is this a work in progress?

Ah. Yes. I don't even know what I was trying to do there. I don't have a proper test case yet. Coming up.

I would cautiously call this finished. Merge?


Coverage report is showing uncovered code which has been tested correctly

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (6b3db2a 2022-08-19T00:24:19.967244Z)
What command(s) is the bug in?
forge coverage
Operating System
macOS (Apple Silicon)
Describe the bug
forge coverage is not detecting correctly some require statements.
this is what we get in coverall.io  after generating the lcov report.

However, we have implemented a test to especially cover this case

All tests are passed but it seems the coverage report is not generating correctly.

You are out of date, please update Foundry. A patch was recently released which fixes this. Let me know if it's still an issue after updating.


[TW#26644] [question] esp_ble_gatts_app_register

In gatt server examples esp_ble_gatts_app_register for every gatt service. I have question, is it:

just usage example,
suggested usage (we can use it one time to register all services),
required usage.

ret = esp_ble_gatts_app_register(PROFILE_A_APP_ID);
    if (ret){
        ESP_LOGE(GATTS_TAG, "gatts app register error, error code = %x", ret);
        return;
    }
    ret = esp_ble_gatts_app_register(PROFILE_B_APP_ID);
    if (ret){
        ESP_LOGE(GATTS_TAG, "gatts app register error, error code = %x", ret);
        return;
    }

@Weijian-Espressif It was not advice, it was question and you answered it. Thanks again.


BoundedVec + Shims for Append/DecodeLength

cc @shawntabrizi @gavofyork

having fn try_append inside the trait StorageMap/StorageValue/StorageDoubeMap, similarly to fn append can be good but is not necessary to me (in the past I liked to have everything in those traits so that people don't need to import to much trait in scope. but with frameV2 we don't need to import any trait to access method on storage, thus I'm fine anyway).
But I would like that we implement try_append on the structs StorageValue, StorageMap, and StorageDoubleMap (in frame/support/src/storage/types/) so that people can use these method without importing any trait.
(Apart from that we can improve to not require the value to be Eq, PartialEq, and Default, but this can be done later when needed.)
But otherwise it looks good to me

having fn try_append inside the trait StorageMap/StorageValue/StorageDoubeMap, similarly to fn append can be good but is not necessary to me (in the past I liked to have everything in those traits so that people don't need to import to much trait in scope. but with frameV2 we don't need to import any trait to access method on storage, thus I'm fine anyway).

For now I kept them in separate traits that get a blanket implementation. If and when try_append becomes more useful, and we are sure that it should be a fundamental part of storage, we can mix the traits.

But I would like that we implement try_append on the structs StorageValue, StorageMap, and StorageDoubleMap (in frame/support/src/storage/types/) so that people can use these method without importing any trait.

Done.

(Apart from that we can improve to not require the value to be Eq, PartialEq, and Default, but this can be done later when needed.)

Also done.

bot merge