Spyder's Ipython console forces lazy imports to resolve immediately?

Issue Report Checklist

[x] Searched the issues page for similar reports
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[x] Could not reproduce inside jupyter qtconsole (if console-related)
[x] Tried basic troubleshooting (if a bug/error)

[x] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
While looking at lazy-imports, I realized that spyders IPython console somehow forces lazy-imports to resolve immediately.
I'm not really sure what's going on here but maybe spyder is trying to access properties of imported modules that cause the lazy-import to resolve (maybe get_namespace_view)?
What steps reproduce the problem?
The fastest way to see this is by using the lazy_loader package (used by scikit_image as well) (pip install lazy_loader)

The behaviour is exactly the same if I use the implementing lazy imports snippet from the official python-docs.

import lazy_loader
np = lazy_loader.load("numpy")
print(type(np))

What is the expected output? What do you see instead?
The expected output would be a (very fast) execution time due to the delayed import and the following output:
(tested OK in python console, ipython console, jupyter qtconsole)
>>> <class 'importlib.util._LazyModule'>

in spyder's Ipython console however, the import is immediately executed and i get:
>>> <class 'module'>

Versions

Spyder version: 5.2.2
Python version: Python 3.9.15 64-bit
Qt version: Qt 5.15.6
PyQt version: PyQt5 5.15.7
Operating System name/version: Windows 10

... after giving this a bit more thought, I think the problem originates from this behaviour:
class LazyModule():
    def __getattr__(self, key):
        print("getting", key)

x = LazyModule()

>>> Output from spyder call 'get_namespace_view':
>>> getting shape
>>> getting shape
>>> getting size
>>> getting size
>>> getting __len__

Hey @raphaelquast, thanks for reporting. I think we don't force all lazy imports to resolve immediately, only for a handful of modules we use to build the namespace view that is shown in the Variable Explorer (i.e. Numpy, Pandas, Pillow and BeautifulSoup).
Please try with other modules and let us know if that's actually the case.

@ccordoba12 thanks for the response!
I now used the following test-code, but unfortunately the unwanted behaviour remains:

When you execute the code in spyder, the execution finishes in the expected time, but it seems like another thread is busy importing and the console is frozen.
Once spyder's console is responsive again, all modules are imported

this is not the case if I execute the code in another console!

import timeit
from lazy_loader import load
tic = timeit.default_timer()

gpd = load("geopandas")
xar = load("xarray")
ds = load("datashader")
mapclassify = load("mapclassify")

toc = timeit.default_timer()
print(f"it took {toc-tic:.5f}sec")

print([type(i) for i in (gpd, xar, ds, mapclassify)])

Here are some gifs that should explain my experience (click to view):

Note: in the ipython console and the jupyter qtconsole all imports remain lazy (e.g. they still show up as importlib.util._LazyModule but in spyder all modules are imported!

 ipython console - OK

 jupyter qtconsole - OK

 spyder - all modules get imported!

OK, I just realized something... this whole issue might actually go back to ipython after all...
It seems that ALL lazily loaded modules are loaded in a plain ipython console as soon as a lookup for a non-existing variable is performed...

this does not happen if i do the same in a plain python console

run import lazy_loader
run x = lazy_loader.load("some module")
run a = 2 $\rightarrow$ x is still not loaded
run print(a) $\rightarrow$ x is still not loaded
run print(some_undefined_variable) $\rightarrow$ somehow x is loaded while trying to find b ??

 click for a image of the ipython-output

Ok, thanks for the extra info @raphaelquast. In that case, I'd suggest to use an external system terminal to run our code. You can do that by going to
Run > Configuration per file

and selecting the option
Execute in an external system terminal

@raphaelquast, should we close this one? Given that this problem is generated by IPython, I think there's little we can do about it.

Hey @ccordoba12,
I haven't had the time to investigate this further (been on holidays...)
From what I see, it seems that spyder is immediately loading all lazy-modules (probably caused by the lookup for the __len__, shape and size properties in the variable explorer) while a plain ipython console only does this if a lookup for an undefined variable-name is performed...
What exactly is happening and whether or not this can be resolved is not yet clear to me.
Feel free to close if you don't find it relevant (I'll try to find the time to check with the ipython devs on whats going on here in the near future)


Two typos in "1. Indexing (Or Lack Thereof)"

1.3 Indexing section, first sentence states "do to" rather than "to do"
1.5 SettingWithCopy section, fourth sentence states "attact" rather than "attract."

Thanks, fixed


Fix for failing builds

Summary:

Allow CI pipeline on pull requests too (regardless of the destination; might be useful for long-lived branches e.g. next major versions)
In a previous PR the whitespace list was amended but not the test
In a previous PR linting errors were introduced but never fixed

@ramda/core Any thoughts?

Thanks, everyone.  I've been having hardware problems, which won't be addressed for a few more weeks.  It's great to see others taking up the helm!


Python codegen: Path template match helper methods

Python codegen should produce helper methods to access the GAX Path Template match method. This would be consistent with the Java codegen (example).

Fixed by #134


Uncaught error during debugger Eval generates fatal Throw notify

...it's actually even worse than that: Duktape apparently halts execution in the Eval code since the filename in the Status notify is "input".  This confuses my debug client to no end (it doesn't expect execution to pause there ;) ), somehow ultimately leading to Duktape sending a Detaching notify with the error flag set.  I haven't pinned down the precise chain of events that causes the errant detach yet, my message handling is currently a bit rickety. :)

Is this a duplicate of #379?

Just to clarify what do you mean by "uncaught error"? Do you mean that the Eval code throws an error which is not caught within the eval code itself - in other words, it is caught only by the protected call in the debugger code which handles an Eval command?
If so, here's what happens for me with Throw notify enabled (but without the option to halt on uncaught error). This is a JSON debug proxy session running test-dev-mandel2-func.js.
; Connect
{"notify":"_Connected","args":["1 10499 v1.4.0-59-g9915b45 duk command built from Duktape repo"]}
{"notify":"Status","command":1,"args":[1,"test-dev-mandel2-func.js","global",58,0]}

; Add breakpoint
{"request":"AddBreak","args":["test-dev-mandel2-func.js",86]}
{"reply":true,"args":[0]}

; Resume and pause at breakpoint
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"test-dev-mandel2-func.js","global",58,0]}
{"notify":"Status","command":1,"args":[1,"test-dev-mandel2-func.js","mandel",86,45]}

; Eval with eval code throwing an uncaught error (= Eval handler catches it)
; Result: Throw notify, eval reply
{"request":"Eval","args":["throw new Error('foo')"]}
{"notify":"Throw","command":5,"args":[0,"Error: foo","input",1]}
{"reply":true,"args":[1,"Error: foo"]}

; Resume, hit breakpoint again
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"test-dev-mandel2-func.js","mandel",86,45]}
{"notify":"Status","command":1,"args":[1,"test-dev-mandel2-func.js","mandel",86,45]}

