Incorrect language detected (C++ as C, XML as TypeScript, etc.)

https://github.com/github/linguist
Linguist is a tool developed by GitHub for the specific purpose of detecting languages. It's a very mature tool that gets it right the majority of the time by using complex rules.

But why ?
https://github.com/Aaronepower/tokei is written in Rust and does a great job detecting languages.

Is that what Onefetch currently uses? It detects C++ as C in the case of Godot.

it only detects the languages that are currently supported by onefetch (WIP):
C
Clojure
C++
C#
Go
Haskell
Java
Lisp
Lua
Python
R
Ruby
Rust
Scala
Shell
TypeScript
JavaScript
Php

Also tokei ignores all commented lines which is why the language distribution sometimes differs from GH

Upstream issues: https://github.com/Aaronepower/tokei/issues/305 and https://github.com/Aaronepower/tokei/issues/67
We can leave this closed though if you want.

Ok, with the new title it makes more sense to keep this open.
We'll wait for tokei to fix it then.
Thx @aaronfranke

#https://github.com/Aaronepower/tokei/issues/67

Aaronepower/tokei#67

Aaronepower/tokei#67

This issue still exists, though it is likely seen by the devs as low priority, so I'll probably have to bump this again later to please the stale bot.

Hi, I added the c header and cpp header to language.rs file to my fork
https://github.com/mapau/onefetch/tree/feature/add-c-cpp-header
https://github.com/Aaronepower/tokei already detects the c header and cpp header only the mapping in onefetch is missing.
Would be my first contribution to any GitHub Project.

I'm not really fund of the idea of having separate entries for header files (CHeader and C++Header). I personally prefer the GitHub Linguist approach of extending C and C++ detection scope to include their respective header files:
C++:
  type: programming
  tm_scope: source.c++
  ace_mode: c_cpp
  codemirror_mode: clike
  codemirror_mime_type: text/x-c++src
  color: "#f34b7d"
  aliases:
  - cpp
  extensions:
  - ".cpp"
  - ".c++"
  - ".cc"
  - ".cp"
  - ".cxx"
  - ".h"
  - ".h++"
  - ".hh"
  - ".hpp"
  - ".hxx"
  - ".inc"
  - ".inl"
  - ".ino"
  - ".ipp"
  - ".re"
  - ".tcc"
  - ".tpp"

  C:
  type: programming
  color: "#555555"
  extensions:
  - ".c"
  - ".cats"
  - ".h"
  - ".idc"
  interpreters:
  - tcc
  tm_scope: source.c
  ace_mode: c_cpp
  codemirror_mode: clike
  codemirror_mime_type: text/x-csrc
  language_id: 41

I'm doubt the people over at tokei would be ready to make that shift...So, either we follow tokei's detection rules and merge @mapau's PR, or we override the logic in Onefetch.

This issue still exists, though it is seen by the devs as low priority, so I'll probably have to bump this again later to please the stale bot. The problem still deserves some kind of solution eventually.

This issue still exists, though it is seen by the devs as low priority, so I'll probably have to bump this again later to please the stale bot. The problem still deserves some kind of solution eventually.

FWIW I tried this on the Bitcoin Core repo and it thinks it's 50.5%...
a) theres no typescript in the project
b) perhaps this is related to C++ header detection?
onefetch 2.11.0

github-linguist does return the correct information on this repo:
[20:05] ubuntu:bitcoin (master) | ₿ github-linguist
67.10%  9517488    C++
18.93%  2684890    Python
8.65%   1227100    C
1.66%   235453     M4
1.47%   209083     Shell
0.98%   138998     Makefile
0.40%   56897      Sage
0.21%   29132      CMake
0.20%   28178      Assembly
0.17%   24552      Scheme
0.15%   21833      HTML
0.04%   5497       Objective-C++
0.01%   1721       Dockerfile
0.01%   1256       Cap'n Proto
0.00%   541        Java
0.00%   438        QMake

Interesting about the TypeScript issue. Looks like it's caused by the files in src/qt/locale, which all have .ts extensions (guess it's the extension of Qt translation files, too).

b) perhaps this is related to C++ header detection?

Most likely. What it comes down to is that tokei, our dependency for language detection, naively using filenames instead of the actual content for categorization. github-linguist performs heuristics on file contents, helping make it much more accurate when there are conflicts with extensions. You can try creating an issue over there, but looking at the issue history it might be closed as a duplicate of https://github.com/XAMPPRocky/tokei/issues/67.

Right. I did take a quick look at those issues but agree that it seems likely that it will be closed as a duplicate.
Can't really see how this can be improved without either using the github tool (which works).

I don't think we should be using github-linguist directly, since it's written in Ruby. However, it could be possible to make a Rust port of linguist that uses the same data files (similar to what linguist-js does). But one cool thing that tokei does is categorize lines so that commented lines can be treated separately from actual code, which I think we would lose by migrating to a lingusit-like crate. Removing the tokei dependency would also be large change on our end at this point.
Another option is to fork tokei to fix this.
Unfortunately, for your use case, it looks like you would have to use a tokei config file for now to ignore "TypeScript," since that is tokei's preferred solution.

I think we should start collecting all "incorrect language detected" issues together, so I'm going to rename this to something more general and pin it.

Interesting about the TypeScript issue. Looks like it's caused by the files in src/qt/locale, which all have .ts extensions (guess it's the extension of Qt translation files, too).

b) perhaps this is related to C++ header detection?

Most likely. What it comes down to is that tokei, our dependency for language detection, naively using filenames instead of the actual content for categorization. github-linguist performs heuristics on file contents, helping make it much more accurate when there are conflicts with extensions. You can try creating an issue over there, but looking at the issue history it might be closed as a duplicate of XAMPPRocky/tokei#67.

I reported this issue over a year ago: XAMPPRocky/tokei#719.

Incorrect detection of Verilog using tokei.
tokei uses file extension *.vg for verilog while the more popular choice is *.v
tokei *.v is defined as COQ, all this is described in tokei issue 520
When considering a new approach, please consider verilog file identification as a useful test case.

Thanks for the report, @atluft.
I guess this also means that tokei has a problem with V.

@o2sh We might want to create a known-issues.md file, documenting workarounds (alternate extensions to use, tokei config file snippets, etc.).

I'd be happy to do so, but do we actually have a workaround for this?
Until tokei can provide an option to allows users to override the extensions - as suggested here - our only option is to reference this issue in the bug report form - as we already do - to avoid duplicates.

Sorry, I incorrectly assumed that tokei allowed language overrides, but I guess that's not implemented yet.
Well, the only workaround that I know of is renaming all Verilog files to *.vg :sweat_smile:

Coming back to a really old issue to document a potential solution:
It might be worth creating a new crate that acts as a wrapper for tokei. This wrapper would provide its own function for getting languages, adding the following:

heuristics using regexes
naive bayesian classification using code samples
Basically, it should do what github-linguist does.

Also, it should probably re-export the rest of tokei's public interface to make usage easier.
Such a crate should probably be in a separate repository, as I anticipate releases occurring on a very different schedule from onefetch.
Additionally, this crate would probably need a lot of community support to provide the heuristics and code samples.
I might attempt to do this sometime, but I can't promise that it will be soon. If someone else wants to take this on, I'll be happy to help and discuss this further.

that acts as a wrapper for tokei.

You mean exposing the same set of APIs? or is it gonna reuse some of tokei's code?
If I'm understanding correctly, the new project will be similar to github-linguist but implemented in Rust. Does that mean sacrificing some performance for better accuracy?
Regardless, it's definitely an intriguing challenge. If executed well, it could gain a lot of traction, especially given the current state/limitations of existing solutions 😢.
I'd be happy to help 👍

You mean exposing the same set of APIs? or is it gonna reuse some of tokei's code?

Mostly exposing the same API.  For the re-implementation of get_statistics, some code reuse might be necessary.
This could also be a fork of tokei. I was just thinking about "wrapping" tokei since AFAIK get_statistics is the only part we're not satisfied with. But maybe forking makes more sense so we wouldn't have to re-implement as much internal code :shrug:
Also, since we're mentioning github-linguist, I should note that linguist actually analyzes the HEAD (or other rev) of a repository, not the filesystem, which is pretty cool. But I'm not sure if we'd want that.
So I guess the first question is: do we want to improve tokei for our purposes, or port linguist to Rust?

I'm seeing this as well on a repository:
$ github-linguist
46.47%  205323     Shell
38.84%  171601     Lua
8.45%   37319      Perl
2.97%   13138      Ruby
2.91%   12836      Python
0.19%   861        Scheme
0.17%   750        Vim Script

