[BUG]app crashed when click on tree node

Remember to search before filing a new report
no similar issue found.
Describe the bug
I'm writing a little desktop app on Mac and using Tree.
The core code is
let mut tree = Tree::default().with_size(w, h);
        tree.set_root_label(".");
        tree.set_select_mode(TreeSelect::Multi);
        tree.set_color(Color::Blue);
        for i in 0 .. 5 {
            let ti = TreeItem::new(&tree, &*("item".to_owned() + &*i.to_string()));
            tree.add_item("2/2/3/1", &ti);
        }

     //   for i in 0 .. 5 {
     //       tree.add(&*("item".to_owned() + &*i.to_string()));
      //  }

        tree.set_callback(|t| {
            if let Some(items) = t.get_selected_items() {
                for i in items {
                    println!("{} selected", t.item_pathname(&i).unwrap());
                }
            }
        });

when the 2nd for block is commented out, the app runs well. But after I added it to logic, when I click on any tree node, the App will crash.
Process finished with exit code 139 (interrupted by signal 11:SIGSEGV)
To Reproduce
see  code above.
fltk=1.4.28
Expected behavior
no crash.
Screenshots

Desktop info

OS: macOS sonoma
Version 14.2.1

Additional info
System catch info :
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               json-hand [32745]
Path:                  /Users/USER/*/json-hand
Identifier:            json-hand
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        rustrover [84570]
Responsible:           rustrover [84570]
User ID:               505

Date/Time:             2024-05-07 17:42:03.6864 +0800
OS Version:            macOS 14.2.1 (23C71)
Report Version:        12
Bridge OS Version:     8.3 (21P3049)
Anonymous UUID:        4224A5B2-C349-6F4D-4091-6ACCFE19868C

Sleep/Wake UUID:       9FE61372-0955-49AD-AB03-A476334CB9AB

Time Awake Since Boot: 61000 seconds
Time Since Wake:       30194 seconds

System Integrity Protection: enabled

Crashed Thread:        0  main  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000028
Exception Codes:       0x0000000000000001, 0x0000000000000028

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [32745]

VM Region Info: 0x28 is not in any region.  Bytes before following region:<PHONE_NUMBER>30008
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->
      shared memory            7ffffffc9000-7ffffffca000 [    4K] r-x/r-x SM=SHM

Thread 0 Crashed:: main Dispatch queue: com.apple.main-thread
0   json-hand                     	       0x10a48993b Fl_Tree_Item::find_clicked(Fl_Tree_Prefs const&, int) const + 11
1   json-hand                     	       0x10a486d24 Fl_Tree::handle(int) + 308
2   json-hand                     	       0x10a462e42 Widget_Derived<Fl_Tree>::handle(int) + 34
3   json-hand                     	       0x10a469b62 Fl_Group::handle(int) + 754
4   json-hand                     	       0x10a461252 Widget_Derived<Fl_Pack>::handle(int) + 34
5   json-hand                     	       0x10a469b62 Fl_Group::handle(int) + 754
6   json-hand                     	       0x10a461252 Widget_Derived<Fl_Pack>::handle(int) + 34
7   json-hand                     	       0x10a469b62 Fl_Group::handle(int) + 754
8   json-hand                     	       0x10a460b22 Widget_Derived<Fl_Double_Window>::handle(int) + 34
9   json-hand                     	       0x10a464733 send_event(int, Fl_Widget*, Fl_Window*) + 147
10  json-hand                     	       0x10a463e96 Fl::handle_(int, Fl_Window*) + 214
11  json-hand                     	       0x10a4b59d0 cocoaMouseHandler(NSEvent*) + 1072
12  AppKit                        	    0x7ff80a1ea891 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 4580
13  AppKit                        	    0x7ff80a163572 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 404
14  AppKit                        	    0x7ff80a1631c3 -[NSWindow(NSEventRouting) sendEvent:] + 345
15  AppKit                        	    0x7ff80a8fa212 -[NSApplication(NSEventRouting) sendEvent:] + 346
16  json-hand                     	       0x10a4b280b Fl_Darwin_System_Driver::wait(double) + 587
17  json-hand                     	       0x10a4633e1 Fl::run() + 49
18  json-hand                     	       0x10a44f448 fltk::app::rt::run::h10d246a8c77088e3 + 88
19  json-hand                     	       0x10a446f04 fltk::app::App::run::he5ae025f91e828f8 + 20
20  json-hand                     	       0x10a41a132 json_hand::main::h9e6f1d69c4ee2904 + 146 (main.rs:22)
21  json-hand                     	       0x10a41fdae core::ops::function::FnOnce::call_once::h95e6b764449003e1 + 14 (function.rs:250)
22  json-hand                     	       0x10a4234e1 std::sys_common::backtrace::__rust_begin_short_backtrace::h2b67409ab47305ac + 17 (backtrace.rs:155)
23  json-hand                     	       0x10a425d74 std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h5327e065a2697704 + 20 (rt.rs:166)
24  json-hand                     	       0x10a538730 std::rt::lang_start_internal::h963c626e0d7ddd6e + 800
25  json-hand                     	       0x10a425d47 std::rt::lang_start::hbba52a207ce59bcd + 55 (rt.rs:165)
26  json-hand                     	       0x10a41a178 main + 24
27  dyld                          	    0x7ff806590386 start + 1942

Thread 1:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 2:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 3:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 4:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	    0x7ff8068dba2e mach_msg2_trap + 10
1   libsystem_kernel.dylib        	    0x7ff8068e9e3a mach_msg2_internal + 84
2   libsystem_kernel.dylib        	    0x7ff8068e2b62 mach_msg_overwrite + 653
3   libsystem_kernel.dylib        	    0x7ff8068dbd1f mach_msg + 19
4   CoreFoundation                	    0x7ff8069f71b5 __CFRunLoopServiceMachPort + 143
5   CoreFoundation                	    0x7ff8069f5c25 __CFRunLoopRun + 1371
6   CoreFoundation                	    0x7ff8069f5102 CFRunLoopRunSpecific + 557
7   AppKit                        	    0x7ff80a160fac _NSEventThread + 122
8   libsystem_pthread.dylib       	    0x7ff80691b202 _pthread_start + 99
9   libsystem_pthread.dylib       	    0x7ff806916bab thread_start + 15

Thread 5:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 6:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 7:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 8:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 9:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 10:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 11:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 12:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 13:
0   libsystem_pthread.dylib       	    0x7ff806916b88 start_wqthread + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x00007fd3f33060f0  rcx: 0x00000000922f77fb  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x00007fd3f33061b8  rbp: 0x00007ff7b5af4420  rsp: 0x00007ff7b5af4400
   r8: 0x00000000000001ff   r9: 0x00000000924f7809  r10: 0x00000000000001ef  r11: 0x00000000000007fb
  r12: 0x0000000000000040  r13: 0x0000000000000100  r14: 0x00007fd3f33061b8  r15: 0x0000000000000001
  rip: 0x000000010a48993b  rfl: 0x0000000000010246  cr2: 0x0000000000000028

Logical CPU:     8
Error Code:      0x00000004 (no mapping for user data read)
Trap Number:     14

Thread 0 instruction stream:
  44 89 f1 41 89 d8 48 83-c4 08 5b 41 5c 41 5d 41  D..A..H...[A\A]A^A_].
  0f 1f 44 00 00 55 48 89-e5 41 57 41 56 41 54 53  ..D..UH..AWAVATS
 [0f]b7 47 28 a8 02 0f 84-8f 00 00 00 41 89 d6 49  ..G(........A..I	<==
  89 f7 48 89 fb 48 83 bf-90 00 00 00 00 75 07 41  ..H..H.......u.A
  80 7f 71 00 74 1c 45 85-f6 74 53 48 8d 0d bf 48  ..q.t.E..tSH...H
  11 00 8b 09 8b 53 30 39-d1 7c 07 03 53 38 39 d1  .....S09.|..S89.
  7e 5b a8 01 74 55 83 bb-80 00 00 00 00 7e 4c 45  ~[..tU.......~LE
  31 e4 0f 1f 00 48 8b 43-78 4a 8b 3c e0 4c 89 fe  1....H.CxJ.<.L..

Binary Images:
       0x11492a000 -        0x114939fff libobjc-trampolines.dylib (*) <d413ddb6-5356-3966-be97-ab6fe09421a2> /usr/lib/libobjc-trampolines.dylib
       0x10a40a000 -        0x10a585fff json-hand (*) <f4558e6a-f57f-38d9-be29-68516747c462> /Users/USER/*/json-hand
    0x7ff809fc5000 -     0x7ff80b3d1ffb com.apple.AppKit (6.9) <20292f0b-3eb2-3566-91e2-ea657457d71d> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x7ff80658a000 -     0x7ff8066263bf dyld (*) <ab17bf63-259b-3b48-8d70-863166a2191c> /usr/lib/dyld
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
    0x7ff806915000 -     0x7ff806920fff libsystem_pthread.dylib (*) <a9ba8a53-d774-3fe9-8bde-64187bff7ea9> /usr/lib/system/libsystem_pthread.dylib
    0x7ff8068da000 -     0x7ff806914ff7 libsystem_kernel.dylib (*) <9927a0a9-dfa8-3ffa-88d8-62055f37a137> /usr/lib/system/libsystem_kernel.dylib
    0x7ff80697b000 -     0x7ff806e15fec com.apple.CoreFoundation (6.9) <37924b83-2695-3956-b7ee-657a50e43c18> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 17
    thread_create: 0
    thread_set_state: 100

VM Region Summary:
ReadOnly portion of Libraries: Total=485.7M resident=0K(0%) swapped_out_or_unallocated=485.7M(100%)
Writable regions: Total=694.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=694.2M(100%)

                                VIRTUAL   REGION
REGION TYPE                        SIZE    COUNT (non-coalesced)
===========                     =======  =======
Accelerate framework               128K        1
Activity Tracing                   256K        1
CG image                          7576K        5
CG raster data                    7504K        1
ColorSync                          252K       33
CoreAnimation                      172K       21
CoreGraphics                        12K        2
CoreServices                       620K        2
CoreUI image data                 1196K        9
Foundation                          16K        1
Kernel Alloc Once                    8K        1
MALLOC                           670.7M       73
MALLOC guard page                   32K        8
STACK GUARD                         52K       13
Stack                             14.6M       15
Stack Guard                       56.0M        1
VM_ALLOCATE                        180K       12
__CTF                               824        1
__DATA                            18.7M      361
__DATA_CONST                      18.5M      224
__DATA_DIRTY                       801K      111
__FONT_DATA                        2352        1
__LINKEDIT                       181.9M        4
__OBJC_RO                         71.1M        1
__OBJC_RW                         2169K        2
__TEXT                           303.9M      380
dyld private memory                260K        2
mapped file                      179.8M       26
shared memory                     1304K       19
===========                     =======  =======
TOTAL                              1.5G     1331

