All Lights On instead of Off and Off instead of ON

Hi Guys,
I got everything to compile and work except the initial status of the relay board lights is ON and when I ask alexa to turn each one ON then the on board lights goes off, So everything is backwards. I tried 2 different relays, any help appreciated.
Here is my code:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include
#include "switch.h"
#include "UpnpBroadcastResponder.h"
#include "CallbackFunction.h"
const int relayS1Pin = D1;
const int relayS2Pin = D2;
const int relayS3Pin = D3;
const int relayS4Pin = D5;
// prototypes
boolean connectWifi();
//on/off callbacks
void relayS1On();
void relayS1Off();
void relayS2On();
void relayS2Off();
void relayS3On();
void relayS3Off();
void relayS4On();
void relayS4Off();
// Change this before you flash
const char* ssid = "MyWiFiName";
const char* password = "********";
boolean wifiConnected = false;
UpnpBroadcastResponder upnpBroadcastResponder;
Switch *relayS1 = NULL;
Switch *relayS2 = NULL;
Switch *relayS3 = NULL;
Switch *relayS4 = NULL;
void setup()
{
Serial.begin(9600);
// Initialise wifi connection
wifiConnected = connectWifi();
if(wifiConnected){
upnpBroadcastResponder.beginUdpMulticast();
pinMode(relayS1Pin, OUTPUT);
pinMode(relayS2Pin, OUTPUT);
pinMode(relayS3Pin, OUTPUT);
pinMode(relayS4Pin, OUTPUT);
// Define your switches here. Max 14
// Format: Alexa invocation name, local port no, on callback, off callback
relayS1 = new Switch("office lights", 80, relayS1On, relayS1Off);
relayS2 = new Switch("bedroom lights", 81, relayS2On, relayS2Off);
relayS3 = new Switch("hallway lights", 82, relayS3On, relayS3Off);
relayS4 = new Switch("bathroom lights", 83, relayS4On, relayS4Off);
Serial.println("Adding switches upnp broadcast responder");
upnpBroadcastResponder.addDevice(*relayS1);
upnpBroadcastResponder.addDevice(*relayS2);
upnpBroadcastResponder.addDevice(*relayS3);
upnpBroadcastResponder.addDevice(*relayS4);
}
}
void loop()
{
if(wifiConnected){
upnpBroadcastResponder.serverLoop();
relayS1->serverLoop();
relayS2->serverLoop();
relayS3->serverLoop();
relayS4->serverLoop();
}
}
void relayS1On() {
digitalWrite(relayS1Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS1Off() {
digitalWrite(relayS1Pin, LOW); // turn off relay with voltage HIGH
}
void relayS2On() {
digitalWrite(relayS2Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS2Off() {
digitalWrite(relayS2Pin, LOW); // turn off relay with voltage HIGH
}
void relayS3On() {
digitalWrite(relayS3Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS3Off() {
digitalWrite(relayS3Pin, LOW); // turn off relay with voltage HIGH
}
void relayS4On() {
digitalWrite(relayS4Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS4Off() {
digitalWrite(relayS4Pin, LOW); // turn off relay with voltage HIGH
}
// connect to wifi – returns true if successful or false if not
boolean connectWifi(){
boolean state = true;
int i = 0;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.println("Connecting to WiFi");
// Wait for connection
Serial.print("Connecting ...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (i > 10){
state = false;
break;
}
i++;
}
if (state){
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
else {
Serial.println("");
Serial.println("Connection failed.");
}
return state;
}

Code looks ok to me.
Wondering what you are using for relays?
Are they high level or low level triggers?
Joe
On Sat, Jan 14, 2017, 4:02 PM dsaleb<EMAIL_ADDRESS>wrote:

Hi Guys,
I got everything to compile and work except the initial status of the
relay board lights is ON and when I ask alexa to turn each one ON then the
on board lights goes off and nothing happened as far as the connected
device (it's on all the time). I tried 2 different relays, any help
appreciated.
Here is my code:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include
#include "switch.h"
#include "UpnpBroadcastResponder.h"
#include "CallbackFunction.h"
const int relayS1Pin = D1;
const int relayS2Pin = D2;
const int relayS3Pin = D3;
const int relayS4Pin = D5;
// prototypes
boolean connectWifi();
//on/off callbacks
void relayS1On();
void relayS1Off();
void relayS2On();
void relayS2Off();
void relayS3On();
void relayS3Off();
void relayS4On();
void relayS4Off();
// Change this before you flash
const char* ssid = "MyWiFiName";
const char* password = "********";
boolean wifiConnected = false;
UpnpBroadcastResponder upnpBroadcastResponder;
Switch *relayS1 = NULL;
Switch *relayS2 = NULL;
Switch *relayS3 = NULL;
Switch *relayS4 = NULL;
void setup()
{
Serial.begin(9600);
// Initialise wifi connection
wifiConnected = connectWifi();
if(wifiConnected){
upnpBroadcastResponder.beginUdpMulticast();
pinMode(relayS1Pin, OUTPUT);
pinMode(relayS2Pin, OUTPUT);
pinMode(relayS3Pin, OUTPUT);
pinMode(relayS4Pin, OUTPUT);
// Define your switches here. Max 14
// Format: Alexa invocation name, local port no, on callback, off callback
relayS1 = new Switch("office lights", 80, relayS1On, relayS1Off);
relayS2 = new Switch("bedroom lights", 81, relayS2On, relayS2Off);
relayS3 = new Switch("hallway lights", 82, relayS3On, relayS3Off);
relayS4 = new Switch("bathroom lights", 83, relayS4On, relayS4Off);
Serial.println("Adding switches upnp broadcast responder");
upnpBroadcastResponder.addDevice(*relayS1);
upnpBroadcastResponder.addDevice(*relayS2);
upnpBroadcastResponder.addDevice(*relayS3);
upnpBroadcastResponder.addDevice(*relayS4);
}
}
void loop()
{
if(wifiConnected){
upnpBroadcastResponder.serverLoop();
relayS1->serverLoop();
relayS2->serverLoop();
relayS3->serverLoop();
relayS4->serverLoop();
}
}
void relayS1On() {
digitalWrite(relayS1Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS1Off() {
digitalWrite(relayS1Pin, LOW); // turn off relay with voltage HIGH
}
void relayS2On() {
digitalWrite(relayS2Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS2Off() {
digitalWrite(relayS2Pin, LOW); // turn off relay with voltage HIGH
}
void relayS3On() {
digitalWrite(relayS3Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS3Off() {
digitalWrite(relayS3Pin, LOW); // turn off relay with voltage HIGH
}
void relayS4On() {
digitalWrite(relayS4Pin, HIGH); // turn on relay with voltage HIGH
}
void relayS4Off() {
digitalWrite(relayS4Pin, LOW); // turn off relay with voltage HIGH
}
// connect to wifi – returns true if successful or false if not
boolean connectWifi(){
boolean state = true;
int i = 0;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.println("Connecting to WiFi");
// Wait for connection
Serial.print("Connecting ...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (i > 10){
state = false;
break;
}
i++;
}
if (state){
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
else {
Serial.println("");
Serial.println("Connection failed.");
}
return state;
}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/7,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWDpY3MbwewiJGl0xybgZUOtCqwKlG3_ks5rSSnJgaJpZM4Ljuf0
.

Hi Joe,
I tried two different relays
https://www.aliexpress.com/item/Sindax-5v-4-Channel-OMRON-SSR-G3MB-202P-Solid-State-Relay-Module-For-Arduino-z3-1pcs/32640442712.html
and
https://www.aliexpress.com/item/5V-8-Channel-Relay-Module-Controller-For-Arduino-Mega2560-UNO-R3-Raspberry-Pi/32705468846.html?

Sorry but cant determine if they are high or low level triggers.
Relays come in high an low level triggers. Some are both depending on a
jumper.
You could just take 5 volts to power the relays , then apply 5 volts to a
channel input to see if relays turns on/off as you apply the 5 volts.
I know i have purchased which were supposed to be high trigger levels only
to find out they were low.
Joe
On Sun, Jan 15, 2017, 12:38 PM dsaleb<EMAIL_ADDRESS>wrote:

Hi Joe,
I tried two different relays
https://www.aliexpress.com/item/Sindax-5v-4-Channel-OMRON-SSR-G3MB-202P-Solid-State-Relay-Module-For-Arduino-z3-1pcs/32640442712.html
and
https://www.aliexpress.com/item/5V-8-Channel-Relay-Module-Controller-For-Arduino-Mega2560-UNO-R3-Raspberry-Pi/32705468846.html
?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kakopappa/arduino-esp8266-alexa-multiple-wemo-switch/issues/7#issuecomment-272706593,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWDpYxhChiq9Pvsg7otY6lXKPsRyq-5gks5rSkt3gaJpZM4Ljuf0
.

I tried to switch the HIGH and LOW in the code but still didn't work.
Ex.
void relayS1On() {
digitalWrite(relayS1Pin, LOW); // turn on relay with voltage HIGH
}
void relayS1Off() {
digitalWrite(relayS1Pin, HIGH); // turn off relay with voltage HIGH
}

I like to recommend to:

Make a simple test app to test the relay
Use the multi-meter or LED to check whether digitalWrite really works.
Check the power supply. make sure adruino is getting enough power to turn on the relay.

I solved the problem.
On my relays High is off and Low is on.
void S1On() {
Serial.print("Switch 1 on ...");
digitalWrite(relayS1Pin, LOW);
}
void S1Off() {
Serial.print("Switch 1 off ...");
digitalWrite(relayS1Pin, HIGH);
}
void S2On() {
Serial.print("Switch 2 on ...");
digitalWrite(relayS2Pin, LOW);
}
void S2Off() {
Serial.print("Switch 2 off ...");
digitalWrite(relayS2Pin, HIGH);
}

I'm working on another project and I might need your help @joeman2116 @kakopappa
Now I'm trying to add the following to this code
*web access to turn on/off from a browser
*using http widget mobile app to create on/off on screen shortcuts
*using Blynk to remotely turn the devices on/off
Would you guys be interested to contribute to this project?

I Re-worked the code a little to set relays to low at startup. It is as follows:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include
#include "switch.h"
#include "UpnpBroadcastResponder.h"
#include "CallbackFunction.h"
// Modified by DrexProjects
const int relayS1Pin = D1;
const int relayS2Pin = D2;
const int relayS3Pin = D3;
const int relayS4Pin = D5;
// prototypes
boolean connectWifi();
//on/off callbacks
void relayS1On();
void relayS1Off();
void relayS2On();
void relayS2Off();
void relayS3On();
void relayS3Off();
void relayS4On();
void relayS4Off();
// Change this before you flash
const char* ssid = "dlink"; // Replace with your router name
const char* password = "********";  // Add your password here
boolean wifiConnected = false;
UpnpBroadcastResponder upnpBroadcastResponder;
Switch *relayS1 = NULL;
Switch *relayS2 = NULL;
Switch *relayS3 = NULL;
Switch *relayS4 = NULL;
void setup()
{
Serial.begin(9600);
// Initialise wifi connection
wifiConnected = connectWifi();
if(wifiConnected){
upnpBroadcastResponder.beginUdpMulticast();
pinMode(relayS1Pin, OUTPUT);
pinMode(relayS2Pin, OUTPUT);
pinMode(relayS3Pin, OUTPUT);
pinMode(relayS4Pin, OUTPUT);
digitalWrite(relayS1Pin, HIGH);       // sets the digital pin 1 on
digitalWrite(relayS2Pin, HIGH);       // sets the digital pin 2 on
digitalWrite(relayS3Pin, HIGH);       // sets the digital pin 3 on
digitalWrite(relayS4Pin, HIGH);       // sets the digital pin 4 on
// Define your switches here. Max 14
// Format: Alexa invocation name, local port no, on callback, off callback
relayS1 = new Switch("relay one", 80, relayS1On, relayS1Off);
relayS2 = new Switch("relay two", 81, relayS2On, relayS2Off);
relayS3 = new Switch("relay three", 82, relayS3On, relayS3Off);
relayS4 = new Switch("relay four", 83, relayS4On, relayS4Off);
Serial.println("Adding switches upnp broadcast responder");
upnpBroadcastResponder.addDevice(*relayS1);
upnpBroadcastResponder.addDevice(*relayS2);
upnpBroadcastResponder.addDevice(*relayS3);
upnpBroadcastResponder.addDevice(*relayS4);
}
}
void loop()
{
if(wifiConnected){
upnpBroadcastResponder.serverLoop();
relayS1->serverLoop();
relayS2->serverLoop();
relayS3->serverLoop();
relayS4->serverLoop();
}
}
void relayS1On() {
digitalWrite(relayS1Pin, LOW); // turn on relay with voltage HIGH
}
void relayS1Off() {
digitalWrite(relayS1Pin, HIGH); // turn off relay with voltage HIGH
}
void relayS2On() {
digitalWrite(relayS2Pin, LOW); // turn on relay with voltage HIGH
}
void relayS2Off() {
digitalWrite(relayS2Pin, HIGH); // turn off relay with voltage HIGH
}
void relayS3On() {
digitalWrite(relayS3Pin, LOW); // turn on relay with voltage HIGH
}
void relayS3Off() {
digitalWrite(relayS3Pin, HIGH); // turn off relay with voltage HIGH
}
void relayS4On() {
digitalWrite(relayS4Pin, LOW); // turn on relay with voltage HIGH
}
void relayS4Off() {
digitalWrite(relayS4Pin, HIGH); // turn off relay with voltage HIGH
}
// connect to wifi – returns true if successful or false if not
boolean connectWifi(){
boolean state = true;
int i = 0;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
Serial.println("Connecting to WiFi");
// Wait for connection
Serial.print("Connecting ...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (i > 10){
state = false;
break;
}
i++;
}
if (state){
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
else {
Serial.println("");
Serial.println("Connection failed.");
}
return state;
}


Increase Database Coverage

@kayousterhout updated.  Really the only major change was to add a patch at the end that breaks up  db_test.go

Can you squash the first and last commits?  Git doesn't track the diff well when you split it into files, which means having it in a separate commit doesn't add any value (and it's harder for me to look at the two commits separately because of all of the redundancy)

I actually disagree, I don't like the idea of squashing it.  The nice thing about having separate commits, is it's very clear what the code changes are in the first commit.  While in the second commit, it's just moving things around.  If you squash them, it becomes harder to tell what was a pure move, and what was a move+change.

Then can you do the move in the first commit (in which case you're moving very little code since there wasn't much old code) and then add the new stuff in the next commit?  Seems weird to add a bunch of code in one place and then immediately have another commit that moves it (and move commits are super annoying for git log / blame, so nice to avoid as much as possible)

Or did you not too it that way b/c it was too much work?

Nah it's fine.  Just did it.


Header::set_path normalization seems to make the crate unsuitable for Debian packaging

Hey @alexcrichton! To preface, great job on this crate :D
Context: Debian packages (.deb) are Unix archives (.ar)  that must contain two .tar.{gz, xz} files.
For instance, one .deb's data.tar.gz file might look something something like
$ dpkg-deb  -c ~/stremio_4.4.160-1_amd64.deb

drwxr-xr-x root/root         0 2023-06-01 12:07 ./
drwxr-xr-x root/root         0 2023-06-01 12:07 ./opt/
drwxr-xr-x root/root         0 2023-06-01 12:07 ./opt/stremio/
drwxr-xr-x root/root         0 2023-06-01 12:07 ./opt/stremio/icons/
-rw-r--r-- root/root      1795 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_128.png
-rw-r--r-- root/root       225 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_16.png
-rw-r--r-- root/root       278 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_22.png
-rw-r--r-- root/root       293 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_24.png
-rw-r--r-- root/root       371 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_32.png
-rw-r--r-- root/root       752 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio-tray_64.png
-rw-r--r-- root/root      2843 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_128.png
-rw-r--r-- root/root       428 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_16.png
-rw-r--r-- root/root       504 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_22.png
-rw-r--r-- root/root       547 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_24.png
-rw-r--r-- root/root       689 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_32.png
-rw-r--r-- root/root      1391 2023-06-01 12:07 ./opt/stremio/icons/smartcode-stremio_64.png
-rw-r--r-- root/root   4846217 2023-06-01 12:07 ./opt/stremio/server.js
-rw-r--r-- root/root       391 2023-06-01 12:07 ./opt/stremio/smartcode-stremio.desktop
-rwxr-xr-x root/root<PHONE_NUMBER>-06-01 12:07 ./opt/stremio/stremio
lrwxrwxrwx root/root         0 2023-06-01 12:07 ./opt/stremio/node -> /usr/bin/node

Since tars must always be absolute, using ./ is a workaround to allow referring to something in the root folder
If one tried to accomplish this with the tar crate right now, the resulting archive would be
drwxr-xr-x root/root         0 2023-07-29 15:58 ./
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/15/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/15/lib/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/15/lib/bitcode/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/15/lib/bitcode/vector/
drwxr-xr-x root/root         0 2023-07-29 15:58 usr/lib/postgresql/15/lib/bitcode/vector/src/
-rw-r--r-- root/root     20460 2023-07-29 15:58 usr/lib/postgresql/15/lib/bitcode/vector/src/ivfbuild.bc

We do get ./ in there because of special treatment here, but it's eliminated in the rest, resulting in an incorrect Debian package.
I found no workaround to this behavior in the crate, so I had to vendor it and modify the check done in copy_path_into.
Related to #263

I find that @mfrischknecht suggestion in #263 would work well here
https://github.com/alexcrichton/tar-rs/issues/263#issuecomment-905279517
However, the path normalization could be considered part of the current crate API and therefore changing that would be a breaking change.
My suggestion is a new, non-default, feature flag, e.g. dont-normalize, that alters this check.
If @alexcrichton agrees to this, I could open the PR that does this


Creating a geodesic line from distance and bearing - ArcMap

There are several times when I have to restart ArcMap because the Map Point tool doesn't work properly. I can click the button and my cursor turns into the crosshairs, but clicking around does nothing.
Daily Build Military Tools and ArcGIS Desktop 10.5

@joebayles This is not happening in the current build.

Verified, closing.


Uses ./mvnw instead of mvn

Uses mvnw to prevent users from getting stuck due to errors (like I did).

Good catch. Thanks. You might notice the "do not edit" banner at the top of this file. The actual content is probably here: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building-base.adoc (and it already refers to the wrapper, so this one is probably just waiting for a refresh).

Thanks @dsyer! It looks like this block is incorrect as well
$ curl localhost:8888/foo/development
{"name":"development","label":"master","propertySources":[
  {"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}},
  {"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}}
]}

It looks like it's listening on 8080, and I don't get anything served at /foo/development.

If you follow the instructions, it runs on port 8888 I think. I noticed a reference to "mvn" not in that build link as well, so I'll fix that independently.


Update to 2.0

See https://docs.djangoproject.com/en/2.0/releases/2.0/

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


⚠ Bofrost.lu has degraded performance

In f1a43a9, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1774 ms

Resolved: Bofrost.lu performance has improved in 27a106d after 13 minutes.


Allow a second type argument AddDbContext to support inheritance

I have a project running in different environments with different databases (PostgreSQL / SQL Server). I tried using the same DbContext for both databases but had some problems with migrations since vendor specific code is added (e.g. data types).
I decided to make two distinct contexts, both extending my dbContext.
public abstract class ParcelLogisticsContext : DbContext
{
	public DbSet<Parcel> Parcel { get; set; }
	public DbSet<HopArrival> HopArrival { get; set; }
	public DbSet<Receipient> Receipient { get; set; }
	public DbSet<Truck> Truck { get; set; }
	public DbSet<Warehouse> Warehouse { get; set; }
	public DbSet<ParcelStorage> ParcelStorage { get; set; }

	public ParcelLogisticsContext(DbContextOptions options) : base(options)
	{

	}
}

public class PgSqlParcelLogisticsContext : ParcelLogisticsContext
{
	public PgSqlParcelLogisticsContext(DbContextOptions options) : base(options)
	{
	}
}

public class SqlServerParcelLogisticsContext : ParcelLogisticsContext
{
	public SqlServerParcelLogisticsContext(DbContextOptions options) : base(options)
	{
	}
}

From now on I added migrations using Add-Migration -Context PgSqlParcelLogisticsContext ChangedAwesomeFields and Add-Migration -Context SqlServerParcelLogisticsContext ChangedAwesomeFields resulting in different Migrations with vendor specific code in them.
The problem i was facing was with dependency injection. When adding EF like below I was unable to use my abstract base class for dependency injection.
switch (Configuration.GetValue<string>("UsedDatabase"))
{
	case "Sql":
		services.AddDbContext<SqlServerParcelLogisticsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ParcelLogisticsContext")));
	case "NpgSql":
		services.AddEntityFrameworkNpgsql();
		services.AddDbContext<PgSqlParcelLogisticsContext>(options => options.UseNpgsql(Configuration.GetConnectionString("ParcelLogisticsContext")));
		break;
	default:
		throw new Exception("InvalidUsedDatabase");
}

Now exceptions are thrown when trying to get a context like so because Dependency Injection could not find a service for type ParcelLogisticsDbContext:
class Test
{
	public Test(ParcelLogisticsDbContext context)
	{
	}
}

To resolve this issue I added extension methods so I would be able to use AddDbContext with two type arguments in a similar way e.g. AddScoped works and I could use it like this:
switch (Configuration.GetValue<string>("UsedDatabase"))
{
	case "Sql":
		services.AddDbContext<ParcelLogisticsContext, SqlServerParcelLogisticsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ParcelLogisticsContext")));
		break;
	case "NpgSql":
		services.AddEntityFrameworkNpgsql();
		services.AddDbContext<ParcelLogisticsContext, PgSqlParcelLogisticsContext>(options => options.UseNpgsql(Configuration.GetConnectionString("ParcelLogisticsContext")));
		break;
	default:
		throw new Exception("InvalidUsedDatabase");
}

Do you think this is a good solution or do you have any other ideas? I also submitted a Pull Request  (#10454) and I am happy for feedback!
Further technical details
EF Core version: 2.0
Database Provider: Microsoft.EntityFrameworkCore.SqlServer, Npgsql.EntityFrameworkCore.PostgreSQL
Operating system: Windows 10 Version 1703
IDE: Visual Studio 2017 15.4.5

@felixhacks It doesn't look to me like this needs any change in EF. To resolve the context as some type other than what it is registered as, just add the service to D.I. in the normal way. For example:
services.AddDbContext<SqlServerParcelLogisticsContext>(
    options => options.UseSqlServer(Configuration.GetConnectionString("ParcelLogisticsContext")));

services.AddScoped<ParcelLogisticsContext>(
    p => p.GetService<SqlServerParcelLogisticsContext>())

Also, I'm curious as to why you have a call to AddEntityFrameworkNpgsql? This should not be required except in unusual circumstances. What happens if you remove this call?


refactor: re-export transport classes + rename "drivers" to "transports"

add ioredis peer dep
re-export chaos transport. can be imported from @rlanz/bus/test_helpers
rename "drivers" to "transports" for sake of consistency
move transport factory function in transports file. so we can import both depending on our needs :import { memory, MemoryTransport } from '@rlanz/bus/transports/memory'

Thanks!


Invite users to private beta

[x] @mikerhodes
[ ] @gingerbeardman

Hi, I'm excited to see someone building a great Pinboard client, and I was hoping to contribute to your development of it either with testing and bug reports, or even pull requests if they'd be accepted for review.
Any chance I could request access to it via TestFlight? If not, I understand I will make do with building the app myself.

@DamnedFacts I’m excited to hear you’re excited. 😅
I would love all of the above. The code is in a slightly embarrassing and non-trivial transition as I catch up to the latest SwiftUI (which finally seems to make SwiftUI a realistic option for macOS) but you’re welcome to dive in. Give this, it requires iOS 16 or Ventura.
I anticipate I’ll get to the private beta in the next month or two. Until then, I suggest you build locally—it should be sufficient to open the workspace, select your target, and go (the build script is mostly intended for CI). Let me know if you need help getting started, and I’m happy to accept PRs and documentation improvements.

Ventura may prove to be an issue for me, as I do not plan on upgrading immediately if at all as I have work to do that I cannot disrupt.

Well, it’ll be waiting for you when it’s safe to upgrade. 👌🏻

/cc @gingerbeardman @DamnedFacts It's very early days, so YMMV, but there's now an early beta at https://testflight.apple.com/join/LRkREf4P. I'd love your feedback. 🙏🏻


Not null Timestamp/Timestamptz fields are not casted to time.Time by default

Version
1.23.0
What happened?
Hi, Recently, I upgraded my "pgx" version from v4 to v5. I was using sqlc v1.17.2 and also upgraded it to v1.23.0 .  My problem is in pgx4, the "not null timestamptz/timestamp" types are generated as time.Time and nullable ones are generated as sqlNullTime as expected. However, after I switch to pgx5, regardles of a timestamptz/timestamp field is null or not-null, the golang object is always generated as pgType.Timestamp, pgType.Timestamptz.
Indeed, when I apply the below overrides in my sqlc.yaml file, the problem is resolved and nullable types are generated as pgType.Timestamptz, not null types are generated as time.Time as expected. My question is, should not it be something happening by default ?
    overrides:
      - db_type: "pg_catalog.timestamp"
        go_type:
          type: "Time"
          import: "time"
      - db_type: "timestamp"
        go_type:
          type: "Time"
          import: "time"
      - db_type: "pg_catalog.timestamptz"
        go_type:
          type: "Time"
          import: "time"
      - db_type: "timestamptz"
        go_type:
          type: "Time"
          import: "time"

Relevant log output
No response
Database schema
No response
SQL queries
No response
Configuration
No response
Playground URL
No response
What operating system are you using?
macOS
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go

I can't say for sure because I haven't tested this in a real-world situation and I wasn't around when the pgx/v5 defaults were decided, but I suspect there may be a compatibility issue between the way pgx/v5 handles the PostgreSQL date/time types and time.Time. This old pull request alludes to an issue like that for time and timetz` PostgreSQL types: https://github.com/sqlc-dev/sqlc/pull/1623.
With overrides you can certainly get sqlc to use the types you want, but have you tried using generated code to retrieve rows with timestamps using pgx/v5 and time.Time and can confirm that scanning into your structs works correctly?
In any case I don't think we'd change the defaults at this point because they've been in the wild for too long.

Yeah, I did a comprehensive testing here. In both default and overrided version, I read the data as expected. This is kind of preferance. I prefer having not-null fields to be generated as time.Time so I will keep using overrides here. Thanks!!


Power buffers behaving weirdly.

I have a big reactor creating 12k RF/t going into a capacitor bank and from there into green conduit. the capacitor bank is a double bank with the default values so it can output max of 50000 RF/t. I am trying to power a powered enderman spawner with a red capacitor in it. if I put a power buffer inline between the capacitor banks and the spawner, the spawner is power starved, the RF is definitely going into the buffer, but it is always empty, regardless of how much I let in/out via the GUI. The RF is just gone. if I remove the buffer and just use a hard connection, it can more than keep up just fine.

Which version of EnderIO - and can you attach a screenshot of the setup and also measure the conduits with the conduit probe please.

I am using the latest public release of enderIO, not the beta. I was tinkering around with it more last night and it seems like the powered spawner is the main cause. if I have hard line from the powered spawner to the capacitor bank, everything is fine, but if I have anything else in between, I get a problem, after the initial spawn of enderman, the spawner consumes it's entire buffer in less than a second and the power can never again keep up. I tried this with the buffer, like I said before, no matter the settings in the GUI, the spawner was always starved. I also tried it with a piece of cryo-cooled flux duct from thermal dynamics, it has an infinite throughput capacity so it should let through all that is needed, but again, same behavior of the spawner. The only way I got enough power to go to the spawner is with a direct connection of conduit. I will take some screen shots and post them asap.

Power goes into the top of the buffer and comes out the sides and bottom.

The buffer has it's default settings for power in/out.

The conduit probe readouts for the lines in order top to bottom and counter clockwise.

The spawner starts out with a full internal buffer.

During the first spawn wave power distribution keeps up with consumption.

After the first wave has spawned and about a third into the second wave, the internal buffer rapidly empties. From then on the power goes somewhere, but it's not into the spawner. and the buffer stays empty.

The capacitor bank is set to out only, so the power isn't somehow making it's way back here.

Matthias, I remember seeing a similar issue that was caused by the stored
power in a machine becoming negative I would check for that
On 28/05/2015 2:00 PM, "MatthiasMann"<EMAIL_ADDRESS>wrote:

Which version of EnderIO - and can you attach a screenshot of the setup
and also measure the conduits with the conduit probe please.
—
Reply to this email directly or view it on GitHub
https://github.com/SleepyTrousers/EnderIO/issues/2515#issuecomment-106188069
.

I'll look into how the powered spawner uses power.
I don't think the stored energy levels of the EnderIO machines can go negative - the base classes handle that for every machine and I haven't seen any report for that yet.

I think this issue is with the spawner. The energy handling on the buffers
is standard. We had kane_hart reporting a similar issue today in irc.
On May 29, 2015 1:28 AM, "MatthiasMann"<EMAIL_ADDRESS>wrote:

I'll look into how the powered spawner uses power.
I don't think the stored energy levels of the EnderIO machines can go
negative - the base classes handle that for every machine and I haven't
seen any report for that yet.
—
Reply to this email directly or view it on GitHub
https://github.com/SleepyTrousers/EnderIO/issues/2515#issuecomment-106693604
.

It's not the spawner - when the energy conduits are set to in/out on both the power buffer and on the cap bank and the power buffer to "none" - then the energy is oscillating between these and not going where it should.
To best solve this set the sides of the power buffer or the conduits how you want your energy to flow.

I had the capacitor bank set to out only, could the power be oscillating between the buffer and the conduits themselves?

hmm - not sure - try setting the sides explicitly


Module does not update after save

It seems the extension does not update the module if settings have been changed.

@teknology I don't really understand you problem. Can you explain the steps you are taking?

I think i see the problem. I was using the option "Install extension" instead of "archive and install later". The extension doesn't over write files when updates are made which i can see makes sense. But i would like to be able to add custom files to the list of files this extension compresses. Mind pointing me in the right direction?

@teknology I don't understand your last request

But i would like to be able to add custom files to the list of files this extension compresses.

Give me an example please.

Hi, it's a really useful extension, saves hours of work;
I've had same problem here: choosing "Install on current instance", first time all is ok; next time, after updating something (I've added an entity to manage) seems do not overwrite files in /app and other directory; package is build correct, so manual install is a solution; No error in sysloh; magento <IP_ADDRESS>.

@micheledalonzo This is not a bug, it's a feature.
I don't want the extensions overwriting ANY files in the current install.
So if you choose to install the extension directly and one of the files already exists it will change that setting to "create archive".


File "/usr/local/lib/python3.4/dist-packages/rplidar.py", line 187, in _read_descriptor     raise RPLidarException('Descriptor length mismatch') rplidar.RPLidarException: Descriptor length mismatch

By any chance, would you have the solution to this problem? Im using an RPLidar A3 and im getting this error on a linux board similar to a raspberry pi, its got much more processing power though.

Change the baudrate to 256000 in rplidar.py to support A3 @TheEpicIronman


invoice: replace bech32 and bs58check packages

In the packages/invoice project, replace the bech32 and bs58check external packages with the internal @node-lightning/bitcoin package.  The bitcoin package contains Bech32 and Base58Check classes that contain the same functionality.
Should also remove the bech32-util.ts helper.   All of these functions are now included in the Bech32 class of the bitcoin package.

@bmancini55 I want to work on this issue, @node-lightning/bitcoin does not contain Bech32 class

seems like changes are not published yet, can you publish them?

@hack3r-0m sounds good.  I'm working on it today.  Need to get the secp256k1 lib published, which was the delay.

Should be in v0.27.0 now.  Tip: you can add the npm package reference from the project route with lerna add <package_to_add> <target>

I want to take a try at this. It looks like decoder.ts & encoder.ts are no longer required, right? as these functionality is now implemented in the Bech32 class inside the bitcoin package. Shall I remove these two files and their respective tests?

Great!
Those two files are still necessary since they perform the encoding and decoding of invoices.  Those two files need to replace the bech32 package with the @node-lighting/bitcoin package's Bech32 implementation.
Additionally, invoice.ts has both bech32 and bs58 references. It will need to be modified to replace both with the versions in @node-lightning/bitcoin.

Ok it seems like I forgot to run prettier and some code style changes in the decoder.test.ts file are required, can I add a new commit to the same PR or shall I just create a new PR?

You can push a new commit to this PR. Thanks!

Done!


plugins/cord-nvim: init

Adds the cord-nvim plugin.
For more info view the plugin homepage: https://github.com/vyfor/cord.nvim.
fixes: #2373
Note: It's work in progress as I need to do most of the options

don't feel obligated to add all the options, you can simply add options that are likely to be used by all users of this plugin

error: build of '/nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv' on<EMAIL_ADDRESS>failed: builder for '/nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv' failed with exit code 1;
       last 9 log lines:
       > ERROR: Error detected while processing /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:
       > E5113: Error while calling lua chunk: /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:9: module 'cord-nvim' not found:
       >    no field package.preload['cord-nvim']
       >  no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/share/lua/5.1/cord-nvim.lua'
       >    no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/share/lua/5.1/cord-nvim/init.lua'
       >       no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/lib/lua/5.1/cord-nvim.so'
       > stack traceback:
       >     [C]: in function 'require'
       >     /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:9: in main chunk
       For full logs, run 'nix log /nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv'.

error: build of '/nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv' on<EMAIL_ADDRESS>failed: builder for '/nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv' failed with exit code 1;
       last 9 log lines:
       > ERROR: Error detected while processing /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:
       > E5113: Error while calling lua chunk: /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:9: module 'cord-nvim' not found:
       >    no field package.preload['cord-nvim']
       >  no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/share/lua/5.1/cord-nvim.lua'
       >    no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/share/lua/5.1/cord-nvim/init.lua'
       >       no file '/nix/store/h25v2irfigii5xby44ff7jwfj5sfh06d-luajit-2.1.1713773202-env/lib/lua/5.1/cord-nvim.so'
       > stack traceback:
       >     [C]: in function 'require'
       >     /nix/store/80ylygcwnlkhbmwysfpygb01sbs10p6z-init.lua:9: in main chunk
       For full logs, run 'nix log /nix/store/d7pw4yq7y1bc28l12kf8lkmms7nr8pkr-defaults.drv'.

Yeah still can't figure out the issue.

Ops.

Sorry, I edited my suggestion, Didn't mean to remove the originalName

Dropped the commit.

don't feel obligated to add all the options, you can simply add options that are likely to be used by all users of this plugin

Well I am trying to add all of the options but it shouldn't be too hard to manage as options hasn't been changed in ages.

I will work on more of the options tmr I need to sleep.

I didn't have time today but I will look into add more options asap.

don't feel obligated to add all the options, you can simply add options that are likely to be used by all users of this plugin

Well I am trying to add all of the options but it shouldn't be too hard to manage as options hasn't been changed in ages.

Just to clarify, the reason we don't need to declare all upstream options is that settings is a "freeform" option.
That means users can configure anything under plugins.*.settings even if we don't declare a corresponding option.
In fact, any options declared actually add additional restrictions due to their type checking. So when we do declare options we must ensure the type is permissive enough to allow users to configure anything upstream may allow.

Hey @khaneliman Is it normal for docs not building manual using the docs & serve-docs command in shell?
Cause I am building docs manually to see where I need to improve.

Is it normal for docs not building manual using the docs & serve-docs command in shell?

If you're on darwin (OSX) then we disable the docs because mdbook has an upstream issue. Otherwise no, that could be a bug.

Are you on darwin?
Do you only see this issue on your branch, or is it on main too?

Is it normal for docs not building manual using the docs & serve-docs command in shell?

If you're on darwin (OSX) then we disable the docs because mdbook has an upstream issue. Otherwise no, that could be a bug.
* Are you on darwin?

* Do you only see this issue on your branch, or is it on `main` too?

I am on x86_64-linux I just pulled the changes from main and rebased my branch so this is a bug.

You can see in docs/default.nix where we disable it using optionalAttrs (!pkgs.stdenv.isDarwin):
https://github.com/nix-community/nixvim/blob/3c7b6ae5d1524c691a1b65f7290facd0dc296e40/docs/default.nix#L68-L90
I'm not too familiar, but it's an upstream issue. If you do want to look into that, let's deal with it in another issue as I don't want it to distract from landing the changes here.

Is it normal for docs not building manual using the docs & serve-docs command in shell?

If you're on darwin (OSX) then we disable the docs because mdbook has an upstream issue. Otherwise no, that could be a bug.
* Are you on darwin?

* Do you only see this issue on your branch, or is it on `main` too?

I am on x86_64-linux I just pulled the changes from main and rebased my branch so this is a bug.

Also would that be a bug?

I'm able to serve-docs on main.

Weird for some reason it fails.

I'm able to serve-docs on main and this branch.

I have made an issue on their end to see if they can fix it.

I am going to work on getting the options finished then sqrash then it will be ready to review.


ElasticBeanstalk resources are being detected / deleted, but we are unable to whitelist resources on our cleanup site

Describe the bug
After running the cleanup, ElasticBeanstalk resources can not be whitelisted on our exemption site.
To Reproduce
Steps to reproduce the behavior:

Go to 'ElasticBeanstalk console'
Click on ' Create a new environment'
Create new environment and application
Run the cleanup in dry run mode
Check Cleanup site to whitelist an ElasticBeanstalk resource

Expected behavior
The expected behavior is for a window to pop up once you click the "+", then you are expected to input the owner and reason why you would like to whitelist the resource. I enabled EC2 resources during this testing and was able to whitelist one of the instance after running in dry run mode but when selecting the "+" beside an ElasticBeanstalk resource, the "+" functionality is unresponsive.
Screenshots

AWS (please complete the following information):

Region: [us-east-1 & us-east-2]

Additional context
In the screenshot, you will see the yellow "+" button in the Exception List column that I am referring to. For some reason the functionality is unresponsive. Any of resource tested, this functionality works. On ElasticBeanstalk resources behave in an unresponsive manner after detection.
Haven't been able to get this working on my end.

Hey @dikuesan1. Just did a little digging and I think I know what the issue is. The service is the log is Elastic Beanstalk but the service in my app settings is elasticbeanstalk which is really based on the way the servie is named in Boto3.
The problem is, when you press that button, the serivce name, resource, and ID are sent to a JS function called createAllowlistEntryFromExecutionLog where the service name has its spaces ( ) replaced by underscores (_) and is lowercased to match the service name in the app settings. But as you can see, they won't match because elastic_beanstalk != elasticbeanstalk.
So i'll have to update the service name in my app settings to have an underscore seperator. This will however have an impact on existing allowlists. I'll make the change and ask you to test/validate if that's OK.

@dikuesan1 can you pull this branch and test it? https://github.com/servian/aws-auto-cleanup/tree/115-elasticbeanstalk-resources-are-being-detected-deleted-but-we-are-unable-to-whitelist-resources-on-our-cleanup-site
The app settings have changed so this will impact any allowlists.


signal-desktop: Fix the database encryption by preloading SQLCipher

AFAIK this is the only reliable way for us to ensure SQLCipher will be
loaded instead of SQLite. It feels like a hack/workaround but according
to the SQLCipher developers 0 "this issue can and should be handled
downstream at the application level: 1. While it may feel like a
workaround, using LD_PRELOAD is a legitimate approach here because it
will substitute the system SQLite with SQLCipher which is the intended
usage model;".
This fixes #108772 for NixOS 20.09 users who upgrade to NixOS 21.05 and
replaces #117555.
For nixos-unstable users this will unfortunately break everything again
so we should add a script to ease the transition (in a separate commit
so that we can revert it for NixOS 21.05).

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Oops, forgot to mark this as a draft. Please review it but we should add a script like https://github.com/NixOS/nixpkgs/pull/117555#issuecomment-839181750 before we merge this.

Ok, so just for the record: I'm not in any way proud of db-reencryption-wrapper.py (it's a big hack, underdocumented, and not even that well formatted - feel free to improve it) but due to the imminent NixOS 21.05 release and beta testing for that it seems best to merge this now (and the script should at least do it's job and seems better than the alternative). I wouldn't be surprised if there are some unconsidered edge-cases (but at least it works without, an encrypted, and an unencrypted DB) but I've tested it on my main setup so at least it should usually work. I hope it works for everyone else as well and that the script doesn't miss anything that might cause issues later. And in case of issues with the db-reencryption-wrapper.py script there's at least signal-desktop-unwrapped to avoid it. db-reencryption-wrapper.py will likely remain in Nixpkgs for three months (that's how long Signal-Desktop releases are usable) and I'll revert it on NixOS 21.05 as the DB for users of NixOS 20.09 is still encrypted.

Before (versions depend on Signal-Desktop, etc.):
updateSchema:
  Current user_version: 27;
  Most recent db schema: 27;
  SQLite version: 3.35.2;
  SQLCipher version: undefined;
  (deprecated) schema_version: 160;

After:
updateSchema:
  Current user_version: 27;
  Most recent db schema: 27;
  SQLite version: 3.34.1;
  SQLCipher version: 4.4.3 community;
  (deprecated) schema_version: 160;

@nagisa yeah, they are, feel free to send a PR if you want to improve them.


Ginkgo cme theme

@stvstnfrd

also, screenshot? at least one of the home page course tiles. don't need a shot of the current page, just the new one.


The Update feature results in linkage and Default App problems

VSCode Version: 1.5.2
OS Version: OS X El Capitan 10.11.6

Steps to Reproduce:

Open an existing installation of vscode and select the Update link
Upon updating, note that the newly-downloaded .app file is within the ~/Downloads folder rather than in Applications, making it not readily available for the Launchpad nor to the Open With... lookup within the Finder application.  This will show (only) the previous version of vscode rather than the freshly-downloaded version.
Also note that it is typical to "Keep in Docker" something you use a lot, similar to Windows's "Pin this to Taskbar" feature.  After an update the Docker's location is now for an earlier version, causing problems.

@OutsourcedGuru is this #3520?


PGMORL: Wandb keeps asking for token, even if None is passed

Take this example here: https://github.com/LucasAlegre/morl-baselines/blob/main/examples/pgmorl_halfcheetah.py
and run it (using the very last version of morl-baselines).
Running it in a Colab noteboob, it keeps asking for the Wandb-Token all the time, even when passing None:
algo = PGMORL(
    env_id=env_id,
    num_envs=4,
    pop_size=6,
    warmup_iterations=80,
    evolutionary_iterations=20,
    wandb_entity = None,
    num_weight_candidates=7,
    origin=np.array([0.0, -5.0]),
)

Hello,
If you don't want wandb, you can specify log=False

Thanks,
I oversaw it.
But it could be more intuitive, since "log" can be even a log on the screen and not a log for Wandb. From the documentation, it was not clear to me


iOS 12 issues

On iOS 12, there are playback start issues, leading to failing unit tests and glitches when starting a video (try e.g. playing the Apple advanced stream a few times).
The standard iOS player does not seem affected, which means something has changed (as always with each iOS major release...), but that a fix is possible on our side.

When built with the iOS 12 SDK and run on iOS 12, we get the cancellation errors very often, e.g.
Task <0AE3A4B5-7D68-4CE6-AA76-2675307F752E>.<4> load failed with error Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLStringKey=http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear1/main.ts, NSErrorFailingURLKey=http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/gear1/main.ts, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <0AE3A4B5-7D68-4CE6-AA76-2675307F752E>.<4>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0AE3A4B5-7D68-4CE6-AA76-2675307F752E>.<4>, NSLocalizedDescription=cancelled} [-999]
2018-09-19 15:29:41.202625+0200 SRGMediaPlayer-demo[21636:4716620] Task <0AE3A4B5-7D68-4CE6-AA76-2675307F752E>.<4> finished with error - code: -999

Those are internal AVPlayer-induced errors, with the result that sometimes tracks get lost. The same errors can be seen when playing a media with the standard AVPlayerController, which proves this is not an error within our implementation which generates them.
It seems that such errors are related to AVPlayer losing its tracks. Currently, when the playback view detects that only an audio track is available, it removes the video view, which leads to the reported stuttering and glitches.
I doubt these lines are required, they were probably mostly a safety net. Removing them fixes the issue without affecting the unit test suite, which is good. We need to investigate whether everything still works as expected, though, but this fix seems promising.


Edge case: User has a filing in progress and account is deleted.

Need a way to start a new filing if the users account was deleted when filing has been started but not paid.
How should we handle the rare situation where a user has a filing in progress but not paid. Where between the time they start the filing and come back to complete it, their account was deleted. Currently I believe this will cause an error as we force the user to use the account associated with the in progress filing, making it impossible for them to complete the task.
I don't think this is likely to happen often but it's something to consider.

If we had a message that said to contact us for assistance, would it be easy to untangle this manually with a fix, jupyter notebook or some other manual process?
If it's easy to reset manually, I would recommend a process where the client has to contact us and have it be resolved with ops. If we see a high volume of these in testing or later, then I'd recommend putting in a more permanent solution.
Thoughts?

I added some more descriptive alerts. If a user tries to login with a business that has an in-progress filing and that user does not own the account attached to the in-progress filing. They will be shown the alert below.
Is this okay with you?

@nsmenon8890 - fyi


error when downloading multiple audios.

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.08.19 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
Hello I'm having trouble downloading two audio tracks, it starts to do but strangely it gives an error. I tried several times following some errors that I looked here, but without success.
I need to get the Japanese and Portuguese audios.
follow the command i am using here.
python3 /home/levaculik/tools/yt-dlp/yt_dlp/main.py -v -f bv* '(mp4)[height<=?1080]'+ba[language:por] --audio-multistreams -a /home/levaculik/Documentos/list/list.txt  --write-subs --sub-langs "all" --sub-format "srt" --embed-subs --cookies /home/levaculik/Documentos/cookies/funimation.txt --no-geo-bypass --no-check-certificate --external-downloader aria2c --external-downloader-args "-j 16 -x 16 -s 16 -k 1M" --merge-output-format "mkv"
[funimation:page] overlord_two-venturers: Downloading JSON metadata
[Funimation] 186124: Downloading player webpage for 186124
[Funimation] two-venturers: Downloading player webpage for Uncut portuguese (brazil) (3128535)
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) JSON
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Uncut spanish (latin am) (3128062)
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) JSON
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Simulcast japanese (103586)
[Funimation] two-venturers: Downloading Simulcast japanese (103586) JSON
WARNING: [Funimation] Funimation said: Error 1 - No valid avails for territory : BR or subscription Premium experience exist.
 The arguments will be given to aria2c
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.08.08 [3157158] (source)
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: df2a5633d
[debug] Python 3.8.10 (CPython 64bit) - Linux-5.4.0-124-generic-x86_64-with-glibc2.29 (glibc 2.31)
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.2.7, ffprobe 4.2.7
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, secretstorage-2.3.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [funimation:page] Extracting URL: https://www.funimation.com/v/overlord/two-venturers
[funimation:page] overlord_two-venturers: Downloading JSON metadata
[debug] [Funimation] Extracting URL: https://www.funimation.com/player/186124
[Funimation] 186124: Downloading player webpage for 186124
[Funimation] two-venturers: Downloading player webpage for Uncut portuguese (brazil) (3128535)
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) JSON
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Uncut spanish (latin am) (3128062)
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) JSON
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Simulcast japanese (103586)
[Funimation] two-venturers: Downloading Simulcast japanese (103586) JSON
WARNING: [Funimation] Funimation said: Error 1 - No valid avails for territory : BR or subscription Premium experience exist.
[Funimation] two-venturers: Downloading player webpage for Uncut japanese (583802)
[Funimation] two-venturers: Downloading Uncut japanese (583802) JSON
[Funimation] two-venturers: Downloading Uncut japanese (583802) m3u8 information
[Funimation] two-venturers: Downloading Uncut english (186124) JSON
[Funimation] two-venturers: Downloading Uncut english (186124) m3u8 information
[debug] Sort order given by extractor: lang, source
[debug] Formats sorted by: hasvid, ie_pref, lang, source, quality, res, fps, hdr:12(7), channels, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Downloading subtitles: en, en_Uncut, es_Uncut, pt_Uncut, en_Uncut_CC
[info] 103585: Downloading 1 format(s): 583802-hls-6566
Deleting existing file Dois Aventureiros [103585].en.srt
[info] Writing video subtitles to: Dois Aventureiros [103585].en.srt
[debug] Invoking http downloader on "https://video.prd.funimation.com/FunimationStoreFront/V1747085/bd838242-1174-46a6-873f-6588b550a8f8_english_full.srt"
[download] Destination: Dois Aventureiros [103585].en.srt
[download] 100% of 30.81KiB in 00:00 at 384.85KiB/s
Deleting existing file Dois Aventureiros [103585].en_Uncut.srt
[info] Writing video subtitles to: Dois Aventureiros [103585].en_Uncut.srt
[debug] Invoking http downloader on "https://video.prd.funimation.com/FunimationStoreFront/V1747086/8e49f141-5f41-4d57-9d07-9a1f4394c331_english_full.srt"
[download] Destination: Dois Aventureiros [103585].en_Uncut.srt
[download] 100% of 31.56KiB in 00:00 at 405.49KiB/s
Deleting existing file Dois Aventureiros [103585].es_Uncut.srt
[info] Writing video subtitles to: Dois Aventureiros [103585].es_Uncut.srt
[debug] Invoking http downloader on "https://video.prd.funimation.com/FunimationStoreFront/V1747086/8e49f141-5f41-4d57-9d07-9a1f4394c331_spanishlatinamerica_full.srt"
[download] Destination: Dois Aventureiros [103585].es_Uncut.srt
[download] 100% of 34.80KiB in 00:00 at 396.48KiB/s
Deleting existing file Dois Aventureiros [103585].pt_Uncut.srt
[info] Writing video subtitles to: Dois Aventureiros [103585].pt_Uncut.srt
[debug] Invoking http downloader on "https://video.prd.funimation.com/FunimationStoreFront/V1747086/8e49f141-5f41-4d57-9d07-9a1f4394c331_portuguesebrazil_full.srt"
[download] Destination: Dois Aventureiros [103585].pt_Uncut.srt
[download] 100% of 27.15KiB in 00:00 at 369.65KiB/s
Deleting existing file Dois Aventureiros [103585].en_Uncut_CC.srt
[info] Writing video subtitles to: Dois Aventureiros [103585].en_Uncut_CC.srt
[debug] Invoking http downloader on "https://video.prd.funimation.com/FunimationStoreFront/V1747086/669586d1-b00f-460e-8955-33be74a1e763_english_CC.srt"
[download] Destination: Dois Aventureiros [103585].en_Uncut_CC.srt
[download] 100% of 38.23KiB in 00:00 at 441.01KiB/s
[debug] Invoking hlsnative downloader on "https://vmfst-api.prd.funimationsvc.com/FunimationStoreFront/V1747086/8e49f141-5f41-4d57-9d07-9a1f4394c331strnv-hl154_streaming_video_1920_1080_7800000_index.m3u8?t=exp%3D1661117520%7Eacl%3Dhttps%3A%2F%2Fvideo.prd.funimation.com%2FFunimationStoreFront%2FV1747086%2F*%7Ehmac%3Dd242c8d203ecf47a71760db9ea0e62874c04c1b524afcf5b9bf561579552082f"
[download] Dois Aventureiros [103585].mp4 has already been downloaded
[download] 100% of 1.06GiB
[EmbedSubtitle] Embedding subtitles in "Dois Aventureiros [103585].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Dois Aventureiros [103585].mp4' -i 'file:Dois Aventureiros [103585].en.srt' -i 'file:Dois Aventureiros [103585].en_Uncut.srt' -i 'file:Dois Aventureiros [103585].es_Uncut.srt' -i 'file:Dois Aventureiros [103585].pt_Uncut.srt' -i 'file:Dois Aventureiros [103585].en_Uncut_CC.srt' -map 0 -dn -ignore_unknown -c copy -c:s mov_text -map -0:s -map 1:0 -metadata:s:s:0 language=eng -metadata:s:s:0 'handler_name=Simulcast English' -metadata:s:s:0 'title=Simulcast English' -map 2:0 -metadata:s:s:1 language=eng -metadata:s:s:1 'handler_name=Uncut English' -metadata:s:s:1 'title=Uncut English' -map 3:0 -metadata:s:s:2 language=spa -metadata:s:s:2 'handler_name=Uncut Spanish (Latin Am)' -metadata:s:s:2 'title=Uncut Spanish (Latin Am)' -map 4:0 -metadata:s:s:3 language=por -metadata:s:s:3 'handler_name=Uncut Portuguese (Brazil)' -metadata:s:s:3 'title=Uncut Portuguese (Brazil)' -map 5:0 -metadata:s:s:4 language=eng -metadata:s:s:4 'handler_name=Uncut English CC' -metadata:s:s:4 'title=Uncut English CC' -movflags +faststart 'file:Dois Aventureiros [103585].temp.mp4'
[debug] [generic] Extracting URL: (mp4)[height<=?1080]+ba[language:por]
ERROR: [generic] '(mp4)[height<=?1080]+ba[language:por]' is not a valid URL. Set --default-search "ytsearch" (or run  yt-dlp "ytsearch:(mp4)[height<=?1080]+ba[language:por]" ) to search YouTube
  File "/home/levaculik/tools/yt-dlp/yt_dlp/extractor/common.py", line 666, in extract
    ie_result = self._real_extract(url)
  File "/home/levaculik/tools/yt-dlp/yt_dlp/extractor/generic.py", line 2615, in _real_extract
    raise ExtractorError(

-f bv* '(mp4)[height<=?1080]'+ba[language:por]

This is wrong

hello and how would it be right? can you help?

You didnt say what you are trying to do

I want to get the Japanese audio and the Brazilian Portuguese audio and along with the video.

I want to get the Japanese audio and the Brazilian Portuguese audio and along with the video.

-f "bv+ba[language=ja]+ba[language=pt-br]"

I want to get the Japanese audio and the Brazilian Portuguese audio and along with the video.

-f "bv+ba[language=ja]+ba[language=pt-br]"

Should be --audio-multistreams -f "bv+ba[language=ja]+ba[language=pt-br]"

Hello first thank you very much for helping. But unfortunately it is giving an error "Requested format is not available"
[debug] Command-line config: ['-v', '-f', 'bv*+ba[language=ja]+ba[language=pt]', '--audio-multistreams', '-a', '/home/levaculik/Documentos/list/list.txt', '--all-subs', '--embed-subs', '--cookies', '/home/levaculik/Documentos/cookies/funimation.txt', '--no-geo-bypass', '--no-check-certificate', '--external-downloader', 'aria2c']
[debug] Batch file urls: ['https://www.funimation.com/v/overlord/two-venturers']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.08.08 [3157158] (source)
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: df2a5633d
[debug] Python 3.8.10 (CPython 64bit) - Linux-5.4.0-124-generic-x86_64-with-glibc2.29 (glibc 2.31)
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.2.7, ffprobe 4.2.7
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, secretstorage-2.3.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [funimation:page] Extracting URL: https://www.funimation.com/v/overlord/two-venturers
[funimation:page] overlord_two-venturers: Downloading JSON metadata
[debug] [Funimation] Extracting URL: https://www.funimation.com/player/186124
[Funimation] 186124: Downloading player webpage for 186124
[Funimation] two-venturers: Downloading player webpage for Uncut portuguese (brazil) (3128535)
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) JSON
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Uncut spanish (latin am) (3128062)
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) JSON
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Simulcast japanese (103586)
[Funimation] two-venturers: Downloading Simulcast japanese (103586) JSON
WARNING: [Funimation] Funimation said: Error 1 - No valid avails for territory : BR or subscription Premium experience exist.
[Funimation] two-venturers: Downloading player webpage for Uncut japanese (583802)
[Funimation] two-venturers: Downloading Uncut japanese (583802) JSON
[Funimation] two-venturers: Downloading Uncut japanese (583802) m3u8 information
[Funimation] two-venturers: Downloading Uncut english (186124) JSON
[Funimation] two-venturers: Downloading Uncut english (186124) m3u8 information
[debug] Sort order given by extractor: lang, source
[debug] Formats sorted by: hasvid, ie_pref, lang, source, quality, res, fps, hdr:12(7), channels, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Downloading subtitles: en, en_Uncut, es_Uncut, pt_Uncut, en_Uncut_CC
ERROR: [Funimation] 103585: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1441, in wrapper
return func(self, *args, **kwargs)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1538, in __extract_info
return self.process_ie_result(ie_result, download, extra_info)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1596, in process_ie_result
ie_result = self.process_video_result(ie_result, download=download)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 2657, in process_video_result
raise ExtractorError(
yt_dlp.utils.ExtractorError: [Funimation] 103585: Requested format is not available. Use --list-formats for a list of available formats

I want to get the Japanese audio and the Brazilian Portuguese audio and along with the video.

-f "bv+ba[language=ja]+ba[language=pt-br]"

Show output of yt-dlp -F URL

Thanks pukkandan but it is giving the same error as devenu85 .
[Funimation] 103585: Requested format is not available.
[debug] Command-line config: ['-v', '--audio-multistreams', '-f', 'bv+ba[language=ja]+ba[language=pt-br]', '-a', '/home/levaculik/Documentos/list/list.txt', '--all-subs', '--embed-subs', '--cookies', '/home/levaculik/Documentos/cookies/funimation.txt', '--no-geo-bypass', '--no-check-certificate', '--external-downloader', 'aria2c']
[debug] Batch file urls: ['https://www.funimation.com/v/overlord/two-venturers']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.08.08 [3157158] (source)
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Git HEAD: df2a5633d
[debug] Python 3.8.10 (CPython 64bit) - Linux-5.4.0-124-generic-x86_64-with-glibc2.29 (glibc 2.31)
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.2.7, ffprobe 4.2.7
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, secretstorage-2.3.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] [funimation:page] Extracting URL: https://www.funimation.com/v/overlord/two-venturers
[funimation:page] overlord_two-venturers: Downloading JSON metadata
[debug] [Funimation] Extracting URL: https://www.funimation.com/player/186124
[Funimation] 186124: Downloading player webpage for 186124
[Funimation] two-venturers: Downloading player webpage for Uncut portuguese (brazil) (3128535)
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) JSON
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Uncut spanish (latin am) (3128062)
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) JSON
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Simulcast japanese (103586)
[Funimation] two-venturers: Downloading Simulcast japanese (103586) JSON
WARNING: [Funimation] Funimation said: Error 1 - No valid avails for territory : BR or subscription Premium experience exist.
[Funimation] two-venturers: Downloading player webpage for Uncut japanese (583802)
[Funimation] two-venturers: Downloading Uncut japanese (583802) JSON
[Funimation] two-venturers: Downloading Uncut japanese (583802) m3u8 information
[Funimation] two-venturers: Downloading Uncut english (186124) JSON
[Funimation] two-venturers: Downloading Uncut english (186124) m3u8 information
[debug] Sort order given by extractor: lang, source
[debug] Formats sorted by: hasvid, ie_pref, lang, source, quality, res, fps, hdr:12(7), channels, vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, id
[debug] Downloading subtitles: en, en_Uncut, es_Uncut, pt_Uncut, en_Uncut_CC
ERROR: [Funimation] 103585: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1441, in wrapper
return func(self, *args, **kwargs)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1538, in __extract_info
return self.process_ie_result(ie_result, download, extra_info)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1596, in process_ie_result
ie_result = self.process_video_result(ie_result, download=download)
File "/home/levaculik/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 2657, in process_video_result
raise ExtractorError(
yt_dlp.utils.ExtractorError: [Funimation] 103585: Requested format is not available. Use --list-formats for a list of available formats

Show output of yt-dlp -F URL

[funimation:page] overlord_two-venturers: Downloading JSON metadata
[Funimation] 186124: Downloading player webpage for 186124
[Funimation] two-venturers: Downloading player webpage for Uncut portuguese (brazil) (3128535)
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) JSON
[Funimation] two-venturers: Downloading Uncut portuguese (brazil) (3128535) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Uncut spanish (latin am) (3128062)
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) JSON
[Funimation] two-venturers: Downloading Uncut spanish (latin am) (3128062) m3u8 information
[Funimation] two-venturers: Downloading player webpage for Simulcast japanese (103586)
[Funimation] two-venturers: Downloading Simulcast japanese (103586) JSON
WARNING: [Funimation] Funimation said: Error 1 - No valid avails for territory : BR or subscription Premium experience exist.
 Change ja/pt-br in the above command accordingly

The language name is the value in []. Change ja/pt-br in the above command accordingly

damn now it worked.thanks a lot for the help.

Yeah..!
He already mentioned --audio-multistreams so, I skipped it.


[Relax][Bug] CodeGenVM cannot handle this intrinsic tensor_to_shape

Actual behavior
Traceback (most recent call last):
  File "test.py", line 20, in <module>
    ex = relax.build(mod, target='llvm')
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/relax/vm_build.py", line 340, in build
    mod = _vmcodegen(builder, mod, exec_mode)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/relax/vm_build.py", line 176, in _vmcodegen
    return _ffi_api.VMCodeGen(builder, mod)  # type:ignore
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 239, in __call__
    raise_last_ffi_error()
  File "/software/tvm/python/tvm/_ffi/base.py", line 481, in raise_last_ffi_error
    raise py_err
tvm._ffi.base.TVMError: Traceback (most recent call last):
  10: _ZN3tvm7runtime13PackedFuncObj9ExtractorINS0_1
  9: tvm::runtime::TypedPackedFunc<tvm::IRModule (tvm::relax::ExecBuilder, tvm::IRModule)>::AssignTypedLambda<tvm::IRModule (*)(tvm::relax::ExecBuilder, tvm::IRModule)>(tvm::IRModule (*)(tvm::relax::ExecBuilder, tvm::IRModule), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) const
  8: tvm::relax::relax_vm::VMCodeGen(tvm::relax::ExecBuilder, tvm::IRModule)
  7: tvm::relax::relax_vm::CodeGenVM::Run(tvm::relax::ExecBuilder, tvm::IRModule)
  6: tvm::relax::relax_vm::CodeGenVM::Codegen(tvm::relax::Function const&)
  5: tvm::relax::ExprFunctor<tvm::runtime::relax_vm::Instruction::Arg (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)
  4: _ZZN3tvm5relax11ExprFunctorIFNS_7runtime8rel
  3: tvm::relax::relax_vm::CodeGenVM::VisitExpr_(tvm::relax::SeqExprNode const*)
  2: tvm::relax::ExprFunctor<tvm::runtime::relax_vm::Instruction::Arg (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)
  1: _ZZN3tvm5relax11ExprFunctorIFNS_7runtime8rel
  0: tvm::relax::relax_vm::CodeGenVM::VisitExpr_(tvm::relax::CallNode const*)
  File "/software/tvm/src/relax/backend/vm/codegen_vm.cc", line 177
TVMError: CodeGenVM cannot handle this intrinsic now:
Op(relax.tensor_to_shape)

Environment
TVM: 0.17.dev0
OS: Ubuntu20.04
Steps to reproduce
import tvm
from tvm import relax
from tvm.script import ir as I
from tvm.script import relax as R

@I.ir_module
class Module:
    @R.function
    def main(x: R.Tensor((3,), dtype="int64")) -> R.Tensor((3,), dtype="int64"):
        lv: R.Shape([3]) = R.tensor_to_shape(x)
        lv: R.Shape([3]) = R.call_pure_packed("vm.builtin.tensor_to_shape", x, sinfo_args=(R.Shape([3]),))
        return lv

mod = Module
mod = tvm.relax.transform.LegalizeOps()(mod)
mod.show()

ex = relax.build(mod, target='llvm')
vm = relax.VirtualMachine(ex, tvm.cpu())

Triage

needs-triage

cc @junrushao

After my investigation, I found if we use the relax.transform.FuseTIR() before the relax.build, the compilation will run well. However, I still haven't figured out why the compilation crash was unexpected and why the script ran well when adding the FuseTIR transform.
A workaround to  avoid the bug
import tvm
from tvm import relax
from tvm.script import ir as I
from tvm.script import relax as R

@I.ir_module
class Module:
    @R.function
    def main(x: R.Tensor((3,), dtype="int64")) -> R.Tensor((3,), dtype="int64"):
        lv: R.Shape([3]) = R.tensor_to_shape(x)
        lv: R.Shape([3]) = R.call_pure_packed("vm.builtin.tensor_to_shape", x, sinfo_args=(R.Shape([3]),))
        return lv

mod = Module
mod = tvm.relax.transform.LegalizeOps()(mod)
mod.show()
mod = relax.transform.FuseTIR()(mod)    # newly added
ex = relax.build(mod, target='llvm')
vm = relax.VirtualMachine(ex, tvm.cpu())

Do we need to explicitly call the ``FuseTIR` transform before compiling any model?
@ysh329 @tqchen @Hzfengsy @junrushao

Another similar bug:
Traceback (most recent call last):
  File "/share_container/optfuzz/res/bugs/13bug.py", line 140, in <module>
    ex = relax.build(mod, target='llvm')
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/relax/vm_build.py", line 340, in build
    mod = _vmcodegen(builder, mod, exec_mode)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/relax/vm_build.py", line 176, in _vmcodegen
    return _ffi_api.VMCodeGen(builder, mod)  # type:ignore
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/software/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 239, in __call__
    raise_last_ffi_error()
  File "/software/tvm/python/tvm/_ffi/base.py", line 481, in raise_last_ffi_error
    raise py_err
tvm._ffi.base.TVMError: Traceback (most recent call last):
  10: _ZN3tvm7runtime13PackedFuncObj9ExtractorINS0_1
  9: tvm::runtime::TypedPackedFunc<tvm::IRModule (tvm::relax::ExecBuilder, tvm::IRModule)>::AssignTypedLambda<tvm::IRModule (*)(tvm::relax::ExecBuilder, tvm::IRModule)>(tvm::IRModule (*)(tvm::relax::ExecBuilder, tvm::IRModule), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*) const
  8: tvm::relax::relax_vm::VMCodeGen(tvm::relax::ExecBuilder, tvm::IRModule)
  7: tvm::relax::relax_vm::CodeGenVM::Run(tvm::relax::ExecBuilder, tvm::IRModule)
  6: tvm::relax::relax_vm::CodeGenVM::Codegen(tvm::relax::Function const&)
  5: tvm::relax::ExprFunctor<tvm::runtime::relax_vm::Instruction::Arg (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)
  4: _ZZN3tvm5relax11ExprFunctorIFNS_7runtime8rel
  3: tvm::relax::relax_vm::CodeGenVM::VisitExpr_(tvm::relax::SeqExprNode const*)
  2: tvm::relax::ExprFunctor<tvm::runtime::relax_vm::Instruction::Arg (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&)
  1: _ZZN3tvm5relax11ExprFunctorIFNS_7runtime8rel
  0: tvm::relax::relax_vm::CodeGenVM::VisitExpr_(tvm::relax::CallNode const*)
  File "/software/tvm/src/relax/backend/vm/codegen_vm.cc", line 177
TVMError: CodeGenVM cannot handle this intrinsic now:
Op(relax.call_tir_with_grad)

There's a few operators that don't have FLegalize implementations, and expect to be lowered/pattern-matched out prior to building.  Unfortunately, this results in very hard-to-interpret error messages when the lowering reaches the CodeGenVM step.
For the initial error case, it should be fixed as a side effect of https://github.com/apache/tvm/pull/17218, as it adds a check for R.tensor_to_shape in VMBuiltinLower.

I'm baffled. Do we need to explicitly call the ``FuseTIR` transform before compiling any model?

Looking at the specific example, it looks like there are two distinct lv variables in the input.  One is produced by R.tensor_to_shape, while the other is produced by R.call_pure_packed("vm.builtin.tensor_to_shape", ...).  When FuseTIR is called, it internally performs dead-code elimination to remove any values that are no longer required after fusion, along with any no-longer-used PrimFunc implementations.  This has the side effect of removing the call to R.tensor_to_shape(x), as its output is entirely unused.

@Lunderberg Thanks for your PR and explanation. I got it! BTW, the initial test case can run correctly under the given PR #17218!

I supplemented some similar bugs here:

TVMError: CodeGenVM cannot handle this intrinsic now: Op(relax.builtin.stop_lift_params)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.permute_dims)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.add)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.nn.conv2d)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.wrap_param)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.ewise_fma)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.call_tir_with_grad)

I supplemented some similar bugs here:

TVMError: CodeGenVM cannot handle this intrinsic now: Op(relax.builtin.stop_lift_params)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.permute_dims)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.add)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.nn.conv2d)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.wrap_param)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.ewise_fma)
TVMError: CodeGenVM cannot handle this intrinsic now:Op(relax.call_tir_with_grad)