; Delete breakpoint and resume normally
{"request":"DelBreak","args":[0]}
{"reply":true,"args":[]}
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"test-dev-mandel2-func.js","mandel",86,45]}
{"notify":"Status","command":1,"args":[0,"test-dev-mandel2-func.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Print","command":2,"args":[".#############################################..................................\n"]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Detaching","command":6,"args":[0]}
{"notify":"_Disconnecting"}

Not a duplicate I don't think - #379 is about an error thrown during a halt-on-throw becoming a double error due to the handling_error flag still being set.  This is a different thing.
It's "uncaught" as per the Throw notify code (= no Ecmascript catcher), I know the Eval handler catches it. :)
Looking at your test above, it's interesting that the Throw notify you get has fatal = 0.  I'm getting fatal = 1 and an accompanying execution pause.  This leads me to think your breakpoint is inside of a try-catch.
What happens if you enable halt on throw, set a breakpoint, and then perform an Eval which throws while outside of a try-catch?

You're right, the Eval is inside the try-catch guard of the mandelbrot try-catch wrapper. I'll retest it later tonight.

Anyway, the expected behavior would be that there's a Throw notify with "fatal=1" for the error thrown inside Eval, and then an Eval reply indicating an error? So the sequence I posted above (from JSON proxy) but with fatal=1.

Just to make it clear: I don't think the bug is with the throw notify code specifically, but rather with the pause-on-throw option.  When fatal=1 Duktape halts execution and enters another debugger loop (duk_debug_halt_execution()), which delays delivery of the Eval reply and knocks things out of sync.
The errant detach mentioned above is most likely caused by a bug in my client, so don't pay too much mind to that. :)

Ok, should be possible to reproduce. So the desired behavior would be the JSON proxy sequence with fatal=1 without trying to halt again I think.

Looking at code this seems a bit odd. The error handling code is not intended to activate at all when debugger command processing is running: https://github.com/svaarala/duktape/blob/master/src/duk_error_misc.c#L88-L90. !thr->heap->dbg_processing should be false: https://github.com/svaarala/duktape/blob/master/src/duk_debugger.c#L1849-L1855. This assert should also be raised: https://github.com/svaarala/duktape/blob/master/src/duk_debugger.c#L1814 because we're already in the message processing loop.

Hm, I'm not sure, I'm definitely getting a Status notify with status=1 immediately after the throw, I've verified that under MSVC's debugger.  I'll turn on assertions and see if anything shows up.

Here's something interesting:
Starting minisphere... OK.
Connecting to <IP_ADDRESS>:1208... OK.
Handshaking... OK.
  Attached to minisphere 2.99.812
  Duktape v1.4.0

scripts/main.js:6 ssj$ go
Resuming execution at scripts/main.js:6... OK.
Spectacles: Bruce's Story miniRT Console
Sphere API v2.0 (minisphere 2.99.812)

Initializing Specs Engine test harness
Loading testcases from 'brucesStory.js'
Added battle test 'rsbBalcony'
Added battle test 'rsbFinal'
Loading testcases from 'lastLucidan.js'
Added battle test 'temple'
Uncaught Error: pig eaten by cow <scripts/main.js:46>

scripts/main.js:46 ssj$ eval pig
Evaluating JS expression... OK.
ReferenceError: identifier 'pig' undefined

Above, execution halts on an uncaught error, and the errant Eval works as expected: Eval's reply has flag=1 (error), and the string-coerced error.  However, if instead I cause the error at the outset:
Starting minisphere... OK.
Connecting to <IP_ADDRESS>:1208... OK.
Handshaking... OK.
  Attached to minisphere 2.99.812
  Duktape v1.4.0

scripts/main.js:6 ssj$ eval pig
Evaluating JS expression... Uncaught ReferenceError: identifier 'pig' undefined <input:1>
minisphere detached due to an error.
^C

So there's definitely a difference in behavior on Duktape's side.  Notice it never prints the "OK.", meaning the Detaching notify and disconnect happen before the reply is received. (the ^C is because the client got confused there and locked up)

Oh, I forgot to mention: Despite the odd behavior in the second case, no asserts seem to have been triggered.

Running with an additional debug print:
[D] duk_error_misc.c:91 (duk_err_setup_heap_ljstate): check for throw notify: attached=1, processing=0, type=1

So in the longjmp setup code thr->heap->dbg_processing = 0 while we're executing eval.

No asserts are fired, and I don't get any protocol issues when the mandel() call is not try-catch protected:
sva@keppihevonen:~$ telnet localhost 9093
Trying <IP_ADDRESS>...
Connected to localhost.
Escape character is '^]'.
{"notify":"_Connected","args":["1 10499 v1.4.0-61-g7dd8799-dirty duk command built from Duktape repo"]}
{"notify":"Status","command":1,"args":[1,"foo.js","global",58,0]}
{"request":"AddBreak","args":["foo.js",86]}
{"reply":true,"args":[0]}
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"foo.js","global",58,0]}
{"notify":"Status","command":1,"args":[1,"foo.js","mandel",86,45]}

; Here doing the Eval
{"request":"Eval","args":["throw new Error('aiee')"]}

; Throw notify, this time "fatal" is 1
{"notify":"Throw","command":5,"args":[1,"Error: aiee","input",1]}

; Eval reply
{"reply":true,"args":[1,"Error: aiee"]}

; DelBreak and resume normally
{"request":"DelBreak","args":[0]}
{"reply":true,"args":[]}
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",86,45]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Print","command":2,"args":[".#############################################..................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Detaching","command":6,"args":[0]}
{"notify":"_Disconnecting"}

Is this with pause-on-throw enabled?

Just to clarify, I don't have "halt on uncaught" defined which probably explains why nothing goes really wrong in my case.
However, given the guard in the longjmp handler, no Throw notify should be sent during Eval. (One can then argue which behavior is desirable.)

Yeah, the bug is specifically related to halt on uncaught, the throw notify itself is fine (I thought I clarified this above).

The intent of the current code is that a Throw notify is not sent during a debugger Eval.
I think I found the bug, when the bytecode executor enters debugger message processing loop the code path doesn't set thr->heap->dbg_processing = 1 which then allows the error handling code to process throw/halt.

Avoiding the Throw notify will also fix the errant pause, correct?

Yes, this is what happens with dbg_processing set as expected and with "pause on uncaught" enabled:
$ telnet localhost 9093
Trying <IP_ADDRESS>...
Connected to localhost.
Escape character is '^]'.
{"notify":"_Connected","args":["1 10499 v1.4.0-61-g7dd8799-dirty duk command built from Duktape repo"]}
{"notify":"Status","command":1,"args":[1,"foo.js","global",58,0]}
{"request":"AddBreak","args":["foo.js",86]}
{"reply":true,"args":[0]}
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"foo.js","global",58,0]}
{"notify":"Status","command":1,"args":[1,"foo.js","mandel",86,45]}

; Here's the Eval and its reply: no Throw notify
{"request":"Eval","args":["throw new Error('aiee')"]}
{"reply":true,"args":[1,"Error: aiee"]}