-----------
Full Report
-----------

{"app_name":"json-hand","timestamp":"2024-05-07 17:42:04.00 +0800","app_version":"","slice_uuid":"f4558e6a-f57f-38d9-be29-68516747c462","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.2.1 (23C71)","roots_installed":0,"incident_id":"C37F8D1D-7563-41F3-A94C-DD1ED2D7C280","name":"json-hand"}
{
  "uptime" : 61000,
  "procRole" : "Foreground",
  "version" : 2,
  "userID" : 505,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro15,1",
  "coalitionID" : 4796,
  "osVersion" : {
    "train" : "macOS 14.2.1",
    "build" : "23C71",
    "releaseType" : "User"
  },
  "captureTime" : "2024-05-07 17:42:03.6864 +0800",
  "codeSigningMonitor" : 0,
  "incident" : "C37F8D1D-7563-41F3-A94C-DD1ED2D7C280",
  "pid" : 32745,
  "cpuType" : "X86-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2024-05-07 17:42:00.4327 +0800",
  "procStartAbsTime" :<PHONE_NUMBER>4737,
  "procExitAbsTime" :<PHONE_NUMBER>1688,
  "procName" : "json-hand",
  "procPath" : "\/Users\/USER\/*\/json-hand",
  "parentProc" : "rustrover",
  "parentPid" : 84570,
  "coalitionName" : "com.jetbrains.rustrover-EAP",
  "crashReporterKey" : "4224A5B2-C349-6F4D-4091-6ACCFE19868C",
  "responsiblePid" : 84570,
  "responsibleProc" : "rustrover",
  "codeSigningID" : "",
  "codeSigningTeamID" : "",
  "codeSigningValidationCategory" : 0,
  "codeSigningTrustLevel" :<PHONE_NUMBER>,
  "wakeTime" : 30194,
  "bridgeVersion" : {"build":"21P3049","train":"8.3"},
  "sleepWakeUUID" : "9FE61372-0955-49AD-AB03-A476334CB9AB",
  "sip" : "enabled",
  "vmRegionInfo" : "0x28 is not in any region.  Bytes before following region:<PHONE_NUMBER>30008\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      shared memory            7ffffffc9000-7ffffffca000 [    4K] r-x\/r-x SM=SHM  ",
  "exception" : {"codes":"0x0000000000000001, 0x0000000000000028","rawCodes":[1,40],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000028"},
  "termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":32745},
  "vmregioninfo" : "0x28 is not in any region.  Bytes before following region:<PHONE_NUMBER>30008\n      REGION TYPE                    START - END         [ VSIZE] PRT\/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      shared memory            7ffffffc9000-7ffffffca000 [    4K] r-x\/r-x SM=SHM  ",
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":100,"task_for_pid":17},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"queue":"com.apple.main-thread","instructionState":{"instructionStream":{"bytes":[68,137,241,65,137,216,72,131,196,8,91,65,92,65,93,65,94,65,95,93,255,224,65,131,207,1,131,203,1,65,57,223,127,31,15,31,0,73,139,125,0,72,139,7,68,137,246,68,137,250,255,144,192,0,0,0,65,131,199,2,65,57,223,126,228,72,131,196,8,91,65,92,65,93,65,94,65,95,93,195,15,31,68,0,0,85,72,137,229,65,87,65,86,65,84,83,15,183,71,40,168,2,15,132,143,0,0,0,65,137,214,73,137,247,72,137,251,72,131,191,144,0,0,0,0,117,7,65,128,127,113,0,116,28,69,133,246,116,83,72,141,13,191,72,17,0,139,9,139,83,48,57,209,124,7,3,83,56,57,209,126,91,168,1,116,85,131,187,128,0,0,0,0,126,76,69,49,228,15,31,0,72,139,67,120,74,139,60,224,76,137,254],"offset":96}},"frames":[{"imageOffset":522555,"symbol":"Fl_Tree_Item::find_clicked(Fl_Tree_Prefs const&, int) const","symbolLocation":11,"imageIndex":1},{"imageOffset":511268,"symbol":"Fl_Tree::handle(int)","symbolLocation":308,"imageIndex":1},{"imageOffset":364098,"symbol":"Widget_Derived<Fl_Tree>::handle(int)","symbolLocation":34,"imageIndex":1},{"imageOffset":392034,"symbol":"Fl_Group::handle(int)","symbolLocation":754,"imageIndex":1},{"imageOffset":356946,"symbol":"Widget_Derived<Fl_Pack>::handle(int)","symbolLocation":34,"imageIndex":1},{"imageOffset":392034,"symbol":"Fl_Group::handle(int)","symbolLocation":754,"imageIndex":1},{"imageOffset":356946,"symbol":"Widget_Derived<Fl_Pack>::handle(int)","symbolLocation":34,"imageIndex":1},{"imageOffset":392034,"symbol":"Fl_Group::handle(int)","symbolLocation":754,"imageIndex":1},{"imageOffset":355106,"symbol":"Widget_Derived<Fl_Double_Window>::handle(int)","symbolLocation":34,"imageIndex":1},{"imageOffset":370483,"symbol":"send_event(int, Fl_Widget*, Fl_Window*)","symbolLocation":147,"imageIndex":1},{"imageOffset":368278,"symbol":"Fl::handle_(int, Fl_Window*)","symbolLocation":214,"imageIndex":1},{"imageOffset":702928,"symbol":"cocoaMouseHandler(NSEvent*)","symbolLocation":1072,"imageIndex":1},{"imageOffset":2250897,"symbol":"-[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:]","symbolLocation":4580,"imageIndex":2},{"imageOffset":1697138,"symbol":"-[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:]","symbolLocation":404,"imageIndex":2},{"imageOffset":1696195,"symbol":"-[NSWindow(NSEventRouting) sendEvent:]","symbolLocation":345,"imageIndex":2},{"imageOffset":9654802,"symbol":"-[NSApplication(NSEventRouting) sendEvent:]","symbolLocation":346,"imageIndex":2},{"imageOffset":690187,"symbol":"Fl_Darwin_System_Driver::wait(double)","symbolLocation":587,"imageIndex":1},{"imageOffset":365537,"symbol":"Fl::run()","symbolLocation":49,"imageIndex":1},{"imageOffset":283720,"symbol":"fltk::app::rt::run::h10d246a8c77088e3","symbolLocation":88,"imageIndex":1},{"imageOffset":249604,"symbol":"fltk::app::App::run::he5ae025f91e828f8","symbolLocation":20,"imageIndex":1},{"imageOffset":65842,"sourceLine":22,"sourceFile":"main.rs","symbol":"json_hand::main::h9e6f1d69c4ee2904","imageIndex":1,"symbolLocation":146},{"imageOffset":89518,"sourceLine":250,"sourceFile":"function.rs","symbol":"core::ops::function::FnOnce::call_once::h95e6b764449003e1","imageIndex":1,"symbolLocation":14},{"imageOffset":103649,"sourceLine":155,"sourceFile":"backtrace.rs","symbol":"std::sys_common::backtrace::__rust_begin_short_backtrace::h2b67409ab47305ac","imageIndex":1,"symbolLocation":17},{"imageOffset":114036,"sourceLine":166,"sourceFile":"rt.rs","symbol":"std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::h5327e065a2697704","imageIndex":1,"symbolLocation":20},{"imageOffset":1238832,"symbol":"std::rt::lang_start_internal::h963c626e0d7ddd6e","symbolLocation":800,"imageIndex":1},{"imageOffset":113991,"sourceLine":165,"sourceFile":"rt.rs","symbol":"std::rt::lang_start::hbba52a207ce59bcd","imageIndex":1,"symbolLocation":55},{"imageOffset":65912,"symbol":"main","symbolLocation":24,"imageIndex":1},{"imageOffset":25478,"symbol":"start","symbolLocation":1942,"imageIndex":3}],"id":37915197,"triggered":true,"threadState":{"r13":{"value":256},"rax":{"value":0},"rflags":{"value":66118},"cpu":{"value":8},"r14":{"value":140548294861240},"rsi":{"value":140548294861240},"r8":{"value":511},"cr2":{"value":40},"rdx":{"value":0},"r10":{"value":495},"r9":{"value":2454681609},"r15":{"value":1},"rbx":{"value":140548294861040},"trap":{"value":14,"description":"(no mapping for user data read)"},"err":{"value":4},"r11":{"value":2043},"rip":{"value":4467497275,"matchesCrashFrame":1},"rbp":{"value":140701881812000},"rsp":{"value":140701881811968},"r12":{"value":64},"rcx":{"value":2452584443},"flavor":"x86_THREAD_STATE","rdi":{"value":0}},"name":"main"},{"id":37915277,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":1},"rsi":{"value":4611},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145357316096},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":123145357839224},"rbx":{"value":123145357840384},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145357840384},"r12":{"value":5193733},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145357840384}}},{"id":37915279,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":5379},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145357852672},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145358376960},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145358376960},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145358376960}}},{"id":37915303,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":20995},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145358389248},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145358913536},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145358913536},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145358913536}}},{"id":37915414,"name":"com.apple.NSEventThread","threadState":{"r13":{"value":21592279046},"rax":{"value":268451845},"rflags":{"value":518},"cpu":{"value":0},"r14":{"value":2},"rsi":{"value":21592279046},"r8":{"value":0},"cr2":{"value":0},"rdx":{"value":8589934592},"r10":{"value":178133768601600},"r9":{"value":178133768601600},"r15":{"value":178133768601600},"rbx":{"value":123145359982688},"trap":{"value":133},"err":{"value":16777263},"r11":{"value":518},"rip":{"value":140703238568494},"rbp":{"value":123145359982528},"rsp":{"value":123145359982424},"r12":{"value":4294967295},"rcx":{"value":123145359982424},"flavor":"x86_THREAD_STATE","rdi":{"value":123145359982688}},"frames":[{"imageOffset":6702,"symbol":"mach_msg2_trap","symbolLocation":10,"imageIndex":6},{"imageOffset":65082,"symbol":"mach_msg2_internal","symbolLocation":84,"imageIndex":6},{"imageOffset":35682,"symbol":"mach_msg_overwrite","symbolLocation":653,"imageIndex":6},{"imageOffset":7455,"symbol":"mach_msg","symbolLocation":19,"imageIndex":6},{"imageOffset":508341,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":143,"imageIndex":7},{"imageOffset":502821,"symbol":"__CFRunLoopRun","symbolLocation":1371,"imageIndex":7},{"imageOffset":499970,"symbol":"CFRunLoopRunSpecific","symbolLocation":557,"imageIndex":7},{"imageOffset":1687468,"symbol":"_NSEventThread","symbolLocation":122,"imageIndex":2},{"imageOffset":25090,"symbol":"_pthread_start","symbolLocation":99,"imageIndex":5},{"imageOffset":7083,"symbol":"thread_start","symbolLocation":15,"imageIndex":5}]},{"id":37915431,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":45315},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145359998976},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145360523264},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145360523264},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145360523264}}},{"id":37915432,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":63491},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145360535552},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145361059840},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145361059840},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145361059840}}},{"id":37915433,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":63235},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145361072128},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145361596416},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145361596416},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145361596416}}},{"id":37915434,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":45571},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145361608704},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145362132992},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145362132992},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145362132992}}},{"id":37915435,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":62979},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145362145280},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145362669568},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145362669568},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145362669568}}},{"id":37915436,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":62723},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145362681856},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145363206144},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145363206144},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145363206144}}},{"id":37915437,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":62467},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145363218432},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145363742720},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145363742720},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145363742720}}},{"id":37915438,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":45827},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145363755008},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145364279296},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145364279296},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145364279296}}},{"id":37916863,"frames":[{"imageOffset":7048,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":5}],"threadState":{"r13":{"value":0},"rax":{"value":33554800},"rflags":{"value":512},"cpu":{"value":0},"r14":{"value":0},"rsi":{"value":127799},"r8":{"value":409604},"cr2":{"value":0},"rdx":{"value":123145358925824},"r10":{"value":0},"r9":{"value":18446744073709551615},"r15":{"value":0},"rbx":{"value":123145359450112},"trap":{"value":133},"err":{"value":33554800},"r11":{"value":582},"rip":{"value":140703238810504},"rbp":{"value":0},"rsp":{"value":123145359450112},"r12":{"value":0},"rcx":{"value":0},"flavor":"x86_THREAD_STATE","rdi":{"value":123145359450112}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "x86_64h",
    "base" :<PHONE_NUMBER>,
    "size" : 65536,
    "uuid" : "d413ddb6-5356-3966-be97-ab6fe09421a2",
    "path" : "\/usr\/lib\/libobjc-trampolines.dylib",
    "name" : "libobjc-trampolines.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" :<PHONE_NUMBER>,
    "size" : 1556480,
    "uuid" : "f4558e6a-f57f-38d9-be29-68516747c462",
    "path" : "\/Users\/USER\/*\/json-hand",
    "name" : "json-hand"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" :<PHONE_NUMBER>47456,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.AppKit",
    "size" : 21024764,
    "uuid" : "20292f0b-3eb2-3566-91e2-ea657457d71d",
    "path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit",
    "name" : "AppKit",
    "CFBundleVersion" : "2487.30.108"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" :<PHONE_NUMBER>88384,
    "size" : 639936,
    "uuid" : "ab17bf63-259b-3b48-8d70-863166a2191c",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" :<PHONE_NUMBER>03456,
    "size" : 49152,
    "uuid" : "a9ba8a53-d774-3fe9-8bde-64187bff7ea9",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64",
    "base" :<PHONE_NUMBER>61792,
    "size" : 241656,
    "uuid" : "9927a0a9-dfa8-3ffa-88d8-62055f37a137",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "x86_64h",
    "base" :<PHONE_NUMBER>21248,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 4829165,
    "uuid" : "37924b83-2695-3956-b7ee-657a50e43c18",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "2202"
  }
],
  "sharedCache" : {
  "base" :<PHONE_NUMBER>92064,
  "size" :<PHONE_NUMBER>6,
  "uuid" : "2a323ece-7dbf-33e2-9ef3-3390c59ddc35"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=485.7M resident=0K(0%) swapped_out_or_unallocated=485.7M(100%)\nWritable regions: Total=694.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=694.2M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nAccelerate framework               128K        1 \nActivity Tracing                   256K        1 \nCG image                          7576K        5 \nCG raster data                    7504K        1 \nColorSync                          252K       33 \nCoreAnimation                      172K       21 \nCoreGraphics                        12K        2 \nCoreServices                       620K        2 \nCoreUI image data                 1196K        9 \nFoundation                          16K        1 \nKernel Alloc Once                    8K        1 \nMALLOC                           670.7M       73 \nMALLOC guard page                   32K        8 \nSTACK GUARD                         52K       13 \nStack                             14.6M       15 \nStack Guard                       56.0M        1 \nVM_ALLOCATE                        180K       12 \n__CTF                               824        1 \n__DATA                            18.7M      361 \n__DATA_CONST                      18.5M      224 \n__DATA_DIRTY                       801K      111 \n__FONT_DATA                        2352        1 \n__LINKEDIT                       181.9M        4 \n__OBJC_RO                         71.1M        1 \n__OBJC_RW                         2169K        2 \n__TEXT                           303.9M      380 \ndyld private memory                260K        2 \nmapped file                      179.8M       26 \nshared memory                     1304K       19 \n===========                     =======  ======= \nTOTAL                              1.5G     1331 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "name" : "main",
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "c7be63ca4f860cd88b1446b6831f58604a0730a0",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "61675b89201f677a9a4cbd65",
      "factorPackIds" : {
        "HEALTH_FEATURE_AVAILABILITY" : "65a855f5f087695cfac03d1f"
      },
      "deploymentId" : 240000116
    },
    {
      "rolloutId" : "632c763c58740028737bfdd2",
      "factorPackIds" : {
        "SIRI_DIALOG_ASSETS" : "64a57d23fa6fd41b2353e2ae"
      },
      "deploymentId" : 240000034
    }
  ],
  "experiments" : [
    {
      "treatmentId" : "5d85d104-adc7-4ebf-8b7c-96d84fdad9cc",
      "experimentId" : "6384d56b96e8d228551ec182",
      "deploymentId" : 400000032
    }
  ]
}
}