Which is correct, while onefetch things I have a lot of Go code:
$ onefetch
           --==============--              Dan Sully ~ git version 2.40.0
  .-==-.===oooo=oooooo=ooooo===--===-      ------------------------------
 .==  =o=oGGGGGGo=oo=oGGGGGGGG=o=  oo-     Project: dotfiles
 -o= oo=G .=GGGGGo=o== .=GGGGG=ooo o=-     HEAD: f76ffe4 (master)
  .-=oo=o==oGGGGG=oo=oooGGGGGo=oooo.       Pending: 12+- 153+
   -ooooo=oooooo=.   .==ooo==oooooo-       Created: 3 years ago
   -ooooooooooo====_====ooooooooooo=       Languages:
   -oooooooooooo==#.#==ooooooooooooo                  ● Go (21.6 %) ● HTML (18.9 %)
   -ooooooooooooo=#.#=oooooooooooooo                  ● Rust (14.8 %) ● Python (9.9 %)
   .oooooooooooooooooooooooooooooooo.                 ● C (7.2 %) ● Vim script (7.1 %)
    oooooooooooooooooooooooooooooooo.                 ● Other (20.5 %)
  ..oooooooooooooooooooooooooooooooo..     Authors: 99% Dan Sully 1397
-=o-=ooooooooooooooooooooooooooooooo-oo.            0% Dan Sully 5
.=- oooooooooooooooooooooooooooooooo-.-             0% Dan Sully 3
   .oooooooooooooooooooooooooooooooo-      Last change: 17 hours ago
   -oooooooooooooooooooooooooooooooo-      Contributors: 7
   -oooooooooooooooooooooooooooooooo-      URL: git@github.com:dsully/dotfiles.git
   -oooooooooooooooooooooooooooooooo-      Commits: 1409
   .oooooooooooooooooooooooooooooooo       Lines of code: 5023922
    =oooooooooooooooooooooooooooooo-       Size: 1.13 MiB (241 files)
    .=oooooooooooooooooooooooooooo-
      -=oooooooooooooooooooooooo=.
     =oo====oooooooooooooooo==-oo=-
    .-==-    .--=======---     .==-

Hi @dsully
You should probably use the --include-hidden flag if you wish to account for code that resides in folders that starts with . like .config. Here is what you should get:

Pending: 12+- 153+

To add to what @o2sh said, github-linguist considers committed files, but onefetch considers all files, which could explain why the golang code is detected. There's likely some Go code in a subfolder of your local dotfiles repo. In ~/go/, for example.

Got it. I had wrongly assumed onefetch only looked at the repo / committed files. Should there be an option for that?

Tokei doesn't support that AFAIK. We could potentially make use of git ls-files, but that wouldn't be accurate since we'd be analyzing tracked files, but filesystem contents instead of committed contents. But this is getting off-topic of the initial issue, the wrong language being detected, IMO. Analyzing tracked contents instead of filesystem contents is an exciting idea, and I'd be happy to discuss it further, but I think we should continue in a separate issue :slightly_smiling_face:

Agreed about moving to a new issue - would you like me to create one?

Sure, go ahead :+1:

Is YAML currently supported? Our repository contains like 99% of YAML files and still onefetch says it's 100% Shell.

Is YAML currently supported?

Yes. By default onefetch doesn't report on data languages (JSON, YAML). Check the -T option to choose which types of languages are reported.
🤔 We've gotten this question several times. Is there any way that we can make this easier to discover?

@spenserblack Oh dear. I even saw -T option but I didn't even think that default values would exclude YAML.
Maybe onefetch could by default show whatever it finds and then people that want less output can play with filters.
Anyway thanks for your answer. Works like a charm now.

Maybe onefetch could by default show whatever it finds and then people that want less output can play with filters.

The issue is that data languages can very easily become the most common language, even if they're not the primary language used. JavaScript projects will often have many more lines of JSON due to package-lock.json (or YAML if you use yarn or pnpm), Rust projects can have more lines of TOML than Rust due to Cargo.lock, etc. So we hide data and prose by default because they often don't represent the "real" primary language even when they're the most common.
I'd be happy to discuss this further, but if you want to continue the discussion please open a new issue or a discussion, since this issue is "why is language X detected as Y?" instead of "why isn't language X displayed?" 🙂


Marshall testing

Mostly looks good to me, with the following relatively minor points:

Pleased to report that Marshall notebook runs fine on Nublado (could maybe tweak the README a bit to cover this scenario though)
Would it make sense to have an option to make the format of veto/fave files to be compatible with the watchlist format? (i.e. option to include ra and dec)
Veto and fave should probably be radio button (i.e. not possible to select both).
Notebook is sufficiently profligate with API queries that we run into rate limit very quickly - can we make it more efficient?
Running into rate limit is not handled gracefully, just throws an exception
Not sure random group ID is a good default (maybe leave all options commented out to start and force user to choose what they want?)

Glad it runs OK!
Radio button is a good idea -- will have to see what happens if its favourite then they change to veto!
The batching of API calls I had thought of but was too lazy. Also will make it much faster. Lets see if I can work up some energy.

The veto/fave files are not really watchlists, so don't want to do that.
Veto/fave has radio-button behavior now.
There is only one API call per run of the marshall -- all batched.
No more random group ID


Error with CDK deployment

Description
Deploying Sleeper using CDK version 2.103.* normally works but displays an error message "Error occurred while monitoring stack: Error [ValidationError]: 2 validation errors detected: Value '' at 'stackName' failed to satisfy constraint: Member must have length greater than or equal to 1; Value '' at 'stackName' failed to satisfy constraint: Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]|arn:[-a-zA-Z0-9:/._+]".
Steps to reproduce
Deploy Sleeper.
Analysis
This appears to be the same issue as https://github.com/aws/aws-cdk/issues/27445 and is a CDK bug, not a Sleeper bug. This issue is to record that we aware of the issue and that we assume a future update to CDK will fix this - no action needs to be taken on this issue for now.

The cdk issue linked above suggests this is fixed with cdk version 2.104.0. We should check and then close this issue if it is fixed.


rev 4.0.1: ble gatt congested error (IDFGH-3456)

Hello,
after upgrading our firmware to esp-idf 4.0.1, we can no longer complete some data transactions from our phone to the gatt server on the esp32.
In particular now we have the "congested" event that is triggered regularly when the communication is too busy, and after that, the following error appears, and the connection between the phone and the esp32 blocks.
E (21442) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested            xmit_hold_q.count: 1 buff_quota: 20
@Weijian-Espressif  @WCCWCC : we have seen the following commit 6ee978c6aa2c1d54dc24c0a37c02a1d09ae17ea1
Searching the forums and previous issues we found this and this.
We tried setting connection params in the following way, but nothing changes.
conn_params.latency = 0;
conn_params.max_int = 0x20;    // max_int = 0x20*1.25ms = 40ms
conn_params.min_int = 0x10;    // min_int = 0x10*1.25ms = 20ms
conn_params.timeout = 400;    // timeout = 400*10ms = 4000ms
esp_ble_gap_update_conn_params(&conn_params);

Is there a proper way to handle this? We can't afford now to implement a retry delayed mechanism when the congested event is triggered. We would prefer to instruct the peer device to have a specific data rate. but how?
Thanks for your support.
out: cfg_data_chunk {
	cid: 0x03, APPEND_CHUNK (p406)
	f_k: confdoc.json
	seq: 18
	payload: [0xfe 0x9f .. 0xba 0xf4]
}
I (21372) ble_rxtx: answering with a payload of length 19
I (21382) ble_rxtx: sending message with CID 0x05, DATA_FINISH (p406)
out: cfg_data_finish {
	cid: 0x05, DATA_FINISH (p406)
	f_k: confdoc.json
	hmac: 0xf5 0x7e .. 0x6c 0xa9
}
I (21402) ble_rxtx: answering with a payload of length 18
I (21402) BLE_GATT_service: GATT_WRITE_EVT end
I (21422) BLE_GATT_service: unhandled event 20
E (21422) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested            xmit_hold_q.count: 1 buff_quota: 20
E (21432) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested            xmit_hold_q.count: 1 buff_quota: 20
E (21442) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested            xmit_hold_q.count: 1 buff_quota: 20
E (21452) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested            xmit_hold_q.count: 1 buff_quota: 20
I (21462) BLE_GATT_service: unhandled event 20
I (21472) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21472) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21482) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21492) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21502) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21502) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21512) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21522) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21532) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21532) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21542) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 143, attr_handle 54
I (21552) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 129, attr_handle 54
I (21562) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 129, attr_handle 54
I (21562) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 129, attr_handle 54
I (21572) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 129, attr_handle 54
I (21582) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21592) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21592) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54
I (21602) BLE_GATT_service: ESP_GATTS_CONF_EVT, status = 0, attr_handle 54