; DelBreak and Resume normally
{"request":"DelBreak","args":[0]}
{"reply":true,"args":[]}
{"request":"Resume"}
{"reply":true,"args":[]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",86,45]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Print","command":2,"args":[".#############################################..................................\n"]}
{"notify":"Print","command":2,"args":["................#########.######################................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":[".................#######..######################................................\n"]}
{"notify":"Print","command":2,"args":["...........................#####################................................\n"]}
{"notify":"Print","command":2,"args":["............................###################.................................\n"]}
{"notify":"Print","command":2,"args":["..............................#################.................................\n"]}
{"notify":"Print","command":2,"args":["..............................#..##########.....................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["....................................####........................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Status","command":1,"args":[0,"foo.js","mandel",88,54]}
{"notify":"Print","command":2,"args":["........................................#.......................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Print","command":2,"args":["................................................................................\n"]}
{"notify":"Detaching","command":6,"args":[0]}
{"notify":"_Disconnecting"}

No issues with the debugger session but there's no Throw notify for the Eval-triggered error either. I don't think that's necessarily a bad feature though because doing recursive debugger messaging is a little bit risky. But in this particular case I think it'd be safe to send the Throw notify but not to try to halt again.

Pull #562 fixes the issue at least for me. Overall I'm not very happy with the debugger state handling: for example, there are multiple paths into the debugger message loop so it's easy to some flag handling to differ between the alternate paths.

I think the Throw notify is probably redundant, the REP for the Eval already includes a flag indicating whether the result is an error or not, so you don't get any additional information out of it.

Maybe the Eval reply could also indicate if the error would be caught (in the sense of the "fatal" flag in the Throw notify) so it'd have that missing piece of information?

Hm, if the error would be caught it will have to be inside the Eval code itself, since otherwise it won't get past the protective sandbox handling the request anyway.  But I can see how Throw notifys during debugger eval could be useful, if you're calling into "black box" functions on the target.

You're right - it doesn't really provide useful information because while there's no Ecmascript try-catch, the debugger code protected call will catch the error anyway. Never mind :)

The only useful info provided by the Throw notify that isn't provided by Eval is the file/line where it was thrown from.

Okay, just following up to mention that, having done more work with the debugger, the Throw notifys from Eval are proving to be a major nuisance in practice.  So I would be fine with a solution that just avoids generating them during processing of Eval.

Agree, and with #562 in master there shouldn't be any more Throw notifys (or other debugger messaging) during a debug client initiated Eval.


Create strings_ru.arb

I think these are all correct, but I need to see them in actual UI to see if any correction needed

@YuriGal
LGTM, thank you!


support flutter web wasm builds

Version
4.5.0
Steps to Reproduce
in a flutter web project, build it with flutter build web --wasm
Expected Result
it builds
Actual Result
it doesn't build
More Context
flutter web wasm builds are now in stable branch and it is now a reasonable expectation for packages to support it https://docs.flutter.dev/platform-integration/web/wasm

Thanks for creating the issue.
We'd need to:

Migrate your packages to package:web and dart:js_interop to make them compatible with Wasm. Read the Requires JS-interop section to learn more.

mainly the posthog_flutter_web.dart and posthog_flutter_web_handler.dart files would need to be changed.
Something to check is if after the migration it's still compatible with older Flutter versions (that's a must I'd say otherwise we'd need a major bump).
While we'd like to support it, it's still a low priority since there are a few limitations to running wasm on the browser so we'd not do this right now but soonish, of course PRs are welcome, happy to guide anyway jumping in here.

I tried a little PR, currently I have issues with flutter 3.24 so I couldn't test it again when filing the PR, but this should work using dart:js_interop instead of dart:js.
Feel free to use this PR/adjust it etc.
https://github.com/PostHog/posthog-flutter/pull/114

I tried a little PR, currently I have issues with flutter 3.24 so I couldn't test it again when filing the PR, but this should work using dart:js_interop instead of dart:js.
Feel free to use this PR/adjust it etc.
#114

a few things have to be fixed such as:
call.arguments['properties'] as Map<Object?, Object?>? ?? {} so the extension jsify is recognized.
For some reason the cast has to be always to Map<Object?, Object?> even though its declared as Map<String, Object>? properties, the method channel is always converting during the invokeMethod call, plus test that everything works as expected, but thanks for the initial PR @flowhorn


The dlib Python package does not respect cudaSupport from the given dlib library derivation

Describe the bug
The Dlib Python package sets build flags in a different way to the library.
It does not add the flag to enable CUDA support, even if the library derivation has been configured to do so.
Steps To Reproduce
Steps to reproduce the behavior:

Build python3Packages.dlib
Note that dlib.DLIB_USE_CUDA is false, even though the dlib derivation has CUDA enabled

Expected behavior
The CUDA setting should be preserved.
Additional context
The way that python3Packages.dlib inherits values from dlib is very problematic in general. Notably, the link to the derivation source code from search.nixos.org goes to the wrong place.
Notify maintainers
@Ma27 @christopherpoole
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 5.10.104-tegra, Ubuntu, 20.04.6 LTS (Focal Fossa), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.16.1`
 - channels(root): `"jetpack, nixpkgs"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

This should be closed now as a PR to fix this has been merged #279927

#279927 does not fix the Python package. See the Python changes in #273665.

#279927 does not fix the Python package. See the Python changes in #273665.

Ah does it not? Annoying, I was just testing for c++, hoped the fix would propagate through.


Add repository metadata to grandpa-rpc-crate

Releasing is broken again, because of missing metadata in a cargo.toml.
This fixes that.
Enabled cargo unleash check on the PR to check it works, will be reverted before merge.

bot merge


Crash app with DNDB high load!

Hi!
I wrote a simple test and I want to share it with you.

Test code:

In this example i run simple visit counter

Run it

And all well done! In DB i see correct counter value.
But if i press and hold F5 key (Firefox) - this allows you to simulate a large request frequency per second of time.
DNDB make db.update file and crash all app

please tell me how to disable db. update or optimize dndb for high loads?
P.S ( deno - 1.7.0 &  dndb 0.2.6 )

Hi buddy, the problem is not a DnDB issue. It is actually just because you're not awaiting your async function.
I did a minimal example with the fix and it works nice:
import { Application } from<EMAIL_ADDRESS>import Datastore from<EMAIL_ADDRESS>
const app = new Application();

const count = new Datastore({
  autoload: true,
  filename: './count.db'
})

console.log("http://localhost:8080/");

const increment =  async (page) => {
  let results = await count.find({ url: page })
  if (results.length) {
    for (let el of results) {
      let { counter } = el;
      return await count.updateOne({url: page}, {$set: {counter: counter+1}})
    }
  } else {
    let doc = {
      url: page,
      counter: 1
    }
    return await count.insert(doc);
  }
}

app.get('/*', async (c) => {
  let page = c.url.pathname;
  page = page === '/' ? 'index' : page
  let pageVisit = await increment(page);
  return JSON.stringify(pageVisit, null, 2)
})

app.start({port: 3000})

Also you don't need to loop through all the documents, you can use Dropper.updateOne() :D but I did it in the example to be true to your code, also dndb does not return async iterators they are just arrays. So no need to use for await.
Does this solve your problem? If it does, I proceed to close, regards 😄 .

Hi buddy, the problem is not a DnDB issue. It is actually just because you're not awaiting your async function.
I did a minimal example with the fix and it works nice:
import { Application } from<EMAIL_ADDRESS>import Datastore from<EMAIL_ADDRESS>
const app = new Application();

const count = new Datastore({
  autoload: true,
  filename: './count.db'
})

console.log("http://localhost:8080/");

const increment =  async (page) => {
  let results = await count.find({ url: page })
  if (results.length) {
    for (let el of results) {
      let { counter } = el;
      return await count.updateOne({url: page}, {$set: {counter: counter+1}})
    }
  } else {
    let doc = {
      url: page,
      counter: 1
    }
    return await count.insert(doc);
  }
}

app.get('/*', async (c) => {
  let page = c.url.pathname;
  page = page === '/' ? 'index' : page
  let pageVisit = await increment(page);
  return JSON.stringify(pageVisit, null, 2)
})

app.start({port: 3000})

Also you don't need to loop through all the documents, you can use Dropper.updateOne() :D but I did it in the example to be true to your code, also dndb does not return async iterators they are just arrays. So no need to use for await.
Does this solve your problem? If it does, I proceed to close, regards 😄 .

Ok, I'm testing right now on another pc and it crashes with the same exact error even when I'm waiting for the function. Let me check it out ASAP.

Ok, I'm testing right now on another pc and it crashes with the same exact error even when I'm waiting for the function. Let me check it out ASAP.

I think that the problem is in writing the backup file db. updated and the reaction of the operating system. If we give the request rate about 1600 per minute-the application crashes

I think that the problem is in writing the backup file db. updated and the reaction of the operating system. If we give the request rate about 1600 per minute-the application crashes

Yes, I'm working so far trying to debug this, but I can't find why it fails at that operation rate. I guess the same as you, by now I only know that this is related to the temporary file renaming and the way dndb handles storage. I am working solve the problem ASAP.

Yes, I'm working so far trying to debug this, but I can't find why it fails at that operation rate. I guess the same as you, by now I only know that this is related to the temporary file renaming and the way dndb handles storage. I am working solve the problem ASAP.

@michailVestnik Hi, buddy, this is the new update:
Basically the error occurs because when a user makes a request at the same time as another user is doing the same, Deno revokes the rename operation because the file is already open by another call. In fact, I made a run queue manager, but it didn't work due to the way the DnDB storage system is managed, dndb opens and closes the file every time an operation is executed. Probably what I'll have to do is keep the file open when initializing dndb and close it only when renaming. For now I have to do some rewrites, please be patient.

@michailVestnik Hi, buddy, this is the new update:
Basically the error occurs because when a user makes a request at the same time as another user is doing the same, Deno revokes the rename operation because the file is already open by another call. In fact, I made a run queue manager, but it didn't work due to the way the DnDB storage system is managed, dndb opens and closes the file every time an operation is executed. Probably what I'll have to do is keep the file open when initializing dndb and close it only when renaming. For now I have to do some rewrites, please be patient.

@michailVestnik I did some changes and it is working so far:
https://user-images.githubusercontent.com/28849055/105697894-ed7e5a00-5ee3-11eb-9337-03650599351a.mp4
Idk if it is only working on my environment so, can you perform a test with the update using the example?
https://raw.githubusercontent.com/denyncrawford/dndb/main/mod.ts

@michailVestnik I did some changes and it is working so far:
https://user-images.githubusercontent.com/28849055/105697894-ed7e5a00-5ee3-11eb-9337-03650599351a.mp4
Idk if it is only working on my environment so, can you perform a test with the update using the example?
https://raw.githubusercontent.com/denyncrawford/dndb/main/mod.ts

OK. I'll test it now, wait!

OK. I'll test it now, wait!

Everything works perfectly! you're doing great!
I tested for large requests and DDoS attacks - everything is fine!
Now DND is a reliable base!

Everything works perfectly! you're doing great!
I tested for large requests and DDoS attacks - everything is fine!
Now DND is a reliable base!

Thanks @michailVestnik, it's great that this bug has been discovered and resolved. I proceed to close this issue and publish the stable version.

Thanks @michailVestnik, it's great that this bug has been discovered and resolved. I proceed to close this issue and publish the stable version.


golang.org/x/sys and other packages don't seem to work

I'm walking through the dependencies in my go.mod and I find that the golang.org/x/ repositories give me trouble:
% go-licenses csv golang.org/x/sys
Error: errors for ["golang.org/x/sys"]:
golang.org/x/sys: -: module golang.org/x/sys@latest found (v0.0.0-20200420163511-1957bb5e6d1f), but does not contain package golang.org/x/sys
Usage:
  licenses csv <package> [flags]

Flags:
      --git_remote stringArray   Remote Git repositories to try (default [origin,upstream])
  -h, --help                     help for csv

Global Flags:
      --alsologtostderr                  log to standard error as well as files
      --confidence_threshold float       Minimum confidence required in order to positively identify a license. (default 0.9)
      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
      --log_dir string                   If non-empty, write log files in this directory
      --logtostderr                      log to standard error instead of files
      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
  -v, --v Level                          log level for V logs
      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging

F0423 16:43:51.988116     851 main.go:43] errors for ["golang.org/x/sys"]:
golang.org/x/sys: -: module golang.org/x/sys@latest found (v0.0.0-20200420163511-1957bb5e6d1f), but does not contain package golang.org/x/sys

Is there a trick to this? Advice?

Can you provide a copy of your go.mod file please?

The same with:
github.com/oklog/oklog
google.golang.org/genproto
golang.org/x/crypto

and others.

@ilya310300 @floren Please provide a copy of your go.mod file or link to a repo.

I'm not fully sure that it's the right way to fix that but adding "golang.org":    "blob/master/", in repoPathPrefixes definition (file library.go) seems fix the problem :
var (
	// TODO(RJPercival): Support replacing "master" with Go Module version
	repoPathPrefixes = map[string]string{
		"github.com":    "blob/master/",
		"bitbucket.org": "src/master/",
		"golang.org":    "blob/master/",
	}
)

@RJPercival  : would you please confirm if it's right way to fix that issue ?

If you drop the contents of this gist into a directory, you can 'go build' and it'll work, but running go-licenses csv golang.org/x/sys will fail as mentioned above.
https://gist.github.com/floren/70c8f5c9c12c4b6a2e4b73416604e34d

This is a general problem with the sys package. For example. the following fails: https://play.golang.org/p/saGt7CYOsm4

Here is a repo showing this problem: https://github.com/dcormier/go-licenses (complete with the requested go.mod file)
Here is the result of running the command in that repo:
> go-licenses csv ./...
E1124 13:29:32.929173    4835 library.go:108] Failed to find license for github.com/dcormier/go-licenses: no file/directory matching regexp "^(?i)(LICEN(S|C)E|COPYING|README|NOTICE)(\\..+)?$" found for /Users/daniel/dev/go-licenses
E1124 13:29:34.556349    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- cannot determine URL for "go.uber.org/fx" package
E1124 13:29:34.561466    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- cannot determine URL for "go.uber.org/multierr" package
E1124 13:29:34.565913    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- unsupported package host "contrib.go.opencensus.io" for "contrib.go.opencensus.io/exporter/aws"
E1124 13:29:34.634052    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- cannot determine URL for "go.opencensus.io" package
E1124 13:29:34.691811    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- unsupported package host "golang.org" for "golang.org/x/text"
E1124 13:29:34.704699    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- cannot determine URL for "go.uber.org/dig" package
E1124 13:29:34.709631    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- cannot determine URL for "go.uber.org/atomic" package
E1124 13:29:34.715882    4835 csv.go:84] Error discovering URL for<EMAIL_ADDRESS>- unsupported package host "golang.org" for "golang.org/x/net/idna"
go.uber.org/fx,Unknown,MIT
go.uber.org/multierr,Unknown,MIT
github.com/dcormier/go-licenses,Unknown,Unknown
contrib.go.opencensus.io/exporter/aws,Unknown,Apache-2.0
github.com/aws/aws-sdk-go,https://github.com/aws/aws-sdk-go/blob/master/LICENSE.txt,Apache-2.0
github.com/jmespath/go-jmespath,https://github.com/jmespath/go-jmespath/blob/master/LICENSE,Apache-2.0
go.opencensus.io,Unknown,Apache-2.0
github.com/golang/groupcache/lru,https://github.com/golang/groupcache/blob/master/lru/LICENSE,Apache-2.0
golang.org/x/text,Unknown,BSD-3-Clause
github.com/aws/aws-sdk-go/internal/sync/singleflight,https://github.com/aws/aws-sdk-go/blob/master/internal/sync/singleflight/LICENSE,BSD-3-Clause
go.uber.org/dig,Unknown,MIT
go.uber.org/atomic,Unknown,MIT
golang.org/x/net/idna,Unknown,BSD-3-Clause
>