Model: MacBookPro15,1, BootROM 2<IP_ADDRESS>.1 (iBridge: 21.16.3049.0.0,0), 6 processors, 6-Core Intel Core i7, 2.2 GHz, 16 GB, SMC
Graphics: Intel UHD Graphics 630, Intel UHD Graphics 630, Built-In
Display: Color LCD, 2880 x 1800 Retina, Main, MirrorOff, Online
Graphics: Radeon Pro 555X, Radeon Pro 555X, PCIe, 4 GB
Memory Module: BANK 0/ChannelA-DIMM0, 8 GB, DDR4, 2400 MHz, SK Hynix, HMA81GS6AFR8N-UH
Memory Module: BANK 2/ChannelB-DIMM0, 8 GB, DDR4, 2400 MHz, SK Hynix, HMA81GS6AFR8N-UH
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x7BF), wl0: Jul 10 2023 12:30:19 version 9.30.5<IP_ADDRESS>.92 FWID 01-88a8883
AirPort:
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: T2Bus
USB Device: Touch Bar Backlight
USB Device: Touch Bar Display
USB Device: Apple Internal Keyboard / Trackpad
USB Device: Headset
USB Device: Ambient Light Sensor
USB Device: FaceTime HD Camera (Built-in)
USB Device: Apple T2 Controller
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5
Thunderbolt Bus: MacBook Pro, Apple Inc., 47.5

Thank you for the detailed report.
I'll try to analyze this tonight.

I tried the following program on linux:
use fltk::prelude::*;
use fltk::*;

fn main() {
    let app = app::App::default();
    let mut w = window::Window::default().with_size(400, 300);
    let mut tree = tree::Tree::default().with_size(400, 300);
    tree.set_root_label(".");
    tree.set_select_mode(tree::TreeSelect::Multi);
    // tree.set_color(Color::Blue);
    for i in 0 .. 5 {
        let ti = tree::TreeItem::new(&tree, &*("item".to_owned() + &*i.to_string()));
        tree.add_item("2/2/3/1", &ti);
    }

   for i in 0 .. 5 {
       tree.add(&*("item".to_owned() + &*i.to_string()));
   }

    tree.set_callback(|t| {
        if let Some(items) = t.get_selected_items() {
            for i in items {
                println!("{} selected", t.item_pathname(&i).unwrap());
            }
        }
    });
    w.end();
    w.show();

    app.run().unwrap();
}

It doesn't cause a crash and also ran it under valgrind with no memory errors. Can you check on your system?
If it crashes on macos, then it could be platform specific.

@MoAlyousef Thank you but sorry of my misleading message. Yes and your code works well. So I tried many times to comment / uncomment some code blocks in my project back and forth and eventually I found out the code causing crash. Badly I can't figure it out why the code is incorrect. So I uploaded it to a repo and create a pr. Please help me to solve it.
you can see that it's clear() method doing the odd thing. But why?

Thank you for sharing the code. I was able to minimize it to the following:
use fltk::prelude::*;
use fltk::*;
use fltk::enums::*;

fn main() {
    let app = app::App::default();
    let mut w = window::Window::default().with_size(400, 300);
    let mut i = input::Input::new(0, 0, 400, 40, None);
    let mut tree = tree::Tree::new(0, 40, 400, 260, None);
    tree.set_root_label(".");
    tree.set_select_mode(tree::TreeSelect::Multi);
    for i in 0 .. 5 {
        let ti = tree::TreeItem::new(&tree, &*("item".to_owned() + &*i.to_string()));
        tree.add_item("2/2/3/1", &ti);
    }
    w.end();
    w.show();

    i.handle(move |i, ev| match ev {
        Event::Unfocus => {
            tree.clear();
            true
        }
        _ => false,
    });

    app.run().unwrap();
}

I believe it's an issue with FLTK's focus. I'll try to reproduce in C++ then I'll report it there.
I think the issue arises from the Fl_Tree handler, it checks whether the root item is null or not, however in the Fl_Push event, it refocuses the Fl_Tree, which bypasses the check.

If you can try the master branch by adding to your Cargo.toml:
[patch.crates-io]
fltk = { git = "https://github.com/fltk-rs/fltk-rs" }

Yes man, it works as expected. good job doc! I'll close this issue.


Slow compilation/loading

Can something be done with the slow compilation and loading times? From my tests is seems it is caused by Flux, DifferentialEquations and DiffEqFlux packages. It takes more than a minute to compile the package and almost half of that time is caused by using DifferentialEquations.