a screenshot of the error:
congested_error.png
our sdkconfig:
sdkconfig.txt

Hi @enricop ,

When you send data, you should detect congest events. When status is true, it means that the packet cache limit has been reached, and sending the data again will trigger an error log.
E (21442) BT_L2CAP: L2CAP - CID: 0x0004 cannot send, already congested xmit_hold_q.count: 1 buff_quota: 20

When you send a packet, you should check the status of congest, and then send it when congest status is not equal to true.

You can also refer to ble_throughput demo, check before sending how many buffers are available, and then send the corresponding number of packets.

I am seeing the same error. My code sends sequential notifications in a tight loop.
  for (int i = 0; i < numChunks; i++) {
    auto chunk = longString.substring(i * chunkSize, (i + 1) * chunkSize);
    characteristic->setValue(chunk.c_str());
    characteristic->notify(true);
  }

It worked in arduino-esp32. But after converting it as a component of an idf project, it shows the same error.
My only relevant modification to get ble running is to add the line
add_compile_definitions(-DARDUINO_ARCH_ESP32)
to CMakeLists.txt (following https://github.com/espressif/arduino-esp32/issues/3436#issuecomment-700640080).
Is there anything else I missed?
Thank you.

Hi @cltsang ，
Maybe you can refer to the following code to solve the problem.  This API can query the number of buffers remaining available for the current connection.
            if (is_connect) {
                int free_buff_num = esp_ble_get_cur_sendable_packets_num(gl_profile_tab[PROFILE_A_APP_ID].conn_id);
                if(free_buff_num > 0) {
                    for( ; free_buff_num > 0; free_buff_num--) {
                        esp_ble_gatts_send_indicate(gl_profile_tab[PROFILE_A_APP_ID].gatts_if, gl_profile_tab[PROFILE_A_APP_ID].conn_id,
                                                    gl_profile_tab[PROFILE_A_APP_ID].char_handle,
                                                    sizeof(indicate_data), indicate_data, false);
                    }
                } else { //Add the vTaskDelay to prevent this task from consuming the CPU all the time, causing low-priority tasks to not be executed at all.
                    vTaskDelay( 10 / portTICK_PERIOD_MS );
                }
            }

@WCCWCC
Thanks for the quick reply. I will try 😀
But still, I couldn't find esp_ble_get_cur_sendable_packets_num getting called in the arduino-esp32 repository.
So I'm wondering: what is done in arduino-esp32 such that this check is not needed? Is it some project configuration done at compile time?

@cltsang  Are you able to solve this, I am getting the same issue.

@pawan-rathore-hsc I'm sorry to report that I have no luck so far.
I tried calling esp_ble_get_cur_sendable_packets_num to make sure the buffer is available before calling characteristic->notify(), but even when I add vTaskDelay in the loop, the buffer is always available, and notify is send in a batch after the loop.
So I'm not quite what the problem is here. Maybe I should translate all my ble-related code from arduino-esp32 API's to idf API's only.
I am looking into using a more update-to-date version of esp-idf and arduino-esp32, instead of relying on the current supported version of platformio.

I got around building my project with<EMAIL_ADDRESS>with<EMAIL_ADDRESS>Still got the same error.

@cltsang
To solve your problem，Can you tell me the commit id of idf， It is best to provide a link.
Such as: https://github.com/espressif/esp-idf/tree/release/v4.0
You have the function esp_ble_get_cur_sendable_packets_num in the code?
The use of the function esp_ble_get_cur_sendable_packets_num is referred to https://github.com/espressif/esp-idf/tree/release/v4.0/examples/bluetooth/bluedroid/ble/ble_throughput.

@WCCWCC
Thank you for trying to help.
I'm using this commit of arduino-esp32 on this commit of esp-idf
I edited BLECharacteristic.cpp to add #include "esp_gatt_common_api.h", as well as wrapping call to esp_ble_gatts_send_indicate at line 519 with a loop like this
		esp_err_t errRc;
		do {
			auto const free_buff_num = esp_ble_get_cur_sendable_packets_num(myPair.first);
			if (free_buff_num > 0) {
			errRc = ::esp_ble_gatts_send_indicate(
				getService()->getServer()->getGattsIf(),
				myPair.first,
				getHandle(), length, (uint8_t*)m_value.getValue().data(), !is_notification); // The need_confirm = false makes this a notify.
				break;
			} else {
				vTaskDelay(10);
			}
		} while(true);

However, notify() only goes through 10 times. After that, it's stuck, as if there is no rotation in the buffer, all while the BLE client has received 0 notifications.
So I cannot get notify() to send out packets one at a time.
But when I was building on arduino-esp32 only, instead of arduino-esp32 as a component of esp-idf, all seem to be working fine. What am I missing?

@cltsang I will suggest that you copy the sdkconfig from arduino into your project root, so that you are compiling with the same settings. Start then adjusting from there.
https://github.com/espressif/arduino-esp32/blob/d011dd7ef5d26e7ba2c2c093f422c534bacf4661/tools/sdk/sdkconfig

I think it can add some flow control in application code:
https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/bluedroid/ble/ble_throughput/throughput_server/main/example_ble_server_throughput.c
    case ESP_GATTS_CONGEST_EVT:
        if (param->congest.congested) {
            can_send_notify = false;
        } else {
            can_send_notify = true;
            xSemaphoreGive(gatts_semaphore);
        }

        break;

while(1){
        if (!can_send_notify) {
            int res = xSemaphoreTake(gatts_semaphore, portMAX_DELAY);
            assert(res == pdTRUE);
        } else {
            if (is_connect) {
                int free_buff_num = esp_ble_get_cur_sendable_packets_num(gl_profile_tab[PROFILE_A_APP_ID].conn_id);
                if(free_buff_num > 0) {
                    for( ; free_buff_num > 0; free_buff_num--) {
                        esp_ble_gatts_send_indicate(gl_profile_tab[PROFILE_A_APP_ID].gatts_if, gl_profile_tab[PROFILE_A_APP_ID].conn_id,
                                                    gl_profile_tab[PROFILE_A_APP_ID].char_handle,
                                                    sizeof(indicate_data), indicate_data, false);
                    }
                } else { //Add the vTaskDelay to prevent this task from consuming the CPU all the time, causing low-priority tasks to not be executed at all.
                    vTaskDelay( 10 / portTICK_PERIOD_MS );
                }
            }
        }
}


Update Walkthrough--Creating-and-Interacting-with-a-Page-Web-Service-…

…-OData-.md

Docs Build status updates of commit 985f1de:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

dynamics-nav/Walkthrough--Creating-and-Interacting-with-a-Page-Web-Service--OData-.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Bad option: 'globals'

For some reason I'm getting this error in vim (gvim), but not when directly running the jshint script from my .vim directory. I'm using jshint.vim HEAD, installed using vundle.

i see this error,
Bad option: 'globals' .

for the very first commented line in my app.js file. The commented line that gets highlighted is,
/* jshint undef: true, unused: true, -W069, strict: true */

@diversario to mark a variable as global, you need to set the value as false.. so, do
{
"globals": {
    "document": false,
    "it": false
}
}


Use JIT compiler to back cupy.fromfunction()

Description
#5925 added a bunch of NumPy-compliant functions, including cupy.fromfunction(). However, it is suboptimal as numpy.fromfunction is called internally.
It'd be nice to take the same JIT capability behind cupy.vectorize() and make it work with fromfunction. However, a common usage of fromfunction seems to involve lambda functions, which CuPy does not support yet (#4290). Not sure if this is a blocker, though.
Additional Information
No response

A potential tradeoff here is compilation speed vs data transfer speed.

CuPy JIT needs to support device function call firstly.

However, we cannot (maybe will not also in the future) support lambda functions as the inspect.getsource cannot get lambda function as the target function.

Thanks, @asi1024. Wasn't it partially worked around by #5071?

However, we cannot (maybe will not also in the future) support lambda functions as the inspect.getsource cannot get lambda function as the target function.

How about walking through the AST generated from inspect.getsource and using the first lambda found? (I think it's acceptable to raise an error when two lambdas are found in the AST).

@leofang @kmaehashi
Yes, it was partially worked around by #5071. inspect.get_source gets the source line that includes the lambda function, so the users need to feed a better get_source function that finds the lambda function from the line, and set the function to jit._getsource.
I agree to support a better get_source function that finds the lambda function in a heuristic way as the default function of jit._getsource in CuPy.

I am planning the support of lambda function input in cupy.vectorize. as the first step :smiley:


add qubits property to Experiment

Summary
Fixes #627 .
Details and comments
Saves the qubits passed in to the initialization as experiment._qubits and adds the qubits read-only property to access it.

Why this is needed? We have physical_qubits that returns the same thing.

It's surprising that the qubits argument to the Experiment constructor is renamed to physical_qubits as a property. The argument name and property name should be aligned in order to minimize confusion for the user, thus improving user experience and ease of using the library. See https://github.com/Qiskit/qiskit-experiments/issues/627.

I think physical qubits are more accurate and in general Qiskit is too indifference for these notation (at least experiments should be defined on physical qubits rather than logical index). I agree this silent renaming may hurt usability, but you don't need to add new instance variable for it. You can just call _physical_qubits from new property, just for renaming purpose since this is protected member.

@nkanazawa1989 I've changed it to just use _physical_qubits. The reason I originally created a new variable was because I wasn't sure whether the renaming from qubits to physical_qubits actually had any semantic significance.

Though personally in the context of qiskit experiments i think physical qubits is more descriptive, since this is designed for low-level experiments on specific physical qubits of a device. So if we rename the property the doc string should be updated to say something like "Return the device physical qubits of the experiment"

We can rename the constructor parameter to physical_qubits and leave the property unchanged

Sounds like that is breaking API change since there are many tutorials setting qubits and subclasses using qubit. I agree physical_qubits makes more sense. Probably just saying This is alias of :attr:`physical_qubits`. in the docstring is okey?

Closing due to lack of interest.


editor.snippetSuggestions: smart

What
Requested Functionality
Another option (e.g. smart) for editor.snippetSuggestions that will place snippets at the top only if you've typed in the exact prefix.
Current Functionality
Setting this to top will place snippets at the top at all times when any letter typed exists in the snippet prefix. It doesn't matter where the letters exist in the snippet, as long as the typed letters are ordered properly (you could skip letters in between, for example, and the snippets would still appear). This has the effect of placing tons of snippets at the top in certain situations. See screenshot below where tons of (dummy) snippets appear before the local variable. I would prefer that a snippet only appear at the top in this case if the snippet prefix was exactly "re". Otherwise I'd want the snippet to appear inline.
Why
I prefer my settings as shown below. This allows you to immediately tab to autocomplete a snippet and be guaranteed that the snippet is in fact what is autocompleted. If snippet suggestions were not placed at the top, there is a good chance that the quick suggestions appear before you've had a chance to tab, and the selected suggestion could be something other than the target snippet (and that unwanted suggestion would get completed instead). There is the option to turn quick suggestions off completely, but with this feature request, you get the best of both worlds  — quick suggestions AND guaranteed snippet prefix completion.
{
  "editor.tabCompletion": "onlySnippets",

  // TODO: `smart` option preferred here
  "editor.snippetSuggestions": "top",
}

Screenshot

Well, inline does exactly that and matches the prefixed against the current text on the line and 'perfect' matches always rank higher (sort higher up) than other matches.

What about in situations where there are multiple perfect matches, which will produce a different autocompletion, depending on if you tab before or after the quick suggestions appear?

What about in situations where there are multiple perfect matches

Then use tab completion with value on and hit tab till the desired suggestion in inserted

While not exactly what I'm looking for, I think that's definitely easy enough. And the situation I'm now describing is probably a rare occurrence that I might have only ran into once or twice.
Going to close this out. Thanks!


Latest UI update - no conversations

Did a git pull right nix and the old conversations are gonski.
Also the new conversation was read out in the console but didnt sho up in the UI :(

Was there a need to re run install.sh after git pull?

Also i cant add new conversations, and no conversation is showing in the UI

Hi there. I have upgraded the code, can you please try again and tell me?

The database format has changed to support multibranch discussions where you can create a different branch starting from a specific message. So I had to add an entry to the message called parent that allows me to create a more complex discussion that is more like a tree and not just a straight line. Ofcourse you will be able to have strait lines but you may want to explore many branches.

idk man, the buttons that supposed to export or created new conversations are not working.
And when i submit my prompt it crashes:
Received message : is jesus human?
[2023-04-13 19:55:07,216] {_internal.py:224} INFO - <IP_ADDRESS> - - [13/Apr/2023 19:55:07] "POST /bot HTTP/1.1" 200 -
[2023-04-13 19:55:07,217] {_internal.py:224} ERROR - Error on request:
Traceback (most recent call last):
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/werkzeug/serving.py", line 333, in run_wsgi
    execute(self.server.app)
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/werkzeug/serving.py", line 322, in execute
    for data in application_iter:
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/werkzeug/wsgi.py", line 500, in __next__
    return self._next()
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/werkzeug/wrappers/response.py", line 50, in _iter_encoded
    for item in iterable:
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/flask/helpers.py", line 149, in generator
    yield from gen
  File "/home/sd2/gpt4all-ui/env/lib/python3.10/site-packages/flask/helpers.py", line 149, in generator
    yield from gen
  File "/home/sd2/gpt4all-ui/app.py", line 258, in parse_to_prompt_stream
    self.prompt_message = [self.config["personality_conditionning"]]+ '\n'.join(self.full_message_list[-self.config["nb_messages_to_remember"]:])
KeyError: 'personality_conditionning'

well you could only save the database as all the other stuff can be changed to the app needs. My prompts are worthless, cuz i havent been able to prompt much but other people might be sad. :)
Also, maybe look into maybe using main branch for stable version, and dev branch for further development, so that people who want the bleeding edge could use dev branch and not complain that nothing is working :D.  This principle was working on one of the stable diffusion web UI - sygil :). Devs were pushing code like crazy to dev branch while the main was stable and working.

Sorry folks. Save your database.db file somewhere. I'll probably do an upgrade script for old scripts.
You can also read your database using any sqlite tool.
The new database has a new structure that will allow having non linear discussions. You'll be able to go back in time and create a new branch.

I'll start using dev vs main branches.


Propose registration/approval process

We intend to gate the Insights data behind user authentication, and to require human approval for user registration.
Process:

Applicant fills out a form to request an account; form includes email address
Applicant has to confirm their email address
After confirmation, admins are notified of a new pending request
Admins must reject or approve the request; applicant is notified of decision
If approved, applicant is converted to user (with blank password) and must complete registration by choosing a password

Technical notes:

For security, user accounts won't be created until admin has approved the application. Applicant will be its own table.
Password-creation flow will essentially be the "password reset" flow, but with a custom email template—and custom site template, if possible. (At the very least, UX and copy should reflect each respective flow.)
Applicant email confirmation may use the same piping as user email confirmation (e.g. for email changes), if that's possible/easy. But it doesn't need to; we can roll our own for applicants if necessary since security considerations are lighter there.
We will need to enforce uniqueness constraints between applicants and users — e.g., no creating an application for an existing user's email address, or changing an existing user's email address to the same email as an applicant — but without leaking existence.

If a new application is opened for same email as existing applicant: pretend like we don't know that (to the browser-user), accept the duplicate request, but notify admins of the redundancy so they can decide what to do. (Definitely don't let more recent requests stomp on / delete existing requests; that could be misused.)
If a new application is opened for same email as existing user: pretend like we don't know that (to the browser-user), don't accept the duplicate request, but do contact the existing user to say "hey, someone just tried to open an account as you; if that was you, you have an account and can log in. If that wasn't you, yikes! Be careful!"
If a user tries to change their email address to the same email as a pending applicant… well, that would be weird, but we should follow the same process we'd follow if they tried to change to the email of an existing user. (Error out vaguely in a way that doesn't leak the existence of the other account.)