Im not sure if this is the same problem but
import (
	"golang.org/x/sys/windows/registry"
)

PS D:\Unity_Projects\nwt7-lvl5-castles\windows\services\go_http_web_service> go build .\http.go
http.go:24:2: no required module provides package golang.org/x/sys/windows/registry: go.mod file not found in current directory or any parent directory; see 'go help modules'

I think the root cause is that golang.org/x/sys is a module, but it is not a package.
Refer to its source code: https://cs.opensource.google/go/x/sys.
There are no go source files directly in this folder.
So we cannot load the package golang.org/x/sys.

This can be workarounded by my v2 implementation: https://github.com/google/go-licenses/pull/71 that works on modules directly instead of packages.

Please comment if this still persists, updated documentation and released go modules support in v1.1.0.
Note, go-licenses csv accepts a go package, a folder without go files is not a go package.

I am still seeing the problem:

no Go files in ~/go/src/golang.org/x/sys

what was the accepted solution/workaround? I see that https://github.com/google/go-licenses/pull/82 was merged though: is anyone else still experiencing the problem?

@gennaro-tedesco can you share detailed reproduction steps?

Sure: I am on macOS 10.16.0 Big Sur and I have tried with different values for the GO111MODULE env variable.

if installing via go install golang.org/x/sys@latest I get a combination of "no Go files in ~/go/src/golang.org/x/sys" and "module golang.org/x/sys@latest found (v0.1.0), but does not contain package golang.org/x/sys" according to whether or not I set GO111MODULE to explicit values.

if importing golang.org/x/sys in a module and running go mod tidy I get

../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200918174421-af09f7315aff/unix/zsyscall_darwin_arm64.1_13.go:40:3: //go:linkname must refer to declared function or variable

Sure: I am on macOS 10.16.0 Big Sur and I have tried with different values for the GO111MODULE env variable.

if installing via go install golang.org/x/sys@latest I get a combination of "no Go files in ~/go/src/golang.org/x/sys" and "module golang.org/x/sys@latest found (v0.1.0), but does not contain package golang.org/x/sys" according to whether or not I set GO111MODULE to explicit values.

if importing golang.org/x/sys in a module and running go mod tidy I get

../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200918174421-af09f7315aff/unix/zsyscall_darwin_arm64.1_13.go:40:3: /go:linkname must refer to declared function or variable

The commands you ran do not relate to go licenses though.
Note golang.org/x/sys is not a go package, that's why those commands failed. There are go packages with golang.org/x/sys as prefix.


LEAN-2992 - Move react stuff to appropriate component + remove reques…

…ted options

Are we never going to have such features on the table? Should we consider just disabling it for now?

Yes, we don't want any styling things to be part of the editor, since they don't translate to JATS, and thus will be lost.


flame_tiled examples for the examples site

What could be improved
We currently don't have any flame_tiled examples on https://examples.flame-engine.org
Why should this be improved
To make it easier for the users to get started and experimenting with flame_tiled.
Any risks?
No

I'm going to let my brain cool down after this last pr, but when I wrote EmberQuest, I did it all in flame_tiled first and then ported it to straight flame. I think I still have all the code, so it could either go in the bridge package docs or as an addendum to EmberQuest.  Thoughts?

I think both would be good. So more an explanation of the code in the docs then, and just the straight up code in the examples, if it is not too much effort?

Just getting started on this.  Hope to have something within the next few days.


debug precip data pull

For Harvey-al092017 branch:
> scmake('1_fetch/out/precip_data.rds.ind')
Starting build at 2018-09-04 08:16:30
<  MAKE > 1_fetch/out/precip_data.rds.ind
[    OK ] viz_config
[    OK ] dates
[    OK ] view_config
[    OK ] 1_fetch/out/view_polygon.rds.ind
[    OK ] view_polygon
[ BUILD ] 1_fetch/out/precip_data.rds.ind             |  fetch_precip_data(ind_file = "1_fetch/out/precip_data.rds.ind", view_polygon = view_polygon, times = dates)
[  READ ]                                             |  # loading packages
[=================================================================================================================================================================================] 100%
retrying...
retrying...
Error: transfer closed with 410038616 bytes remaining to read
>

I ran it again going line-by-line through fetch_precip_data. Same morning, (still?) on VPN. This time it worked with one retry:
> job <- geoknife(stencil = stencil_pts, fabric = fabric, knife = knife)
[=================================================================================================================================================================================] 100%
> nc_file <- file.path(tempfile(fileext = '.nc'))
> download(.Object = job, destination = nc_file, overwrite = TRUE)
retrying...
[1] "C:\\Users\\aappling\\AppData\\Local\\Temp\\1\\RtmpYVh9kQ\\file32a855856eb7.nc"

But as soon as I try to build with scmake again, I hit the same sequence of retrying...retrying...Error: transfer closed as before (this time transfer closed with 335188312 bytes remaining to read).

ugg, maybe this is WAF related?

Yeah. I asked @jkreft-usgs about it. Seems like it's very likely the WAF cutting off "slow" transfers.

On Sep 4, 2018, at 9:42 AM, Jordan S Read<EMAIL_ADDRESS>wrote:
ugg, maybe this is WAF related?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks DB

It seems to be working to break the pull into chunks. For the Harvey spatial extent, 3 days per chunk (120-166MB per chunk) is working as of 9/4/18.

WAF issue resolved by getting GDP an exception


Can't find "Convert to Swift" button

Hey, I really liked the idea of your app and I'd like to add it on Awesome-iOS, but right now I can't find the "Convert to Swift" button

@dzenbot the way I saw this plugin is that I'd be happily coding my swift project and then I had a problem and I only found an Obj-C solution on StackOverflow. I'd copy and paste this code in my swift file where I'm having this problem and convert it to Swift.

@dzenbot I was thinking about doing it and that's why I was testing. I'll be adding today or tomorrow. Thanks for the library.


Genric type list support to map to child type JSON mapping

I could not figure out if TypeConverter could support such a use case and hence I am raising an issue. Consider the following situation:
@JsonObject
 class A{
         @JsonField
        String aa;
    }
@JsonObject
class B extends A{
         @JsonField
        String bb;

  }
@JsonObject
 class C extends A{
         @JsonField
         String cc;
   }

I want to parse my incoming JSON array into List<A> but while fetching them I would like to type cast them as the child classes of B and C and use cInstance.getCc() .Is this possible?

referencing similar issue  and closing duplicate . https://github.com/bluelinelabs/LoganSquare/issues/21

Is there any timeline to support this feature?


gpu occupied by another vm after vm stopped

What happened:
Let say I have one GPU and two vm(vm1 and vm2) both request one GPU:

vm1 started normally
vm2 start failed because insufficient of GPU

When I stop vm1, then virt-launcher-vm1 pod delete, the unschedulable vm vm2 occupied the GPU resource.  At this moment vm1 start failed.
What you expected to happen:
Do not release GPU resource when vm1 stopped(or restart, restart  will delete pod and re-create it).
How to reproduce it (as minimally and precisely as possible):
Steps to reproduce the behavior.
Additional context:
Add any other context about the problem here.
Environment:

KubeVirt version (use virtctl version): N/A
Kubernetes version (use kubectl version): N/A
VM or VMI specifications: N/A
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): N/A
Kernel (e.g. uname -a): N/A
Install tools: N/A
Others: N/A

The best recommendation I can offer is to be more specific in how you label GPU devices to prevent GPU contention, if multiple VMs are pinned to the same GPU label, then which ever VM can schedule to a matching available GPU will do that and this appears to be expected behavior.

@usrbinkat
Hi, how should I add label to GPU devices ?  Currently I let GPU device passthrough to guest, so there's no "GPU device"
api resource in kubernetes.

@usrbinkat
Hi, how should I add label to GPU devices ? Currently I let GPU device passthrough to guest, so there's no "GPU device" api resource in kubernetes.

Hey,
how do you expose the GPU to Kubernetes? The idea described is to name specific gpu devices with one name and that name could be referred to only by one VM. That is definitely not ideal.
Now here we are lacking the K8S support because there the concept of device reservation doesn't make much sense for VMs. You would need to develop your own device plugin that would understand the concept of reservation/ownership for the VM or you can use resource quotas to distribute your resources.

/reopen
/remove-lifecycle rotten


Vignette build not working

Despite fixing deprecated warning during vignette build in kwb.base (https://github.com/KWB-R/kwb.base/commit/0614b9333031c550edd74243e2464f5420c45dbb) there is another problem during vignette build:

Error in getPredictionOfQ(hydraulicData = hydraulicData, regressionModels = regressionModels,  :
There is no such regression model: REGRESSION_DIR/ALT_01_regressionModel.txt.
You may run section "Find H-Q regression to create such a model.
Calls: withCallingHandlers ... .f -> render_rmarkdown ->  -> get_result
Execution halted
Error in getPredictionOfQ(hydraulicData = hydraulicData, regressionModels = regressionModels,  :
There is no such regression model: REGRESSION_DIR/ALT_01_regressionModel.txt.
You may run section "Find H-Q regression to create such a model.

See also: https://travis-ci.org/KWB-R/kwb.monitoring/builds/394901117

Everything that is leading to an error due to missing data is commented out now


Change to "beta-alanyl-dopamine synthase activity" name & def (GO:0003833)

We have this term:
id: GO:0003833
name: beta-alanyl-dopamine synthase activity
namespace: molecular_function
def: "Catalysis of the synthesis of beta-alanyl-dopamine from the precursor dopamine (3,4-dihydroxyphenylethylamine)." [GOC:bf, ISBN:0198506732, PMID:12957543]
synonym: "N-beta-alanyl dopamine synthetase activity" EXACT []
synonym: "NBAD transferase activity" EXACT []
is_a: GO:0016874 ! ligase activity
The only annotations are IDA annotations to the D. melanogaster 'ebony' gene and IEA annotations to its orthologs in other Drosophila species. So the term only really exists to annotate this single gene/protein (at present).
Although 'ebony' was originally identified as a 'beta-alanyl-dopamine synthase', subsequent work showed that a broader variety of biogenic amines are accepted to form the relevant beta-alanyl-amine product (see PMID:12900414, 19715698, 25229196.). E.g. histamine converted to beta-alanyl-histamine.
Thus, I think the current GO:0003833 term name and definition should be broadened to something like:
name: beta‐alanyl biogenic amine synthase activity
def: "Catalysis of the synthesis of a beta‐alanyl amine conjugate from a precursor biogenic amine, such as dopamine or histamine." [PMID:12900414, PMID:25229196]

Hi @hdrabkin, @pgaudet
I realise another complication here is that "β-alanyl-biogenic amine synthetase" catalyses a two-step reaction, as shown in Fig 2 of PMID: 12900414 (screenshot attached).
First step: The A-domain of holo-Ebony activates β-alanine as aminoacyladenylate at the expense of ATP and subsequently transfers it onto the thiol group of the P-pant thiolation domain.
Second step: In the next step, the amine group of dopamine [though other substrates are accepted, as noted above] performs a nucleophilic attack onto the thioester of the Ebony-bound β-alanine that might be catalyzed by the putative amine-selecting domain. This leads to the formation of β-alanyl-dopamine.

First step seems to be a "ligase activity, forming carbon-sulfur bonds GO:0016877" (or child thereof)
Second step seems to be a "ligase activity, forming carbon-nitrogen bonds  GO:0016879" (or child thereof)
How is this best handled?  Similar to https://github.com/geneontology/go-ontology/issues/21024??

Quickly looking over coffee; there is a lot of things wrong with this term I think. Definition is more akin to a process term.
So this reminds me of aminoacyl-tRNA synthetases
overall reaction: amino acid + ATP + tRNA = aa-tRNA + AMP + PPi
In the absence of a tRNA, the reaction yields activated amino acid (aa-AMP); this is consistent with classification as a ligase.
RHEA does not list separate reactions but just lists the 'total' reaction.  See for example Tryptophanyl-tRNA synthetase, (RHEA:24080)
Thus,
Beta-alanine + ATP + dopamine = beta-alanyl-dopamine + AMP + PPi.
I think the apo-ebony  to holo-ebony  step is a separate step with separate enzyme  P-pant transferase.
I guess that, like the aa-tRNA synthetases, the question is if beta-alanyl-AMP is only 'seen' in the absence of dopamine?

Thanks Harold - that's useful.
I ended up back at this ticket from looking at a related mouse protein - I was trying to annotate fly Aasdh (Q9VLL0) based on knowledge of the mouse ortholog (https://www.uniprot.org/uniprot/Q80WC9) coming from https://pubmed.ncbi.nlm.nih.gov/24467666/.  UniProt has that mouse protein annotated with EC:6.2.1.- (acid-thiol ligase activity) with the description "Covalently binds beta-alanine in an ATP-dependent manner to form a thioester bond with its phosphopantetheine group and transfers it to an as yet unknown acceptor via an amide bond. "
So both 'ebony' and 'Aasdh' seem to do the 'beta-alanine activation' thing, but the acceptor(s) is only known for ebony.
Not sure this helps....

A priori, isn't the critical issue the number of distinct chemical steps involved? The fact that the acceptor is sometimes unknown would be irrelevant if, known or not, it gets converted to derivatized unknown acceptor in a single step as GO defines "single".

@deustp01 , I was using the 'logic' as I understand RHEA using it to decide on whether to make separate reactions to argue not making a separate beta-alanine activation step.

So, if we stick with one GO term for the activity of 'ebony', then it would still be classified as a ligase (as now), right?  But more specifically, it should be move to be a child of "ligase activity, forming carbon-nitrogen bonds (GO:0016879)", maybe even "acid-amino acid ligase activity (GO:0016881)"?
Then, we should generalise the name and def to cover all biogenic amines (not just dopamine) and reword the def to sound less like a process.
Sound OK?
Not sure how best to annotate the Aasdh proteins.....

@hdrabkin Just to itemise my proposal/request:

Rename GO:0003833 term name to "beta‐alanyl amine synthase activity"
Change GO:0003833 def to "Catalysis of the synthesis of a beta‐alanyl amine conjugate from a precursor biogenic amine, such as dopamine or histamine." [PMID:12900414, PMID:25229196]"
Move GO:0003833 to be child of "ligase activity, forming carbon-nitrogen bonds (GO:0016879)"or "acid-amino acid ligase activity (GO:0016881)" (advice needed here)

Thanks.

@pgaudet Policy: here we are changing both name and def;   Should there be an obsoletion?

There should only be an obsoletion if it makes the annotations invalid. Looks like the new definition is not that different from what it used to be.

Ok, just checking

GO:0016881 appears to ligate one amino acid or other acid to an amio acid (see children); so I would go with GO:0016879

done.

Thanks!

Hi @hdrabkin Just noticed a couple of errors in the definition of this.
Current:
Catalysis of the synthesis of beta-alanyl amine conjugate from a precursor biogenetic amine, such as dopamine or histamine. PMID:12900414 PMID:12957543 PMID:25229196
Should be:
Catalysis of the synthesis of a beta-alanyl amine conjugate from a precursor biogenic amine, such as dopamine or histamine.

fixed

Thanks!


Add a callback for each image on load

Just added a quick callback option to suit my needs. It worked out better for me to have the callback fire independently of the effect, but I guess I'll leave that up to you.

Exactly what I needed. Hopefully this will be merged before the next version.

Glad that worked for ya! I hope so too, haven't heard anything yet though.

December is busy^2 in day work. Will look into this bit later. Looks good though!

Merged to 1.7.0 branch. Thanks!


Bug: wrapper.text() is empty for components that only render a slot

Describe the bug
When a component's render function only returns the default slot, wrapper.text() for that component is always empty, but wrapper.html() contains all the correct markup.
To Reproduce
The first two tests here succeed, while the last test fails at expect(wrapper.text()).toContain('some text'); even though the same assertion with wrapper.html() passes.
The problem is with the Container component in the final test, which has a render function that only returns the default slot:
    const Container = defineComponent({
      render() {
        return this.$slots.default({});
      },
    });

The return values from Component.render() (first test) and Parent.render() (last test) are almost identical, but VTU treats them very differently.
import { mount } from '@vue/test-utils';
import { defineComponent, h } from 'vue';

describe('Text', () => {
  test('Component text()', () => {
    const Component = defineComponent({
      render: () => [
        h('div', 'some text'),
        h('div', 'other stuff'),
      ],
    });

    const wrapper = mount(Component);

    expect(wrapper.html()).toContain('some text');
    expect(wrapper.text()).toContain('some text'); // succeeds
  });

  test('Slot in div text()', () => {
    const ContainerWithDiv = defineComponent({
      render() {
        return h('div', undefined, this.$slots.default({}));
      },
    });

    const Parent = defineComponent({
      components: { ContainerWithDiv },
      template: `
    <ContainerWithDiv>

some text

other stuff

    </ContainerWithDiv>`,
    });

    const wrapper = mount(Parent);

    expect(wrapper.html()).toContain('some text');
    expect(wrapper.text()).toContain('some text'); // succeeds
  });

  test('Slot root text()', () => {
    const Container = defineComponent({
      render() {
        return this.$slots.default({});
      },
    });

    const Parent = defineComponent({
      components: { Container },
      template: `
    <Container>

some text

other stuff

    </Container>`,
    });

    const wrapper = mount(Parent);

    expect(wrapper.html()).toContain('some text');
    expect(wrapper.text()).toContain('some text'); // fails here
  });
});

Expected behavior
I would expect wrapper.text() to return something similar to wrapper.html() but without the markup.
Related information:

@vue/test-utils version: 2.0.0-rc.21
Vue version: 3.2.33
node version: 3.2.33
npm (or yarn) version: 8.1.0

Additional context
The component causing trouble for us is effectively a headless component. It takes some props, augments them or transforms them, and makes them available via slot props. We use this as the top level component for a bunch of Input components, and in the tests for Input components we like to use wrapper.text() to verify that certain values like labels are present "somewhere" without being too specific.
A workaround is to find an element in the wrapper using wrapper.find or wrapper.get and then test the text() of that, which works successfully.

It was reproducible in the VTU unit tests, but I have not yet been able to take a closer look.


Log git commit ID of nowcasting_dataset

So we can reproduce batches later if necessary and/or diagnose issues

I did set up neptune.ai when running this. I think this gives the git commit for this. But perhaps the git commit should go into the 'confgiruation' file

Closed by PR #159

I did set up neptune.ai when running this

Yeah, I really like the way neptune.ai logs useful stuff.
But, I must admit I'm wondering if we can remove neptune.ai from nowcasting_dataset... I think neptune.ai is mostly about logging ML training runs.  Logging the details of each run of prepare_ml_data.py feels more like something we should log locally, along with the dataset itself... although, that said, I'm happy for nowcasting_dataset to continue logging to neptune (neptune is free for us!) if you find it useful!


Disable xdebug by default

And get it to work with remote enable

I think this is not relevant anymore after we restructured the project in https://github.com/sulu/sulu-docker/pull/51

I think this is not relevant anymore after we restructured the project in https://github.com/sulu/sulu-docker/pull/51


Deprecate this auth module

Add note to README
Add warning message whenever authorization delegate is invoked

Resolves: https://jira.duraspace.org/browse/FCREPO-2528
To test

Changes to fcrepo-webapp-plus must be made to enable the use of the auth module
** Guidance: https://gist.github.com/awoods/08e3473031b3883fe9e446268e46c769
This PR must be built locally
The updated fcrepo-webapp-plus must be built along the lines of:

mvn clean install -Pxacml -DskipTests

Run fcrepo-webapp-plus

mvn -Dfcrepo.modeshape.configuration=classpath:/config/servlet-auth/repository.json  jetty:run -Pxacml

Test

curl -i -uuser1:password1 localhost:8080/rest/

@awoods :  I'm trying to verify this PR and I'm running into a problem building fcrepo-webapp-plus.
I pull down the last from master,  patched the code with the above gist, and ran the mvn clean install command:  The requested profile "xacml" could not be activated because it does not exist.

@awoods :  which branch of fcrepo-webapp-plus should I be patching?

@dbernstein : I would suggest starting with RBACL. The patch is just guidance... requires more steps, such as pulling in the xacml profiles into the src/webac/WEB-INF directory... or some such thing.


[WIP] Fix facet tag removal for multiple search terms

Trello: https://trello.com/c/udoZSC9q/331-bug-fix-facet-tag-removal
This commit fixes a bug with facet tag removal for text searches. Facet tag removal was always removing the first instance of that keyword, even if it was part of another word, e.g: "therefore the". In this case, removing "the" would result in "refore the". This commit fixes that.
Given the following search:

trying to remove "the":
Before

After

Heroku: https://finder-frontend-pr-988.herokuapp.com/find-eu-exit-guidance-business

Note: looking into this again as it still doesn't work as expected

@andysellick Could you please take another look? I've pushed a solution which exists the loop early once a keyword is found. I think it works... 🤞 Other tried approaches documented in the PR description.


Update functions-vs-code-run-remote vs code plugin navigation

@ikshitiz : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ikshitiz thanks for providing a fix for the troublesome copy-paste error. We did just merge a fix in over the weekend, so we won't be able to use this particular PR. You can review the updated article here. Please don't hesitate to suggest fixes in the future, and thanks again for your help in addressing this doc bug. #please-close


UIFlow 1 not starting on Core2

I'm new to using M5Launcher and encountered an issue whereby installing and starting UIFlow (1.0) on my Core2 would result in a black screen. The device only responds to the reset button or brute power off. UIFlow works normally on my device outside of the launcher. Below I put a dump from the serial monitor from the start of the launcher to UIFlow's fail. There are two tracebacks once UIFlow starts.
[FROM M5Burner] COM5 opened.
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1276
ho 0 tail 12 room 4
load:0x40078000,len:13232
load:0x40080400,len:3076
entry 0x400805f0
[boot] Turned on because (1= POWERON_RESET) (Other= Probably forced by launcher)--> 1
[    13][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[   469][I][esp32-hal-psram.c:96] psramInit(): PSRAM enabled
[   488][V][esp32-hal-uart.c:330] uartBegin(): UART0 baud(115200) Mode(800001c) rxPin(3) txPin(1)
[   497][V][esp32-hal-uart.c:416] uartBegin(): UART0 not installed. Starting installation
[   508][V][esp32-hal-uart.c:463] uartBegin(): UART0 initialization done.
[   795][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
[   804][D][M5GFX.cpp:796] autodetect(): [M5GFX] AXP192 found
[   813][E][esp32-hal-cpu.c:110] addApbChangeCallback(): duplicate func=0x40108988 arg=0x3ffbdc30
[   823][D][M5GFX.cpp:494] _read_panel_id(): [M5GFX] [Autodetect] read cmd:04 = 7f0000e3
[   832][I][M5GFX.cpp:934] autodetect(): [M5GFX] [Autodetect] M5StackCore2
[   960][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
[   970][V][Touch_FT5x06.cpp:63] _check_init(): [FT5x06] CIPHER:0x64 / FIRMID:0x01 / VENDID:0x01
[   979][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
[  1039][V][esp32-hal-uart.c:330] uartBegin(): UART0 baud(115200) Mode(800001c) rxPin(-1) txPin(-1)
[  1048][V][esp32-hal-uart.c:343] uartBegin(): UART0 Driver already installed.
[  1058][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1276
ho 0 tail 12 room 4
load:0x40078000,len:13232
load:0x40080400,len:3076
entry 0x400805f0
[boot] Turned on because (1= POWERON_RESET) (Other= Probably forced by launcher)--> 12

       _  __ _
 _   _(_)/ _| | _____      __
| | | | | |_| |/ _ \ \ /\ / /
| |_| | |  _| | (_) \ V  V /
 \__,_|_|_| |_|\___/ \_/\_/

Traceback (most recent call last):
  File "_boot.py", line 56, in <module>
  File "m5stack.py", line 4, in <module>
  File "hardware/__init__.py", line 11, in <module>
  File "hardware/axp192.py", line 5, in <module>
  File "deviceCfg.py", line 7, in <module>
IndexError: list index out of range
Traceback (most recent call last):
  File "_flow.py", line 5, in <module>
ImportError: can't import name power
MicroPython bd726ecdd-dirty on 2024-06-20; M5Stack with ESP32
Type "help()" for more information.
>>>

I spent a lot of time here trying to figure out a way to make UiFlow1 work with M5Launcher, and here is what I've lerned:

for UiFlow1 to start it needs to setup a "phy_init" partition, which I was able to reproduce and make it happen
But it freezes a few seconds in the menu Screen... when it tries to start the WiFi interface.

I was able to star it via USB, but sketches that start WIFI make the ESP32 to freeze, and it only works when I inject the original bootloader, meaning that I would need to make a "custom" bootloader (again) for this case.. not a real problem, but then I found out that:

UiFlow uses MicroPython 1.12
Micropithon 1.12 uses ESP-IDF 3.3.x (we are now on 5.3)

And this lat thing leads to a (most probably) huge problem, for two reasons...

first: I'm afraid to "rollback" the bootloader and break the WiFi communications to the whole other firmwares
second: It can be a partition settings that I don't have access (needed to look at their code)

I'll keep looking onto it.. but probably it'll take a very long time for us to see UiFlow1 working with Launcher :(

I wouldn't mind as much and just use UiFlow 2 but it misses a lot of functionality and stuff that its predecessor has.. it's a shame that UiFlow 1 is such a nuisance to work with in this case.


add cvmatio 1.0.28

workaround for opencv >= 3.3.0 (cv::Mat int64_t and uint64_t)

Testing:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2845
https://travis-ci.org/ingenue/hunter/builds/304289647?utm_source=github_status&utm_medium=notification

Uploading:

https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2849
https://travis-ci.org/ingenue/hunter/builds/304338435?utm_source=github_status&utm_medium=notification

Released: https://github.com/ruslo/hunter/releases/tag/v0.19.163


High memory usage

High memory usage on a large number of parameters.

Parameters are now divided among workers to save memory.


Tidy links

Links to notes should link (i think) directly to points in list

@stopsopa Are you planning to update this as per @domenic's comment?


SSL Certificate Expired

Could you please renew ssl certificate?

+1

My bad, thanks. Fixed + moved it to LE.

Thank you @e1ven - and thanks for code + site ❤


Support introspecting closures

Current design is to expose the source code via a code attribute:
~> f = { echo lorem }
~> echo $f[code]
{ echo lorem }

Awesome!


How to access the items inside the expanded layout

Hey...!! I created an expanded layout from your library and everything went fine but I want to know how can I access those view fields. Example how can I set the click listener for a button in the exapanded layout.

I used reflection. Dirty trick but does the work until we have a reply.
    cardView = itemView.findViewById(R.id.card);
    try {
        Field innerViewField = ExpandableCardView.class.getDeclaredField("innerView");
        innerViewField.setAccessible(true);
        View innerView = (View) innerViewField.get(cardView);
    }
    catch (Exception ex){
        Log.e("reflaction failed",ex.getMessage(),ex);
    }

I Have the same issue I want to access inner layout and their fields plz reply asap

me too have the same problem, please tell me how to access id inner view

me too have the same problem, please tell me how to access id inner view

Hello, you will be able to access the innerView and its fields using the findViewById method.
Let's say you have a custom_button view inflated inside the ExplandableCardView.
In order to get the reference to that button you do this:
View innerView = explandableCardView.findViewById(R.id.innerView);
Button myButton = innerView.findViewById(R.id.custom_button);

Kind regards :)

Hello, you will be able to access the innerView and its fields using the findViewById method.
Let's say you have a custom_button view inflated inside the ExplandableCardView.
In order to get the reference to that button you do this:
View innerView = explandableCardView.findViewById(R.id.innerView);
Button myButton = innerView.findViewById(R.id.custom_button);

Kind regards :)

Hello, you will be able to access the innerView and its fields using the findViewById method.
Let's say you have a custom_button view inflated inside the ExplandableCardView.
In order to get the reference to that button you do this:
View innerView = explandableCardView.findViewById(R.id.innerView);
Button myButton = innerView.findViewById(R.id.custom_button);

Kind regards :)

how can i achieve this using viewbinding ?

Hello, you will be able to access the innerView and its fields using the findViewById method.
Let's say you have a custom_button view inflated inside the ExplandableCardView.
In order to get the reference to that button you do this:
View innerView = explandableCardView.findViewById(R.id.innerView);
Button myButton = innerView.findViewById(R.id.custom_button);

Kind regards :)

how can i achieve this using viewbinding ?

val innerView = expandableCardView.findViewById<View>(R.id.innerView)
val binding = LayoutBinding.bind(innerView)

This one works for me

Hello, you will be able to access the innerView and its fields using the findViewById method.
Let's say you have a custom_button view inflated inside the ExplandableCardView.
In order to get the reference to that button you do this:
View innerView = explandableCardView.findViewById(R.id.innerView);
Button myButton = innerView.findViewById(R.id.custom_button);

Kind regards :)

how can i achieve this using viewbinding ?

val innerView = expandableCardView.findViewById<View>(R.id.innerView)
val binding = LayoutBinding.bind(innerView)

This one works for me

nice info, thanks


Hover : effect overlap on below text

in this img this hover effect disturbed the below text

@PREM-A261 Please assign me this one
i want to work on this issue

you have already been assigned the issue , please go ahead


Fix markdown format.

This commit fixes Universal Serial Bus (USB)'s link.

@KexyBiscuit,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by Microsoft. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thanks @KexyBiscuit for the sharp eye!


Anchor feature node and source node should not have nagivate icon

remove navigation icon and search function for source nodes and anchor nodes

Redundant PR


Support and enforce peerDependencies

When a module's API includes types from another dependency, the right way to ensure that a consumer actually passes in objects that are semantically compatible is by ensuring that the object was instantiated from the exact same version, as long as it's semantically compatible.
The jsii compiler should emit warnings if a module's API includes types of other modules but those other modules are not defined also under peerDependencies of the package.json file.
We should also provide a tool to help "fix" package.json files by inspecting the jsii spec.
Related: awslabs/aws-cdk#979

Fixed by #294


Implementation

how to implement this library to my project

Added this information into README. Please, look there. Examples of usage and tuning will be added a little bit later.


Allow alpha channels in App Icons

The app store only rejects alpha channels in the "App Store" image of the combined AppIcon asset. They allow alpha in the actual app icons. Update 2.6.1 removes alpha from all images in the combined AppIcon asset - but should only remove it from the "App Store" image.

Hi @ravindu1024, thanks for clarifying this! Just to be sure: Except the marketing image for the App Store every image is allowed to contain an alpha channel?

No problem. I have been using older versions of Iconizer and all I do is change the Store image from the combined asset to a jpg and iTunes accepts it. The last update I did to my app was last week. So yeah, can confirm that they allow alpha channels in all other images in the icon asset.
Imagine my surprise when Iconizer suddenly added a white background to all my icons lol.
ps: This is a really useful app - kudos for building it :+1:

This should be fixed with version 2.6.3. I'm really happy you find Iconizer useful. Thanks again! 👍

Hi and yes great tool! :)
But shouldn't all icons have no transparency?
'Flattened with no transparency' according to https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/app-icon/
Cheers!

@raphaelhanneken based on Apples guidelines, all appicons should be flattened (without alpha). Also, this bit does not seem to work - I'm getting an alpha channel in the marketing image (and thus rejected when uploading to App Store Connect).


Update for node v15 support

v15 has released and better-sqlite3 does not support it.

Please be more specific. It works for me, Node v15.0.1 on Ubuntu 20.04.

better-sqlite3 only supports LTS versions of Node.js. It may still work with non-LTS versions, but that is your concern and not mine


capture video/image of rviz

I'm currently working on a project that involves capturing video from an RViz instance in ROS2 Galactic. I have two potential approaches in mind, and I'm seeking guidance on which one to pursue or if there are alternative methods:
Connecting to RViz: Is there a recommended way to develop a ROS2 node to connect to a specific RViz instance and capture its video feed?
Accessing RViz's "File -> Save Image" Function: after connecting to a specific RViz, is it possible to access RViz's "File -> Save Image" functionality programmatically to capture images and then compile them into a video?
Creating a Custom Plugin: Should I create a custom RViz plugin to facilitate video capture directly within RViz?
I'd greatly appreciate any insights or recommendations regarding the best approach to achieve this video capture functionality within ROS2 Galactic. Thank you!

Was looking for same thing.
This guide:  https://roboticsknowledgebase.com/wiki/tools/stream-rviz/
Relies on https://github.com/lucasw/rviz_camera_stream which is ROS1 specific. Despite 41 forks, have not found anyone that has ported the plugin to ROS2. And at moment can't squeeze the time to do so.


server Context with bungeecord

Hi, i don't know if it's a bug or a feature that doesn't exist but i have this problem :
I want to use different prefixes according to the server the player is connected to, for the chat i use gchat (your plugin) in order to connect all my servers chat but the luckperm prefix used by the chat plugin is the prefix of the bungee side so when i define the prefix with the server set to one of my servers the prefix doesn't shows cause the prefix isn't set for the bungee
So i tried with the context "server=" but when i set the server propertie to global to be sure it will work and the context "server=lobby" the prefix not showing up at all (it does the same with the server propertie set to bungee)
I think when the server is behind bungeecord the "server" context is always define with the bungee...
Thank you for helping me

In Bungee, the server name can be found in the world context. You'd want world=lobby as your context there.

Thank's you it works


What is the default value of args.ngf

@zhanghang1989
Thanks for sharing this nice project.
I changed the content of main.py to only have evaluate() method.
def evaluate(content_image_name, style_image_name, output_image_name):
`
content_image = utils.tensor_load_rgbimage(content_image_name, size=1024, keep_asp=True)
content_image = content_image.unsqueeze(0)
style = utils.tensor_load_rgbimage(style_image_name) # size=args.style_size
style = style.unsqueeze(0)
style = utils.preprocess_batch(style)

style_model = Net() # (ngf=args.ngf)
#style_model.load_state_dict(torch.load(args.model))
model_path = 'models/21styles.model'
style_model.load_state_dict(torch.load(model_path))

#if args.cuda: - start
style_model.cuda()
content_image = content_image.cuda()
style = style.cuda()
#if args.cuda - end

style_v = Variable(style, volatile=True)

content_image = Variable(utils.preprocess_batch(content_image), volatile=True)
style_model.setTarget(style_v)

output = style_model(content_image)
utils.tensor_save_bgrimage(output.data[0], output_image_name, 1) #args.cuda=1

`
Now I am getting below error
While copying the parameter named model1.4.residual_layer.weight, whose dimensions in the model are torch.Size([256, 128, 1, 1]) and whose dimensions in the checkpoint are torch.Size([512, 128, 1, 1]), ...
Traceback (most recent call last):
File "newMain.py", line 297, in
main()
File "newMain.py", line 57, in main
evaluate(content_image_name, style_image_name)
File "newMain.py", line 251, in evaluate
style_model.load_state_dict(torch.load(model_path))
File "/usr/local/lib/python2.7/dist-packages/torch/nn/modules/module.py", line 360, in load_state_dict
own_state[name].copy_(param)
RuntimeError: inconsistent tensor size, expected tensor [256 x 128 x 1 x 1] and src [512 x 128 x 1 x 1] to have the same number of elements, but got 32768 and 65536 elements respectively at /pytorch/torch/lib/TH/generic/THTensorCopy.c:86
Can you please suggest what I could be missing. Because I have done a very minor change and getting this error when everything is of your orginal code.

I fixed it by passing ngf=128 to Net()


Don't build/push docker container in release job (for now)

LGTM, probably should fix this issue in a branch instead of main


feat: add visibility in labels

Add ability to configure visibility with docker/kubernetes labels :
rule :
 if label equal 'hidden'  then hide apps  else show apps
see #217

Is there a reason, which prevents merging this PR?


请问如何在about页面也自动抓取目录呢？

Expected behavior (预期行为)
希望在about页面也可以抓取目录，about我用来做个人简历
Actual behavior (实际行为)
Steps to reproduce the behavior (重现步骤)
NexT Informations
Add the  ✔  sign before an item which is affected by this behavior.
NexT Version:

Master
Latest Release
Old version -

NexT Scheme:

All schemes
Muse
Mist
Pisces

Other Informations (Like Browser, System, Screenshots)

已解决
front-matter里添加layout: post即可
例如：
title: about
date: 2016-08-02 14:34:03
comments: false
layout: post

@lixin4306ren dont understand u, write in English if not solved. If solved, close it please. Thank's!


Change order of Upper and Lower Reference.

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

Comparison is base (85e799e) 88.17% compared to head (2a55978) 88.17%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #14   +/-   ##
=======================================
  Coverage   88.17%   88.17%
=======================================
  Files          12       12
  Lines         871      871
=======================================
  Hits          768      768
  Misses        103      103

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Error: listen EADDRINUSE: address already in use :::4242

Error: listen EADDRINUSE: address already in use :::4242 gets thrown when hot reloading due to changes in the settings file. One way to reproduce it is to add enableAnnotations then remove it.
Error: listen EADDRINUSE: address already in use :::4242
at Server.setupListenHandle [as _listen2] (net.js:1313:16)
at listenInCluster (net.js:1361:12)
at Server.listen (net.js:1447:7)
at Function.listen (/workspace/dist/node_modules/express/lib/application.js:618:24)
at Object.startApp (/workspace/src/WebServer.ts:26:18)
at /workspace/src/main.ts:77:17
at step (/workspace/dist/src/main.js:56:23)
at Object.next (/workspace/dist/src/main.js:37:53)
at fulfilled (/workspace/dist/src/main.js:28:58)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

This is WebServer.startApp(); which is weird because shutdown() stops the web server. Possibly a race condition not waiting for server.close(); to complete?


openssl-1.1.1-pre8 compilation errors when use OPENSSL_NO_CT

I don't need to use the certificate timestamp feature of openssl. I am also hard pressed to save memory using Openssl so wanted to build it with OPENSSL_NO_CT option to cut down the size of SSL structure.
There are a lot of warnings and errors that I would deeply appreciate if they can be fixed in the next release.
Here are the errors and warnings I see on Ubuntu.
crypto/ct/ct_locl.h:58:5: error: unknown type name 'sct_version_t'
     sct_version_t version;
     ^
crypto/ct/ct_locl.h:78:5: error: unknown type name 'ct_log_entry_type_t'
     ct_log_entry_type_t entry_type;
     ^
crypto/ct/ct_locl.h:80:5: error: unknown type name 'sct_source_t'
     sct_source_t source;
     ^
crypto/ct/ct_locl.h:82:5: error: unknown type name 'sct_validation_status_t'
     sct_validation_status_t validation_status;
     ^
In file included from crypto/ct/ct_b64.c:14:0:
crypto/ct/ct_b64.c: In function 'ct_base64_decode':
crypto/ct/ct_b64.c:38:15: error: 'CT_F_CT_BASE64_DECODE' undeclared (first use in this function)
         CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
               ^
include/openssl/err.h:29:59: note: in definition of macro 'ERR_PUT_error'
 #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
                                                           ^
crypto/ct/ct_b64.c:38:9: note: in expansion of macro 'CTerr'
         CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
         ^
crypto/ct/ct_b64.c:38:15: note: each undeclared identifier is reported only once for each function it appears in
         CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
               ^
include/openssl/err.h:29:59: note: in definition of macro 'ERR_PUT_error'
 #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
                                                           ^
crypto/ct/ct_b64.c:38:9: note: in expansion of macro 'CTerr'
         CTerr(CT_F_CT_BASE64_DECODE, ERR_R_MALLOC_FAILURE);
         ^
crypto/ct/ct_b64.c:44:38: error: 'CT_R_BASE64_DECODE_ERROR' undeclared (first use in this function)
         CTerr(CT_F_CT_BASE64_DECODE, CT_R_BASE64_DECODE_ERROR);
                                      ^
include/openssl/err.h:29:61: note: in definition of macro 'ERR_PUT_error'
 #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
                                                             ^
crypto/ct/ct_b64.c:44:9: note: in expansion of macro 'CTerr'
         CTerr(CT_F_CT_BASE64_DECODE, CT_R_BASE64_DECODE_ERROR);
         ^
crypto/ct/ct_b64.c: At top level:
crypto/ct/ct_b64.c:64:26: error: unknown type name 'ct_log_entry_type_t'
                          ct_log_entry_type_t entry_type, uint64_t timestamp,
                          ^
In file included from crypto/ct/ct_b64.c:14:0:
crypto/ct/ct_b64.c: In function 'CTLOG_new_from_base64':
crypto/ct/ct_b64.c:143:15: error: 'CT_F_CTLOG_NEW_FROM_BASE64' undeclared (first use in this function)
         CTerr(CT_F_CTLOG_NEW_FROM_BASE64, ERR_R_PASSED_INVALID_ARGUMENT);
               ^
include/openssl/err.h:29:59: note: in definition of macro 'ERR_PUT_error'
 #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
                                                           ^
crypto/ct/ct_b64.c:143:9: note: in expansion of macro 'CTerr'
         CTerr(CT_F_CTLOG_NEW_FROM_BASE64, ERR_R_PASSED_INVALID_ARGUMENT);
         ^
crypto/ct/ct_b64.c:149:43: error: 'CT_R_LOG_CONF_INVALID_KEY' undeclared (first use in this function)
         CTerr(CT_F_CTLOG_NEW_FROM_BASE64, CT_R_LOG_CONF_INVALID_KEY);
                                           ^
include/openssl/err.h:29:61: note: in definition of macro 'ERR_PUT_error'
 #  define ERR_PUT_error(a,b,c,d,e)        ERR_put_error(a,b,c,d,e)
                                                             ^
crypto/ct/ct_b64.c:149:9: note: in expansion of macro 'CTerr'
         CTerr(CT_F_CTLOG_NEW_FROM_BASE64, CT_R_LOG_CONF_INVALID_KEY);
         ^
crypto/ct/ct_b64.c:161:15: warning: implicit declaration of function 'CTLOG_new' [-Wimplicit-function-declaration]
     *ct_log = CTLOG_new(pkey, name);
               ^
crypto/ct/ct_b64.c:161:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     *ct_log = CTLOG_new(pkey, name);

Thanks in advance.

Closing this; re-open if "config  no-ct ..otherflags..." is broken.


Dynamically execute different versions

Hello, I just read through the readme and tried tea cli myself. Looks cool.
The thing that came to mind in my workflow would be to execute package with specific version via cli, something like tea node@18 server.js.
About my usecase, in day to day life I work with a lot of node/deno projects. And quite often I need to run specific version of node in specific project (to debug other developer issues for example). So in 1 project I would love to run tea node server.js (the latest or project specified version) and tea node@16 server.js to debug in that version.
I didn't really find anything like this in readme so is this already possible or would be a great feature to add?

Already possible! We're currently updating a bunch of docs, but tea +nodejs.org^18 node server.js or tea -X node^18 server.js or even sudo ln -s tea /usr/local/bin/node^18; node^18 server.js; sudo ln -s node^18 /usr/local/bin/node; node server.js should work (can't think of any others off-hand).


Fix nginx syntax to disable error logs

Setting error_log off will create a file named off in the directory where nginx is running.
See:
https://www.wpoven.com/tutorial/how-to-disable-nginx-logs-on-your-server/
http://nginx.org/en/docs/ngx_core_module.html#error_log

Closing due to lack of interest.