[MISC] make explicit that EDF+ (and for EEG: BDF+) are included in iEEG / EEG format requirements

closes #821
As proposed by @Aaronearlerichardson I here make explicit in the spec, that the EDF and BDF formats supported in EEG and iEEG also include EDF+ and BDF+.
Both EDF+ and BDF+ are backward compatible with EDF and BDF tools, the file extensions are the same, and technical, open accessible specifications of the formats are available and linked.
@CPernet and @robertoostenveld were not particularly enthusiastic, but also not against this change.
I personally deem this change more of a clarification and I assume that most of the BIDS .edf files that are "around" these days are actually EDF+ files anyhow (just my assumption though, I didn't check).

This seems reasonable to me, maybe we should gather an EDF+ and a BDF+ file and add them to mne-bids in a test though. Doing that first might be helpful to know if there are any issues but I think the issues will be able to be solved anyway so whichever order really.

maybe we should gather an EDF+ and a BDF+ file and add them to mne-bids in a test though

I just did this: MNE-BIDS tests, we are using this EDF file, which is EDF+ as one can verify by reading it via https://gitlab.com/Teuniz/EDFlib-Python
To check for BDF+, I generated a test file (also via EDFlib-Python) and read it via MNE-Python's read_raw_bdf reader, and it worked without problems.
I will attach test files here as a zip for other people to check out. The Zip contains a README and tiny edf, edf+, bdf, and bdf+ files. The EDF and BDF files were created using https://github.com/holgern/pyedflib, because EDFlib-Python does only support writing to EDF+ and BDF+. (Not sure why, maybe to nudge people towards using the newer standard).
edf_bdf_plus_examples.zip

One additional thing:
@teuniz - Perhaps you can offer your EDF(+)/BDF(+) expert opinion here. This is the question:

Are EDF+ and BDF+ truly backward compatible with EDF and BDF (respectively)? That is, when reading an EDF+/BDF+ file with a EDF/BDF reader: Does one get valid data except for the fields that are only supported in the "plus variants" (annotations, etc.)?

Vice versa, I assume that any EDF+/BDF+ reader could read any EDF/BDF file without any problems: Is that true?

In the two questions above I assume that the "readers" I refer to are implemented correctly, according to the EDF(+)/BDF(+) specification(s).
Your input would be very much appreciated!

@Teuniz - Perhaps you can offer your EDF(+)/BDF(+) expert opinion here. This is the question:

Are EDF+ and BDF+ truly backward compatible with EDF and BDF (respectively)? That is, when reading an EDF+/BDF+ file with a EDF/BDF reader: Does one get valid data except for the fields that are only supported in the "plus variants" (annotations, etc.)?

Vice versa, I assume that any EDF+/BDF+ reader could read any EDF/BDF file without any problems: Is that true?

In the two questions above I assume that the "readers" I refer to are implemented correctly, according to the EDF(+)/BDF(+) specification(s).

Yes, that's correct.
It's also the reason why some parts of the EDF+ standard look a bit awkward, because the EDF+ extensions are designed in a way not to break compatibility with older EDF readers.
An (older) EDF reader will treat the annotation channel(s) as regular signals and show garbage when plotted but apart from that, it wil not "upset" the reader.
In EDF+, the specifications for the "normal" signals have not been changed.
In other words, an EDF+ file is still a valid EDF file.

okay, thanks everyone. I'll leave this PR open for a bit longer so other people have the option to chime in if they want. But basically, this is ready to be merged.
Out of curiosity @Aaronearlerichardson --> What software do you use to read and write your BDF+ files? Have you ever come across incompatibilities with libraries such as FieldTrip, EEGLAB, or MNE-Python?
I think with regards to BDF+ it's possible that several packages out there do not yet support it, and thus reading BDF+ with these packages will not provide you with the annotations and "enriched patient data" that comes with the "+" of BDF+. Is that what you experience?
In terms of BIDS that wouldn't be a problem of course, because that information is in the BIDS metadata files.


Fix missing mappings.

Quick fix of accidentally deleted mappings and comments.
Those were present in 1.15.2.

Seems that they were deleted in the update commit.

Yes, there is a bug in one of the update tools that causes parts of comments to get lost, and class comments.


Load weights whith another number of classes

I used extract_weights to get weights from the pretrained network on PASCAL VOC, and I'm loading these weights after a init of the model with random weights, with a classes=3 :
      WEIGHTS_DIR = 'weights/' + backbone
      print('Loading weights from', WEIGHTS_DIR)
      for layer in tqdm(model.layers):
          if layer.weights:
              weights = []
              for w in layer.weights:
                  weight_name = os.path.basename(w.name).replace(':0', '')
                  weight_file = layer.name + '_' + weight_name + '.npy'
                  weight_arr = np.load(os.path.join(WEIGHTS_DIR, weight_file))
                  weights.append(weight_arr)
              layer.set_weights(weights)

I get an error : Layer weight shape (1, 1, 256, 3) not compatible with provided weight shape (1, 1, 256, 21) Should I merge the weights over the 21 channels of your last layer, to get weights for only 3 channels  (because logits_semantic_bias.npy has a shape (21,) and logits_semantic_kernel.npy has a shape (1, 1, 256, 21)? Thanks in advance

Hi. PASCAL VOC has 21 classes, so loading all the weights into the model with 3 classes will raise an error at last layer (which you eventually got).
Instead of using load weights script use example from README
deeplab_model = Deeplabv3(input_shape=(384,384,3), classes=3)

This code will load all weights except for the last layer

Thanks for the answer. Because weights from the last layer are not as usefull as weights for first layers, I agree with you. That's why I decided to forgot about them. But merging them (like average), can be another solution (it can be better than an init with 'he').


Nested movable usertype

Hey, first of all thanks for the amazing piece of work, it was a pleasure to it so far!
Not entirely sure if this is really a bug (and even if it is, not sure it is a bug in sol2) but i was able to test it
with clang 4.0 and gcc 6.3 using c++14 as well as (the partial support for) c++17 on arch linux and the error was produced in all cases.
Consider the following codesnippet (the most minimal i could get it):
#include <sol.hpp>
#include <iostream>

struct SomeNonCopyable {
	SomeNonCopyable() = default;

	// XXX: comment the following 2 lines out to make it work
	SomeNonCopyable(SomeNonCopyable&& other) noexcept = default;
	SomeNonCopyable& operator=(SomeNonCopyable&& other) noexcept = default;

	SomeNonCopyable(const SomeNonCopyable& other) = delete;
	SomeNonCopyable& operator=(const SomeNonCopyable& other) = delete;
};

struct B {
	SomeNonCopyable unused;
	int val {42};
};

struct A {
	B b;
};

int main()
{
	sol::state state;
	state.open_libraries(sol::lib::base);

	state.new_usertype<B>("B",
		sol::meta_function::construct, sol::no_constructor,
		"val", &B::val);

	state.new_usertype<A>("A",
		sol::meta_function::construct, sol::no_constructor,
		"b", &A::b); // XXX: could use dynamic property here

	A a {};
	state["a"] = &a;
	state.script("print(a.b.val)");
}

I would expect this to at least compile (i never actually copy anything) but it does not. A workaround
I found is simply using a dynamic property for B::val when creating the usertype but i guess it should
work this way shouldn't it?
But it gets stranger: When commenting out the explicitly defaulted move operator/constructor in
SomeNonCopyable it works. Although explicitly defaulting those should not really change anything (afaik) since the copy operator/constructor is disabled anyways.
Actually caused me some headache to track this down and have still no clue what this could be.
Any ideas on this?

Fixed. Original code should work as advertised.
Backported into 2.17.3:
https://github.com/ThePhD/sol2/releases/tag/v2.17.3


Segmentation fault

I compiled hyperion for my raspberry 3 in arch and sometimes get a segmentation fault.
[alarm@alarmpi3 ~]$ /usr/bin/hyperiond /etc/hyperion/hyperion.config.json
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
PROTOCONNECTION INFO: Connecting to Hyperion: <IP_ADDRESS>:19447
[HYPERIOND MAIN] <ERROR> Hyperion Daemon aborted
QtHttpServer started on port 8099 "Qt Static HTTP File Server"
KODICHECK ERROR: Kodi Connection error (0)
Segmentation fault (core dumped)

I only changed the number of leds to 25 and the adalight device:
	"device" :
	{
		"name"       : "MyHyperionConfig",
		"type"       : "adalight",
		"output"     : "/dev/ttyACM0",
		"VID"        : "0x2341",
		"PID"        : "0x8036",
		"rate"       : 115200,
		"colorOrder" : "rgb"
	},

SPI is not enabled, nor used. It is not even compiled in this binary I use.
I used this PKGBUILD (which is incomplete, but just for documentation):
# Maintainer: TODO

pkgname=hyperion
pkgver=r1160.0feb1d7
pkgrel=1
pkgdesc="An opensource 'AmbiLight' implementation"
arch=('armv6h' 'armv7h')
url="https://github.com/hyperion-project/hyperion.ng"
license=('MIT')

depends=('libusb' 'python' 'icu')
optdepends=('xorg-server: X11 grabbing')
makedepends=('git' 'cmake' 'qt5-base' 'qt5-serialport' 'avahi')
provides=('hyperion')
conflicts=('hyperion')
backup=('etc/hyperion.config.json')
source=('hyperion::git+https://github.com/hyperion-project/hyperion.ng#branch=master')
sha256sums=('SKIP')

pkgver() {
        cd "$srcdir/${pkgname%-git}"
        printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

build() {
        cd "${srcdir}/${pkgname%-git}"
        git submodule init
        git submodule update
  mkdir -p build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX="${pkgdir}/usr" -DPLATFORM=x86 -DCMAKE_BUILD_TYPE=Release -DUSE_SHARED_AVAHI_LIBS=ON ..
        make -j $(nproc)
}

package() {
        cd "${srcdir}/${pkgname%-git}/build"
        make install

        install -Dm 644 "${srcdir}/hyperion/config/hyperion.config.json.default" "${pkgdir}/etc/hyperion/hyperion.config.json"
        # TODO symlink service from make install service?
        install -Dm 644 "${srcdir}/hyperion/bin/service/hyperion.systemd.sh" "${pkgdir}/usr/lib/systemd/system/hyperiond.service"
}

Same on ubuntu. There is a problem when connecting to kodi fails. Disable xbmccheck when not used together with kodi. This will be investigated later

But why do you need xbmc check at all? I use the kodi addon that streams the data to the localhost and all works fine. XBMC check never gave me any better expierience. Just asking to understand ;) Maybe it should be disabled by default if its not essentially important.

Delete the section

Enable flag is not implemented for kodi yet

Okay then the other issue I opened applies here. That should be added.
I tried removing it, but I still get a segfault (sometimes):
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
PROTOCONNECTION INFO: Connecting to Hyperion: <IP_ADDRESS>:19447
[HYPERIOND MAIN] <ERROR> Hyperion Daemon aborted
Segmentation fault (core dumped)

Plese use --debug for hyperiond, to get more details.
App exit on error abort has issues too, I have a fix, but this is not commited atm.
Dont forget, this is a developer version. This works currently for the devs in the way they use it. In current state of development, this version hasn't the intention to work for everyone.
It's ok when you try it from time to time, but expect to much until official testing stage is announced. I think it will take some month to get bleeding edge hyperion rock solid

Do you have a v4l grabber configured that is not present ? This causes the daemon aborted message for me and may be your default cause

Yes i have a grabber setting (which is the default) and it is not present.
Another question: Why are there still debug symbols in the binary if we use the type "release" in the cmake? Should this all get removed?
[alarm@alarmpi3 hyperion]$ /usr/bin/hyperiond --debug /etc/hyperion/hyperion.config.json
[HYPERIOND MAIN] <INFO> Selected configuration file: /etc/hyperion/hyperion.config.json
[HYPERIOND Core] <INFO> ColorTransform 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorTemperature 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorAdjustment 'default' => [0; 24]
[HYPERIOND LedDevice] <INFO> configuration:
{
	"PID" : "0x8036",
	"VID" : "0x2341",
	"colorOrder" : "rgb",
	"name" : "DefaultHyperionConfig",
	"output" : "/dev/ttyACM0",
	"rate" : 115200,
	"type" : "adalight"
}

[HYPERIOND LedDevice] <INFO> Opening UART: /dev/ttyACM0
[HYPERIOND Core] <INFO> Json forward to <IP_ADDRESS>:19446
[HYPERIOND Core] <INFO> Proto forward to <IP_ADDRESS>:19447
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
[HYPERIOND EFFECTENGINE] <INFO> 27 effects loaded from directory /usr/share/hyperion/effects
[HYPERIOND EFFECTENGINE] <DEBUG> <EffectEngine.cpp:63:EffectEngine()> Initializing Python interpreter
[HYPERIOND Core] <DEBUG> <Hyperion.cpp:599:Hyperion()> configured leds: 25 hw leds: 25
[HYPERIOND LOGGER] <WARNING> Logger settings overriden by command line argument
[HYPERIOND MAIN] <INFO> Hyperion started and initialised
[HYPERIOND EFFECTENGINE] <INFO> run effect Rainbow swirl fast on channel 0
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
[HYPERIOND MAIN] <INFO> Inital foreground effect 'Rainbow swirl fast' started
[HYPERIOND EFFECTENGINE] <INFO> run effect Full color mood blobs on channel<PHONE_NUMBER>
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
[HYPERIOND MAIN] <INFO> Inital background effect 'Full color mood blobs' started
[HYPERIOND MAIN] <INFO> Json server created and started on port 19444
PROTOCONNECTION INFO: Connecting to Hyperion: <IP_ADDRESS>:19447
[HYPERIOND MAIN] <INFO> Proto server created and started on port 19445
[HYPERIOND MAIN] <DEBUG> <hyperiond.cpp:259:startNetworkServices()> Boblight server created
[HYPERIOND MAIN] <DEBUG> <hyperiond.cpp:278:startNetworkServices()> UDP listener created
[HYPERIOND MAIN] <INFO> UDP LIstener mDNS responder started
[HYPERIOND MAIN] <INFO> Json mDNS responder started
[HYPERIOND MAIN] <INFO> Proto mDNS responder started
[HYPERIOND MAIN] <ERROR> Hyperion Daemon aborted
Segmentation fault (core dumped)

Are you confusing debug level logging with debug symbols that get stripped ?

That might be true. But I'd also remove the debug level from the final binary. And if someone needs special debug output you can recompile it with debug settings.

Debug messages always there this hasn't anything to do how you compile.
With --debug you enable debug message output of the used logger

With this config I get the following error still:
{
	"logger" :
	{
		"level" : "warn"
	},

	"device" :
	{
		"name"       : "DefaultHyperionConfig",
		"type"       : "adalight",
		"output"     : "/dev/ttyACM0",
		"VID"        : "0x2341",
		"PID"        : "0x8036",
		"rate"       : 115200,
		"colorOrder" : "rgb"
	},

	"color" :
	{
		"channelAdjustment" :
		[
			{
				"id"   : "default",
				"leds" : "*",
				"pureRed" :
				{
					"redChannel"		: 255,
					"greenChannel"		: 0,
					"blueChannel"		: 0
				},
				"pureGreen" :
				{
					"redChannel"		: 0,
					"greenChannel"		: 255,
					"blueChannel"		: 0
				},
				"pureBlue" :
				{
					"redChannel"		: 0,
					"greenChannel"		: 0,
					"blueChannel"		: 255
				}
			}
		],
		"temperature" :
		[
			{
				"id"   : "default",
				"leds" : "*",
				"correctionValues" :
				{
					"red" 	: 255,
					"green"	: 255,
					"blue" 	: 255
				}
			}
		],
		"transform" :
		[
			{
				"id"   : "default",
				"leds" : "*",
				"hsl" :
				{
					"saturationGain"	: 1.0000,
					"luminanceGain"		: 1.0000,
					"luminanceMinimum"	: 0.0000
				},
				"red" :
				{
					"threshold" 	: 0.0000,
					"gamma"     	: 2.5000
				},
				"green" :
				{
					"threshold" 	: 0.0000,
					"gamma"     	: 2.5000
				},
				"blue" :
				{
					"threshold" 	: 0.0000,
					"gamma"     	: 2.5000
				}
			}
		],
		"smoothing" :
		{
			"type"            : "linear",
			"time_ms"         : 200,
			"updateFrequency" : 20.0000,
			"updateDelay"     : 0
		}
	},

	"framegrabber" :
	{
		"width" : 128,
		"height" : 128,
		"frequency_Hz" : 10.0,
		"priority" : 890
	},

	"blackborderdetector" :
	{
		"enable" : true,
		"threshold" : 0.0,
		"mode" : "default"
	},

	"initialEffect" :
	{
				"background-effect" :  "Full color mood blobs",
				"background-effect-args" : {},
				"foreground-effect" : "Rainbow swirl fast",
				"foreground-effect-args" : {},
				"foreground-duration_ms" : 3000
	},

	"forwarder" :
	{
		"json" : ["<IP_ADDRESS>:19446"],
		"proto" : ["<IP_ADDRESS>:19447"]
	},

	"jsonServer" :
	{
		"port" : 19444
	},

	"protoServer" :
	{
		"port" : 19445
	},

	"webConfig" :
	{
			"enable" : false,
			"document_root" : "/usr/share/hyperion/webconfig",
			"port" : 8099
	},

	"effects" :
	{
		"paths" :
		[
			"/storage/hyperion/effects",
			"/usr/share/hyperion/effects"
		]
	},

	"leds" :
	[
		{
			"index" : 0,
			"hscan" : { "minimum" : 0.1111, "maximum" : 0.2222 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 1,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.1111 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 2,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 3,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.7500, "maximum" : 1.0000 }
		},
		{
			"index" : 4,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.5000, "maximum" : 0.7500 }
		},
		{
			"index" : 5,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.2500, "maximum" : 0.5000 }
		},
		{
			"index" : 6,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.2500 }
		},
		{
			"index" : 7,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 8,
			"hscan" : { "minimum" : 0.0000, "maximum" : 0.1111 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 9,
			"hscan" : { "minimum" : 0.1111, "maximum" : 0.2222 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 10,
			"hscan" : { "minimum" : 0.2222, "maximum" : 0.3333 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 11,
			"hscan" : { "minimum" : 0.3333, "maximum" : 0.4444 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 12,
			"hscan" : { "minimum" : 0.4444, "maximum" : 0.5556 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 13,
			"hscan" : { "minimum" : 0.5556, "maximum" : 0.6667 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 14,
			"hscan" : { "minimum" : 0.6667, "maximum" : 0.7778 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 15,
			"hscan" : { "minimum" : 0.7778, "maximum" : 0.8889 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 16,
			"hscan" : { "minimum" : 0.8889, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 17,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
		},
		{
			"index" : 18,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.0000, "maximum" : 0.2500 }
		},
		{
			"index" : 19,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.2500, "maximum" : 0.5000 }
		},
		{
			"index" : 20,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.5000, "maximum" : 0.7500 }
		},
		{
			"index" : 21,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.7500, "maximum" : 1.0000 }
		},
		{
			"index" : 22,
			"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 23,
			"hscan" : { "minimum" : 0.8889, "maximum" : 1.0000 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		},
		{
			"index" : 24,
			"hscan" : { "minimum" : 0.7778, "maximum" : 0.8889 },
			"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
		}
	],

	"endOfJson" : "endOfJson"
}

[alarm@alarmpi ~]$ hyperiond /etc/hyperion/hyperion.config.json --debug
[HYPERIOND MAIN] <INFO> Selected configuration file: /etc/hyperion/hyperion.config.json
[HYPERIOND Core] <INFO> ColorTransform 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorTemperature 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorAdjustment 'default' => [0; 24]
[HYPERIOND LedDevice] <INFO> configuration:
{
	"PID" : "0x8036",
	"VID" : "0x2341",
	"colorOrder" : "rgb",
	"name" : "DefaultHyperionConfig",
	"output" : "/dev/ttyACM0",
	"rate" : 115200,
	"type" : "adalight"
}

[HYPERIOND LedDevice] <INFO> Opening UART: /dev/ttyACM0
[HYPERIOND Core] <INFO> Json forward to <IP_ADDRESS>:19446
[HYPERIOND Core] <INFO> Proto forward to <IP_ADDRESS>:19447
INFO: Creating linear smoothing
HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
[HYPERIOND EFFECTENGINE] <INFO> 27 effects loaded from directory /usr/share/hyperion/effects
[HYPERIOND EFFECTENGINE] <DEBUG> <EffectEngine.cpp:63:EffectEngine()> Initializing Python interpreter
[HYPERIOND Core] <DEBUG> <Hyperion.cpp:599:Hyperion()> configured leds: 25 hw leds: 25
[HYPERIOND LOGGER] <WARNING> Logger settings overriden by command line argument
[HYPERIOND MAIN] <INFO> Hyperion started and initialised
[HYPERIOND EFFECTENGINE] <INFO> run effect Rainbow swirl fast on channel 0
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
[HYPERIOND MAIN] <INFO> Inital foreground effect 'Rainbow swirl fast' started
[HYPERIOND EFFECTENGINE] <INFO> run effect Full color mood blobs on channel<PHONE_NUMBER>
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
[HYPERIOND MAIN] <INFO> Inital background effect 'Full color mood blobs' started
[HYPERIOND MAIN] <INFO> Json server created and started on port 19444
PROTOCONNECTION INFO: Connecting to Hyperion: <IP_ADDRESS>:19447
[HYPERIOND MAIN] <INFO> Proto server created and started on port 19445
[HYPERIOND MAIN] <INFO> Json mDNS responder started
[HYPERIOND MAIN] <INFO> Proto mDNS responder started
DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
BLACKBORDER INFO: threshold set to 0 (0)
BLACKBORDER INFO: mode:default
[HYPERIOND MAIN] <INFO> Frame grabber created and started
Segmentation fault (core dumped)

Than compile it in debug, start with gdb and rhen we know exactly whats crashing

(gdb) run hidold --debug
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/bin/hyperiond hidold --debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[HYPERIOND MAIN] <INFO> Selected configuration file: hidold
[HYPERIOND Core] <INFO> ColorTransform 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorTemperature 'default' => [0; 24]
[HYPERIOND Core] <INFO> ColorAdjustment 'default' => [0; 24]
[HYPERIOND LedDevice] <INFO> configuration:
{
	"PID" : "0x8036",
	"VID" : "0x2341",
	"colorOrder" : "rgb",
	"name" : "MyHyperionConfig",
	"output" : "/dev/ttyACM0",
	"rate" : 115200,
	"type" : "adalight"
}

[HYPERIOND LedDevice] <INFO> Opening UART: /dev/ttyACM0
[HYPERIOND Core] <INFO> Creating linear smoothing
[HYPERIOND Smoothing] <INFO> Created linear-smoothing with interval_ms: 50, settlingTime_ms: 100, updateDelay: 0
[HYPERIOND EFFECTENGINE] <ERROR> no effects found, check your effect directories
[HYPERIOND EFFECTENGINE] <DEBUG> <EffectEngine.cpp:63:EffectEngine()> Initializing Python interpreter
[HYPERIOND Core] <DEBUG> <Hyperion.cpp:605:Hyperion()> configured leds: 25 hw leds: 25
[HYPERIOND MAIN] <INFO> Hyperion started and initialised
[HYPERIOND MAIN] <DEBUG> <hyperiond.cpp:212:createKODIVideoChecker()> KODI checker created
[HYPERIOND MAIN] <INFO> Json server created and started on port 19444
[HYPERIOND MAIN] <INFO> Proto server created and started on port 19445
[New Thread 0x7ffff051f700 (LWP 12790)]
[Thread 0x7ffff051f700 (LWP 12790) exited]
[HYPERIOND MAIN] <DEBUG> <hyperiond.cpp:311:startNetworkServices()> Json mDNS responder started
[New Thread 0x7ffff051f700 (LWP 12791)]
[HYPERIOND MAIN] <DEBUG> <hyperiond.cpp:319:startNetworkServices()> Proto mDNS responder started
[Thread 0x7ffff051f700 (LWP 12791) exited]
[HYPERIOND WEBSERVER] <INFO> started on port 8099 name "Qt Static HTTP File Server"
[HYPERIOND LedDevice] <DEBUG> <LedRs232Device.cpp:74:writeBytes()> write 81
[HYPERIOND LedDevice] <DEBUG> <LedRs232Device.cpp:74:writeBytes()> write 81

Thread 1 "hyperiond" received signal SIGSEGV, Segmentation fault.
0x00007ffff6d7c00a in QRingBuffer::reserve(long long) () from /usr/lib/libQt5Core.so.5

thx for starting it in gdb.
btw. to start it without the restart:
gdb ./hyperiond --args ./hyperiond --debug hidold
then gdb command: run
what I need is, after segfault is thrown call the gdb command "bt" to retrieve the backtrace.
It looks like segfault is happend in serial device, but I need the bt to be sure.

Thread 1 "hyperiond" received signal SIGSEGV, Segmentation fault.
0x00007ffff6d7c00a in QRingBuffer::reserve(long long) () from /usr/lib/libQt5Core.so.5
(gdb) bt
#0  0x00007ffff6d7c00a in QRingBuffer::reserve(long long) () from /usr/lib/libQt5Core.so.5
#1  0x00007ffff7330c8c in ?? () from /usr/lib/libQt5SerialPort.so.5
#2  0x00007ffff733156b in ?? () from /usr/lib/libQt5SerialPort.so.5
#3  0x0000000000490af7 in LedRs232Device::writeBytes (this=0x7171a0, size=<optimized out>, data=0x80a840 "Ada")
    at /home/arch/hackallthethings/Arch-Scripts/AUR/hyperion-ng/src/hyperion-ng/libsrc/leddevice/LedRs232Device.cpp:73
#4  0x00007ffff6f014e9 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#5  0x00007ffff6f0e568 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt5Core.so.5
#6  0x00007ffff6f02303 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#7  0x00007ffff6ed5c6b in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#8  0x00007ffff6f2951e in QTimerInfoList::activateTimers() () from /usr/lib/libQt5Core.so.5
#9  0x00007ffff6f29a79 in ?? () from /usr/lib/libQt5Core.so.5
#10 0x00007ffff3622dd7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007ffff3623040 in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007ffff36230ec in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#13 0x00007ffff6f2a57f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#14 0x00007ffff6ed40da in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#15 0x00007ffff6edc5cc in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#16 0x000000000043706c in main (argc=<optimized out>, argv=<optimized out>) at /home/arch/hackallthethings/Arch-Scripts/AUR/hyperion-ng/src/hyperion-ng/src/hyperiond/main.cpp:159

the crash happens in a qt function:
_rs232Port.waitForBytesWritten(100);
I don't know why. I have a adalight testseup available. I will investigate that, but don't expect a fix soon - it's fixed when it's fixed ...

I wonder if the device is appearing and then disappearing.
what is the USB hardware ? arduino/atmega328 ? arduino/atmega32u4 ?

Looking at the USB vid and pod I'm guessing Leonardo or clones.
Can you give me a link the the exact sketch you are using ?
 I want to replicate your issue so we can fix Hyperion 1st

For arduino I always use delayafterconnect, because the reset when serial device is opened.
Perhaps @nicohood can try that.
I would change the default to 1 second. Because usage of arduino is quite common

And the leo's disconnects the serial dev during reset, because they havn't a dedicated mcu for usb serial. This could bring the software in serious trouble ...

Yep - my thoughts exactly
I'll look into fixing the Hyperion rs233 to be more robust tho - we should never sengfsult

You can check existens of device with qfile on every write. That should prevent most, problems

latest master contains a default value for delayAfterConnect. This is set to 1 second. Perhaps this is not enough, but better than no delay. @NicoHood can you test your settings with delayAfterConnect : 5000
if that works decrease the value to it's optimum

I am using the Arduino Leonardo. My sketch is quite huge, but I will try to reduce it. I've coded everything myself. But the USB Serial module might be slower than other implementations, true. Especially because if you do not call read() the bank is not emptied.

I tried again with the value set to 5000. It still crashes. What I noticed is, that it crashes every 2nd time. And I started with an old fork of the ng project which was 40 commits behind which seemed to work, but I might be wrong with that. I guess the usb device is in an unexpected state (because it was not closed properly before etc) and then the function fails.

Can you give an exact point in repo ... 40 commits behind is not usefull. I hope you noticed we changed serialport implementation to qtserialport.
I tried with default adalight sketch on my x86 desktop and it worked like a charm. Also provoking decice absent during write (pull the plug) and usage of arduino uno, leonaredo and diecemila doesnt make any difference.
in no point I got a segfault. I tried nearly everything, but I cant reproduce.
If you have s suspection, then try to proof it.
Make some cout where the close is called. Then you will see if your suspection is correct .... in the meantime ... it's summer :-) hope everybody can enjoy it

Is it  possible your sketch has crashed and taken out the USB code ?
This would be different to a removal event from the host perspective

I prepare a PR with a firmware folder with "known as working", so we can shorten such bug search with "test with our sketch ..."

I'll add some of my stuff to it from penfold42/stuff

I reuploaded the sketch to my Arduino and it seems to not appear anymore. There was possibly something wrong with the usb device which made hyperion to crash. Too bad I cannot reproduce the bug. However we should not worry to much about this then. If the bug reappears, I will reopen this issue.


Support annotation of aggregation intervals

When the data set is already aggregated, metadata should be able to specify the width of intervals used for aggregation.
For example, the data used as input in this D3 Heatmap example has the intervals yStep and xStep inside the visualization code. These intervals should be encoded somehow in the metadata for each column.

Relates to chiasm-dataset.interval. This issue will be solved after adopting chiasm-dataset (#4).

[ ] Add a test for this.


AttributeError: module 'cowin_api.models' has no attribute 'IO'

!pip install PyCoWIN-Kunal
This command is failing.
!pip install cowin_api works but import causes an IO error.
test1.zip

Use this command:
pip install CoWIN-API-by-Kunal-Kumar-Sahoo
On Wed, 12 May 2021, 12:06 kirito_ys, @.***> wrote:

!pip install PyCoWIN-Kunal
This command is failing.
!pip install cowin_api works but import causes an IO error.
test1.zip
https://github.com/Kunal-Kumar-Sahoo/PyCowinAPI/files/6463921/test1.zip
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Kunal-Kumar-Sahoo/PyCowinAPI/issues/4, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASEET4KKVIZPLJGM3WLVEYTTNIOWXANCNFSM44X5VERQ
.


JPG stickers not uploading

Hello, trying to upload the following jpeg picture as a sticker, which is not working

Unsure what other info I could give to assist.

Not limited to this single image.  Multiple jpeg files do not seem to be uploading correctly.

Sorry for that.
In fact, this image is a WEBP image instead of a JPEG.

Teams will transfer all images in the cards on content servers now.
But it does NOT support WEBP images.
so all WEBP images are broken now.
Related
https://microsoftteams.uservoice.com/forums/555103-public/suggestions/41772103-support-the-webp-format-for-things-link-announcem


Content update: presentation of nêpit

nêpit currently breaks the relabelling:

Also for nêpiyit:

There's two things going on:

For the None" The text in a Lexical Entry is Optional[str].  At serializing time, we should replace the None with a "" empty string.
The arrow messaging for an Initial Change is directly coded in CreeDictionary/API/search/presentation.py,  following this comment.  It's ok if that is the text that should be presented, but it may benefit from some heading at least, and we should discuss whether this should be placed somewhere else instead of directly encoded in python as to make the dictionary more language agnostic.


Default to the host IP/container hostname when port is not mapped to an interface

This is the behaviour I was expecting, though maybe this isn't for everyone – can close if necessary

Found a bug with this, will re-open after I've fixed it

Solved with the -ip option, sorry for the spam


feat(triggers/targets): Add slash direction support

PR'ing from the original project's repo (https://github.com/Cloudbox/autoscan/pull/186) into your's

Great, I'll have a look and then we can merge (:


How to support FileField with SQLModel?

How to support FileField with SQLModel? I'm aware of sqlalchemy-file, which is for sqlalchemy to handle file field. Can we still use it with SQLModel?

Does this answer resolve your question?
from sqlalchemy import Column, String
from sqlalchemy_file import FileField, FileConverter

from sqlmodel import SQLModel, create_engine, Session

class MyModel(SQLModel):
    __tablename__ = "my_table"

    id = Column(Integer, primary_key=True)
    name = Column(String)
    file = Column(FileField(converter=FileConverter(url="uploads/")))  # Define file field and converter

engine = create_engine("sqlite:///my_database.db")
SQLModel.metadata.create_all(engine)

session = Session(engine)

# Example usage
new_model = MyModel(name="My File", file="path/to/your/file.txt")
session.add(new_model)
session.commit()

session.close()

The FileConverter import fails :/

The FileConverter import fails :/

@gioscarda, it is a separate package to be installed with: pip install sqlalchemy-file


Don't requeue the request when the secret/configmap provider isn't enabled

What this PR does / why we need it:

This PR separates secret and configmap status.
Watch the operator creating in the ibm-common-services namespace, then reconcile the secretshare ibm-common-services/common-services.
Don't requeue the request when the operator providing secret/configmap isn't enabled.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #7
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

/assign @Daniel-Fan


[FEATURE] Statesync snapshot directory configuration

It would be advantageous for some operators to be able set the directory for snapshots in the app.toml. Our specific use case for this is to easily configure the app to create snapshots on a ramdrive.
It would be possible to achieve this by using a symlink, however the configuration flag would reduce configuration complexity.

We will work on it soon

Implemented in https://github.com/sei-protocol/sei-chain/pull/944/

Will roll out in next upgrade (3.0.6)


Step back in Debugging

Issue Type: Feature Request
There is no step back feature present for c/c++ debugger in vs code.
As per my searching, i didn't found any relative thing. it's there in visual studio enterprise edition but not in vs code 2021.
It'll be great if there could be this feature, will help to debug the programs more conviniently.
Thank you.
VS Code version: Code 1.58.2 (c3f126316369cd610563c75b1b1725e0679adfb3, 2021-07-14T22:10:15.214Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

Imp Issue/Requirement

VS Code supports "step back" in the UI. But debug extension have to implement this functionality. Please file this request against the debug extension you are using.


angular-translate: No sanitization strategy

Angular-translate logs a warning:
"pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."
Should probably be fixed.

Thanks, this error is related to dependencies updates. I just fixed it (momentarily we use a null strategy to evaluate if is necessary to include ngSanitize)


The API for font building is inadequate

I've ran into #127 myself. Though the proposed solution does work, I find it inadequate from the API viewpoint

yeah i know, in another project, I have created a wrapper API on top of imgui.net to bring QOL into font replacement activity. following is the example of how I am using that wrapper API.
https://github.com/zaafar/ClickableTransparentOverlay/blob/master/Examples/SingleThreadedOverlayWithCoroutines/SampleOverlay.cs#L114
maybe you can do the same in your project?

Well, making wrappers is OK(~ish). This is just an opportunity to improve this project. But unfortunately, I don't know where to begin with this. Maybe I could spend some time on it if you know how this can be approached

Another thing is that Imgui folks are thinking about changing it so whatever change imgui.net folks will do would become invalid in the future...


Add alternative notification methods.

Addition to the email notification, the following notification methods are supported (https://github.com/matomatical/UoM-WAM-Spam/issues/4).

Pushbullet
https://www.pushbullet.com

ServerChan (WeChat)
https://sc.ftqq.com

Nice! If you don't mind, I'll incorporate this along with some other users' contributions into a new, unified 'notify' submodule.


Traefik fails to obtain ClouDNS wildcard certificate

Do you want to request a feature or report a bug?
Bug (possibly related to #4665)
Did you try using a 1.7.x configuration for the version 2.0?

[ ] Yes
[x] No

What did you do?
I have configured traefik to use LetsEncrypt with wildcard domains using the ClouDNS provider.
What did you expect to see?
Successful issue of a wildcard certificate
What did you see instead?
traefik    | time="2019-04-15T17:01:53Z" level=info msg="legolog: [INFO] [*.domain.com] acme: Cleaning DNS-01 challenge"
traefik    | time="2019-04-15T17:01:54Z" level=info msg="legolog: [WARN] [*.domain.com] acme: error cleaning up: ClouDNS: TXT record unmarshaling error: json: cannot unmarshal array into Go value of type internal.TXTRecords "
traefik    | time="2019-04-15T17:01:54Z" level=error msg="Error obtaining certificate retrying in 618.499901ms"

I also monitored the dashboard in cloudns.net while Traefik was trying to update the DNS records. During this time the domain did not get updated. There was no change in the DNS records what so ever.
Output of traefik version: (What version of Traefik are you using?)
Version:      v1.7.10
Codename:     maroilles
Go version:   go1.11.6
Built:        2019-03-29_12:20:34PM
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?
debug = false
logLevel = "INFO"
defaultEntryPoints = ["https", "http"]
[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
    address = ":443"
    [entryPoints.https.tls]
      minVersion = "VersionTLS13"
      cipherSuites = ["TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","TLS_RSA_WITH_AES_256_GCM_SHA384"]
[acme]
email =<EMAIL_ADDRESS>storage = "/acme.json"
entryPoint = "https"
acmeLogging = true
# PRODUCTION URL
caServer = "https://acme-v02.api.letsencrypt.org/directory"
  [acme.dnsChallenge]
    provider = "cloudns"
    delayBeforeCheck = 120
[[acme.domains]]
    main = "*.domain.com"
    sans = ["domain.com"]

If applicable, please paste the log output in DEBUG level (--logLevel=DEBUG switch)
traefik.log

@steve-todorov If I produce a custom Docker image (at first, I'll just add some log), are you able to quickly test this image?

With the help of @ldez we were able to narrow down the issue to the TTL field for the DNS records. According to the ClouDNS API docs you can only use specific values for the TTL field. Unfortunately some of the requests to the API were silently failing because of the incorrect TTL value and thus there were no TXT records added to the DNS.
The workaround for v1.7.10 is to add CLOUDNS_TTL env variable with a valid value and it should just work without any issues.

Closed by #4800.


Add option for custom ihaskell path

When attempting to integrate a haskell.nix project with IHaskell and jupyterWith, I ran into an issue where the ghcWithPackages function in the haskell.nix haskell package set doesn't add executables to the ghc environment it creates. This causes jupyterWith to generate an invalid ihaskell kernel file since the path it contains points to a non-existent ihaskell executable.
This PR addresses this issue by adding an extra input to the ihaskell kernel derivation which allows users to optionally specify a custom ihaskell derivation instead of using the one that resides in the input haskellPackages set. This allows users of haskell.nix to use the packages they build using that with jupyterWith + ihaskell. The default ihaskell is still the same as in the current implementation.

Seems good to me, can you change add a test so I can be sure to not break it next time? They are in tests/default.nix.

@guaraqe, looks like the addition of the ihaskell from haskell.nix adds a couple of hours to the build time the first go-round, though the result should be cached until the nixpkgs version in jupyterWith gets bumped. To disable that test we can change the CI stage from nix-build ... -A kernel-tests to nix-build ... -A kernel-tests.core, which will only test the kernel files for the kernels which jupyterWith was previously building.

This more or less doubled the CI time, from 2min to 4min, and from 5min to 10min. This is an increase, but not massive. I will take little more look to see what's happening.

Ya I don't think that's too surprising since the CI now has to fetch a whole additional ihaskell closure

Ok, so I think I will only leave the standard tests in place, but require that we run the custom Haskell tests on IHaskell related PRs. That seems to be a good compromise. I will wait for the CI and merge.

Makes sense to me. Thanks @guaraqe!


Implement ThingIFAPI#postNewCommand

Implement TypedIDAdapter
Implement JSONObjectAdapter
Implement ThingIFAPI#postNewCommand.
Implement ThingIFAPI#getCommand, since postNewCommand API use this method.
Add tests to TypedIDAdapter, JSONObjectAdapter and postNewCommand.

Out of scope

I will add test for ThingIFAPI#getCommand in another PR.

@yongpingchen Are tests for ThingIFAPI.getCommand() out of scope of this PR?

@shinsuke-nara this PR is main for postNewCommand. I will add test for getCommand in another PR.


Disable "View Query Usage..." button if extra query usage not configured

Summary

Disable "View Query Usage..." button if extra query usage not configured to improve UX so users don't click the button just to see an empty window saying no query usages available.
How did you test this change?

[x] Test(s) added
[x] Manual testing (please provide screenshots/recordings)
[ ] No testing (please provide an explanation)

GIF of button disabled when no extra query usage configured:

Changeset and code checks need to be fixed. otherwise looks good to me.


Added Recognition Page Link

Description
Added Recognition link to community section
This PR fixes #1520
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@iArchitSharma @leecalcote , I haven't set the external : true in navigation.yml because it was not getting aligned properly, If there are any changes, you can let me know?

@iArchitSharm I will do it tomorrow , I have to create a ppt for tomorrow

@Raj100679 you there?

@iArchitSharma will raise a pr in some time


Use Bundler to manage gem dependencies

Makes builds more deterministic
Avoids issues with plugin incompatibility with fluentd version
Vulnerability scanning from github
~ moves a little closer to solving #43 perhaps
Fixes #27

Also fixes #69

@repeatedly any comments on using Bundler instead of gem utility ?

@edsiper Do you have any concern? We need to release v1 based images so need to merge this change before.

@edsiper Can we merge?

No counter opinion. Merged. Thanks!


Friends button takes user to home

Describe the bug
When a logged in user goes to another person's profile and click "friends", it takes the user to homepage, https://neu5500.netlify.app/.
To Reproduce
Steps to reproduce the behavior:

Log in to user profile
Go to other user's profile page
Click "Friends" tab of the viewing profile page
See homepage

Expected behavior
See friends of other user
Desktop (please complete the following information):

OS

fixed


Clean UP & Dockerization eos8h6g

HI @GemmaTuron  and @simrantan
Model fetches success with fetch test smiles having output vals, however the model seems to work with input files but fail to predict for single smiles.  It is not even showing the  the key and the text vals of the input  on single input.
The  error of singles is consistent in cli, colab and docker.   Full null logs : eos8h6g_1_smiles_pred.log
{
    "input": {
        "key": null,
        "input": null,
        "text": null
    },
    "output": {
        "fp": [
            null,
            null,

CLI

eos8h6g_cli_fetch.log
eos8h6g_cli_pred.csv

Colab

colab_eos8h6g_fetch.log
eos8h6g_colab_output.csv

Docker

eml_eos8h6g_docker.csv

~samuelmayna : ~/ersilia_github_models/eos8h6g (main) $ docker run -v /home/samuelmayna:/data  ersiliaos/eos8h6g
+ [ -z eos8h6g ]
+ ersilia serve -p 3000 eos8h6g
🚀 Serving model eos8h6g: avalon

   URL: http://<IP_ADDRESS>:3000
   PID: 35
   SRV: conda

👉 To run model:
   - run

💁 Information:
   - info
Serving model eos8h6g...
+ echo Serving model eos8h6g...
+ nginx -g daemon off;

Error: No such option: -i
root@ad4b63270011:/data# ersilia run  -i eos8h6g/eml_canonical.csv -o eos8h6g_docker_emL_pred.csv
eos8h6g_docker_emL_pred.csv
root@ad4b63270011:/data#


Fixed typo in copypasta flavor message

About the PR
Fixes a typo with the flavor message of copypasta.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

fix: Fixed flavor message for copypasta

I will assume this doesn't need a picture since it is me changing a single letter in the message but I can also provide one if needed.


feat(Sector3Priority): add erc721 token gate

Related GitHub Issue
closes #41
This is a pull request to add the ERC-721 token-gating to the Sector3DAOPriority contract.
adds ERC-721 token-gating functionality to the Sector3DAOPriority contract, allowing contributors to receive rewards only if they have an ERC-721 NFT associated with a minimum alignment value for the respective epoch.

How Has This Been Tested?

Sector#3 Contribution

[x] Reported contribution at https://goerli.sector3.xyz/v0/daos/0xEa98D59e4EF83822393AF87e587713c2674eD4FD

Superseded by https://github.com/sector-3/protocol/pull/48


Query documentation

I'd love to use ethql for a project I'm working on where I would be analyzing a specific token. Except for a couple examples in the readme, I don't see any documentation on how to use this tool for querying Ethereum. What's the best way to approach this?

Hey @rokcarl, currently you can access our test endpoint at:
http://ethql-lb-979715030.eu-west-3.elb.amazonaws.com/graphql
It's running the GraphiQL tool which has code completion, and schema documentation on the sidebar panel. Maybe have a look if that helps for now.
@akhila-raju will also be working on a Query handbook in the next days (issue to follow up shortly).

Nice, thank you!
And please link to the issue so I'll be able to check its progress.

https://github.com/ConsenSys/ethql/issues/76 :)


Add functionality to filter on whether the repo already uses workflows

(Spawned from #1)

The alternative would be checking .github/workflows folder to see if there are any yaml files.

We decided to use this method.

we can use https://octokit.github.io/rest.js/v18#actions-list-repo-workflows to check if the repo has any workflows.

We decided to use this method.

PR was merged, closing


suggestion: show package versions in scope package list

I see this being useful for, say, the Standard Library, allowing users to quickly see the latest version of each package at a glance. Maybe this could appear immediately to the right of the package name.

This would also be useful wherever a list of packages is presented, eg. search completion and package search results.


Child trie api changes BREAKING

The child trie api got some questioning recently, so this pr try to make things cleaner and easier to specify.

Allows child trie to be build from their storage key only. This relies on two condition

storage_key of the child trie is a unique id strong enough to avoid hash collision.
storage_key of the child trie should only be use once for the child trie (eg if the child trie is deleted, it cannot be created again at the same place).

Contract code falls in this category, polkadot crowdfund to, I think child trie module do also (cc @thiolliere).

Changes the way StorageKey is define to never include ':child_storage:default:' and include it only when needed (when reading or updating parent root).

Separates child trie host function into their own runtime api (so future child trie of different kind could use their own).

So this breaks rpc, with this pr rpc would use storage_key without its prefix and no more child_info and child type fields. cc @Stefie
This PR also do break existing runtime by removing the child info and  child type too.
This also changes TrieIdGenerator of contract pallet to stop including the child prefixes for the key, the changes needed are in the pr cc @pepyakin  Closes #2325.
So for other kind of child trie new rpc api and runtime host function will be needed.
Changes required for polkadot are currently on this branch: https://github.com/paritytech/polkadot/compare/master...cheme:child_trie_w3_change

So this breaks rpc, with this pr rpc would use storage_key without its prefix and default to the child_type 0 with an empty child_info description. cc @Stefie

This PR is now ready for review.
It does not contain logic change except for the prefixing of the storage key that is now done before writing and reading root in parent trie only.
The main change is mostly reverting back to some simple rpc and simplier runtime host function.

Renaming rpc was a bit ugly, so in the end I bring back the child_type parameter to the rpc.

I just did realize that even if the deprecated runtime is kept, for chain using contract, an data migration is needed to remove the prefixes from the contract ids (because of solving #2325).

Ok, I did switch back to only storage key for rpc, but with child type prefix.
The runtime is still using a set of function for default child type only (so using storage key without prefix).

I started implemented a different api in https://github.com/cheme/substrate/commit/9ad968051ccc548c30240d4d70d9df0377974ed8 , I am stopping it at this point as it is more work than I believed and it was just to test (it would only start looking nice only after changing also backend trait and using a slab in overlay_change).

Latest commit restore existing rpc interface and add a new child state rpc api.
I did not change 'rpc_methods' version as it is only new methods. I would have like to remove the restored method in a version 2 of the rpc api, but this is out of scope of this PR as it would probably requires significative change in json rpc, I am thinking some new derive attribute deprecated(2) and since(2) (or something hardcoded changing version is really needed in this case).
cc @tomusdrw , @jacogr

@cheme You can actually remove the old methods completly. No need to support them and keep them around. The middleware (e.. APIs) can detect what the node has and use those. As long as the rename is there, the old can go the way of the dodo.

Ok, so it is breaking, but we can detect it. Seems better to me, I will remove them, thanks.

The fact that both ChildInfo::storage_key and ChildInfo::prefixed_storage_key return the same type (byte slice kind of) makes it difficult to follow

True, I will try to do something about it tomorrow.

@thiolliere , I added a PrefixedStorageKey type in https://github.com/paritytech/substrate/pull/4857/commits/1b2a30cd9938ee776ebe441279374d88e8e81a27 , let me know if you think it is better.

OK looks good to me, I can do a final review but it correct to me.

In the future, to make it more reviewable, maybe we should move out of the PR everything that can be, like renames and some changes.

Yes, I will keep that in mind :+1: , I will try to merge master and update the polkadot branch (and open pr and finally try this new CI feature) later today.

Companion not building, @cheme

merge master should fix the breaking CI test

Changes in client/network/src/protocol/message.rs probably require protocol version bump and some code to support backward compatibility

This might be a good time to rename "child" to "subtree" or "substorage". Please vote if you think this is a good idea.

This might be a good time to rename "child" to "subtree" or "substorage". Please vote if you think this is a good idea.

My preference goes toward «substorage» (do not have to be a tree, just some storage with a proof system), I could also propose «substate».
This would be a big renaming but I think it will be worth it.

Changes in client/network/src/protocol/message.rs probably require protocol version bump and some code to support backward compatibility

https://github.com/paritytech/substrate/pull/4857/commits/619b454c3ccf7b5d35bfaf8eea3df00084ee1272 is trying to do that, note that it assumes input data is of the right size (I found no other way to remove possible false positive when decoding with the latest encoding without changing to much the way things are encoded).
@arkpar, I do not have code compatibility on the light client handler either, reasoning was that the child trie api should not be use at the moment (one of the latest change remove the sp-io compatibility there). I observe protobuf version is still 1 so it may not be needed (not sure how much support for light client is currently needed).

That's a good point. If it is not used there's no need to bother with compatibility indeed. So 619b454 could be reverted I guess.  If not, you could implement custom Decode that would try to decode as previous version and then as new version if it fails. Like here: https://github.com/paritytech/substrate/blob/master/client/network/src/protocol/message.rs#L349

Hum custom decoder looks like a better idea indeed (or at least put everything in RemoteReadChildRequest), but I am reverting it right now.

Needs resolving @cheme
Is there any reason we shouldn't merge this before 2.0?

Is there any reason we shouldn't merge this before 2.0?

It is breaking some compatibility so I would think it is better if merge before 2.0. I am resolving it.

@cheme this needs one more conflict resolution and can be merged.


Upload package to tagged release asset

Is your feature request related to a problem? Please describe.
Currently, the package is built and uploaded to pypi on every tag, but the package wheel is not added as a release asset.
Describe the solution you'd like
Edit/add an action that takes the whl file generated from the existing publish to pypi action and uploads it to the tagged release asset.
Additional context
Example actions: https://github.com/actions/upload-release-asset

Fixed in c4e071b87b97174b8509d08735c13b84f628e217


Writer to launch compaction job using hive metadata

Writer to launch an MRCompactor job from a local gobblin job using info obtained from hive.
A workunit is created for each hive table. The extractor gets primary key field, delta key field, and file location from the hive metastore and passes these to the writer, which adds them to config for compaction. Compaction is then run on the entire folder for the table, since watermark management is not added yet.
Changes:

Created extractor, writer, writerBuilder, compaction entity
Modified HiveSource to make extractor configurable
Fix bug with compaction tmp folder being used in two places by adding a subfolder in DatasetsFinder
Move HiveJdbcConnector to gobblin-util

Config for use:
Source: HiveSource
Extractor: HiveMetadataForCompactionExtractor
DataWriterBuilder: CompactionLauncherWriterBuilder
Converter: IdentityConverter
Publisher: NoopPublisher
DatasetFinder: SimpleDatasetsFinder

One minor comment, other than that looks good.


Naming of the parts a license object contains

I had a lot of discussions about using the right terms when talking about licenses and their structure.
It seems that even in Microsoft and Microsoft products, there sometimes is some inconsistency about this.
We came up with an agreement internally that I wanted to validate with the public community in order to clarify whether this could also be reflected as a general explanation on docs.microsoft.com. Maybe an explicit explanation and definition would be very helpful instead of just assuming the right wording, based on reading different articles on different places.
License hierarchy
1. Product license (plan)
This is the billing level of Microsoft online products and services. It is a collection of service plans that are bundled together in order to sell them as a single product. There could be different varieties of product license plans, offering the same service with a different feature set, or in different combinations.
Product license plans are assigned to users either directly or indirectly, using group-based licensing.
For simplicity, a product license plan is often also referred to as a product license or just license.
Some documentation may also refer to this as a product name. SKU (short for Stock Keeping Unit) might be another generic analogy here. Also, USL (short for User Subscription License) might appear as a synonym.
2. Service plan
At this secondary level, Microsoft Online services and features will be enabled or disabled for the user. enabled will be the default state after adding a new product license plan to a user or group.
There can be several different service plans for a Microsoft Online service to enable different features. Most of the times, those service plans are mutually exclusive. That means, only one of those service plans can be enabled for a particular user. Some services may handle this more flexible so that service plans with different feature sets will add up just nicely. In theory, an extended service plan with more features enabled also includes features of the lower plan which would allow additive plans to be handled also in a mutually exclusive way. However, this highly depends on the individual service. For Azure Active Directory, it was now recently implemented for features to add up so that manual conflict handling and resolution is not necessary anymore. However, other services like SharePoint Online can only be assigned mutually exclusive, keeping high the complexity of license handling for enterprises.

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

ID: 7c245452-161d-89a1-c026-99a0721cf071
Version Independent ID: 16dec59a-eb83-1837-4efd-4645e7aeaed2
Content: Product names and service plan identifiers for licensing - Azure AD
Content Source: articles/active-directory/users-groups-roles/licensing-service-plan-reference.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @ajayanti1
Microsoft Alias: arjay

@jpawlowski Thanks for the feedback! We are currently investigating and will update you shortly.

@jpawlowski Thank you for your explanation . This is really good information to include within the existing content along with the Azure AD License DB in JSON format which you have detailed in #43859 . We will have this reviewed with content team on how best it can be integrated/referenced with existing content .
Thank you.

Thanks! Just to let you know that we’re also in direct contact with the Azure AD and licensing product group in MSFT. If you would like to avoid over communication, drop me a line to have this aligned better.
Cheers,
Julian

@jpawlowski Hello Julian, My apologies that  I was not able to find your email . I have sent you a messgae through your website though. Hence I would request you to drop me a line on azcommunity[at]microsoft[dot]com and we can have one single thread where you are already in touch with the Azure AD licensing product group rather than having multiple threads for the same thing. We will take both of these issues #43859 and #43866 , that you have created and continue the conversation on them offline as a parallel PG engagement is already underway. Please reach out to us over email mentioned and we will continue the conversation on how best this can be incorporated in the documentation. Should you have any further queries , please tag me to your reply and I will help you further.
Thank you .


Run this code on vck5000 got stuck

I tried this example on vck5000 but got stuck when running the host code. I am able to generate the libadf.a and xclbin and build the x86 host code. May I ask what is the reason that may cause this issue ?
Running sum example on VCK5000 with 32 elements
Load sum.hw.xclbin
Create kernels
Create input and output device buffers
Create runner
Transfer input data to device... Done

According to the terminal, it got stuck after transfering input data. The aie graph only set run 1 iteration, I think this simple code should not take that long time right ?
The command I use is:
./host xxx.xclbin 32

Are you using our FPGA testbed or your own VCK? On our testbed module load vitis/2022.1 in a fresh terminal will bring in the correct environment, this is important as some libraries can seem to lock up the vck5000 if they are present when a bitstream is built.

Thanks for the reply.
I am using the vck5000 development card installed on our own server.
According to your reply, you mean this is becuase of the incorrect xcbin that was build using different environment ? So the host code is correct right ?
I just wonder which library will lock up the vck5000 ?
Because when this code stuck, I reset the card and then execute another example from official vitis example which only use pL kernel on vck5000, it works.
I also try to validate the card, it also passes the validation.
Is it necessary to use module load to setup vitis environment ?
I use CentOS 7 and I source the script files everytime I log into the server. I think I am curious which additional environment variables are needed to make this code available to be deployed on my vck5000 card.

unset LM_LICENSE_FILE
#floating license: departemental server
export<EMAIL_ADDRESS>#Setup path
export VITIS=/work/shared/common/CAD_tool/Xilinx/Vitis-2022/Vitis/2022.1
export HLS_INCLUDE=/work/shared/common/CAD_tool/Xilinx/Vitis-2022/Vitis_HLS/2022.1/include
source $VITIS/settings64.sh
source /opt/xilinx/xrt/setup.sh

That's just what I found in setting up our VCK5000s, this was into an existing system with numerous bits and pieces and took a bit of experimentation before things would build and run OK. As I say, this code runs fine on our VCK5000, hence me suspecting that this could be the culprit for you.
It might be worth you clearing out your bash (e.g. ensuring path, ld_library_path etc are all empty) then sourcing the xrt and vitis sh scripts, rebuilding and seeing if that works. For us, I suspected that there was a library or setting somewhere that was interfering with AIE compilation and that was causing the hanging (as like you I could build fine for the PL, but when bringing in the AIE then it caused issues).
Xilinx provides an image processing example for the VCK5000 (downloadable from the early access part of their website) - I suggest trying to build and run that, as if it's an issue with your environment/setup then that would not run either so might help you diagnose the problem to figure out if it's an issue with this code or something a bit wider.

I see. I will take a look at the image processing example and double check my environment. Very appreciated for the answer. Thanks !


Is there any plan to support access pixels of the all layers?

This is a suggestion about this SDK.
I'm using my own developed CEP panels, filter plugins(C++ with C#) and Extend Scripts.
But, I think there is not ultimate way to develop an extension for PS yet. Each thing lack other things features.

Read/write the pixels to all layers. Only filter plugins can write the pixels but it is allowed for one layer.
Preview/update canvas in real time such like built-in filters. The filter plugin must be a modal and the API design only considered single threaded. Additionally, cannot execute actions on the way.
Load platform native module. Only filter plugin allowed. As I know, the UXP planning to support opening the filter plugin. It  should also support calling common native module to improve performance and extendibility.
Shortcut support. Not just opening a panel or dialog. Mapping in the preference and callback a function.
Calling actions faster. Finally, UXP considering about it.

Hey there -- this type of question is better suited for the forums. We'd love it if you'd ask over there. :-)
https://forums.creativeclouddeveloper.com/c/photoshop/uxp-plugin-api/64


update nlohmann_json to version 3.6.0

I just released JSON for Modern C++ 3.6.0, see https://github.com/nlohmann/json/releases/tag/v3.6.0. Could you please update the port nlohmann_json?

Hi @nlohmann,
Latest version is 3.6.0, you can update vcpkg and rebuild.
Thanks.


Add facility to preserve go installation

Some go applications rely on having the go installation (GOPATH and/or GOROOT) to be around at runtime. This adds a check for a ".gokeep" file to enable such.

What is the use case here?

I was running a tool that expected the go source to be on disk (pythia in particular).

@tmc So you were using pythia as your web Procfile entry to view the source code of you app ?

Sometimes I wonder if the buildpack should set GOPATH=/app and then set the pushed code up properly inside of that (/app/src/<ImportPath>/). This way using pythia is at worst a matter of vendoring a copy into your repo and at best just supported (somehow, not sure how) out of the box.
I'm not exactly -1, but also not exactly +1 on keeping the go toolchain (basically GOROOT) around. I'm mostly just wondering how many people would find that useful vs. the amount of bloat it would add (even optionally) to the slug.

@tmc Even if GOPATH=/app/src/<ImportPath> and GOROOT=.goroot (or some such) how are you planning to run pythia / ssaview exactly?

I'm going to close this implementation wise. I have some thoughts about supporting this better including actually setting up a real GOPATH (see the docker branch), which I'll get to in August.

@freeformz I'm not sure what your question is there on the 30th -- I deploy them with the proposed patch (or a version of it)


update crds for spiderpool dra feature

Thanks for contributing!

What type of PR is this?

release/feature

What this PR does / why we need it:
update crds for spiderpool dra feature
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

@weizhoublue ready to merge, please, this pr is pending https://github.com/spidernet-io/multus-cni/pull/2.


Add a subdomain to the DNS list.

Can you please add preprod-payroll to the subdomain list.

I've made a PR that fixes this.

Thank you.


Explore using a view modifier to make it easy to show the add tags view

Right now this relies on a block injected into the environment which seems to cause redraw issues. Perhaps this could be shown using a view modifier?

I've experimented with this, and it doesn't seem to affect the redraw issues one way or the other. Closing as invalid.


prometheus command line options

Hi again, here's my next issue:
I'd like to access prometheus' admin-api. It is enabled via the command line option '--web.enable-admin-api'
I found: https://github.com/coreos/prometheus-operator/pull/2300 which should enable this feature.
I have changed base_operator_stack.jsonnet and added "enableAdminAPI: 'true'". I have re-created and re-applied the manifests. Unfortunatly the commandline option is still not there on the prometheus-pod.

You should be able to add it right below externalUrl in:
https://github.com/carlosedp/cluster-monitoring/blob/cd17208e4fb756d4af2ea71d55d223ff7cc7eca4/base_operator_stack.jsonnet#L71-L75
Like
      spec+: {
               replicas: $._config.prometheus.replicas,
               retention: '15d',
               externalUrl: 'http://' + $._config.urls.prom_ingress,
			   enableAdminAPI: "true",
             }

And re-generate the manifests.

Closing this. Reopen if some error is found.


Bot message for no results found

From @theycallmeswift

The bot could use an error message if it doesn't find someone.

I also think it's worth us looking into whether we can use the Discord username to match a Fellow's GitHub profile? It seems more intuitive to say !gimmer @DiscordUsername rather than their GitHub username which most people probably won't know at first.
The discord.js library might give us the discord username/nickname - we could map the nickname to the db name's because the discord server rules are that your nickname should be your full name (there will be exceptions of course but it's worth us looking into!)

Definitely, I've been looking into this. But we should be careful with the @mention in Discord because the user might not actually want to call the person they are checking out. In any case, @mentions might be better addressed as a standalone issue?

Done by @ivov


Make elasticsearch switchable in tox, allow ES failures in travis

The random Elasticsearch failures on Travis are causing way too much noise, and confusion for contributors. See https://github.com/torchbox/wagtail/pulls?utf8=✓&q=is%3Apr+travis for a sample...
This PR moves the Elasticsearch tests into their own Travis builds, flagged as "allow failures" - this way, they won't interfere with regular development, but we can still check that those tests succeed prior to shipping a new release.

Looks good to me. Happy for this to be merged once Travis has looked at it

Merged in c495f02bafeb73c9036587f39fcd43eb45ee813f


Inference code to evaluate one pointcloud file on Nuscnes dataset

Hi,
I trained the code for Nuscenes dataset for all classes using all.fhd.config,all.pp.largea.config,
But with the checkpoints that i got for training, i tried to inference part on single pointcloud data file, code was getting crashed.
Kindly let us now how to do inference on single pointcloud files rather than multi-sweeps.
Kindly help and any help would be really appreciated.

@poodarachu, @traveller59 Can you kindly help. Do the needful

my codebase is different from this one ...
why do you need to inference using a single sweep?
what's your NDS when evaluate using multi-sweeps?
but I think you can modify nuscenes_dataset.py's get_sensor_data() method to achieve this.

Do you want me to retrain with create_data with sweeps=1 in order to work with individual pointcloud for inference? Kindly reply

Do you want me to retrain with create_data with sweeps=1 in order to work with individual pointcloud for inference? Kindly reply

just modify for inference.

I ran the inference code with trained models all.fhd.config and all.largea.config models for one point cloud. I'm getting too many false positives with score threshold of 0.3,0.4. but my precision and recall graphs performed well. Kindly suggest please help

could you paste the graph?

Kindly suggest as the precision and recall curves are increasing only. Still for one pointcloud iam getting too many false-positives.

I think it's still abnormal for prec@50~95.
can you paste an example result on a sample point cloud ?

@poodarchu, can u kindly suggest please

In my setting, I use iou threshold 0.2, nms score threshold 0.1;
fp should positioned more far from point cloud center, that is closer to center, thier should be fewer fp detections. if your fp is evenly distributed in the point cloud, then problem should be in your model design, or loss.

sample result for one point cloud. This ia all.fhd.config trained upto voxelnet-64515.tckpt. Kindly suggest how to go ahead for improving.

I took the base code from traveller59 github without any modifications in the model/code. But detections are far from true positives. Kindly suggest. I need to retrain? If retrain what parameters i need to modify to get decent results on single pointcloud.

In the github all.fhd.config, nms_score_threshold: 0.05
nms_iou_threshold: 0.5.. Are you talking about these parameters? These are the params or some other params? Kindly suggest

In the github all.fhd.config, nms_score_threshold: 0.05
nms_iou_threshold: 0.5.. Are you talking about these parameters? These are the params or some other params? Kindly suggest
yes.

I took the base code from traveller59 github without any modifications in the model/code. But detections are far from true positives. Kindly suggest. I need to retrain? If retrain what parameters i need to modify to get decent results on single pointcloud.

from the image above, it seems the detections doesn't match any objects at all...
You need to check your visualization code, and you can use nuscenes's official evalution code to eval the ckpt, if that output NDS like 20%~%30, I think the ckpt is valid, and then problem might be your visualization code or inference.
BTW, you need to use 10 sweeps to evaluate to get a better detection result.

I used simple_inference.py to evaluate the single_pointcloud_file with visualization using mayavi for 3D
Even i used bird eye view results also but that also bad. I used the code below.
config_path = "/home/ubuntu/LIDAR/traveller59_2/second/configs/nuscenes/all.fhd.config"
config = pipeline_pb2.TrainEvalPipelineConfig()
with open(config_path, "r") as f:
proto_str = f.read()
text_format.Merge(proto_str, config)
input_cfg = config.eval_input_reader
model_cfg = config.model.second
config_tool.change_detection_range(model_cfg, [-50, -50, 50, 50])
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
ckpt_path = "/home/ubuntu/AWS/allfhd/voxelnet-64900.tckpt"
net = build_network(model_cfg).to(device).eval()
net.load_state_dict(torch.load(ckpt_path))
target_assigner = net.target_assigner
voxel_generator = net.voxel_generator
grid_size = voxel_generator.grid_size
feature_map_size = grid_size[:2] // config_tool.get_downsample_factor(model_cfg)
feature_map_size = [*feature_map_size, 1][::-1]
anchors = target_assigner.generate_anchors(feature_map_size)["anchors"]
anchors = torch.tensor(anchors, dtype=torch.float32, device=device)
anchors = anchors.view(1, -1, 7)
v_path = "n008-2018-05-21-11-06-59-0400__LIDAR_TOP__1526915243047392.pcd.bin"
scan = np.fromfile(v_path, dtype=np.float32)
points = scan.reshape((-1, 5))[:, :4]
res = voxel_generator.generate(points, max_voxels=90000)
voxels, coords, num_points = voxel_generator.generate(points, max_voxels=90000)
print(res['voxels'].shape)
add batch idx to coords
res['coordinates'] = np.pad(res['coordinates'], ((0, 0), (1, 0)), mode='constant', constant_values=0)
res['voxels'] = torch.tensor(res['voxels'], dtype=torch.float32, device=device)
res['coordinates'] = torch.tensor(res['coordinates'], dtype=torch.int32, device=device)
res['num_points_per_voxel'] = torch.tensor(res['num_points_per_voxel'], dtype=torch.int32, device=device)
example = {
"anchors": anchors,
"voxels": res['voxels'],
"num_points": res['num_points_per_voxel'],
"coordinates": res['coordinates'],
}
pred = net(example)[0]
boxes_lidar = pred["box3d_lidar"].detach().cpu().numpy()
scores = pred['scores'].detach().cpu().numpy()
label_preds = pred['label_preds'].detach().cpu().numpy()
fig = mlab.figure(figure=None, bgcolor=(0, 0, 0), fgcolor=None, engine=None, size=(1000, 500))
draw_lidar(points, fig=fig)
iLen = boxes_lidar.shape[0]
for iIndex in range(iLen):
score = scores[iIndex]
if(score<0.4):
continue
x = boxes_lidar[iIndex][0]
y = boxes_lidar[iIndex][1]
z = boxes_lidar[iIndex][2]
l = boxes_lidar[iIndex][3]
w = boxes_lidar[iIndex][4]
h = boxes_lidar[iIndex][5]
ry = boxes_lidar[iIndex][6]
x_corners = l / 2 * np.array([1, 1, 1, 1, -1, -1, -1, -1])
y_corners = w / 2 * np.array([1, -1, -1, 1, 1, -1, -1, 1])
z_corners = h / 2 * np.array([1, 1, -1, -1, 1, 1, -1, -1])
corners = np.vstack((x_corners, y_corners, z_corners))
R = rotz(ry)
corners = np.dot(R, corners)
corners[0, :] = corners[0, :] + x
corners[1, :] = corners[1, :] + y
corners[2, :] = corners[2, :] + z
corners_3d = corners.T
color = (0,1,0)
line_width = 1
mlab.points3d(x,y,z, color=(1, 1, 1), mode='sphere', scale_factor=0.4)
for k in range(0, 4):
i, j = k, (k + 1) % 4
mlab.plot3d([corners_3d[i, 0], corners_3d[j, 0]], [corners_3d[i, 1], corners_3d[j, 1]],
[corners_3d[i, 2], corners_3d[j, 2]], color=color, tube_radius=None, line_width=line_width,
figure=fig)
i, j = k + 4, (k + 1) % 4 + 4
mlab.plot3d([corners_3d[i, 0], corners_3d[j, 0]], [corners_3d[i, 1], corners_3d[j, 1]],
[corners_3d[i, 2], corners_3d[j, 2]], color=color, tube_radius=None, line_width=line_width,
figure=fig)
i, j = k, k + 4
mlab.plot3d([corners_3d[i, 0], corners_3d[j, 0]], [corners_3d[i, 1], corners_3d[j, 1]],
[corners_3d[i, 2], corners_3d[j, 2]], color=color, tube_radius=None, line_width=line_width,
figure=fig)
mlab.show()

Shall i use 10 sweeps and use the smae inference code to verify result? Kindly suggest.

I suggest you use official eval code to visualize in birdview. according to others' issue, simple_vis seem to be incorrect.
and I haven't used any visualization code in this repo.
write your own visualization module helps you understand data and difference from KITTI.


Does not work with React 16

This package breaks any app using it once updated to React 16

ReactBaseClasses.js:66 Uncaught TypeError: this.updater.enqueueCallback is not a function
    at ReactTooltip.ReactComponent.setState (ReactBaseClasses.js:66)
    at resetState (index.js:436)
    at ReactTooltip.hideTooltip (index.js:448)

heya @bradennapier did you end up finding a work around for this? I saw your comment in the React repo!

Hey @emily-plummer this happens when you have two versions of React installed.  This was due to a repo which I was not even including but since it was in my package.json it was causing an issue.
yarn list

revealed that repo easily and upon removing it this problem instantly resolved.  So it was not an issue with react-tooltip at all.
That being said, I will leave this open for a little while so others can see it -s ince we have 7 thumbs up already I would assume quite a few are running into this!

I've been running the plugin in production for over a week now and had no problems...

Correct, you will not have problems unless there is a module that has React < 16 in its dependencies rather than peerDependencies where it should be.

Rad! Thanks @bradennapier  :)

Wait.. so what was this fix? Moving react in package.json of ReactTooltip to peerDependencies??

No, it wasnt react-tooltip that was the problem, if ANY of your dependencies or their dependencies have react as a dependency rather than peerDependency then any calls that utilize enqueue callback
this.setState({
    foo: 'bar'
}, () => console.log('set!'))

will generate this error.
if you run the
yarn list

or
npm ls

on your app you should see a package that has react as a dependency -- that package needs to move it to peerDependencies or you need to remove that package.  Even if you do not use that package and it is never imported - it appears to cause a conflict.

This line: https://github.com/wwayne/react-tooltip/blob/master/package.json#L42
Needs to change to this:
https://github.com/eiriklv/react-masonry-component/blob/master/package.json#L39
Or what this PR is doing:
https://github.com/wwayne/react-tooltip/pull/321

Merged and deployed as 3.4.0


Syndie airlocks

About the PR

This PR adds syndicate airlocks with a red-and-black color scheme, so syndie maps and shuttles don't have to use (ironically) security-colored airlocks anymore. Also includes external syndicate airlocks to prevent people from casually walking into the nukie ship, and add an extra hurdle for powergamers rushing the syndi puddle.
Added separate syndicate access level intended primarily for traitors who have an agent card, which is planned to be used in the upcoming Haven Orbital map, and may be used inside syndicate ships such as the syndi puddle.
Airlocks include both agent and operative versions.
Credits: @Doru991 (YAML)
@MaloTV (Sprite work)
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl: Doru991 & MaloTV

add: The Syndicate has started producing custom made airlocks in their signature colors.
add: The Agent ID card now comes with access to a limited suite of Syndicate facilities, not including those reserved for operatives.

so nukies wont be able to access their own ship without scanning the commander or medic's ID? I think it should just be a single syndicate access

This doesn't contain actual mapping so the nukie shuttle could just be mapped with the regular syndie variant. Or as an alternative, regular nukie operatives could start with a special agent ID that has that access from the start

Very cool Sprites i wonder who did them

the sprites for these are very saturated and don't really match the syndicate color scheme. I would recommend perhaps using a black base with red accent lines (inverting the current colors)

I'm pretty sure Malo used the colors of the syndicate logo to make the sprites, I'll try to see if it'd look better if it used the same red as some other syndie objects

theres another syndie airlocks pr and personally the sprites in that are way nicer

Can you drop a link to that one?

https://github.com/space-wizards/space-station-14/pull/16959

Gonna be honest I have no idea what's going on with that PR since it seems like someone accidentally tried to merge a whole Russian fork into upstream, I couldn't even find the syndie airlock texture as one of the changed things in that PR

nevermind im idiot

pro
that one is closed tho but the red on black color scheme might look better near walls and stuff, I'll try to re-edit it into something similar

yes its a derelict steal the precious sprites :trollface:

I made a new palette based on the surplus crate one, this one hopefully goes a bit harder

:(

Sorry Malo I didn't mean it like that I was genuinely trying not to inconvenience you 😕


Do not overwrite the previous value of different keys in deployment's metadata

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

/lgtm
Thank you.


in test_dependencies.py test_inconsistent_camel_case_fixed_by_restler fails.

There are messy capital and little letters in the words. can not following the rules.


The LRA state model diagram is missing an allowed transition

Nested LRAs are allowed to transition from the state Closed to the state Cancelling. This transition is missing from the LRA state model diagram.

@xstefank thanks for pointing this out. Could you review it please?


fix typos

Make sure set the target branch to develop
What is the purpose of the change
fix typos
Brief changelog
fix typos
Verifying this change
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

There may be a compatibility issue. Please take a look @lizhimins


Full Svelte 5 support

Hi,
I have seen that you have added support for Svelte 5 with #25. But this isn't enough, because the lib uses SvelteComponent under the hood for the declaration of an icon. But this type is deprecated in favour of the new Component type: https://svelte-5-preview.vercel.app/docs/breaking-changes#components-are-no-longer-classes-component-typing-changes
So it's currently not possible to pass icon components around, without a TypeScript error, when using Svelte 5 because of the incompatible type. Sure it renders, but TypeScript shows an error.

Thanks! I didn't read the Svelte 5 changelog. For Svelte 5 support, it would be a new major version, perhaps I can release it under the @next version for now. For future releases, icon updates should be considered minor.
Is that good? looking for advice.

Yes, a @next tagged version would be awesome.

Any news here?
I was not prepared for all icons to be forced 1em 😂

@haruaki07 With update to Svelte 5 my import started returning this strange object instead of the icon:
wrapper(anchor, props) {
    let instance = {};
    let effect2;
    let ran = false;
    block(() => {
      const source2 = get_source();
      const component2 = get(source2);
      if (effect2) {…

It happens with both types of import (named or default from /lib).
Any idea what it means?
My import is translated to this path, I presume by Vite: import GenderMale from "/node_modules/.vite/deps/phosphor-svelte_lib_GenderMale.js?v=00bee268"

@haruaki07 With update to Svelte 5 my import started returning this strange object instead of the icon:
wrapper(anchor, props) {
    let instance = {};
    let effect2;
    let ran = false;
    block(() => {
      const source2 = get_source();
      const component2 = get(source2);
      if (effect2) {…

It happens with both types of import (named or default from /lib). Any idea what it means?
In build my import is translated to this path, I presume by Vite: import GenderMale from "/node_modules/.vite/deps/phosphor-svelte_lib_GenderMale.js?v=00bee268"
Seems like the object originates from http://localhost:5173/node_modules/svelte/src/internal/client/dev/hmr.js

You can create a new issue and provide a reproduction please.

I think I figured it out. I was using svelte:element instead of svelte:component for dynamic rendering of the icons. The wrapper seems to work in that case. It's just complains that svelte:component is deprecated in runes mode, which is weird, since I don't see any other way to render icons dynamically.

You can easily write:
<script>
  import Cube from "phosphor-svelte/lib/Cube"; // Recommended for faster compiling

  const item = Cube;
</script>

<item />

@akkie Oh, thanks a lot, that makes sense. Also I didn't know how to do it in a loop, with an intermediary variable. For someone else who finds this, here's the solution:
{#each Object.entries(list) as [key, category]}
    {@const Icon = category.icon}
    <Icon size={32} />
{/each}

You can also directly write:
{#each Object.entries(list) as [key, category]}
    <category.icon size={32} />
{/each}


Compatibility with latest prometheus client

Unfortunately the latest client does not allow one to set counters to specific values anymore, which breaks mongodb_exporter. There are two different branches around, one trying to solve the problem with Reset()s and recreating counters, the other vendors the old client.
It would be nice to get at least one of the approaches merged, so that other features can be developed/updated in the respective way.

See for a version which works with the latest client https://github.com/Percona-Lab/prometheus_mongodb_exporter/pull/38


[Question] Does hidet support the compilation of complex-valued tensors?

As the title says. Thanks !

Hi @gautierronan,
Currently, hidet does not support complex-valued tensors. Can I know what networks are you working on that need complex-valued tensors?

Hi @gautierronan,
I added the complex64 and complex128 data types in this PR https://github.com/hidet-org/hidet/pull/200. But I am still not quite sure what operators or operations in the kernel you need. Please let us know if you have any questions in using hidet. You are also welcome to contribute to the complex type support if you find anything missing here, and I would like to help.


chore(deps): update dependency nipyapi to v0.19.1

This PR contains the following updates:

Package
Update
Change

nipyapi
minor
==0.15.0 -> ==0.19.1

Release Notes

Chaffelson/nipyapi
v0.19.1
Compare Source
What's Changed since 0.17

New github release notes feature, woop
NiFi 1.17 support
Added link to doc index for parameter contexts by @Jimvin in https://github.com/Chaffelson/nipyapi/pull/302
Allow version validation to ignore NiFi or Registry when checking for parameter support by @ChrisSamo632 in https://github.com/Chaffelson/nipyapi/pull/304
Adds child cascading to assign_context_to_process_group by @sdairs in https://github.com/Chaffelson/nipyapi/pull/267
Fix bug in security.bootstrap_security_policies by @PieterDM in https://github.com/Chaffelson/nipyapi/pull/261

New Contributors since 0.17

@Jimvin made their first contribution in https://github.com/Chaffelson/nipyapi/pull/302
@ChrisSamo632 made their first contribution in https://github.com/Chaffelson/nipyapi/pull/304
@sdairs made their first contribution in https://github.com/Chaffelson/nipyapi/pull/267
@PieterDM made their first contribution in https://github.com/Chaffelson/nipyapi/pull/261

v0.19.0
Compare Source

modify utils.check_version to accept a default version to check against, and remove nested error when version check fails as it is overzealous
Update test file paths in test_utils in case someone runs tests as root which actually can write to fake devices and therefore break the tests
Updated clients for 1.16
Added pylint exclusions for known but unimportant complaints
Added workaround for NiFi 9470 by providing default inherited_parameter_contexts per advice from Chris Sampson in NiPyAPI Issue https://github.com/Chaffelson/nipyapi/issues/305
Fixes https://github.com/Chaffelson/nipyapi/issues/305
Updated NiFi and Registry versions in Docker compose configs to use latest 1.16.1 builds

v0.18.0
Compare Source

Moved testing to secured single user by default for NiFi
Consolidated clients to the 1.15.0 release version for both NiFi and Registry
Updated logic to support changed working modes in tests
Corrected minor functional issues for 1.15 in login handling, SSL certs, Parameter Updates and Testing
Backwards compatibility and Regression tested as requiring no breaking changes

v0.17.1
Compare Source
Added gzip as default request header (PR from @rsaggino )
Update ruamel.yaml to 0.17.16
Update file read/write to explicitly handle encoding per best practices; default to UTF8; configurable in nipyapi.config
Linting and style changes to update to Python 3.9 standards, except where it would break backwards compatibility to Python 2.7
Test support for Amazon Linux 2, mostly better error handling for filesystem responses
v0.16.3
Compare Source

Bump version: 0.16.2 → 0.16.3
Removed force reset of configuration.password and configuration.username to empty string. This was not increasing security, and was causing unexpected errors for users connecting to multiple services in a single script.
Add greedy control to versioning.get_registry_bucket and versioning.get_flow_in_bucket to avoid undesirable partial string match.
Update readme to reflect switch from 'master' branch naming to 'main'.
Update tox to pin testing to Python 3.8, as Python 3.9 is producing unexpected and unrelated SSL failures
Minor lint formatting improvements
Update docs for 0.16.3 patch release
Correct wording in Parameter Contexts warning when version support is unknown. It may drop the details, but it might also keep them.

v0.16.2
Compare Source
NOTE: If you are using secured Registry, this release will enforce access controls for the swagger interface which is used to determine which version of Registry is connected in order to correctly provide features - you may have to update your authorizations

Update requirements.txt to unpin future and lxml
Update lxml to 4.6.2 or newer to resolve vulnerability
Pin watchdog to <1.0.0 per their docs to maintain Python2.7 compatibility
Revert 0.14.3 changes to Authentication handling which introduced basicAuth support but resulted in some NiFi connections appearing incorrectly as Anonymous
Added simpler basicAuth control to force it via a config switch without changing tokenAuth and other Authorization header behavior during normal usage
nipyapi.config.global_force_basic_auth is now available for use for this purpose
Secured Registry users will now require the authorization policy to retrieve the swagger so we may use it to validate which version of
Registry is in use for feature enablement
Moved all Security controls in config.py to a common area at the foot of the file
Removed auth_type from security.service_login as it is now redundant
Added controls to handle certificate checking behavior which has become more strict in recently versions of Python3, ssl_verify and check_hostname are now handled
security.set_service_auth_token now has an explicit flag for ssl host checking as well
Fix oversight where improved model serialisation logic was not correctly applied to Registry
Removed unusused parameter refresh from parameters.update_parameter_context
Reduced unecessary complexity in utils.dump with no change in functionality
Updated client gen mustache templates to reflect refactored security and api client code
Minor linting and docstring and codestyle improvements
Set pyUp to ignore Watchdog as it must stay between versions to statisfy py2 and py3 compatibility
If Client is not instantiated, optimistically instantiate for version checking
add socks proxy support

v0.16.1
Compare Source
Fix issue #229 where Parameter Contexts were not being correctly handled in Versioning with NiFi Registry.
Also add user warnings and version tests for when interaction between Registry and NiFi may lose data in older versions of each where Parameters are not supported.
v0.16.0
Compare Source

Add support for Parameter Contexts in parameters.py with appropriate tests and fixtures
Add greedy control support to canvas.get_processor_type
Improve get by ID behavior to correctly return None when an invalid ID is submitted (previously raised a 404)
Add utils.enforce_min_version to improve controls when a feature is not available in older versions of NiFi as Parameter Contexts were only introduced in 1.10.0

Update release process in devnotes.rst with additional checks
Rework error raising to provide raise_from support inline with newer Python best practices, added future to requirements.txt in support of this for Py2 and Py3 intercompatibility
Add checks to canvas.create_processor for correct user submissions
Add canvas.get_controller_type to fetch a single controller type, previously only a listing option was provided
Minor test case and style improvements
Add refresh default to canvas.update_process_group
Add convenience methods to parameters.py to assign and remove a Parameter Context to a Process Group, with appropriate tests
Minor coding style improvements

Configuration
📅 Schedule: Branch creation - "" in timezone Europe/Berlin, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

bors merge


IPv6 Support?

My app was rejected today due to 'not supporting IPv6'. Please help. More info and screenshots here:
http://stackoverflow.com/questions/39605020/ipv6-support-using-parse-com
Please help =*(

It seems that the latest version from Jul 17, 2016 supports ipv6.

My version is from July 21 2016 and was rejected because it threw an error on IPv6.

I have no luck with the App Review. I guess it is that the Parse.framework doesn't support IPv6.