User flow notes:

Applicants won't be able to "check their status" except through manually emailing to ask.
Rejected applicants won't be able to automatically appeal / re-apply. They'd just have to do it manually. (Currently we have no intent to block them from doing so.)

Open questions:

What fields does the application need to contain? (And which are required v. optional?)
When an admin rejects an applicant, do we want an internal/private Reason/Explanation field?
…do we want an external/public (communicated to the applicant) Reason/Explanation field?

Request access:

User fills out request form
Request object created with "pre-confirmation" status; no user account created (because security boundary)
User must confirm email address
After confirmation, request changes to "pending" and admin is notified
If admin rejects, request is closed and user notified
If admin accepts, user account is created and password reset process triggered with custom email template

Additional states/considerations

Email confirmation process can be something we roll ourselves; security concerns are lower than when existing users are modifying their email addresses since this is about requests, not "real users".
Be careful not to leak existence of existing requests.

If request is opened for same email as existing request, pretend like we don't know that (to the browser-user), accept the duplicate request, but make sure admins can see that there are two requests for the same email account so they can decide what to do. (Definitely don't let more recent requests stomp on / delete existing requests; that could be misused.)
If request is opened for existing user, pretend like we don't know that (to the browser-user), don't accept the duplicate request, but do contact the existing user to say "hey, someone just tried to open an account as you; if that was you, you have an account and can log in. If that wasn't you, neat! Be careful!"