This is bothering me as well. Its also caused by PyPlot. I have not checked how to do it yet, but it should be possible to have optional dependencies that are only loaded if one imports certain functions with Requires.jl.

got loading time from ~70s down to ~5s by using Requires.jl to optionally depend on PyPlot/DiffEqFlux/DifferentialEquations. The functionality that needs theses packages will only be available is the corresponding package is loaded. Should we continue doing it like this?

Cool, this makes a lot of things easier.


Fix parsing of datetime metadata with 7+ digits in second fraction

It seems that Azure returns datetime with nanosecond precision, wheras
Python's datetime format only expects microseconds, so strip the extra
digits.
Fixes: #269

Would be better if we could use the standard library to support this, but it looks like they have an issue open for this: https://bugs.python.org/issue15443. Looks good otherwise!

@elprans is this good to merge?


merge platform and viadot?

@Trymzet could we build docker platform with jupyterlab and odbc and other settings here directly?

Yes. Added to #3


Parent of term 'gestational age measurement datum'

Describe the bug
ONTONEO_00000255 'gestational age measurement datum' imported as a subClassOf 'data item'. Should it be the child of 'age measurement datum'?

This term is set up so its parent is computed by Ontofox, so I don't know why it places it under 'data item' rather than 'age measurement datum' as Ontobee shows. I could update it by explicitly declaring its parent in the input file, but if I do that, it won't update if ONTONEO changes its hierarchy again.

You can add the term 'age measurement datum' in ONTONEO input file. So, it will can include in the 'includeComputedIntermediates' Ontofox import. The term will be removed by following ROBOT command. So, it should be fine.


View PDF inside editor

Very heavy dependency with very little gain (as you said in #168). No, I don't think so. I think you will only need the PDFium shared library or similar library. It should be implemented as a plugin, that is, the users will need to manually download it to install, since it's not part of the binary release packages. Similar to how texteditor.pro is doing. ecode supports plugins but there are currently only a handful of them. The plugin infrastructure could be exploited to do more.

I don't understand what was your intention creating and closing issues right after creating them, several of them over topics already discussed. You knew that this feature was already discussed and rejected. If you wanted to give your opinion the issue is still there, you even referenced it.
Please be mindful before creating new issues.

I don't understand what was your intention creating and closing issues right after creating them, several of them over topics already discussed. You knew that this feature was already discussed and rejected. If you wanted to give your opinion the issue is still there, you even referenced it.

I think I can persuade you to change your ideas. Later (after having read the old issues by other people again and again), I think I can't. It's a waste of time to argue with you. So I close the issues.

Please be mindful before creating new issues.

OK.

I don't understand what was your intention creating and closing issues right after creating them, several of them over topics already discussed. You knew that this feature was already discussed and rejected. If you wanted to give your opinion the issue is still there, you even referenced it. Please be mindful before creating new issues.

I want to tell him the same thing. He closed the issues too soon.

I found this project on Github:
https://github.com/rofl0r/SDLBook
It's using libmupdf and djvulibre. I think it's definitely possible to add a PDF viewer to ecode. But I don't mind having to use an external PDF viewer.

It's possible but it's a lot of work, much more than you might imagine. mupdf and sumatrapdf are great but its licenses are not very friendly with ecode license, integrating any pdf viewer into an OpenGL context is a lot of work, distributing the pdf shared library dependency for all the platforms support is also a lot of work. I need people to understand that my time is very limited and I'm the sole maintainer of the project which is already huge. These kinds of things are way off my priorities. My number one priority right now is to implement debugging support and didn't have time to even start because I get distracted with smaller / quicker to implement features and bug fixes. These kind of feature requests make sense as a plugin provided by a new collaborator who's willing to take the time and effort for such a endeavour.


Add CodeQL variant analysis scanning

This is a different type of static analysis than others we run.
It identified new issues (already fixed) that our other tools missed.
The company that built it was bought by GitHub and the tool is being
integrated into GitHub's security workflow.
Add one unprivileged version of the job to gate PRs and one privileged
version on-merge to report results.
Relates-to: submariner-io/submariner#1970
Signed-off-by: Daniel Farrell<EMAIL_ADDRESS>

Let's talk about this on the parallel PR on the main repo.


load autocompletion is missing

Godot version:
3.1
(also current master)
Issue description:
Resource auto-completion for load seems to be missing in 3.1.
There was a bug that caused preload autocompletion to fail if there was an error. That bug seems to be fixed, but load is now broken.

Is the scene where that script is used open? AFAIK resource completion only works reliably when the scene is open, and it's been this way for years.

Eh, seems like it's... ok actually?
Dunno why, but it, like, fixed itself. There's however a minor inconsistency between load and preload.
load's autocomplete starts when you type load("
and for preload it's preload(
(notice the " difference at the end)
Both preload(" and load( don't trigger autocompletion (is that even worth making another issue?). Not sure if it was that way (probably was), but then for whatever reason I didn't notice it or it was a one-time thing.

Ok, for whatever reason, it doesn't work again in master (afecc0b). There's also #31425, which makes it even worse.

The problem seems to be somewhere here:
https://github.com/godotengine/godot/blob/61dd7748cafafca08b8f87183ddf42de06b58911/modules/gdscript/gdscript_editor.cpp#L2435-L2445
The completion map is correctly filled, but doesn't seem to take effect. Also "preload" is redundant here, because it takes autocompletion arguments from a different place.


Fix support for newer bazel versions - Issue 23673 closed with incorrect solution.

I believe https://github.com/tensorflow/tensorflow/issues/23673 was closed incorrectly.
The problem is newer versions of bazel are not reading the bazel.rc that provides:
tools/bazel.rc:build --define=grpc_no_ares=true

The solution can not be to install ares as this option is supposed to disable the need for it.
Please fix the build process to support newer versions of bazel (in my case, using 0.19.0)

This is a stale issue. Please check the issue with latest TensorFlow. If the issue still persists in the newer version of TF, please feel free to reopen it by providing details about the issue and a standalone code to reproduce the issue. Thanks!


Feature: GPS Timestamp in Export

Goal
Export the correct time of the counted object where OpenDataCam can not sync system clocks with NTP.
Background
Timestamps for counted objects use Node.js's Date objects which are being synced to the system time. However as Jetson boards don't have a battery powered Real Time Clock (RTC). The system clock needs to be synced via NTP at boot time. In situations where the Jetson does not have internet connection this is not possible. Hence, in those situations the time of the tracked objects is unreliable as it shows arbitrary timestamps and e.g. does not allow to discover the date and time of events.
Proposed Solution
GPS allows to determine the location and time at location of the device. Therefore, it is proposed to add a new field to the JSON and CSV export containing the GPS time.
Alternative Solutions
The following alternative solutions have been considered but are regarded as less favorable compared to the proposed solution.
Run as system service
GPS can be used by NTP as a time source and set the system time accordingly. However this requires GPSD to run as a system service and therefore a deep level of access to the underlying operating system, which is not possible when GPSD is run in a docker container.
Run GPSD in OpenDataCam Docker Container
We could run GPSD in the same container as OpenDataCam and synchronize the containers date time to GPSD. However this would bloat OpenDataCam as GPS currently is an optional feature and most likely not used by the majority of users.
Synchronizing node's Date with GPS
As I don't know any way to synchronize  node's Date objects to GPS time from within node.

merged !


auto Selection of the text field is not happening in the latest version 3.1.59

Hi Robin,
I think the auto selection is removed in the latest version wihich is 3.1.59
When i was using the 3.1.26 version, on Tab from one text field to another text field, the auto selection of the text field is not happening.
I think i have raised a bug #733 (Tab issue), which was another issue, only in the firefox. It was fixed, but now in none of the text field on tab out, auto selection is not happening.
Could you please help me out on this issue.

Please tab from the Name Field to the weight field in the jqgrid. Weight field is not selected in the latest version and in the older version weight field is selected.
Version 3.1.62-7
jsfiddle - inputmask latest version 3.1.59 and above
auto selection not happening on tab out one jqgrid field to another field
http://jsfiddle.net/BA251281/CzVVK/1425/
Version 3.1.26
jsfiddle - inputmask older version 3.1.26
auto selection happening on tab out one jqgrid field to another field
http://jsfiddle.net/BA251281/d1xncg3s/1/

@RobinHerbots ,
Could you please suggest me temporary option to fix this issue for current time, until this issue fixed.

@babupca ,
Just for a test I added some extra inputs outside the jqGrid
http://jsfiddle.net/d1xncg3s/2/
Anyway I will have a look.

@babupca ,
I see the difference, but it is actually jqgrid which should fix this.  Removing the inputmask, also does not select the input on tab.

@RobinHerbots ,
You are right Robin. I have searched the trirand blog, and found that, they does not implemeted this functionality.
--> http://www.trirand.com/blog/?page_id=393/feature-request/select-element-text-in-cell-edit-mode
They have suggested some functionality, but i did not used those option, instead i used the dataInit event in jqgrid, within that i have added this small piece of code. It worked fine.
--> type:"focus",fn:function(e) { jQuery(this).select();}


Unable to order by Guid column

I'm trying to order by a Guid in EF Core with a relational database and its not ordering. Is there something I'm doing wrong or could this be an issue with EF Core?
  Expected: fa1760e7-27f4-4f8b-9205-44acf2358044
  But was:  c7e76cf2-35d1-4cf8-8a67-83f41842f052

Steps to reproduce
Using NUnit I created the following test
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using NUnit.Framework;

namespace TestName
{
    public class BoxDbContext : DbContext
    {
        public BoxDbContext(
            DbContextOptions<BoxDbContext> options) : base(options)
        {
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Box>().HasKey(x => x.Id);
            modelBuilder.Entity<Box>().Property(t => t.Id).ValueGeneratedOnAdd();
            base.OnModelCreating(modelBuilder);
        }
    }

    public class Box
    {
        public Guid Id { get; set; }
        public Guid SubId { get; set; }
    }

    [TestFixture]
    public class TestClass
    {
        private SqliteConnection SqliteConnection { get; set; }

        private DbContextOptions<BoxDbContext> Options => new DbContextOptionsBuilder<BoxDbContext>()
            .UseSqlite(SqliteConnection)
            .EnableSensitiveDataLogging()
            .Options;

        private DbContext GetDbContext()
        {
            BoxDbContext dbContext = new BoxDbContext(Options);
            dbContext.Database.EnsureCreated();
            return dbContext;
        }

        [SetUp]
        public void DbSetup()
        {
            SqliteConnectionStringBuilder sqliteConnectionStringBuilder = new SqliteConnectionStringBuilder
            {
                Mode = SqliteOpenMode.Memory,
                Cache = SqliteCacheMode.Private
            };
            SqliteConnection = new SqliteConnection(sqliteConnectionStringBuilder.ToString());
            SqliteConnection.Open();
        }

        [TearDown]
        public void DbTearDown()
        {
            SqliteConnection.Close();
        }

        [Test]
        public async Task OrderByGuid()
        {
            List<Guid> subIds = new List<Guid>
            {
                Guid.Parse("901CAB07-315F-4594-A5C6-C37725643DB8"),
                Guid.Parse("FA1760E7-27F4-4F8B-9205-44ACF2358044"),
                Guid.Parse("0C434803-0004-4894-8E29-597AA8BCF8E2"),
                Guid.Parse("C7E76CF2-35D1-4CF8-8A67-83F41842F052"),
                Guid.Parse("1D6F9038-B5B3-4559-9480-3A2651E52623"),
            };

            using (DbContext dbContext = GetDbContext())
            {
                foreach (Guid subId in subIds)
                {
                    dbContext.Set<Box>().Add(new Box {SubId = subId});
                }
                await dbContext.SaveChangesAsync();
            }

            IList<Box> boxs;
            using (DbContext approvalsDbContext = GetDbContext())
            {
                boxs = await approvalsDbContext
                    .Set<Box>()
                    .OrderByDescending(x => x.SubId)
                    .ToListAsync();
            }

            Assert.That(boxs.Count, Is.EqualTo(subIds.Count));
            Assert.That(boxs.ToArray()[0].SubId, Is.EqualTo(subIds[1]));
            Assert.That(boxs.ToArray()[1].SubId, Is.EqualTo(subIds[3]));
            Assert.That(boxs.ToArray()[2].SubId, Is.EqualTo(subIds[0]));
            Assert.That(boxs.ToArray()[3].SubId, Is.EqualTo(subIds[4]));
            Assert.That(boxs.ToArray()[4].SubId, Is.EqualTo(subIds[2]));
        }
    }
}

Further technical details
EF Core version: EF core 2.0.0
Database Provider: Microsoft.EntityFrameworkCore.Sqlite
Operating system: Windows 10
IDE: Visual Studio 2017

@chris31389 This is likely due to SQLite not having a native GUID type, which means that GUID values are saved, if I remember correctly, as blobs. The sorting is thus done on these blobs, which I am guessing gives a different order to the natural ordering of GUIDs.
/cc @bricelam @divega

From the docs:

Note that the order of bytes in the returned byte array is different from the string representation of a Guid value. The order of the beginning four-byte group and the next two two-byte groups is reversed, whereas the order of the last two-byte group and the closing six-byte group is the same.

So this isn't a bug and actually correct implementation?
Is it correct and intended that using a different database type (e.g. UseInMemoryDatabase(...)) Gives a different result?

@chris31389 Sorting order is one of those things that can be different between the CLR and the database, and between different databases, especially, but not exclusively, when values have different representations. We're currently in the middle of discussions on ways to handle this, but it may be that it is inherently something that can vary between database providers.

Reopening so that we can decide on this particular issue as port of the larger discussion (i.e. I am not sure leaving it like it is now is the best outcome).

@ajcvickers I've just tested this with SqlServer and its producing the same results.  Should I raise a new issue?

@chris31389 Thanks for the info. It does indeed seem that the default ordering for GUIDs on .NET is different from that of SQL Server. No need for another issue--I have added a note to #10265 which is the general issue we have for consideration of this issue.


Overlays

isoline on top of a boxfil

@doutriaux1, @scottwittenburg
Isoline seems to be broken in the current build of vcdat/vcs-js/vcs.
Here is a stack trace when trying to plot any clt.nc variable as an isoline.

"Traceback (most recent call last):
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/wslink/websocket.py", line 274, in onMessage
    results = func(obj, *args, **kwargs)
  File "build/bdist.macosx-10.9-x86_64/egg/vcs_server/Visualizer.py", line 56, in plot
    plot.loadVariable(all_vars)
  File "build/bdist.macosx-10.9-x86_64/egg/vcs_server/VcsPlot.py", line 114, in loadVariable
    self._plot.variables = var
  File "build/bdist.macosx-10.9-x86_64/egg/vcs_server/PlotManager.py", line 43, in set_vars
    self.plot()
  File "build/bdist.macosx-10.9-x86_64/egg/vcs_server/PlotManager.py", line 95, in plot
    self.dp = self.canvas.plot(*args, ratio="autot")
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/vcs/Canvas.py", line 2775, in plot
    a = self.__plot(arglist, keyargs)
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/vcs/Canvas.py", line 4119, in __plot
    returned_kargs = self.backend.plot(*arglist, **keyargs)
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/vcs/VTKPlots.py", line 682, in plot
    vtk_backend_grid, vtk_backend_geo, **kargs))
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/vcs/vcsvtk/pipeline2d.py", line 309, in plot
    self._updateContourLevelsAndColors()
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/vcs/vcsvtk/isolinepipeline.py", line 29, in _updateContourLevelsAndColors
    if numpy.allclose(self._contourLevels[0], [0., 1.e20]) or \
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/numpy/core/numeric.py", line 2459, in allclose
    res = all(isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan))
  File "/Users/crean2/anaconda2/envs/nightly/lib/python2.7/site-packages/numpy/core/numeric.py", line 2538, in isclose
    xfin = isfinite(x)
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
"