LegalizeOps Pass should be able to legalize ops like relax.add.

@yongwww Thanks for your reply. Indeed, In some common cases, LegalizeOps can solve the problem in relax.add.  But for some specialized cases, LegalizeOps is helpless. One such case is shown below. Can you help review it? Thanks a lot!
import tvm
from tvm import relax

from tvm.script import ir as I
from tvm.script import relax as R

@I.ir_module
class Module:
    @R.function
    def main_7(t: R.Tuple(R.Tensor, R.Tensor)) -> R.Tensor:
        x: R.Tensor = t[0]
        y: R.Tensor = t[1]
        z: R.Tensor = R.add(x, y)
        w: R.Tensor = R.multiply(z, z)
        return w

mod = Module
mod = relax.transform.LegalizeOps()(mod)
ex = relax.build(mod, target='llvm')import tvm
from tvm import relax

from tvm.script import ir as I
from tvm.script import relax as R

@I.ir_module
class Module:
    @R.function
    def main_7(t: R.Tuple(R.Tensor, R.Tensor)) -> R.Tensor:
        x: R.Tensor = t[0]
        y: R.Tensor = t[1]
        z: R.Tensor = R.add(x, y)
        w: R.Tensor = R.multiply(z, z)
        return w

mod = Module
mod = relax.transform.LegalizeOps()(mod)
ex = relax.build(mod, target='llvm')