Users

Look at CanCanCan and Rolify
Two primary roles: Admin (internal / Duke person) and User (external)
Within users, the only permission so far is "has MediaVault access", but could have others in the future
Email changes must be confirmed
MFA stretch goal (Authenticator app at least, security key preferred)

What fields does the application need to contain? (And which are required v. optional?)
I like these:

Name:                           [              ]
Email address:              [              ]
Organization affiliation (if any):       [              ]
What is your primary role?             (Select one…)
How do you plan to use the data?  [              ]
[ ] Accept T&Cs?
I'd say of them, organizational affiliation can be optional (or at least free text that accepts something like "none" or "n/a" but I think the rest should be required.

When an admin rejects an applicant, do we want an internal/private Reason/Explanation field?
This is one of those things that would be great to have, but I don't think is strictly necessary. Great for being able to refer back to if they pop back up again, or if a similar application pops up so we can go back to compare notes. But, we could also manage that in a Google Doc/Sheet -- if it's a huge lift to build into the platform, not necessary.

…do we want an external/public (communicated to the applicant) Reason/Explanation field?
Almost certainly want to communicate a reason/explanation via email when we get to that step in the approval process -- maybe when the admin goes to approve/reject there's a drop-down that lets us select a "reason for rejection" that gets sent in that email to the would-be user. But if they're not actually becoming users until after they're approved, I don't think they need to be able to "log in" and be presented with a "You were rejected because......" message, if that's what the question was.

These are all great, thanks Joel!
Re: internal Reason/Explanation field, it's super easy to add and no trouble at all. I'll plan to add it.
Re: external Reason/Explanation field:

You're correct that they won't be able to "log in" to view the reason since they won't have an account. This reason would just be included in the rejection email that was sent to them. Also, it would be optional; the admin could just leave it blank if they wanted. (The internal rejection field should be required, IMO, although the admin can just pick "Other" and provide no explanation.)
Should the external rejection reason be a drop-down menu of pre-selected options, plus an "Other" that allows fuller description? I guess the question here is how much explanation you want to provide the person in advance. If just a couple of words "Not in industry" then we can make do with drop-downs. If you intend to write a personalized note to the person, then a multi-line text field would be better.

It sounds to me like we have the architecture of registration/approval good to go, and the remaining issues (about how to express the "reason" UI) are details we can sort out during implementation.


icedtea-web

AdoptOpenJDK jdk8u292-b10 had command line support to install with base install.
I need clarification on continued support with version 8

Can you try the advice in this https://blog.adoptopenjdk.net/2018/10/using-icedtea-web-browser-plug-in-with-adoptopenjdk/ blog post and see if that works for you?  We're looking to provide updated guidance but need some early testers

yes I will be testing this week.


Increase journald logs max size

https://jira.mesosphere.com/browse/DCOS-43227

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@da37010). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1555   +/-   ##
=========================================
  Coverage          ?   83.03%
=========================================
  Files             ?       38
  Lines             ?     2552
  Branches          ?      106
=========================================
  Hits              ?     2119
  Misses            ?      430
  Partials          ?        3

Impacted Files
Coverage Δ

src/dcos_e2e/backends/_docker/_containers.py
100% <ø> (ø)

Continue to review full report at Codecov.

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


upgraded packages

upgrade react 16@latest
upgrade react-router@latest
upgrade redux-router-redux@next
etc..

could you please make sure project builds as expected?

yes. i will try to fix the tests tom.

@jasonvillalon thank you!

@altayaydemir im not sure how to make the tests work. when running test on each .test files, react component is not enclosed within Router.


Investigate GPU hang on Kubeflow env.

There's a report on GPU Hist hanging on Kubeflow environment without using dask.  I can't publish all the details yet, opening an issue as a reminder.
from sklearn.datasets import fetch_california_housing
import xgboost
data = fetch_california_housing()
X = data.data
y = data.target
param = {
    "eta": 0.05,
    "max_depth": 10,
    "tree_method": "gpu_hist",
}
dtrain = xgboost.DMatrix(X, label=y, feature_names=data.feature_names)
model = xgboost.train(param, dtrain,50)

For this issue the Kubeflow environment was installed following these steps: https://github.com/NVIDIA/deepops/blob/master/docs/k8s-cluster/kubeflow.md#installation
The Kubeflow environment was installed following these steps: https://github.com/NVIDIA/deepops/tree/master/docs/k8s-cluster
And this has been reproduced in several different environments on T4 and V100 GPUs running a base OS of Ubuntu 18.04.
This issue was first seen in the RAPIDS container v0.9 from NGC and was reproduced in the v0.17 container. The issue occurs in Kubeflow, but does not occur when launched directrly through Kubernetes.

For this issue the Kubeflow environment was installed following these steps: https://github.com/NVIDIA/deepops/blob/master/docs/k8s-cluster/kubeflow.md#installation
The Kubeflow environment was installed following these steps: https://github.com/NVIDIA/deepops/tree/master/docs/k8s-cluster
And this has been reproduced in several different environments on T4 and V100 GPUs running a base OS of Ubuntu 18.04.
This issue was first seen in the RAPIDS container v0.9 from NGC and was reproduced in the v0.17 container. The issue occurs in Kubeflow, but does not occur when launched directrly through Kubernetes.


merge from template-node-app

package.json

chore(deps): add ^12.3.0 remove ^12.2.0 (devDependencies.npm-pkgbuild)

:tada: This PR is included in version 6.4.5 :tada:
The release is available on:

npm package (@latest dist-tag)
v6.4.5
GitHub release

Your semantic-release bot :package::rocket:


Missing scheduled maintenance handling

Feature request

[x] I confirm that this is a feature request rather than a question.

Scheduled maintenance: I'm just giving a test run to your project. That went fine but I could not find any way to handle scheduled maintenance, ie have "incidents" be in the future but still be listed in some way, independently from the past incidents history.
Likewise, there's no way to easily display one or more messages to visitors, although it's not a requirement as scheduled maintenance is.

What problem does this feature solve?
A status page cannot really be used if you can't announce upcoming maintenance windows, their expected start time duration and update them when maintenance is happening.
What does the proposed API look like?
How should this be implemented in your opinion?
Are you willing to work on this yourself?**

+1 for this as well

Hello @weeblr.  Scheduled maintenance is planned for the v0.2.0 release. This is what we've got in mind:

They are not parsed as incidents, they are completely different "Objects"
They are defined as Markdown files in the folder ./content/scheduled.
4 Maintenance Status choices are allowed: Scheduled, In Progress, Verifying and Completed
They will be displayed on the homepage beneath the "Systems Container"
Parameters that can be defined: the Maintenance Start Date and End Date, the Affected Systems and Message.

Any comment you have is appreciated 🤓.

Hi
Thanks for your response. That sounds very good. I agree on making them totally separate objects, however, two comments:

will there be a "sheduled maintenance history" page? or will maintenance appear in the regular "History page"? I'd favor the latter.

I would suggest maintenance status are displayed above system containers, basically the first thing after logo/company presentation. Especially while they are not yet completed. At least when they are Scheduled
Once a maintenance has been Completed, I think it should appear in the regular history, either below systems status or on the history page.

CHeers

Commenting to keep this open.

Hi guys. Scheduled Maintenance is now available in the latest release.

Hi
Thanks for that. Doing npm update --save statusfy update me to v0.1.3.
Need to wait a bit more?
Best regards

@weeblr Try removing the node_modules folder fist.


[Fix] negative Rt in parameters forecast with fit_predict() for larger delay

Summary
With the current implementation of parameters forecast, sometimes the predicted Rt value can become negative if delay is large. For example I tried hardcoded delay of 30 days instead of the recovery period (changed delay to 30 in _fit_create_data()) and I ran the estimator for Greece. The result was to have a phase with extremely small duration (zero or one day) and
Rt to become negative:

Codes
import covsirphy as cs