Hi @James-Crean, I just installed the current vcs master and ran the tests/test_vcs_isoline_width_stipple.py which seemed to work fine.  Can you share a Javascript snippet I could use to try and reproduce that on the vcs-js side?  Thanks!

Added in #190.
An issue has been created for isoline in #195.


Storing multiple entries in a row using JSON encoding - Many-to-Many example

I'm struggling to follow the Many-to-Many relationships example in the documentation. I have two tables, one is ProductLines and the other is PartNumbers. Every ProductLine has multiple PartNumbers associated with it and I chose to store the PartNumber IDs in a row of the ProductLine using the JSON method in the documentation.  I'm reading in the following JSON data, which contains both the ProductLine name and the list of PartNumbers. I'm using batch insert to add the data to my two tables.
[
  {
    "Product line 1": [
      {"partNumber": "160-9013-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9104-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9105-900", "orderable": false, "description": "Part Number Description"}
    ]
  },
  {
    "Product line 2": [
      {"partNumber": "160-9113-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9114-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9115-900", "orderable": false, "description": "Part Number Description"}
    ]
  },
  {
    "Product line 3": [
      {"partNumber": "160-9205-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9211-900", "orderable": true, "description": "Part Number Description"},
      {"partNumber": "160-9212-900", "orderable": false, "description": "Part Number Description"}
    ]
  }
]

My two tables are defined as follows in product_lines.dart and part_numbers.dart respectively:
class ProductLine extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get name => text()();
  TextColumn get partNumbers => text().map(PartNumberEntries.converter)();
}

class PartNumber extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get partNumber => text().named('part_number')();
  BoolColumn get orderable => boolean()();
  TextColumn get description => text()();
  TextColumn get productLineName => text().named('product_line_name')();
}

PartNumberEntries is defined here in part_number_entries.dart:
@j.JsonSerializable()
class PartNumberEntries {
  PartNumberEntries({required this.partNumberIds});

  final List<int> partNumberIds;

  factory PartNumberEntries.fromJson(Map<String, Object?> json) =>
    _$PartNumberEntriesFromJson(json);

  Map<String, Object?> toJson() {
    return _$PartNumberEntriesToJson(this);
  }

  static JsonTypeConverter<PartNumberEntries, String> converter =
    TypeConverter.json(
      fromJson: (json) => PartNumberEntries.fromJson(json as Map<String, Object?>),
      toJson: (entries) => entries.toJson(),
    );
}

My database.dart file is here:
LazyDatabase _openConnection() {
  return LazyDatabase(() async {
    final dbFolder = await getApplicationDocumentsDirectory();
    final file = File(path.join(dbFolder.path, 'product_line.sqlite'));

    return NativeDatabase(file);
  });
}

@DriftDatabase(tables: [ProductLine, PartNumber])
class AppDatabase extends _$AppDatabase {
  AppDatabase() : super(_openConnection());

  @override
  int get schemaVersion => 1;

  @override
  MigrationStrategy get migration => MigrationStrategy(
        onCreate: (Migrator m) async {
          await m.createAll();
        },
        beforeOpen: (details) async {
          debugPrint('beforeOpen');
          await customStatement('PRAGMA foreign_keys = ON');

          if (details.wasCreated) {
            await loadDatabase();
          }
        },
      );

  Future<List<ProductLineData>> getProductLines() async {
    return await select(productLine).get();
  }

  Future<void> batchInsertProductLines(
      List<ProductLineCompanion> productLines) async {
    await batch((batch) {
      batch.insertAll(
        productLine,
        productLines,
      );
    });
  }

  Future<void> batchInsertPartNumbers(
      List<PartNumberCompanion> partNumbers) async {
    await batch((batch) {
      batch.insertAll(
        partNumber,
        partNumbers,
      );
    });
  }

  Future<void> loadDatabase() async {
    final data = await getProductLines();
    if (data.isEmpty) {
      final productLines = await createProductLines();
      await batchInsertProductLines(productLines);
      debugPrint('Database loaded');
    } else {
      debugPrint('Database already loaded');
    }
  }

  Future<List<ProductLineCompanion>> createProductLines() async {
    List<ProductLineModel> jsonData = await readJson();
    List<ProductLineCompanion> productLines = [];
    List<PartNumberCompanion> partNumbers = [];

    for (var data in jsonData) {
      int counter = 0;
      final productLine = ProductLineCompanion(
        name: drift.Value(data.name!),
      );

      for (var entry in productLines) {
        if (entry == productLine) {
          counter += 1;
        }
      }
      if (counter == 0) {
        productLines.add(productLine);
      }

      for (var product in data.partNumbers!) {
        final partNumber = PartNumberCompanion(
          partNumber: drift.Value(product.partNumber),
          orderable: drift.Value(product.orderable),
          description: drift.Value(product.description),
          productLineName: productLine.name,
        );
        partNumbers.add(partNumber);
      }
      batchInsertPartNumbers(partNumbers);
    }
    return productLines;
  }

  Future<void> addPartNumberIdsToProductLines() async {
    // What does this code look like?
  }