I'll keep this issue on to track the fixing for CodeGenVM cannot handle this intrinsic problem.

[X] tensor_to_shape
[ ] relax.builtin.stop_lift_params
[ ] relax.permute_dims
[ ] relax.add
[ ] relax.nn.conv2d
[ ] relax.wrap_param
[ ] relax.ewise_fma
[ ] relax.call_tir_with_grad


Wildcard slugs in router (allow for slashes in param)

Is there an easy way where slashes can be allowed in the path for a given route?
This doc shows that you can create an optional parameter:
https://nuxtjs.org/guide/routing/
Is it possible to create a file perhaps as _id*.vue for example which would generate the router config with a path that allows slashes in the parameter? I'm not sure if I'm just missing something or the best way to allow slashes as part of a parameter (or if it's actually possible with vue-router). Struggling a bit to find that info.
Thanks.

Sorry again for raising an issue and answering/closing, this should do it:
https://nuxtjs.org/api/configuration-router/#extendroutes


How to view deadlocks and kill？

最近在学习时，发现会出现LockConflictException。（具体复现流程暂时还不是很清晰）
产生原因是fescar-server中并未并未释放pks对应的锁。
然而fescar的锁是基于concurrent实现，那么如何知道持锁情况和释放死锁？
(sorry, my english is poor )
Recently while studying, a LockConflictException was found.(the specific reproduction process is not clear yet)
The reason is that the lock corresponding to PKS is not released in fescar-server.
However, fescar's lock is based on the concurrent implementation, so how do you know about lock holding and release deadlocks?

The key for the globalLock is the primary key for each row in the database.There is currently no monitoring to monitor globalLocks.If u want, u can see the DefaultLockManagerImpl.java. break a point to LOCK_MAP

The key for the globalLock is the primary key for each row in the database.There is currently no monitoring to monitor globalLocks.If u want, u can see the DefaultLockManagerImpl.java. break a point to LOCK_MAP

thx，Hopefully in the future a design like redisson's will avoid deadlocks

The key for the globalLock is the primary key for each row in the database.There is currently no monitoring to monitor globalLocks.If u want, u can see the DefaultLockManagerImpl.java. break a point to LOCK_MAP

thx，Hopefully in the future a design like redisson's will avoid deadlocks

Seata already avoid deadlock. lock mode is fast fail and try many times


Enhanced pagination support

See #130.

[x] add tests
[ ] add doc

I've changed refactored the code to make everything configurable both globally and by Resource. Pagination can now be enabled/disabled client-side.
The configuration of the pagination now looks like the following:
pagination:
  enabled: true
  client_can_enable: false
  enable_parameter: "enablePagination"
  page_parameter: "page"
  items_per_page:
    default: 30
    client_can_change: false
    parameter: itemsPerPage

@sroze can you take at the new Resource methods and at the config to see if it's correct english (as they will be part of the API, we will not be able to change them later).
This PR introduces BC breaks:

configuration must be updated
the ResourceInterface has new methods
parameters of some services has changed (simplified)

Do we introduce this (relatively small) BC break in beta 3 or do we create a new 2.0 branch? ping @deuzu @theofidry @MLKiiwy @felicitus

@dunglas releasing a beta 3 is fine for us.

The english language looks good but the Resource class, as well as the interface incapsulate too much logic IMO. Is there really a need of this configured by Resource ? Shouldn't we keep it simple and make it configurable globally only, but provide an extension point that would enable anybody to use custom pagination when he wants, on given Resources.
If we are introducing BC, it should be interesting to refactor a little bit to use immutable Resource objects that can be updated only during a build process. If you agree on that direction, I'll do a proposal today or tomorrow to illustrate how I think we can make it more simple in the core while more extendable at the same time by 3rd parties.

The Resource class is a (sort of for now) value object. It doesn't encapsulate any logic but only data.
I agree that it has many methods but it is the only I found to make it convenient to use in the service definition. Proposal to split things while keeping it easy to use / define in the DIC are welcome!
I designed this class to be immutable (it's white methods starts with init). They are present only for convenience and must be used only when instantiating the object they replace. It's a fix to the missing "name parameters" PHP feature. It avoids having things like new Resource(null, null, null, null, null, 22, null); that are not readable at all.
But having that in mind, your proposal is very welcome!

I've slept on it and what about introducing a new Pagination class holding pagination configuration data? It will still be easy to define in services.yml but fits better with the SRP.


feat: add square root

Added an implementation for square root.

@appgurueu Thanks for reviewing. I've updated the fixes according to your suggestions.


[Bug]: Assertion error in CamGear API during colorspace manipulation

Description

This bug directly affects colorspace manipulation in CamGear API. Due to this bug, the CamGear API currently exits itself with (-215:Assertion failed) !_src.empty() in function 'cvtColor' error with any colorspace because of the improper handling of threaded queue structure.
Acknowledgment

[x] A brief but descriptive Title of your issue
[x] I have searched the issues for my issue and found nothing related or helpful.
[x] I have read the FAQ.
[x] I have read the Wiki.
[x] I have read the Contributing Guidelines.

Environment

VidGear version: 0.1.6-dev
Branch:  Development
Python version: All
pip version: All
Operating System and version: All

Expected Behavior

No Assertion error while self-terminating.
Actual Behavior

Throws (-215:Assertion failed) !_src.empty() in function 'cvtColor' error on self-termination.
Code to reproduce

from vidgear.gears import CamGear
stream = CamGear(source=test.mp4, colorspace = 'COLOR_BGR2YUV', logging=True).start()
while True:
	frame = stream.read()
	# check if frame is None
	if frame is None:
		#if True break the infinite loop
		break
stream.stop()

On executing this function, It will self-terminate with  (-215:Assertion failed) !_src.empty() in function 'cvtColor' error.

Successfully resolved and merged in commit: c8a6339


Project asks for Client Credentials While only Bot Token should be required

this project asks in the config.py and in the video tutorial to input a client account credentials via the APP_ID and API_HASH , in reality this shouldnt be a requirement because the only thing needed should be the bot Token, this project uses Pyrogram as a telegram implementation, Client Side credentials arent needed to work with bots and its just a useless and possible risky information to give away. please address this issue and delete the need to input these 2 informations

Because the connection of program to the telegram API is MTProto - robots also need API ID & API HASH.
Feel free to read the documentation of program!


Updated the style-guide doc to remove Katacoda hyperlink

Description:
The page provides a button for setting up the Katacoda environment and the hyperlink for the Katacoda embed panel is not working anymore.
Proposed Solution:
Removed the hyperlink Katacoda Embed panel
Page to Update:
https://kubernetes.io/docs/contribute/style/style-guide/#katacoda-embedded-live-environment

Hi @celestehorgan @tengqm found this one while going through the doc, please take a look.

/kind cleanup

Preview:
https://deploy-preview-35008--kubernetes-io-main-staging.netlify.app/docs/contribute/style/style-guide/#katacoda-embedded-live-environment

/lgtm

/approve

Thanks @kbhawkey for reviewing and approving this PR.


refactor: shplonk + gemini

To perform batch opening of several polynomials and their shifts, the verifier performs (NUM_ALL_ENTITIES + log_circuit_size + 2) group operations, which are combined in 1 batch_mul in the recursive setting

The logic of the Gemini verifier significantly simplified, most of the operations are moved to the method verify_gemini in ShplonkVerifier

Deleted Gemini tests, because they became redundant

Both schemes could now be seamlessly coupled with DeciderVerifier and UltraRecursiveVerifier (tested in si/gemini-zeromorph-comparison)

Const proof size not supported

modified and merged as https://github.com/AztecProtocol/aztec-packages/pull/8351


[Doc-improvement][Update whats new]

Removed the manifest row from dev preview

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/whats-new.md
93
35
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 1d74988:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/whats-new.md
:white_check_mark:Succeeded
View

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

Docs Build status updates of commit 6ffe6dd:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit d9044e4:
:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Closing this PR


Fixes background reset for ending separator

Title
Fixes a bug that leads to a black background for the seperator

[Bugfix]

Description
The default was to reset to black at the end of the seperator instead of clear
As far as I can tell commit 4d18fdc6e9252a5d93ab9e046b3d98421d1be715 introduced this bug.
Before:

After:

It's done in #925 :)


Initialize backend unit testing

I decided to submit my current work on backend testing and refactoring the backend as a separate PR.
Major Changes:

Separate routing and argument parsing from business logic, through two packages servlets and controllers.
Write unit tests for servlets, using JUnit 5, Mockito, and Spring mocks for HttpServletRequest and HttpServletResponse.

Minor Changes:

Use Lombok to generate boilerplate code.
Write code to serialize classes into Datastore entities.

Will close and cherry-pick out different concerns into different PRs.


future proof ref lookup

look for knative.dev/release vs. serving specific
search for the label value and then determine the sha from that

/assign @mattmoor

/assign @mattmoor


Conflicting project name

Hi, I'd like to note that this project directly conflicts with a well-established source code editor called ReText.

Both started roughly at the same time.


SAL on ... is not valid

Static Analysis fails for resource.h since SAL is not supported on ... argument lists.

Looks fine. Are there instances of SAL on variadic templates too?


karma additional specs are not being considered

IMPORTANT: This repository's issues are reserved for feature requests and bug reports. Do not submit support requests here.
Steps to reproduce and a minimal demo of the problem

checkout "angular-seed"
add a service in shared folder
create two specs

What steps should we try in your demo to see the problem?

run npm test

Current behavior

one spec is being considered

Expected/desired behavior

two specs being considered and reported

Other information
project layout
additional code is marked with an asterix
└── shared
│       ├── index.ts
│       │       ├── name-list
│       │       │   ├── index.ts
│       │       │   ├── name-list.service.spec.ts
│       │       │   └── name-list.service.ts
│       │       ├── navbar
│       │       │   ├── index.ts
│       │       │   ├── navbar.component.css
│       │       │   ├── navbar.component.html
│       │       │   └── navbar.component.ts
│       │       └── toolbar
│       │       │    ├── index.ts
│       │       │    ├── toolbar.component.css
│       │       │    ├── toolbar.component.html
│       │       │    └── toolbar.component.ts
│       │       └── masterdata*
│       │       │    ├── index.ts*
│       │       │    ├── masterdata.service.ts*
│       │       │    ├── merchants.get.spec.ts*
│       │       │    └── merchants.put.spec.ts*

jasmine report
About component
    √ should work
  NameList Service
    √ should return an Observable when get called
    √ should resolve to list of names when get called
  Home component
    √ should work
  Merchants Service GET all merchants
    √ should return an Observable when get called
    √ should resolve to list of merchants with one merchant object when called
    √ should contain one merchant with merchantId 12345678
    √ should return an empty message
    √ should return an exception as null
  App component
    √ should build without a problem

LOG DEBUG output
(change log level in karma.conf.js)
16 06 2016 13:49:22.576:DEBUG [middleware:source-files]: Requesting /base/dist/dev/app/shared/masterdata/merchants.get.spec.js /
16 06 2016 13:49:22.576:DEBUG [middleware:source-files]: Fetching D:/WORKSPACE/ANGULAR/mbl-seed/dist/dev/app/shared/masterdata/merchants.get.spec.js

16 06 2016 13:49:22.576:DEBUG [middleware:source-files]: Requesting /base/dist/dev/app/shared/masterdata/merchants.put.spec.js /
16 06 2016 13:49:22.576:DEBUG [middleware:source-files]: Fetching D:/WORKSPACE/ANGULAR/mbl-seed/dist/dev/app/shared/masterdata/merchants.put.spec.js

16 06 2016 13:49:22.643:DEBUG [web-server]: serving (cached): D:/WORKSPACE/ANGULAR/mbl-seed/dist/dev/app/shared/masterdata/merchants.get.spec.js
16 06 2016 13:49:22.644:DEBUG [web-server]: serving (cached): D:/WORKSPACE/ANGULAR/mbl-seed/dist/dev/app/shared/masterdata/merchants.put.spec.js

ERRORS
no errors are being logged during the whole process
Questions
Are there any other conventions in regards of unit testing, other than having *.spec.ts as the file name?
What was done to try to solve the issue?

npm run reinstall
moving specs in different folders (subfolder "get" & "put")
archiving additional custom source code and starting from scratch

nvm, a third spec is being reported. I have to reconsider. Sorry for the fuss...

Just to clarify, if anyone is interested:
The closing bracket of the beforeEach method was wrapped around the tests itself and therefore nothing was tested nor reported. Be aware, since this is syntatically correct (javascript, typescript) no error will be yielded.
Check my example below:
export function main() {

    describe('Description of a test', () => {

		let anyService:AnyService;
		let backend:MockBackend;
        let initialResponse:any;

        beforeEach(() => {
            let injector = ReflectiveInjector.resolveAndCreate([
				AnyService,
                HTTP_PROVIDERS,
                BaseRequestOptions,
                MockBackend,
                provide(Http, {
                    useFactory: function (backend:ConnectionBackend, defualtOPtions:BaseRequestOptions) {
                        return new Http(backend, defualtOPtions);
                    },
                    deps: [MockBackend, BaseRequestOptions]
                }),
            ]);

            anyService = injector.get(Anyervice);
            backend = injector.get(MockBackend);

            let connection:any;
            backend.connections.subscribe((c:any) => {
                connection = c;
            });

            initialResponse = anyService.getAll();
            connection.mockRespond(new Response(new ResponseOptions({body: '{}'})));

			it('description of expected output', () => {
				let dataObject:DataObject;
				initialResponse.subscribe((data:DataObject) => dataObject = data);
				expect(true).toBeTruthy();
			});
		});
	});
}