data_loader = cs.DataLoader(directory="kaggle/input")
jhu_data = data_loader.jhu()
population_data = data_loader.population()
oxcgrt_data = data_loader.oxcgrt()

gre_scenario = cs.Scenario(jhu_data, population_data, "Greece")
gre_scenario.records().tail()
_ = gre_scenario.trend()
gre_scenario.estimate(cs.SIRF)
gre_scenario.add(name="Main", days=30)
gre_scenario.add(name="Forecast", days=30)
gre_scenario.fit_predict(oxcgrt_data=oxcgrt_data, name="Forecast").summary(name="Forecast")
gre_scenario.summary()
gre_sim_df_main = gre_scenario.simulate(name="Main")
gre_sim_df_forecast = gre_scenario.simulate(name="Forecast")

Environment

CovsirPhy version: 2.14.0-delta
Python version: 3.8
Installation: conda/pip
System: Windows

(This may be related to #513. 30 days may not be acceptable for Greece at this time.)

(This may be related to #513. 30 days may not be acceptable for Greece at this time.)

In version 2.16.2-kappa-fu2, delay-30 for Greece did not show negative values.
https://gist.github.com/lisphilar/4b889de957bbc3554a13062d531d6e94


Table 'ext_translations' doesn't exist

Hello there !
This is not a real issue, since I'm pretty sure it's all about me doing something wrong, but i still would like to get a heads-up about what it could be.
I'm trying to create a nested tree with translation handling. When I use the example as it given, everything works fine, but when I try to recreate it in a new application, I get this error, no matter whether I try an implementation using an extra translation class or without it:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ab_test.ext_translations' doesn't exist in /Users/andrey/nested-annotation/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php on line 47

I use a em.php file that's basically the same as in the examples but a little bit stripped off. The Category, CategoryTranslation and CategoryRepository classes are basically the sames as in the example.
Here is my test script:
<?php

use Doctrine\ORM\Query;

$em = include 'em.php';

$repository = $em->getRepository('Gedmo\Translatable\Entity\Translation');

$category = $em->getRepository('Entity\Category')->find(1);

$translations = $repository->findTranslations($category);

var_dump($translations);

and here is my composer.json file:
{
    "name": "nested-annotation",
    "require": {
        "php"                              : ">=5.3.3",
        "doctrine/orm"                     : "~2.3.0",
        "doctrine/common"                  : ">=2.2,<2.5-dev",
        "gedmo/doctrine-extensions"        : "~2.3.0",
    }
}

I thought maybe I'm missing something somewhere ?..
Sorry for this pretty vague description, but I don't really know where to look at the moment...
Thank you for your attention !

Hello,
I have the same problem, but I can't figure out where to put your "Gedmo\DoctrineExtensions::registerMappingIntoDriverChainORM(......"
Thanks ahead  !


golf=bunker should use surface

Given it's been agreed in #203 that other golf features use the surface tag to indicate their, err... surface, it appears illogical to auto add natural=sand to golf=bunker.
natural=* is a primary tag, designed to be used in isolation, not a supplementary, sub/adjective tag.
Oh, and not all bunkers are sand.

Earlier this year, the wiki still recommended natural=sand (or surface=sand), but I agree that surface would do a better job at it.

not all bunkers are sand.

Oh, really? What other types of bunkers exist? FWIW, at least the USGA considers bunkers to be a term specific for sandy obstacles:

Bunkers […] are specially prepared areas intended to test your ability to play a ball from the sand.

natural=* is a primary tag, designed to be used in isolation, not a supplementary, sub/adjective tag.

in some cases multiple primary tags may apply (though in this case using surface is not making things worse)
BTW,  #409 appears to request exact opposite

Earlier this year, the wiki still recommended natural=sand (or surface=sand), but I agree that surface would do a better job at it.

not all bunkers are sand.

Oh, really? What other types of bunkers exist?
https://www.golfcompendium.com/2019/10/grass-bunker.html
https://golf.com/travel/ways-architects-use-grass-hazards

Admittedly, they're much rarer, but they do exist, even in the US.

Hm… these things should probably be mapped as golf=rough instead of golf=bunker, as they are not actually bunkers:

Important note: Grass bunkers are not, technically, bunkers at all under the Rules of Golf.

in some cases multiple primary tags may apply

Disagree.
Primary: "First in a group or series.", "placed ahead of others."
Do you have any OSM examples?

Do you have any OSM examples?

amenity = drinking_water
man_made = water_tap

amenity = place_of_worship
man_made = cross

amenity = place_of_worship
building = chapel

amenity = shelter
building = yes

amenity = drinking_water
man_made = drinking_fountain
``

?!?
I'll discuss these on another forum as this one is inappropriate.

amenity = drinking_water
man_made = water_tap

Feel free to ping me here or via mail if that is not tagging mailing list or OSM wiki with ping template being used.

Oh, really? What other types of bunkers exist? FWIW, at least the USGA considers bunkers to be a term specific for sandy obstacles:

What you're actually quoting is The R&A. Their concern is with the likes of competition courses.
Around the world there are hundreds of smaller courses, municipal run pitch 'n' putt etc which can have grass covered craters to reduce maintenance costs.

To check, are there any other tags prescribing natural-sand or is this swap purely golf=bunker?
https://taghistory.raifer.tech/#***/natural/sand&***/surface/sand


Azure Kinect Body Tracking - Somebody found some fix for this issue?. I have the same problem.

Somebody found some fix for this issue?. I got the same problem.
Originally posted by @KikeVilla in https://github.com/microsoft/Azure-Kinect-Sensor-SDK/issues/1147#issuecomment-1143131937

AzureKinectBodyTrackingCreateException: result = K4A_RESULT_FAILED
Microsoft.Azure.Kinect.BodyTracking.Tracker.Create (Microsoft.Azure.Kinect.Sensor.Calibration calibration, Microsoft.Azure.Kinect.BodyTracking.TrackerConfiguration configuration) (at <59f09534e4254e89b28779441231cce7>:0)

Hi @KikeVilla
Before official merge you can try if changes made in this branch works for you.
Please follow the README.md there are some changes made there.

@KikeVilla
Merged https://github.com/microsoft/Azure-Kinect-Samples/pull/70

Thanks for your help, it works now.


Element cannot be located using click($("//input[name= 'button_name']") Need extra click add @ to locate elements ($("// input [@ name =' button_name']")) I hope to modify the example on Github and the official website to avoid others taking detours like me

Expected behavior
Element cannot be located using click($("//input[name= 'button_name']")
Need extra click add @ to locate elements ($("// input [@ name =' button_name']"))
I hope to modify the example on Github and the official website to avoid others taking detours like me
Steps to reproduce
https://github.com/getgauge/taiko

https://docs.taiko.dev/#get-started

Versions
node Versions:  v10.16.2
taiko Versions:  Version: 1.0.12 (Chromium:81.0.3994.0)

thanks for reporting @jennyjane - this is a mistake indeed. XPath attribute selectors should have @ prefixed to the keys.
Thanks for offering to fix this. A pull request would be most welcome!


Fix changelog text

Fixes https://github.com/Tufin/oasdiff/issues/305

Codecov Report

Merging #306 (17ae846) into main (57acd2f) will increase coverage by 0.02%.
The diff coverage is 100.00%.

:exclamation: Current head 17ae846 differs from pull request most recent head 4374a7e. Consider uploading reports for the commit 4374a7e to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #306      +/-   ##
==========================================
+ Coverage   79.47%   79.49%   +0.02%
==========================================
  Files         172      172
  Lines        9622     9632      +10
==========================================
+ Hits         7647     7657      +10
  Misses       1685     1685
  Partials      290      290

Flag
Coverage Δ

unittests
79.49% <100.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

internal/changelog.go
80.32% <100.00%> (+1.75%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Final improvements to make tests pass on GitHub CI

This is the last PR that finally makes the unit tests work. This PR also adds several other notes to help future contributors understand the workflow, and get it running locally.
There's one caveat
The expected-draft/paper.tex which outputs the current year. This gets there because of the following code:

https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/data/templates/default.latex#L155
self-citations is added in https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/data/filters/self-citation.lua#L33
which gets set in https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/data/filters/draft.lua#L8
which comes from https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/data/filters/time.lua#L28
which in theory, is modulated by setting the SOURCE_DATE_EPOCH in https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/Makefile#L97-L100

I think it's probably a fair compromise to remind ourselves once per year to update this rather than hacking more conditionals in there (at least on this pass)

Can we set SOURCE_DATE_EPOCH somewhere? That should make Inara use the given time instead of the current year.

Thanks for the idea. In theory, it's set here:
https://github.com/openjournals/inara/blob/c430b5b84ec3f7aefaae21b624bda3cefdca66fe/Makefile#L97-L100
which should get propagated through, but I'm not sure it's working correctly

@tarleb is the solution to change draft.lua to also look up the source date epoch? it doesn't seem like it reaches anywhere to check that as is
function Meta (meta)
  if meta.draft and meta.draft ~= '' then
    local epoch = os.getenv 'SOURCE_DATE_EPOCH'
      and os.time { year = 1970, month = 1, day = 1, hour = 0, min = 0,
                  sec = tonumber(os.getenv 'SOURCE_DATE_EPOCH') }
      or os.time()
    meta.article.doi = '10.xxxxxx/draft'
    meta.article.issue = '¿ISSUE?'
    meta.article.volume = '¿VOL?'
    meta.published = 'unpublished'
    meta.published_parts = os.date('*t', epoch)
    return meta
  end
end

:+1: that looks like the right thing to do.

@tarleb okay, all done

Awesome, thanks!!


SW-1895 Add endpoint to read seedling batches

Add the GET /api/v1/nursery/batches/{id} endpoint to retrieve a batch's data.

Current dependencies on/for this PR:

main

PR #674

PR #675

PR #676   👈

This comment was auto-generated by Graphite.

Current dependencies on/for this PR:

main

PR #674

PR #675

PR #676   👈

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: ⏳ Queued to merge
This pull request is currently queued to be merged as part of a stack.
This comment was auto-generated by Graphite.

Job Reference: WhpDUt6kORcaTLYUaLHI


When I store a tab the tab is not closed.

Chrome: Version 74.0.3729.169 (Official Build) (32-bit)
Better-onetab: Version: 1.4.5
Everything works fine but when a tab is stored in any way it does not get closed. I have to store the tab and then manually close the tab.

might be related
https://github.com/cnwangjie/better-onetab/issues/180#issue-443104849


Inappropriate test data in invalid-license-id-count

Hi,
working on cyclonedx-rust-cargo, I'm experiencing that invalid-license-id-count test data unexpectedly fails validation.
The code of cyclonedx-rust-cargo does not yet check for doubly defined id in license. However, the corresponding validation test fails.
Let me explain by referring to an example in invalid-license-id-count-1.4.xml, see below. From the test data's file name and comment provided in the file, I understand that defining id twice is no longer valid. In fact, the test concludes that this BOM is invalid. However, this is not because of the doubly defined id but because of the invalid license identifier: Apache-2 is not a valid SPDX identifier.
This is expected to fail and it fails but due to the wrong reason:
<licenses>
                <license>
                    <id>Apache-2</id>
                    <!-- This was a defect in schema 1.0 and is no longer permitted -->
                    <id>Apache-2</id>
                </license>
</licenses>

After changing the id to a valid SPDX identifier, the test unexpectedly passes validation. Of course, to make this fail, I've to update cyclonedx-rust-cargo. However, the test data is inappropriate to conduct this test and needs to be refined.
<licenses>
                <license>
                    <id>Apache-2.0</id>
                    <!-- This was a defect in schema 1.0 and is no longer permitted -->
                    <id>Apache-2.0</id>
                </license>
</licenses>

I'll file a PR to fix this. However, I want to check for other occurrences of this issue within test data.

The following files are affected by this issue:
invalid-license-id-count-1.[1-5].xml
Fun fact: my IDE even points me in the right direction. When I fix the SPDX Identifier, it correctly states that a double id attribute is not allowed.

thanks for bringing this to our attention.
your report solution sound reasonable. :+1:
please pullrequest your desired solution.

maybe use MIT as the SPRDX license ID in the tests.
It is shorter and easier to remember, and it is less likely to do mistakes


[Attention Performance] Flash Attention performance get to 80%~90% of XeTLA

we aim to get  80%+ of XeTLA
use python/tutorials/06-fused-attention.py as the test case.

#912
#913
#914
#915
#916
#917
#1102
#1103
#1192

(batch head n_ctx d_head causal) on max1100
for fwd_1x2x1024x32_true, xetla median is 4.7tflops
for fwd_1x2x1024x32_false, xetla median is 4.6tflops
for fwd_4x48x1024x64_true, xetla median is 110tflops
for fwd_4x48x1024x64_false, xetla median is 65tflops

For case fwd_4x48x1024x64_false (batch, num_head, n_ctx, dim_head, causal), it can get 61 tflops(the XeTLA max perf is 88 tflops, 61/88 = 70%) on GPU Max 1550.
end2end run with some hack code, but result data mismatch

need https://github.com/intel/intel-xpu-backend-for-triton/issues/1102 to close this umbrella issue.

since all sub issues closed.


Fix aktualizr-lite diagram typo and other fixes

A few minor issues I've found while going through the documentation

Docs for 3aeae3e9c47a1029c3104201ca4fdaef853f4393 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/1098/docs/artifacts/html/index.html


Discover alternative methods for generated endpoints

This approach uses the handle hook function which replicates basically what svelte-kit does for endpoints and import.meta.globEager loads the routes. I'm not stoked into this yet but i thought it's worth a look exploring.

I've decided against this


It detected a wrong version of Python

Environment data

VS Code version: 1.25.1
Extension version (available under the Extensions sidebar): 2018.6.0
OS and version: Windows 10 1830
Python version (& distribution if applicable, e.g. Anaconda): 3.7.0
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N/A
Relevant/affected Python packages and their versions: XXX

Actual behavior
I have upgraded Python 3.6.5 to 3.7.0. Why is this still 3.6?

Have you selected the python environment?
If not please select it.
The status bar shows the default python version.
Here's the documentation https://code.visualstudio.com/docs/python/environments#_select-an-environment

It can only choose Python 3.6

This would indicate the fact that 3.7 is not in the standard discoverable directories.
Please could you print the location of python 3.7 install directory.

Please try ring the following from command prompt and provide the output of each:

C:/Program Files/Python/python.exe --version
Python --version
Python -c "import sys;print(sys.executable)"

@DonJayamanne

Looks like something is wrong with the registry entries.
Please could you dump the registry entries for the following path:

HKEY_LOCAL_MACHINE\SOFTAWARE\Python
HKEY_CURRENT_USER\SOFTAWARE\Python


Clear debris clears currently not in arpnet Rockets.

Title. If they are not connected.

What is the problem ? that's supposed to be

But if you have a sat that has disconnected then it gets deleted

Message ID: @.***>

it will only destroy if you are controlling and not connected

thanks for the clarification


Uncaught Error: Google Charts loader.js can only be loaded once.

On /result page, fix this javascript error (can be seen opening the console): Uncaught Error: Google Charts loader.js can only be loaded once.
This might be helpful: https://stackoverflow.com/questions/18840178/redraw-google-chart-after-every-ajax-call

Fixed on 55c8527


fix #460 move the public configkey to ConfigurationKeys

Ⅰ. Describe what this PR did
move the public configkey to ConfigurationKeys
Ⅱ. Does this pull request fix one issue?
fix #460 move the public configkey to ConfigurationKeys
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #461 into develop will decrease coverage by <.01%.
The diff coverage is 12.5%.

@@              Coverage Diff              @@
##             develop     #461      +/-   ##
=============================================
- Coverage      28.67%   28.67%   -0.01%
  Complexity       642      642
=============================================
  Files            188      189       +1
  Lines           7256     7257       +1
  Branches         881      881
=============================================
  Hits            2081     2081
- Misses          4957     4958       +1
  Partials         218      218

Impacted Files
Coverage Δ
Complexity Δ

...m/alibaba/fescar/config/AbstractConfiguration.java
100% <ø> (ø)
16 <0> (ø)
:arrow_down:

...a/com/alibaba/fescar/config/ConfigurationKeys.java
0% <0%> (ø)
0 <0> (?)

...om/alibaba/fescar/config/ConfigurationFactory.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../com/alibaba/fescar/config/NacosConfiguration.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...r/discovery/registry/NacosRegistryServiceImpl.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...aba/fescar/discovery/registry/RegistryFactory.java
53.33% <100%> (ø)
2 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Update grid component height after Back-End data fully loads

I hope the subject line explains it,
Basically we load some data from the back-end that increases the height of a component. As a result, components right below render on top of the first component.
We have a way to change it by maybe updating the logic, however, I thought it would be a good idea to ask here as well. Maybe you have a function or something simpler to update the layout after back-end data is fully rendered.
Thank you!
Initially, the component is empty. I think the Grid renders its height according to the empty component

The data loads pushing the component down,

After I resize the browser, Grid rerenders and everything is placed in the right position.

@tsuyoshiwada without updateLayout() func calls, there is no way to update Layout?
I add transform css to each image while scrolling, it scales up from the little bottom. After scaling up, I call updateLayout() but no changes happens.
Could you help me to figure this out?
Thanks.


Disable drag-scrolling for specific child element

nochilddrag works great, but it affects every child element, and leaves just an empty space between them working.
Is there a way to exclude just a specific element from the grabbing area? It would be useful for inputs or other interactive elements.

I would appreciate having that feature too, but this package looks like is not maintained anymore, it was last commited in 2016.

nochilddrag works great, but it affects every child element, and leaves just an empty space between them working.
Is there a way to exclude just a specific element from the grabbing area? It would be useful for inputs or other interactive elements.

I have a click event on a text  inside drag-scroll component.I can see sometimes the event is not getting fired. Do anyone have any idea on this?

I have a click event on a text inside drag-scroll component.I can see sometimes the event is not getting fired. Do anyone have any idea on this?


API to render Violations Report

#425

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

8 of 112 (7.14%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.6%) to 88.267%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/api/v1/html_report.go
0
104
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.6%

Covered Lines:
5221

Relevant Lines:
5915

💛  - Coveralls


Correcting header of def files

The example of how to use \monster in the def file was wrong

Merging. Sorry I didn't see these PRs before now. I'm not the author but I'm apparently (I had forgotten :) ) one of the maintainers.


updated the eval script and the README to not need wandb

Updating the eval script to be more user friendly and not require the use of a wandb run.

This comes from issue #4

Thanks for the PR. This looks good. User can directly indicate the checkpoint and config from https://rail.eecs.berkeley.edu/datasets/bridge_release/checkpoints/
Also, I will open another PR to update the Readme on this.


Add protected constructor topic

This PR adds some documentation for private and protected constructor in Classes.md
(TypeScript-6885#comment)

I've created a new branch called release-2.0 where the content is available.


JupyterHub 1.4

The content looks good but why merge master back into your branch?

Merging master back was so that it would shut up about merge conflicts caused by updating the dependencies.

You should rebase your branch against master when this happens. (Unfortunately, GitHub doesn't provide a simple button to do that.) See https://developer.lsst.io/work/flow.html#merging (note the sentence "Also do not use the “Update my branch” button as that does a merge; rebase from the command line instead.").


added Tutorial and faucet curation website.

PR Template
Guidelines for Content

All resources should be submitted in markdown format in their respective subfolders in /content.
The filename should be a 'slugified' version of the title.
Date formats should be in YYYY-MM-DD.
Properties with a ? are optional.

Properties

title: string
description: string
content: string
authors: Array
date?: Date
level: 'All' | 'Beginner' | 'Intermediate' | 'Advanced'
tags: Array
languages: Array
url: string
alternateUrl?: string
dateAdded: Date

Additional Notes

Please check and use existing tags from the site https://www.useweb3.xyz/tags - Do not use any other tags. If you feel like something is missing, please create a separate issue/PR.
Please check and use existing programming languages from the site https://www.useweb3.xyz/tags - Feel free to add new languages, but only submit actual programming languages (not protocols or other tags).

Thank you for your contribution!

Thanks again @chandn0 🙏

Thank you for maintaining this resourceful website
On Fri, 18 Aug 2023 at 16:17, Wesley @.***> wrote:

Thanks again @chandn0 https://github.com/chandn0 🙏
—
Reply to this email directly, view it on GitHub
https://github.com/wslyvh/useWeb3/pull/129#issuecomment-1683729666, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AVWZY6EG3ODIUNA5VWKUXBDXV5B3PANCNFSM6AAAAAA3VKPJ44
.
You are receiving this because you were mentioned.Message ID:
@.***>


Hooking member functions

Hi, I guess hooking member functions is not possible since you have to actually declare two different delegates:
The THISCALL delegate which just takes ECX as the this pointer, and the FASTCALL delegate for the actual detour function which takes ECX and EDX as parameters.

I am dumb, it actuall worked like a charm, I dont know why but it worked.


a Fast Forward Feature for UTM SE

we already know that UTM SE's emulation is really slow, so why not add a feature called “Fast Forward”?
it is a button that speeds up the emulation to skip long booting and slow emulation, just like the Fast Forward Feature in RetroArch to skip Cutscenes!
the fast forward speeds can be from 2x all the way to 1000x, which can be configured during emulation in a text box!
and add a “reset” button so we can reset the fast forward speed to 1x!

UTM SE isn't slow because we thought that was a fun thing to do.

You’re right, that’s why i think that the Fast Forward Feature should be added!

Okay once you download some more RAM for your device, we'll add it.

Okay once you download some more RAM for your device, we'll add it.

i have an M1 ipad pro with 8GB of RAM, so it’s good for emulation for old OSes (e.g Windows XP, Ubuntu 12.04)


generator code cleanup:  is flag "include_sampling" necessary?

Summary:
code generation functions generate_statement and generate_statements take flag include_sampling  - investigate whether or not there is a scope object that provides the same information.

reviewed code:  flag "include_sampling" isn't needed by generator as parser semantic actions insure that sampling statements are only allowed in model block and function body.
flag "include_sampling" is used exactly once in src/stan/lang/generator/statement_visgen.hpp in which it will silently return if trying to generate a sample statement in environment where sampling not allowed - don't see how this can arise, given parser checks, or why the silent return would be the right thing to do.

fixed, PR #2415


Add Netcdf with also it's variant Netcdf Ugrid (for unstructured data)

Good to have these new formats for mesh data as there are frequently used.
This is possible to use xarray to vreate netcdf file in python, so I think this could be quite easy to adapt meshio.
Regards

NetCDF is a general data format, so that's not something to support here. I could look at ugrid though. Do you have some example files?

Never mind, I figured it out. Will be part of the next release.

I can't find anything about this? Will this be part of the meshio-rewrite?

Yep.


⚠ Bofrost.be has degraded performance

In 3ff9545, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1048 ms

Resolved: Bofrost.be performance has improved in 392e332.


Reducing the memory needed

I tried to run it on a Raspberry Pi 3, with 1 GB of RAM (around 600 mb free) to focus stack some 18MP images. The program crashes (gets killed) after 10 pics or so.
I was wondering if it would be feasible to add a mode where only a few images are processed at once, and then the results of those merges are merged with each other in order to allow for an arbitrarily number of pictures to be merged.
Some guys use 10K+ photos in a stack, so probably that wouldn't work even on server grade computers.

That's already how it works after #4 was fixed.
The batch size is 8 images, each of which will have a 1-3 temporary copies, one of which is in 32-bit float space. A 18MPixel image takes 72 MBytes itself and 216 MBytes as floats, so you can expect around (72*2+216)*8 = 2880 MByte usage just for the images for each batch. In practice this will vary a bit depending on how the individual tasks get scheduled, as all temporary copies are freed as soon as possible.
You could try --threads=2 or --threads=1 to reduce the number of parallel tasks. With a single thread the memory consumption should be the lowest currently possible.
For such large images, one would have to batch not only individual images, but process only a small area of each image at a time. That may be a worthy option to add in the future, but I'm not currently planning to do so. It would complicate the alignment quite a bit, though perhaps per-area alignment could also be beneficial if done well (avoiding seams between blocks).

That's already how it works after #4 was fixed.
The batch size is 8 images, each of which will have a 1-3 temporary copies, one of which is in 32-bit float space. A 18MPixel image takes 72 MBytes itself and 216 MBytes as floats, so you can expect around (72*2+216)*8 = 2880 MByte usage just for the images for each batch. In practice this will vary a bit depending on how the individual tasks get scheduled, as all temporary copies are freed as soon as possible.
You could try --threads=2 or --threads=1 to reduce the number of parallel tasks. With a single thread the memory consumption should be the lowest currently possible.
For such large images, one would have to batch not only individual images, but process only a small area of each image at a time. That may be a worthy option to add in the future, but I'm not currently planning to do so. It would complicate the alignment quite a bit, though perhaps per-area alignment could also be beneficial if done well (avoiding seams between blocks).

Hmm, would it be possible to have lower batches, such as 2 pictures instead of 8?

Hmm, would it be possible to have lower batches, such as 2 pictures instead of 8?

You can try modifying it here, perhaps it could even be brought out as a command line option: https://github.com/PetteriAimonen/focus-stack/blob/master/src/focusstack.cc#L102

You can try modifying it here, perhaps it could even be brought out as a command line option: https://github.com/PetteriAimonen/focus-stack/blob/master/src/focusstack.cc#L102