  // Read part_numbers.json file before adding data to the sql database
  Future<List<ProductLineModel>> readJson() async {
    List<ProductLineModel> productLineFromJson(dynamic str) =>
        List<ProductLineModel>.from(
            (str as List<dynamic>).map((x) => ProductLineModel.fromJson(x)));

    try {
      final String jsonData =
          await rootBundle.loadString('assets/part_numbers.json');

      final response = (json.decode(jsonData) as List<dynamic>);

      List<ProductLineModel> productLines = productLineFromJson(response);

      return productLines;
    } catch (error) {
      throw Exception(
          'ProductLineManager, Unexpected error reading JSON: $error');
    }
  }

  static final StateProvider<AppDatabase> provider = StateProvider((ref) {
    final database = AppDatabase();
    ref.onDispose(database.close);

    return database;
  });
}

It appears that I cannot add the PartNumber IDs when I am adding the ProductLine names to the ProductLine table because they haven't been created yet. So, I'm adding the JSON data I have to the two tables and then I believe I need to iterate through the PartNumber table to grab the ID of each row and add it to the partNumberIds row of the ProductLine table. This is where I'm lost. Can you show me an example of how to do this? Thank you.

Sorry for the slow response. If you have something that already resembles a primary key in your data, the easiest way would be to reference that instead of an additional local ID.
For instance, you're also not referencing the product id key in the PartNumber table, you're only storing its name. Similarly, if the part numbers where unique in each product line, you could use {partNumber, productLineName} as a primary key of PartNumber and only reference the part number in ProductLine.partNumbers.
Without batches, you could also insert the part numbers first to get their id and then insert the product line afterwards:
  Future<List<ProductLineCompanion>> createProductLines() async {
    // ...
    List<ProductLineCompanion> productLines = [];

    for (var data in jsonData) {
      var partNumberIds = <int>[];

      for (var product in data.partNumbers) {
        final partNumberCompanion = PartNumberCompanion.insert(
          partNumber: product.partNumber,
          orderable: product.orderable,
          description: product.description,
          productLineName: data.name,
        );
        final row = await into(partNumber).insert(partNumberCompanion);
        partNumberIds.add(row);
      }

      final productLine = ProductLineCompanion.insert(
        name: data.name,
        partNumbers: PartNumberEntries(partNumberIds: partNumberIds),
      );

      productLines.add(productLine);
    }
    return productLines;
  }

When inserting larger amounts of data, you can do this efficiently by wrapping createProductLines in a transaction.


Expand [Default] value to the default values of stickyElementNames and sortAttributes.

Great tool!
I needed to add some more attributes to the sticky list, but didn't want to repeat the default values, so I made [Default] expand to the given default values.
Edit: Most of the my problems arose from reordering tasks of a Target element, so I added an option to exclude some element names (defaults to only Target) from reordering.

looks useful, but you'll to pull down the latest refactorings and update your pull request with the merge

Thanks for responding! I have rebased to 1.1 in a new pull request (#5).


Fix material drop

My first PR :smile:
Fixes: https://github.com/godotengine/godot/issues/74077
Explanation: When dragging over meshes with the same material (as the one dragged) and going over other mesh, material preview were reset but never assign again, causing to have a wrong state

@SaracenOne you might be interested in looking at this one.

@SaracenOne I applied that change. Seems to work fine
I also tried to remove the material override when ctrl is pressed. If there is a material override and you applied a surface override, you wont see anything because the material override is over everything. I couldn't make that change because when reseting the material, the surface information were lost because we only store the material of the last surface

Thanks!

@akien-mga thanks <3


stroke thickness customize is need

Great!
However, stroke thickness customize is need, for smaller Emoji size

@TThana rateLineWidth controls the stroke thickness. You can try it. By the way, I fixed some bugs in the new version for small size TTGEmojiRate view. :）


Fix AES-NI detection in aesni_set_encrypt_key

aesni_set_encrypt_key checks for CPUID EAX=1 ECX bit 11 (AMD XOP).
If the bit is set, it proceeds to AES-NI instructions.
However:

the XOP bit is forced to zero on Intel (meaning aesni_set_encrypt_key never uses the aeskeygenassist instruction on Intel). This might actually be intended by the author, as aeskeygenassist is microcoded on newer Intel CPUs.
On AMD the check seems dubious: If XOP is supported, it uses the aeskeygenassist instruction. XOP precedes AES-NI so this is safe, but AES-NI outlived XOP -- On Zen-based CPUs, XOP no longer exists.

Remaining questions:

Is microcoded aeskeygenassist faster than the AVX path on recent Intel CPUs? (Might be due to L1I cache footprint)
Is aeskeygenassist microcoded on AMD Zen and onwards?

This patch updates the CPUID detection to check for AES-NI instead of XOP.
However, due to these open questions, I am marking the PR as draft for now.
I would kindly suggest to the original author to add comments explaining the reasoning behind these checks.

one thing is clear this function cannot be called without AES-NI bit set, so check for that bit presence would be pointless.

The AES-NI code path seems to be significantly slower at least on the CPUs I have tried it out.
(so both were slower, probably a quite old AuthenticAMD and one GenuineIntel)
Note that openssl speed does not measure the timing of the AES_set_encrypt_key,
so I moved that in the timing loop to get that done.


Which residual blocks are optimal to replace?

@RogerChern Hi, Excellent work!
I want try to implement TridentNet with Yolo head. Can you clarify a few points?

Do you change Res-blocks to Trident-blocks only in Conv4_x, or in Conv5_x and Conv4_x?

Why did you change Res-blocks to Trident-blocks in ResNet-backbone instead of adding Trident-blocks after ResNet-backbone (in the 2nd case all Trident-blocks would be after the last subsampling-layer stride=2 so an increase in dilatation would increase the receptive field more)?

What is the optimal number of Trident-blocks 10 or 15?

What is the optimal input network resolution?

Either

Or

https://arxiv.org/pdf/1901.01892v1.pdf

Hi @AlexeyAB , here are some thoughts about your questions.

Only conv4_x(a.k.a stage3_unitx) are converted into trident blocks. We use ResNet-C4 backbone and use conv5_x as the rcnn head. Adding trident blocks in the rcnn head is generally meaningless since you can not see beyond the cropped roi features. So put 10x trident blocks in conv4_x.

 This is a time-honored tradition as in NOC and deformable convnets.

Adding more than 10 blocks gives a steady result.

If you are implementing YOLOv3, a 600x600 input is recommended. Otherwise, you need to tune the num of trident blocks to suit your need.

And if you are interested in YOLOv3, you can not miss the YOLOv3 implementation in GluonCV. They offer the pretrained models and tons of fine details to improve the performance of YOLOv3.

@RogerChern Thanks!
Yes, I know about GluonCV, and I use their Mixup-data-augmentation approach (Bag of Freebies): https://github.com/AlexeyAB/darknet/issues/3272#issuecomment-499298922
I just want to implement TridentNet on Darknet-framework(C) instead of Mxnet(Python).
Did you try to combine PANet and TridentNet, can it give any advantage?

@AlexeyAB Fusing multiple trident feature maps gives performance improvement over instance segmentation, but not detection.


add auto import for handshake files

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

16 of 27 (59.26%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.3%) to 78.979%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

sis_provisioner/management/commands/create_handshake_file.py
0
3
0.0%

sis_provisioner/models.py
1
9
11.11%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
789

Relevant Lines:
999

💛  - Coveralls


Workflow improvement

Hi,
Is it possible to somehow improve the workflow with this tool?
Currently, when you start sharing, the PortionOfScreen window is brought to front automatically, and if you click, you get the how-to dialog about usage. That's a good idea when you use it for the first time, maybe, but not for regular usage.
When you start sharing, you then need to immediately go to taskbar and select another window so you can work. I forget to do this maybe 90% of time and the sharing session starts with unpleasant confusion on both sides, when I start shuffling window, minimize the PortionOfScreen window by accident (which automatically stops sharing) .... etc.
I have several suggestions:
a) Can we click through the window, instead of bringing up the how-to dialog? Essentially, we do not want a window, but a frame only, which can be used to be screen-shared with someone.
b) If not, can we at least make the window "hide itself" when brought to front? Somehow recognize the fact that the sharing has been initiated, so the window would travel to the very background of the screen and the other windows which are prepared in the shared screen area are immediately ready to be clicked at?
There is another tool, Region to Share, which does the workflow better, but uses way too much CPU and the shared region is always somewhat "off" to what the user has selected.

Another potential solution: leave the “about” screen as left click action, but make right-click move PortionOfScreen to the back, behind all other windows.

@martkopecky Version 1.1 implements mrsonicblue's solution. Does that work for you?

Thank you very much.
Nearly there!
Why don't we switch the button logic and make:

the left button bring the window behind all the other windows
the right button to show the about dialog.

I think it would fit the major use case better - no hassle screen sharing that is.

I just tried switching the buttons (see attachment), but I'm not sure I like it. It's weird to see the window disappear when you left click it. Huh, did I click close? Did it crash? It feels a bit unnatural to me. Right clicking to make it disappear doesn't bother me as much.
PortionOfScreen.zip

Hmm, I really like it. I don't need to think about the tool at all when starting sharing like this - so it almost feels like native experience. I will use this version.

... but since you started publishing new versions, using this old one will not be sustainable in long term.
Is there any chance to have the behavior for right click/left click configurable?

Still relevant to me as I will be locked on the historical version indefinitely. Any chance to have the behavior configurable, pretty please? 👍


[async/await] SWIFT TASK CONTINUATION MISUSE: leaked its continuation

Describe the bug
In the Dispatcher.swift file:
func protectedSend(_ string: String) async throws {
    var isResumed = false
    return try await withCheckedThrowingContinuation { continuation in
        protectedSend(string) { error in
            if !isResumed {
                if let error = error {
                    continuation.resume(throwing: error)
                } else {
                    continuation.resume(returning: ())
                }
                isResumed = true
            }
        }
    }
}

There was a warning (SWIFT TASK CONTINUATION MISUSE: leaked its continuation) in the Debug mode in my case. Please handle all cases in this method.
SDK Version

Client: Swift
Version: 1.0.7

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
if !isResumed {
   isResumed = true
   if let error = error {
       continuation.resume(throwing: error)
   } else {
       continuation.resume(returning: ())
   }
} else {
    // e.g.
    continuation.resume(returning: ())
}

Screenshots
If applicable, add screenshots to help explain your problem.
Device (please complete the following information):

Device: iPhone13
OS: iOS18.1
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

hey @g1umov, could you upgrade to 1.1.0, it should be resolved


docs(v2): add team member profile

💥 Proposal
This task isn't really involve coding, it is more about familiarizing with markdown and getting to know the people involved in the project (past and present).

Add member profiles to the "Team" and "Honorary Alumni" section on https://v2.docusaurus.io/docs/next/team. Reach out to the various people and get them to provide a profile. Similar to https://reactjs.org/community/team.html
Add links of the acknowledgements to their GitHub profiles

Have you read the Contributing Guidelines on issues?
Yes

Great suggestion! I would like to work on this! Also, In the suggested template, there are some phrases, after the photos. Can you guys left your description here?
@lex111 @JoelMarcey  @yangshun

cc @wgao19 as well

I was thinking if isn't better create a component to render this, the visual that is applied for each member is equal, we can have a .json with the members info, like, the github, twitter, and a brief description about the person.

Components are ok, but it's also ok to hardcode this. I've made the page use card components similar to the showcase. Closed via c117a6fe7.


Bundle mainnet genesis state

Pairs with https://github.com/penumbra-zone/web/pull/1706

closing https://github.com/prax-wallet/web/pull/163 in favor of this.

@TalDerei feel free to take this over as it pairs with your other work

Looking at the rust code here https://github.com/penumbra-zone/web/blob/main/packages/wasm/crate/src/view_server.rs#L116 , isn't the compact block passed into wasm as a binary-proto-encoded byte array? in that case, wouldn't it be best to store the compact block in that format to avoid serialization overhead, and which would also be smaller to include in the extension manifest?

@TalDerei feel free to take this over as it pairs with your other work

thanks taking over PR 👍

Looking at the rust code here https://github.com/penumbra-zone/web/blob/main/packages/wasm/crate/src/view_server.rs#L116 , isn't the compact block passed into wasm as a binary-proto-encoded byte array? in that case, wouldn't it be best to store the compact block in that format to avoid serialization overhead, and which would also be smaller to include in the extension manifest?

In theory, storing the compact block object in a binary-proto-encoded byte array format should be more efficient in terms of both serialization and space cost.
In terms of serialization, we'll still need to perform a deserialization operation, CompactBlock.fromBinary(new Uint8Array(binaryData)), since the block processor processes and perform checks on the in-memory compact block object before converting it to the binary-proto-encoded byte array that wasm consumes. However, deserializing from binary is more efficient than deserializing from JSON.
In terms of space, the compact block object for the genesis block is ~10 MB, while its JSON representation is ~18 MB. Surprisingly, when serialized to a binary-proto-encoded byte array using compactBlock.toBinary() and saved to a binary file, it takes up ~150 MB.

I'm not sure where those numbers are coming from. The genesis compact block is 8035648 bytes. See https://github.com/penumbra-zone/penumbra/pull/4824 for code to generate the data

I'm not sure where those numbers are coming from. The genesis compact block is 8035648 bytes. See penumbra-zone/penumbra#4824 for code to generate the data

strange blowup, I was simply logging the binary representation of the compact block and manually saving to a file.

Tested this out locally and things are working for me. @TalDerei after publishing the latest packages in penumbra-zone and pulling them in here, think you can merge.
In general, it's nice this saves the 8mb download. However, for a full sync the user will still have to download another +60mb. Connectrpc downloads all of those in parallel to the block sync logic. That said, it's not really noticed on my machine as the CPU/IO tasks are the bottleneck and those downloaded blocks are just waiting to be processed.

That said, it's not really noticed on my machine as the CPU/IO tasks are the bottleneck and those downloaded blocks are just waiting to be processed.

echoing the same sentiment on M3 pro


Find Kth Largest Element in an Array

You will be given an unsorted array and you have to return the Kth largest element.

@Saloni6111  is this issue still open ?

@Saloni6111 is this issue still open ?

yes, I already assigned to you. If you want please go ahead!

Hi @Saloni6111  Can you please assign it to me
Here's my leetcode:-https://leetcode.com/u/whyybhav/


Run for training

Hi, MrRobot. When I'm trying to run 'python 2WayGAN_Train_v3', I am getting this error:
File "2WayGAN_Train_v3.py", line 9, in
from libs.networks import *
File "/data/glusterfs_cv_04/11121734/pytorch-deep-photo-enhancer-master/libs/networks.py", line 61, in
from util.image_pool import ImagePool
ModuleNotFoundError: No module named 'util'
but I can't find where the util.py is. Looking forward to your reply, thank you very much.

Hi,
Its a wonderful work of code you have done Mr. Robot!
However, I am also getting the exact same error as llaaqq.
Is there any solution to this?
Please let us know

Hi,
Its a wonderful work of code you have done Mr. Robot!
However, I am also getting the exact same error as llaaqq.
Is there any solution to this? or llaaqq have you figured out an answer?
Any help would be very deeply appreciated

Hi, I have found the 'util' folder in https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix in ReadMe.md. The program can run now, but the trend of loss is not right, which first decreases and then gradually increases. I haven’t figured it out yet.

Oh alright, Thanks!
Ill have a look


feat: Winning Hearts and Minds: Navigating Internal Stakeholders & Client Expectations in Tech Startups and Corporate Innovation

feat: added post
refactor: normalized yaml

:tada: This PR is included in version 1.62.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


man/usage: expose missing --peer-ca-cert and SSL options

@blp @shettyg
Signed-off-by: Dan Williams<EMAIL_ADDRESS>

rebased and repushed to see if master has fixed the CI errors...

Thanks, I applied this to master.


[Documentation] add SRS for "List of Secretaries table" component

https://github.com/ita-social-projects/what-front/wiki/SRS-List-of-Secretaries-table


Some docks and panels seems to not support realtime WM_CLASS changes.

WM_CLASS is used to connect running applications with existing .desktop files containing application icons.
There are currently two types of games. Games that have WM_CLASS window property already set from the start and games that don't. If they don't, it's usually the fault of game developers and I've been thinking for a long time how to workaround this.
I came up with the script fix-wm-class.sh that can be automatically executed from the game launch options and this script finds window by WM_NAME and sets WM_CLASS to the same value.
This works fine with docks as Dash to Dock or Plank. But we have encountered problems with default KDE panel and Latte dock. (https://github.com/BlueManCZ/SIF/issues/10)
I think these problems are connected with some kind of dynamic WM_CLASS fetching or something similar.

Not sure if you're aware of the response but on the latte tracker there was a response to report that to the plasma tracker instead since it's their bug, not latte's. https://invent.kde.org/plasma/latte-dock/-/issues/31#note_170591

Hello. Yes, I filled bug in KDE tracker and also got a response. But to be honest I don't really understand it. https://bugs.kde.org/show_bug.cgi?id=431821

Hello @Kaperios, I finally found a solution to this. I can tell you, get some useful documentation for this is really almost impossible. But here we are. Can you confirm it actually works for you as well, so we can close this?

Sorry for making you wait so long, didn't notice the e-mail notification. It does seem to work for everything I tested (About 5 Source engine games) but the base half-life 2.

Thank you, no worries. It works for me in Latte dock as well, so it's resolved.


Bad file descriptor when using VPN

Running e3sm_diags on a Mac on VPN causes the following error:
Fatal error in MPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(572)..............:
MPID_Init(224).....................: channel initialization failed
MPIDI_CH3_Init(105)................:
MPID_nem_init(324).................:
MPID_nem_tcp_init(178).............:
MPID_nem_tcp_get_business_card(425):
MPID_nem_tcp_init(384).............: gethostbyname failed, ml-9624328 (errno 1)
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=3191567
:
system msg for write_line failure : Bad file descriptor

This issue is actually due to an error in CDMS (see https://github.com/CDAT/cdms/issues/391) but as it affects e3sm_diags, we are creating a link to that issue here. See #287 for more discussion.

See discussion in https://github.com/CDAT/cdms/issues/391. Running export MPICH_INTERFACE_HOSTNAME=localhost will allow you to run e3sm_diags while on VPN.

This problem appears to be resolved with esmf updates.


Add linux build function

moved content of coreboot building function into more generic buildWithKernelBuildSystem so that it can be re-used to build Linux kernel too
added cross-compilation support
added architecture into action.yml to allow cross-compilation
tweaked Taskfile.yml to shuffle tests
fixed problem with changing directories (test would change current working directory, but not change it back, which would break following test)
add option to build container from Dockerfile for local testing

@MDr164 Please review approval after #62


Freshly installed app starts in a strange way

To reproduce:

Install new build 1.1.0-qa.5.
Start the app.

Result:
It seems that app stops and starts again.
Expected:
App should just start.
startApp.mp4

I can't reproduce it. Can you provide more details? Although I don't think this is a significant issue.

I added a video. I could try it on another device. There is not much more to add, I just install fresh app (no seed phrase) and start the app.

Hm, okay. I can also see it only on Android 11 for now.

I marked it as won't do since it doesn't reproduce consistently.


how to configure completer to add an opening bracket after a function?

not sure if this question belongs here, but
following your documentation I have succesfully installed:
jupyter-lsp
jupyterlab-lsp
jedi-language-server
Suggestions in JupyterLab are now wonderful. But I can't find how to tune it, so that the JupyterLab would automatically add parenthesis after functions?
In Jedi it should be the following setting:
jedi.settings.add_bracket_after_function= False
https://jedi.readthedocs.io/en/latest/docs/settings.html#completion-output
Where should I put it?
Thank you.

I think the official spec don't have the configurations yet. It should be very easy to add it here. There are more complete examples like pyls that export a configuration spec as well.
A simple update can solve it, maybe you can help?

Because jedi-language-server does not support workspace/didChangeConfiguration and instead gets settings via initializationOptions (see https://github.com/pappasam/jedi-language-server#configuration) we would need to first solve https://github.com/jupyter-lsp/jupyterlab-lsp/issues/801. Alternatively, one could suggest/implement setting handling using didChangeConfiguration in jedi-language-server in which case we could trivially support it.


change portfolio name

Coverage remained the same at 90.861% when pulling 7ee669214fb236e560d6ad63c692a6ae10069eaf on edwinghy:change_portfolio_name into 259c6d209e6d532e37074d434efd41b25ac07c20 on CS2103AUG2017-W14-B1:master.


Pull imageurl from Metadata Instead

The script works great, but a number of my album covers aren't showing up as they aren't in the database or don't match the naming structure and some of the artist/song titles are off.
In Centova Cast I have the proper titles and album covers linked for every single item and its available in both the XML and JSON feeds for my stream (data -> item -> track -> imageurl).
Is there a way to pull that node for the background/album cover instead of the iTunes query?

I Think its impossible, Its only possible on azuracast i think.

I Think its impossible, Its only possible on azuracast i think.

I've actually gotten pretty close already, I'm just stuck trying to get it to accept the variable.

I've actually gotten pretty close already, I'm just stuck trying to get it to accept the variable.


Python3

Will this be ported to python 3?

There's an early version of the minimal Go version in master now.


Implement compatibility layer between snake case and camel case in utils.Decode

For historical reasons config values use snake_case and we need to support backward-compatibility right now. Need to implement a compatibility layer that would convert snake case to camel case when decoding and remove all mapstructure tags so that all the configs can both be in snake and camel case

based on initial assesment it should be possible to simply remove "_" from keys and provide a map of overrides for potential cases where I could introduce a shorter name in mapstructure tags

fixed in 8de49ba441d51531358c1facf940da0961bd484c


Replace deprecated SafeConfigParser with ConfigParser

Replace deprecated SafeConfigParser with ConfigParser, deprecated since Python 3.2 and potentially being removed in Python 3.11 (due for release October 2022).

https://bugs.python.org/issue45173

Remove some unused imports from the same file.

Many thanks for this, @hugovk .  Good to keep on top of this.
Of course, the build checks are failing for Python 3.5, as noted in #952, but hopefully #952 should fix that.

Rebased now https://github.com/mkleehammer/pyodbc/pull/952 is merged, and all green! ✅


SyntaxError: Unexpected token create react-app import locales yaml

🐛 Bug Report
I am trying to run test but always got an error said that
 /Users/syafilm/Sites/Javascript/search-giphy-two/src/locales/en.yml:5
         search-giphy: "Search Giphy here"

     SyntaxError: Unexpected token :

       1 | import i18next from 'i18next'
       2 |
       3 | const localeEn = require('locales/en.yml')
         |                  ^
       4 | const localeId = require('locales/id.yml')
       5 |
       6 | switch (document.documentElement.lang) {

To Reproduce

first eject create react app then add this code to alias section in webpack.config.js, yarn add i18next, then create test then yarn test

   alias: {
           // Support React Native Web
           // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
           'utils': path.resolve('src/utils'), // utils
           'api': path.resolve('src/api'), // api
           'pages': path.resolve('src/pages'), // pages
           'components': path.resolve('src/components'), // components
           'locales': path.resolve('src/locales'), // locales
           'images': path.resolve('src/assets/images'), // image
           'react-native': 'react-native-web',
         },

then inside locales there is file yml translation

en:
  home:
    trending: "Trending"
    random: "Random"
    search-giphy: "Search Giphy here"
    filter-random: "Filter random doesn't work because Giphy api give only an object not array of object"
    no-result: "No result found"
    dark-mode: "Dark Mode"

here is my jest config setup and setup and package json

module.exports = {
  setupFiles: ['./jest.setup.js'],
  verbose: true,
  testRegex: '\\.test(.js|.jsx)$',
  moduleNameMapper: {
    '^api(.*)$': '<rootDir/src/api$1',
    '^components(.*)$': '<rootDir/src/components$1',
    '^utils(.*)$': '<rootDir/src/utils$1',
    '^pages(.*)$': '<rootDir/src/pages$1',
    '^locales(.*)$': '<rootDir/src/locales$1',
    '^.+\\.(css|less|scss|yaml)$': 'identity-obj-proxy',
  },
  transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$'],
};

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
// React 16 Enzyme adapter
Enzyme.configure({adapter: new Adapter()});

{
  "name": "search-giphy",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@babel/core": "7.2.2",
    "@emotion/core": "^10.0.9",
    "@svgr/webpack": "4.1.0",
    "axios": "^0.18.0",
    "babel-core": "7.0.0-bridge.0",
    "babel-eslint": "^8.0.1",
    "babel-jest": "23.6.0",
    "babel-loader": "8.0.5",
    "babel-plugin-named-asset-import": "^0.3.1",
    "babel-preset-react-app": "^7.0.2",
    "bfj": "6.1.1",
    "case-sensitive-paths-webpack-plugin": "2.2.0",
    "css-loader": "1.0.0",
    "dotenv": "6.0.0",
    "dotenv-expand": "4.2.0",
    "emotion": "^10.0.9",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "enzyme-to-json": "^3.3.5",
    "eslint": "^4.10.0",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-config-react-app": "^3.0.8",
    "eslint-loader": "2.1.1",
    "eslint-plugin-flowtype": "2.50.1",
    "eslint-plugin-import": "^2.16.0",
    "eslint-plugin-jsx-a11y": "^6.2.1",
    "eslint-plugin-react": "^7.12.4",
    "file-loader": "2.0.0",
    "fs-extra": "7.0.1",
    "html-webpack-plugin": "4.0.0-alpha.2",
    "i18next": "^17.0.6",
    "identity-obj-proxy": "3.0.0",
    "jest": "23.6.0",
    "jest-pnp-resolver": "1.0.2",
    "jest-resolve": "23.6.0",
    "jest-watch-typeahead": "^0.2.1",
    "js-yaml": "^3.13.1",
    "js-yaml-loader": "^1.0.1",
    "mini-css-extract-plugin": "0.5.0",
    "optimize-css-assets-webpack-plugin": "5.0.1",
    "pnp-webpack-plugin": "1.2.1",
    "postcss-flexbugs-fixes": "4.1.0",
    "postcss-loader": "3.0.0",
    "postcss-preset-env": "6.5.0",
    "postcss-safe-parser": "4.0.1",
    "prop-types": "^15.7.2",
    "react": "^16.8.4",
    "react-app-polyfill": "^0.2.2",
    "react-dev-utils": "^8.0.0",
    "react-dom": "^16.8.4",
    "react-router-dom": "^4.3.1",
    "resolve": "1.10.0",
    "sass-loader": "7.1.0",
    "style-loader": "0.23.1",
    "terser-webpack-plugin": "1.2.2",
    "url-loader": "1.1.2",
    "webpack": "4.28.3",
    "webpack-dev-server": "3.1.14",
    "webpack-manifest-plugin": "2.0.4",
    "workbox-webpack-plugin": "3.6.3"
  },
  "scripts": {
    "start": "PORT=8000 node scripts/start.js",
    "build": "node scripts/build.js",
    "test": "jest",
    "lint": "eslint --ext .js --ext .jsx src/components/* src/pages/*"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": ["0.2%", "not dead", "not ie <= 11", "not op_mini all"],
  "babel": {
    "presets": ["react-app"]
  },
  "devDependencies": {
    "lint": "^0.7.0"
  }
}

Expected behavior
I expect run smoothly because already defined locales in modulename mapper jest setup
Link to repl or repo (highly encouraged)
i cant show the link because this is private for client only

Please put together a minimal reproduction (following your own steps?) that we can pull down. I'd guess this is just a missing transform, but it's hard to say without a complete example 🙂

transform

what does it means a missing transform ?

You need to transform yml files
https://jestjs.io/docs/en/configuration#transform-object-string-string

Okey i'll try if it works going to close this case

still doesnt work bro
module.exports = {
setupFiles: [
"./jest.setup.js"
],
verbose: true,
testRegex: "\.test(.js|.jsx)$",
moduleNameMapper: {
"^api(.)$": "/src/api$1",
"^components(.)$": "/src/components$1",
"^utils(.)$": "/src/utils$1",
"^pages(.)$": "/src/pages$1",
"^locales(.*)$": "/src/locales$1",
"\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|yml)$": "/src/test/mocks/fileMock.js",
"^.+\.(css|less|scss|yaml)$": "identity-obj-proxy",
},
transformIgnorePatterns: ["[/\\]node_modules[/\\].+\.(js|jsx|mjs)$"]
`}```
i just update the jest.config.js but still doesnt work

In that case, please create a reproduction as both the issue template asks for and I requested.
(There's no transform in you config - you put it in moduleNameMapper)

In that case, please create a reproduction as both the issue template asks for and I requested.
(There's no transform in you config - you put it in moduleNameMapper)

i just read the documentation and there is no example about transform
module.exports = {
  setupFiles: [
    "./jest.setup.js"
  ],
  verbose: true,
  testRegex: "\\.test\(\.js|\.jsx)$",
  moduleNameMapper: {
    "^api(.*)$": "<rootDir>/src/api$1",
    "^components(.*)$": "<rootDir>/src/components$1",
    "^utils(.*)$": "<rootDir>/src/utils$1",
    "^pages(.*)$": "<rootDir>/src/pages$1",
    "^locales(.*)$": "<rootDir>/src/locales$1",
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|yml)$": "<rootDir>/src/test/__mocks__/fileMock.js",
    "^.+\\.(css|less|scss|yaml)$": "identity-obj-proxy",
  },
  transformIgnorePatterns: ["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"],
  transform: {
    ".*\\.(yml)$": "yml",
 }
}

or could you please give me an example ?

I linked you to the docs above, or you can take a look at the webpack docs which has an example for css files: https://jestjs.io/docs/en/webpack#mocking-css-modules
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.


GC 1310_1550_TM for lens

for lens on GC for TM mode (previous ones were for TE mode)

Tons of errors.  The design submission is closed, and the next run is available: https://github.com/SiEPIC/openEBL-2024-10

Got it
Thanks Lukas, will do


Added some missing item identifiers for loot tables & trades.

Added some missing item identifiers.
Added missing legacy item string ids.
minecraft:muttonraw
minecraft:map
minecraft:emptymap
minecraft:nametag
minecraft:fireball
minecraft:speckled_melon
minecraft:horsearmorgold
These are found in the /data folder of Minecraft between versions "vanilla" to "vanilla_1.19.70"

I have checked this items in minecraft, and while it still works they are apparently legacy items and no longer supported or suggested to be used. As this might change in the future, so for now Ill be closing this PR 🙂

The reason, I mentioned these items is because they are found in loot tables and trade tables in the current vanilla pack.

I know 🙂
But I don't consider the vanilla packs as 100% correct, I have seen a lot of mistakes. I cant justify supporting those legacy Minecraft items if in the future they are deprecated.


Popup/noise spam when opening a canister

Description

Trying to open a gas canister by tapping once sends the message several times and the noise is also repeated, causing a strange vibrating hum.
Reproduction

have no access to open the canister
left click it once
ears hurt

Screenshots

I havent been able to reproduce this. Could it be that the sound is just not very pleasant?

I looked into this a little, hoping that it was just a case of client prediction repeating the popup.

From what I can tell, there's an odd interaction between the Lock component and the canister itself. Clicking a locked canister causes it to check the lock status itself and display the popup and sound if needed, and then the lock checks itself and displays its own popup. I think one of them gets repeated by prediction too.

It doesn't seem like the sound repeats from my testing, but the popup spam should be addressed.