solve_pde function for PDE problems

Summary:
Use solve_pde to solve PDEs.
Description:
The design involves  cmdstan, stan, and math. See also https://github.com/stan-dev/stan/issues/2567. This issue is about Math repo only.
In order to solve PDE, similar to ODE solver in Stan, the PDE is provided through a functor. Unlike ODE solver, we cannot ship a PDE library with Stan Math. Alternatively, the user is asked to provide his own PDE solver. His workflow could be the following.

provide a functor that uses external PDE solver. The functor has the following signature

  inline std::vector<std::vector<double> >
  operator()(const std::vector<double>& theta,
             const bool need_sens,
             const std::vector<double>& x_r,
             const std::vector<int>& x_i,
             std::ostream* msgs = nullptr);

The functor returns PDE solution(quantity of interest) when need_sens=0, and returns PDE solution together with its gradient with respect to theta(parameters) when need_sens=1.

call solve_pde, with the above functor as the first argument. Within the solve_pde function, the above functor calculates PDE solution and sensitivity,  andvar variables are constructed based on these values.
provide Makefile for the external PDE solver

The user/PDE developer does not need to know utilize stan::math::var to write the above functor. He just needs to decide the behavior of the PDE solver: how the solution and the sensitivity are calculated. solve_pde should be able to take these values and construct proper var items, possibly using precomputed_gradient.
Additional Information:
Provide any additional information here.
Current Version:
v2.17.0

How is this issue supposed to be addressed?
Will there be a solve_pde function in the math library? What does that
implementation need to do? Since it sounds like it needs to be linked
against something to solve, how do we provide a solver ? Or is the user
supposed to provide a solver?
Is there a reason we don’t handle the two different behaviors with two
different functions?
I’m still trying to get the point of the issue before really digging into
design.
On Tue, Jul 10, 2018 at 5:15 PM Yi Zhang<EMAIL_ADDRESS>wrote:

Summary:
Use solve_pde to solve PDEs.
Description:
The design involves cmdstan, stan, and math. See also stan-dev/stan#2567
https://github.com/stan-dev/stan/issues/2567. This issue is about Math
repo only.
In order to solve PDE, similar to ODE solver in Stan, the PDE is provided
through a functor. Unlike ODE solver, we cannot ship a PDE library with
Stan Math. Alternatively, the user is asked to provide his own PDE solver.
His workflow could be the following.

provide a functor that uses external PDE solver. The functor has the
following signature

inline std::vector<std::vector >
operator()(const std::vector& theta,
const bool need_sens,
const std::vector& x_r,
const std::vector& x_i,
std::ostream* msgs = nullptr);
The functor returns PDE solution(quantity of interest) when need_sens=0,
and returns PDE solution together with its gradient with respect to theta(parameters)
when need_sens=1.

call solve_pde, with the above functor as the first argument. Within
the solve_pde function, the above functor calculates PDE solution and
sensitivity, andvar variables are constructed based on these values.
provide Makefile for the external PDE solver

The user/PDE developer does not need to know utilize stan::math::var to
write the above functor. He just needs to decide the behavior of the PDE
solver: how the solution and the sensitivity are calculated. solve_pde
should be able to take these values and construct proper var items,
possibly using precomputed_gradient.
Additional Information:
Provide any additional information here.
Current Version:
v2.17.0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZ_F6ZRvJ4MJNV8evk2GiUcA5mPOCSRks5uFRl4gaJpZM4VKIp8
.

Will there be a solve_pde function in the math library?

Yes.

What does that implementation need to do?

For prim version, just use the PDE functor to solve PDE. For rev version, use the PDE functor to solve PDE and sensitivity, then construct var using precomputed_gradient.

Since it sounds like it needs to be linked against something to solve, how do we provide a solver ?

We don't.

Or is the user supposed to provide a solver?

Yes.

Is there a reason we don’t handle the two different behaviors with two different functions?

I'm not sure I understand the question. If by "two different behaviors" you mean solve /w and w/o sensitivity, then yes, we can certainly do two versions of functions, something like solve_pde and solve_pde_with_sensitivity. But that would require later on user know which one to use.

Within math repo the design is very similar to integrate_ode, with the
notable difference:

The ode functor takes in both double and var, the pde functor only works
on double.
The ode solver is shipped in stan, the pde solver is not.

On Tue, Jul 10, 2018 at 5:30 PM Daniel Lee<EMAIL_ADDRESS>wrote:

How is this issue supposed to be addressed?
Will there be a solve_pde function in the math library? What does that
implementation need to do? Since it sounds like it needs to be linked
against something to solve, how do we provide a solver ? Or is the user
supposed to provide a solver?
Is there a reason we don’t handle the two different behaviors with two
different functions?
I’m still trying to get the point of the issue before really digging into
design.
On Tue, Jul 10, 2018 at 5:15 PM Yi Zhang<EMAIL_ADDRESS>wrote:

Summary:
Use solve_pde to solve PDEs.
Description:
The design involves cmdstan, stan, and math. See also stan-dev/stan#2567
https://github.com/stan-dev/stan/issues/2567. This issue is about Math
repo only.
In order to solve PDE, similar to ODE solver in Stan, the PDE is provided
through a functor. Unlike ODE solver, we cannot ship a PDE library with
Stan Math. Alternatively, the user is asked to provide his own PDE
solver.
His workflow could be the following.

provide a functor that uses external PDE solver. The functor has the
following signature

inline std::vector<std::vector >
operator()(const std::vector& theta,
const bool need_sens,
const std::vector& x_r,
const std::vector& x_i,
std::ostream* msgs = nullptr);
The functor returns PDE solution(quantity of interest) when need_sens=0,
and returns PDE solution together with its gradient with respect to
theta(parameters)
when need_sens=1.

call solve_pde, with the above functor as the first argument. Within
the solve_pde function, the above functor calculates PDE solution and
sensitivity, andvar variables are constructed based on these values.
provide Makefile for the external PDE solver

The user/PDE developer does not need to know utilize stan::math::var to
write the above functor. He just needs to decide the behavior of the PDE
solver: how the solution and the sensitivity are calculated. solve_pde
should be able to take these values and construct proper var items,
possibly using precomputed_gradient.
Additional Information:
Provide any additional information here.
Current Version:
v2.17.0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931, or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AAZ_F6ZRvJ4MJNV8evk2GiUcA5mPOCSRks5uFRl4gaJpZM4VKIp8
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-403972354, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AfkhsIvxwhZq7AQL1nsra5-dT38zey83ks5uFRzzgaJpZM4VKIp8
.

--
Regards,
Yi Zhang, Ph.D.
Metrum Research Group LLC
2 Tunxis Road, Tariffville, CT 06081
<EMAIL_ADDRESS>www.metrumrg.com

Within Math library the solution would be similar to integrate_ode. The one proposed in #930 takes a PDE functor argument and use it to calculate PDE solutions. The difference between the solve_pde proposed in #930 and integrate_ode is that

The PDE functor passed to solve_pde is actually a PDE solution functor, while the ODE functor passed to integrate_ode simply calculates the ODE's right-hand-side. A PDE solution functor operates on parameters and returns PDE solutions(and sensitivities). This way in Math library we don't have to include a PDE solver.
In the above sense the proposed solve_pde function serves as Math libraries' API for external PDE solver developers. Users are asked to provide a functor that utilizes certain PDE solver, as well as makefile for that solver.

There are two versions actually. One in prim one in rev. But in our case we
are letting user routine to do real work, so there’s nothing stopping them
to reuse same one.
On Wed, Jul 11, 2018 at 1:22 AM Bob Carpenter<EMAIL_ADDRESS>wrote:

The transformed data and generated quantities blocks don't need gradients.
Ideally it's more efficient to have a separate implementation w/o
gradients, but it's not necessary.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-404048539, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AfkhsFsLZRX0peMpCS_Yh5_mXwb8Zi9Iks5uFYuBgaJpZM4VKIp8
.

--
Regards,
Yi Zhang, Ph.D.
Metrum Research Group LLC
2 Tunxis Road, Tariffville, CT 06081
<EMAIL_ADDRESS>www.metrumrg.com

Because we are asking user to provide his own solver. We don’t know how to
compile/link the unknown library.
On Wed, Jul 11, 2018 at 8:36 AM Daniel Lee<EMAIL_ADDRESS>wrote:

I'm still quite a bit confused. The user is supposed to provide a functor
like this:
inline std::vector<std::vector> operator()(const std::vector& theta,
const bool need_sens,
const std::vector& x_r,
const std::vector& x_i,
std::ostream* msgs = nullptr);
And passes that into solve_pde()?
That makes sense, but then why do we need any changes to the build
process? Is that necessary?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-404153354, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AfkhsGusTjBRdkq3O74KcvXNya4waRt_ks5uFfE0gaJpZM4VKIp8
.

--
Regards,
Yi Zhang, Ph.D.
Metrum Research Group LLC
2 Tunxis Road, Tariffville, CT 06081
<EMAIL_ADDRESS>www.metrumrg.com

Shouldn't the user just put in make/local:
CXX += -I <path to source>
LDFLAGS += -l<library>

?
I don't understand why we need to define new variables. We did that for MPI and GPU, but I don't want to get in the habit of making our builds more complicated without there being a very good reason.

In the most simple case, yes. But there are more complicated scenarios, especially for HPC users, they may want to adjust optimizations etc for tuning purpose, or may want to turn on/off certain functionality in his solver. Note that we're not asking user to replace Stan Math makefile and dive into our make process, we are asking him to provide only switches that are related to his solver. In the minimalist case, the makefile could only contain what you mentioned in the local. Of course another option is just let them use stuff local. The two approaches are the same after make's include does its job.

Can you provide a concrete example? I don't quite see what the complication is yet.

Here's small of part of my petsc makefile rules. In general it goes through many decisions, such as if user needs to rebuild the library, or download another library, or if user is building fortran vs build c, if he's using another compiler, etc. Of course we can just ask user to include this file in local. Either way works for me.
# 3. Check if the shared libs are out of date
chkopts: chk_upgrade
	@for LIBNAME in ${SHLIBS}; do \
	  library=${INSTALL_LIB_DIR}/$$LIBNAME.a; \
	sharedlibrary=${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX}; \
	flag=""; \
	if [ -f $$library ]; then \
	  if [ -f $$sharedlibrary ]; then \
	    flag=`find ${INSTALL_LIB_DIR} -type f -name $$LIBNAME.a -newer $$sharedlibrary -print`; \
	  fi; \
	fi; \
	if [ "$$flag" != "" ]; then \
	  echo "Shared libs in ${INSTALL_LIB_DIR} are out of date, attempting to rebuild."; \
	  if [ -w ${INSTALL_LIB_DIR} ]; then \
	    ${OMAKE}  PETSC_ARCH=${PETSC_ARCH} shared; \
	  else \
	    printf ${PETSC_TEXT_HILIGHT}"*********************** ERROR ************************\n"; \
	    echo "Unable to rebuild shared libraries; you do not have write permission."; \
	    user=`ls -l ${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX}  | tr -s ' ' | cut -d ' ' -f 3`; \
	    echo "Libraries were built by user $$user; please contact him/her to have them rebuilt."; \
	    printf "******************************************************"${PETSC_TEXT_NORMAL}"\n" ; \
	    false; \
	  fi; \
	fi; \
	done

#
# uses the cmake infrastructure to build/rebuild the libraries
ccmake:
	@echo "=========================================="
	+@cd ${PETSC_DIR}/${PETSC_ARCH} && MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE} VERBOSE=${VERBOSE}
	@if [ "${BUILDSHAREDLIB}" = "yes" -a "${DSYMUTIL}" != "true" ]; then \
        echo "Running ${DSYMUTIL} on ${SHLIBS}";\
        for LIBNAME in ${SHLIBS}; do ${DSYMUTIL} ${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX}; done; fi
	@echo "========================================="

cmake:
	+@MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE} ccmake VERBOSE=1

gnumake:
	+@cd ${PETSC_DIR} && MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE_PRINTDIR} -f gmakefile ${MAKE_PAR_OUT_FLG} V=${V}

# Does nothing; needed for some rules that require actions.
foo:

# Builds library
lib:  ${SOURCE}
	@${OMAKE}  PETSC_ARCH=${PETSC_ARCH} chk_petscdir
	@-if [ "${SPECIALLIB}" = "yes" ] ; then \
	   ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  speciallib;  \
	  else \
            if [ "${SOURCECU}" != "" ] ; then \
              ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libcu; fi ; \
            if [ "${SOURCEC}" != "" ] ; then \
              ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libc; fi ; \
            if [ "${SOURCECXX}" != "" ] ; then \
              ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libcxx; fi ; \
            if [ "${SOURCEF}" != "" ] ; then \
		${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libf; fi ; \
            if [ "${OBJS}" != " " ] ; then \
		${RANLIB}  ${LIBNAME}; \
		${RM} ${OBJS}; \
	    fi;\
          fi
#
#  Does not work for some machines with .F fortran files.
#
# Builds library - fast versiong

libfast:  ${SOURCE}
	-@if [ "${SPECIALFASTLIB}" = "yes" ] ; then \
	    ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  specialfastlib;  \
	else \
	    ${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libfastcompile;  \
	fi

libfastcompile:
	-@if [ "${SOURCECU}" != "" ]; then \
                    ${PETSC_CUCOMPILE}; \
	            ${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSCU}; \
		    ${RM} ${OBJSCU} ${OBJSCU:.o=.lo}; \
	    fi; \
          if [ "${SOURCEC}" != "" ]; then \
                    ${PETSC_COMPILE}; \
	            ${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSC}; \
		    ${RM} ${OBJSC} ${OBJSC:.o=.lo}; \
	    fi; \
          if [ "${SOURCECXX}" != "" ]; then \
                    ${PETSC_CXXCOMPILE}; \
	            ${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSCXX}; \
		    ${RM} ${OBJSCXX} ${OBJSCXX:.o=.lo}; \
	    fi; \
	if [ "${SOURCEF}" != "" ]; then \
                    ${PETSC_FCOMPILE}; \
	            ${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSF}; \
		    ${RM} ${OBJSF}; \
	    fi

# Build f90 .mod from .F source, and add .o to the corresponding library
buildmod:
	-@${OMAKE} clean-legacy
	@${OMAKE}  libf
	@${OMAKE}  modcopy
	@${OMAKE}  clean-legacy

buildmodfast:
	-@${OMAKE} clean-legacy
	@${OMAKE}  libfastcompile
	@${OMAKE}  modcopy
	@${OMAKE}  clean-legacy

# copy modules to the include dir
modcopy:
	@${CP} -f *.mod ${PETSC_DIR}/${PETSC_ARCH}/include

Sorry... I have no idea what this is! It looks complicated, but beyond
that, it doesn't have a complete example. Can you guide me through what
parts of this are necessary and how adding more complexity to the Stan Math
makefiles will make this easier?
On Wed, Jul 11, 2018 at 9:52 AM Yi Zhang<EMAIL_ADDRESS>wrote:

Here's small of part of my petsc makefile rules. In general it goes
through many decisions, such as if user needs to rebuild the library, or
download another library, or if user is building fortran vs build c, if
he's using another compiler, etc. Of course we can just ask user to include
this file in local. Either way works for me.
3. Check if the shared libs are out of datechkopts: chk_upgrade
@for LIBNAME in ${SHLIBS}; do
library=${INSTALL_LIB_DIR}/$$LIBNAME.a;
sharedlibrary=${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX};
flag="";
if [ -f $$library ]; then
if [ -f $$sharedlibrary ]; then
flag=find ${INSTALL_LIB_DIR} -type f -name $$LIBNAME.a -newer $$sharedlibrary -print;
fi;
fi;
if [ "$$flag" != "" ]; then
echo "Shared libs in ${INSTALL_LIB_DIR} are out of date, attempting to rebuild.";
if [ -w ${INSTALL_LIB_DIR} ]; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH} shared;
else
printf ${PETSC_TEXT_HILIGHT}"*********************** ERROR \n";
echo "Unable to rebuild shared libraries; you do not have write permission.";
user=ls -l ${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX}  | tr -s ' ' | cut -d ' ' -f 3;
echo "Libraries were built by user $$user; please contact him/her to have them rebuilt.";
printf "******************************"${PETSC_TEXT_NORMAL}"\n" ;
false;
fi;
fi;
done
uses the cmake infrastructure to build/rebuild the librariesccmake:
@echo "=========================================="
+@cd ${PETSC_DIR}/${PETSC_ARCH} && MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE} VERBOSE=${VERBOSE}
@if [ "${BUILDSHAREDLIB}" = "yes" -a "${DSYMUTIL}" != "true" ]; then
echo "Running ${DSYMUTIL} on ${SHLIBS}";
for LIBNAME in ${SHLIBS}; do ${DSYMUTIL} ${INSTALL_LIB_DIR}/$$LIBNAME.${SL_LINKER_SUFFIX}; done; fi
@echo "========================================="
cmake:
+@MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE} ccmake VERBOSE=1
gnumake:
+@cd ${PETSC_DIR} && MAKEFLAGS="-j$(MAKE_NP) -l$(NPMAX) $(MAKEFLAGS)" ${OMAKE_PRINTDIR} -f gmakefile ${MAKE_PAR_OUT_FLG} V=${V}
Does nothing; needed for some rules that require actions.foo:
Builds librarylib:  ${SOURCE}
@${OMAKE}  PETSC_ARCH=${PETSC_ARCH} chk_petscdir
@-if [ "${SPECIALLIB}" = "yes" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  speciallib;
else
if [ "${SOURCECU}" != "" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libcu; fi ;
if [ "${SOURCEC}" != "" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libc; fi ;
if [ "${SOURCECXX}" != "" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libcxx; fi ;
if [ "${SOURCEF}" != "" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libf; fi ;
if [ "${OBJS}" != " " ] ; then
${RANLIB}  ${LIBNAME};
${RM} ${OBJS};
fi;
fi##  Does not work for some machines with .F fortran files.## Builds library - fast versiong
libfast:  ${SOURCE}
-@if [ "${SPECIALFASTLIB}" = "yes" ] ; then
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  specialfastlib;
else
${OMAKE}  PETSC_ARCH=${PETSC_ARCH}  libfastcompile;
fi
libfastcompile:
-@if [ "${SOURCECU}" != "" ]; then
${PETSC_CUCOMPILE};
${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSCU};
${RM} ${OBJSCU} ${OBJSCU:.o=.lo};
fi;
if [ "${SOURCEC}" != "" ]; then
${PETSC_COMPILE};
${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSC};
${RM} ${OBJSC} ${OBJSC:.o=.lo};
fi;
if [ "${SOURCECXX}" != "" ]; then
${PETSC_CXXCOMPILE};
${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSCXX};
${RM} ${OBJSCXX} ${OBJSCXX:.o=.lo};
fi;
if [ "${SOURCEF}" != "" ]; then
${PETSC_FCOMPILE};
${AR} ${FAST_AR_FLAGS} ${LIBNAME} ${OBJSF};
${RM} ${OBJSF};
fi
Build f90 .mod from .F source, and add .o to the corresponding librarybuildmod:
-@${OMAKE} clean-legacy
@${OMAKE}  libf
@${OMAKE}  modcopy
@${OMAKE}  clean-legacy
buildmodfast:
-@${OMAKE} clean-legacy
@${OMAKE}  libfastcompile
@${OMAKE}  modcopy
@${OMAKE}  clean-legacy
copy modules to the include dirmodcopy:
@${CP} -f *.mod ${PETSC_DIR}/${PETSC_ARCH}/include
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-404176890, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAZ_FzyVxrxlSp9xEuWA7bTiWuOA1TZYks5uFgLMgaJpZM4VKIp8
.

I think the bottom line is that user are looking at different optimization options, and different architectures that he may want to play with his PDE solver. Also his source code might be C or C++ or fortran or F90, all asking for special treatment.

Sorry -- I feel like you're speaking a different language. Can you define
these terms?

optimization options
different architectures
play with his PDE solver
special treatment

It really sounds like all of what you've described is outside of what the
Math library needs to worry about. Meaning, the user should really have
some way of building whatever source code in C or C++ fortran or F90. Once
that's there, all the user really needs is a way to link? Or am I
misunderstanding something about the process you're describing?
On Wed, Jul 11, 2018 at 10:08 AM Yi Zhang<EMAIL_ADDRESS>wrote:

I think the bottom line is that user are looking at different optimization
options, and different architectures that he may want to play with his PDE
solver. Also his source code might be C or C++ or fortran or F90, all
asking for special treatment.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-404180991, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAZ_Fx3Inut1z8dqimtOvTQuBT30aOO0ks5uFgWEgaJpZM4VKIp8
.

Sorry for being a bad interpreter.
https://github.com/yizhang-cae/cmdstan/tree/forward_pde/examples/laplace_pde
Here's the example I mentioned in https://github.com/stan-dev/stan/issues/2567.
The makefile for libmesh used in this example requires the follow minimum setting:
CXX = $(libmesh_CXX)
CC = $(libmesh_CXX)
CPPFLAGS += $(libmesh_CPPFLAGS)
CXXFLAGS += $(libmesh_CXXFLAGS)
CXXFLAGS += -isystem $(LIBMESH_DIR)/include
CXXFLAGS += $(libmesh_INCLUDE)
CXXFLAGS :=$(filter-out -std=gnu++11,$(CXXFLAGS))
CXXFLAGS :=$(filter-out -Wunused,$(CXXFLAGS))
CXXFLAGS :=$(filter-out -Wunused-parameter,$(CXXFLAGS))
CXXFLAGS :=$(filter-out -Qunused-arguments,$(CXXFLAGS))
CXXFLAGS +=-DLIBMESH_HAVE_CXX14_MAKE_UNIQUE

LDFLAGS += $(libmesh_LIBS)
LDFLAGS += $(libmesh_LDFLAGS)
LDFLAGS += $(EXTERNAL_FLAGS)

# Useful rules.
dust:
	@echo "Deleting old output and runtime files"
	@rm -f out*.m job_output.txt output.txt* *.gmv.* *.plt.* out*.xdr* out*.xda* PI* *.o *.libs

gmv:
	@$(MAKE) -C $(LIBMESH_DIR)/roy/meshplot/ meshplot-$(METHOD)
	@for file in out.mesh.*; do ${LIBMESH_RUN} $(LIBMESH_DIR)/roy/meshplot/meshplot-$(METHOD) $$file out.soln.$${file##out.mesh.} out.gmv.$${file:9:4}; done

What I meant is

optimization options

Questions like use -O3 vs -O2? Link withmetis(a partitioner) or scotch(another partitioner)? etc.

different architectures

Questions like Build with MPICH or OPENMPI? linear solver being SUPERLU or MUMPS. These are related to how a solver library is built. Some libraries (like petsc) allow the user to build different versions with different setups, aka "architectures".

play with his PDE solver

Large problems often requires some tuning of the aforementioned building parameters before sent out to the cluster for days-long run. What I meant by "play" is this tuning process, which involves change switches in the building process.

special treatment
One example is that if the solver is written in fortran, user needs to supply mpif or gfortran compiler/linker information.

There's nothing here that's PDE specific, so is the goal to interface with external software in general?
It seems like there are three big components of all these pull reqs:

The high level interface (that would appear in .stan files)
The mechanism for working with the autodiff library without having to worry too much about the details of vars
Whatever is needed to link in external libraries

3 seems like a support nightmare to me, and 1 seems easy to get around (if someone can build petsc, I'll hazard they can figure out how to get the Rstan/cmdstan external C++ stuff working, even if those are hacky solutions). Seems to me like if someone has some big fancy weird external solver they need to incorporate in Stan they could maintain it as a fork? That's what I do for my regular job -- not that my development patterns are anything to emulate...
I'm working with Bob now on 2, for other reasons, but it's the same goal: https://github.com/stan-dev/math/pull/924 . I'll be full time on this until September. We think it's a good idea too -- and someone else coming up with it independently seems like a good sign :P. Fingers crossed that should progress quickly.
Maybe this should be an item for the engineering part of the Thursday meeting?

As I mentioned in https://github.com/stan-dev/stan/issues/2567, this is indeed true to any external library. for 3 I don't think asking PDE developer to maintain a fork is a better option(I'm doing that with Torsten, and I'm desperately looking for alternatives) then providing a good API.

Add @bob-carpenter for Thursday agenda.

A related issue is https://github.com/stan-dev/stan/issues/2572: to have a way to support user-supplied higher-order function, like regular function through user_header.hpp. Though this is more a Stan issue than Math issue.

As I mentioned in stan-dev/stan#2567, this is indeed true to any external library. for 3 I don't think asking PDE developer to maintain a fork is a better option(I'm doing that with Torsten, and I'm desperately looking for alternatives) then providing a good API.

Re: Torsten. We should put this on another thread. There was an active decision to keep that separate due to lack of resources for design, documentation, testing, and maintenance. We can revisit that if you think that's appropriate.

@yizhang-cae, can we split the issue into two? I think there are two very different things going on:

solve_pde(). That looks fine and easy to review and merge. There's nothing different about that.
Building external tools and linking them. That's a completely separate, orthogonal discussion.

For 1, we can move forward. For 2, it would really help to have a list of things you want (a spec would be great, but even a list of wants and needs would be sufficient), then we can discuss whether that's a good thing and how we can make that happen.

I've edited the issue and added #934 . Let's focus on solve_pde in the current issue.

For the current issue, please allow me to pitch the name forward_pde again. I understand solve_pde is a more popular name, but it's also a misleading name: solve_pde gives an impression that the return would be the solution of the PDE, but that's not the intended use case. In PDE inference the data are often not collected from PDE solution directly but some functionals based on the PDE solution, usually involving spatial and/or time integrals. This is the "forward" process from PDE parameters to the observable functionals. It involves solving the PDE, but the numerical solution of PDE is often hidden behind.

Yes, please---forward_pde sounds like a much better name.  Let's use the standard names from applied math wherever possible so that we don't confuse people who know what they're doing!  It's win-win as it's a learning experience for the rest of us. (This is related to Ben's change of the function name optimize() to maximize() to not confuse the professionals for whom optimization will often involve minimization.)

On Jul 11, 2018, at 11:40 AM, Yi Zhang<EMAIL_ADDRESS>wrote:
For the current issue, please allow me to pitch the name forward_pde again. I understand solve_pde is a more popular name, but it's also a misleading name: solve_pde gives an impression that the return would be the solution of the PDE, but that's not the intended use case. In PDE inference the data are often not collected from PDE solution directly but some functionals based on the PDE solution, usually involving spatial and/or time integrals. This is the "forward" process from PDE parameters to the observable functionals. It involves solving the PDE, but the numerical solution of PDE is often hidden behind.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Btw, what you've described as "optimization options" are already available. In make/local, just set:
O = 3

or
O = 2

For the other ones, I'm not sure? These are all different use cases. Knowing what you're trying to do would really help. (It's still not clear enough for me to understand exactly what you're trying to do to help design.)

And yes, forward_pde sounds much more appropriate given your last comment.

That said Matlab calls it solvepde: https://www.mathworks.com/help/pde/pde-solvers.html.
What about simulate_pde? TensorFlow's doc talks about simulating from a PDE: https://www.tensorflow.org/tutorials/non-ml/pdes
So does iPython Cookbook: https://ipython-books.github.io/124-simulating-a-partial-differential-equation-reaction-diffusion-systems-and-turing-patterns/
And just to add more confusion, FEniCS calls it solve (they do PDE only): https://fenicsproject.org/

That's exactly what I'm talking about.
Matlab:

This solver returns a StationaryResults or TimeDependentResults object whose properties contain the solution and its gradient at the mesh nodes.

FEniCS

Compute solution

w = Function(W)
solve(a == L, w, [bc1, bc0])
TensorFlow

Discretized PDE update rules

U_ = U + eps * Ut
Ut_ = Ut + eps * (laplace(U) - damping * Ut)
All the above examples solve for the numerical solution. None of the above example ask for QoI(quantity of interest).

Sure. Hangout<EMAIL_ADDRESS>

In the words / notation from Matlab, FEniCS, and TensorFlow, what's different about what you're proposing the Math library handles?

Don't remember how Matlab & tensorflow treat it, but for FEniCS the adjoint sensitivity is treated in a sublibrary http://www.dolfin-adjoint.org/. What we are asking user to provide in the PDE functor is the combination of the PDE solution like quoted above and the calculation of QoI like in http://www.dolfin-adjoint.org/. Of course since user is responsible for the behavior of the functor, nothing stops him from returning a full-blown PDE solution and stuff the cache. That's why hopefully the name forward would mean something to someone who's familiar with PDE inverse problems.

Would it be clearer if we didn’t call if “pde” but something like
“pde_qoi”? Since the functor is not a pde, I don’t think we should call it
a pde?
On Wed, Jul 11, 2018 at 1:13 PM Yi Zhang<EMAIL_ADDRESS>wrote:

In the words / notation from Matlab, FEniCS, and TensorFlow, what's
different about what you're proposing the Math library handles?
Don't remember how Matlab & tensorflow treat it, but for FEniCS the
adjoint sensitivity is treated in a sublibrary
http://www.dolfin-adjoint.org/. What we are asking user to provide in the
PDE functor is the combination of the PDE solution like quoted above and
the calculation of QoI like in http://www.dolfin-adjoint.org/. Of course
since user is responsible for the behavior of the functor, nothing stops
him from returning a full-blown PDE solution and stuff the cache. That's
why hopefully the name forward would mean something to someone who's
familiar with PDE inverse problems.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/math/issues/931#issuecomment-404244698, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAZ_F8_yVQuYZgkfrBEVdFsiiPlePj0Pks5uFjH8gaJpZM4VKIp8
.

@syclik I'd like to have it merged into Torsten first so I'm closing it for the moment.


[AfO Landing Zones] Add required subnets to Network Analytics

Please include the two following subnets to the VNet deployed as part of the Network Analytics Landing Zone reference implementation:
PrivateSubnetCIDR
PublicSubnetCIDR
Each subnet must be /26 CIDR.
CC: @rathishrms

can we please name the subnets the below as thats how its needed for our automation? @victorar @krnese
adbPublicSubnetCidr, adbPrivateSubnetCidr

Quick question: It sounds like we are just proposing customers to leverage Azure Databricks. Is that correct?
Why not Azure Synapse with Kusto/Data Explorer, which is very good for analyzing large amounts of monitoring data (append only)?

Closing this issue for the time being due to dependencies being worked out.

Thanks @victorar, as discussed at this point our automation is creating the required ADB subnets. Will let you know if this approach changes for future. Thanks!


Nearest neighbor operator fails in custom searcher

Describe the bug
We are trying to do a nearest neighbor search inside our custom searcher. We have followed indications in https://github.com/vespa-engine/vespa/issues/23875 and we confirm that we have the following:

A ranking profile where the query tensor is defined
That we are using the correct ranking profile
That we are setting programatically the embedding as a ranking feature property

After doing of all these, we see the following error:
Error in search reply.: NearestNeighborTerm(document_embedding_es, q): Query tensor was not found in request context. Returning empty blueprint

However doing this type of search running the query against the /search endpoint, we are able to collect the expected documents. As you can see in the following files, we are setting the same parameters for both queries but the one in the custom searcher fails.

Trace file when using custom searcher
Trace file when using /search endpoint

To Reproduce
Steps to reproduce the behavior:

Set up a nearest neighbor operator inside a custom searcher
Do a query and receive 0 results (see error)
Compare the behaviour with the default /search endpoint

Expected behavior
It should work correctly in both scenarios
Screenshots
No applicable
Environment (please complete the following information):

OS: macOS
Infrastructure: self-hosted
Versions 13.5

Vespa version
8.202.11
Additional context
https://github.com/vespa-engine/vespa/issues/23875

We have multiple working examples of using the nearestNeighbor query item in a searcher, so we would appreciate the exact details on how to reproduce. That should consist of:

A minimalistic schema(s)
A searcher implementation that reproduces

Here are a few sample apps that use the nearestNeighbor query item:

https://github.com/vespa-engine/sample-apps/blob/master/msmarco-ranking/src/main/java/ai/vespa/examples/searcher/RetrievalModelSearcher.java
https://github.com/vespa-cloud/vespa-documentation-search/blob/main/src/main/java/ai/vespa/cloud/docsearch/SuggestionSearcher.java
https://github.com/vespa-cloud/cord-19-search/blob/main/src/main/java/ai/vespa/example/cord19/searcher/RelatedArticlesByNNSearcher.java

@jobergum I need to retire my words. The problem was the following:

We have a tensor of type bfloat16 of 768 dimensions
The one declared at the ranking profile is tensor of type float of 768 dimensions.

So the behaviour for tensor type checking is different in both scenarios (custom searcher vs /search endpoint). I suppose that inside the searchers defined in the /search endpoint there must be a casting to that type

When you use the search endpoint and pass a string tensor, that is converted to the tensor type specified in the schema or the query profile types. When using a searcher, and adding a different tensor type, this is the result.


User unable to log into a new wallet 2.0

https://user-images.githubusercontent.com/68264080/142133852-4fc558bb-e369-495e-8a5c-f4dcde4c212d.mp4

Feedback from: Yashwanth
Feedback on: Telegram DMs

User uninstalled and reinstalled the app and I working for him now.


Incompatible with remark-gfm >2.0.0

Hi there!
First off, I want to say: thank you for this amazing plugin, it's been a critical step in the Markdown conversion of all of MDN's articles!
I wanted to mention that it appears this package is incompatible with remark-gfm past version 2.0.0.  When upgrading, I get the following error:
TypeError: Cannot read properties of undefined (reading 'push')
    at containerFlow (file:///Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-to-markdown/lib/util/container-flow.js:25:14)
    at listItem (file:///Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-to-markdown/lib/handle/list-item.js:50:5)
    at Object.listItemWithTaskListItem (file:///Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-gfm-task-list-item/index.js:98:15)
    at Object.one [as handle] (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/zwitch/index.js:20:25)
    at flow (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-to-markdown/lib/util/container-flow.js:15:15)
    at Object.list (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-to-markdown/lib/handle/list.js:7:15)
    at Object.one [as handle] (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/zwitch/index.js:20:25)
    at flow (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-to-markdown/lib/util/container-flow.js:15:15)
    at Object.root (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/mdast-util-to-markdown/lib/handle/root.js:6:10)
    at Object.one [as handle] (/Users/queengooborg/Developer/Gooborg/mdn-markdown/node_modules/zwitch/index.js:20:25)

Thank you for working on MDN’s articles! It’s one of the most valuable resources for JavaScript / web developers such as myself.
I have just updated this package to use the latest versions of all dependencies. This should include compatibility with the latest version of remark-gfm. Please let me know if you run into any issues. :)
This update does require the use of ESM instead of CJS, but I think you’re already using that.

Thank you for the quick fix!  I've just updated the packages and confirmed everything is working now!

Thank you for working on MDN’s articles! It’s one of the most valuable resources for JavaScript / web developers such as myself.

💜


Change Price Stablization Interface

So talked with Alex. Think we can get rid of the TWAP price and keep the 3CRV Price as the main point. Recommend changing "3-CRV Swap Price" to "Ubiquity Dollar Spot Price." For the TWAP Price, I think you can have a small question mark around "Ubiquity Dollar Spot Price" and when someone hovers over it, the menu can show the TWAP Price.

Small Question Mark can look something like this.

Also worth noting but 3pool is starting to deviate quite a bit from $1.00 (it accrues swap fees in the 3pool) we're going to need to account for this in our core contracts 😰 https://www.coingecko.com/en/coins/lp-3pool-curve

Figure out the design and suggest an effective approach
Possibly, the UI requires refactoring

The decision: to show

TWAP price directly on the page
Spot Price in a tooltip (question mark)

Hey @sergfeldman I would like to select this one

@sunny0714 You are assigned on this bounty

Cool, thanks @sergfeldman

Hey @sergfeldman this is just finished on this PR, Please check this out
https://github.com/ubiquity/ubiquity-dollar/pull/222

#222 linking PR

@pavlovcik Please clarify if this issue can be closed as done.


release v0.24.0

Issues associated with this PR
哪几个PR需要给一下格式报告呢
Solutions
You should show your solutions about the issues in your PR, including the overall solutions, details and the changes. At this time, Chinese is allowed to describe these.
UT result
Unit Test is needed if the code is changed, your unit test should cover boundary cases, corner cases, and some exceptional cases. And you need to show the UT result.
Benchmark
If your code involves the processing of every request, you should give the Benchmark Result.
Code Style

Make sure Goimports has run
Show Golint result

@nejisama


Fallback mechanism in the Next Step server

We should define fallback mechanism for the Next Step server and implement it.
As the first step, we'll need to separate different FAILED states - this change is handled in #29.
Once it is clear that an authentication method failed completely (e.g. too many login attempts), there should exist a mechanism to switch to an alternate authentication method, including the last resort -  redirecting user to a support page.
Petr, can you please elaborate on the requirements? Once the requirements are clear I will implement it.

The issue is partially implemented in #29 - when different steps are defined for given authentication method with different results in response (e.g. some steps with response result FAILED and some steps with CONTINUE), the steps which lead to a more successfull result are prefered. However we do not support this functionality in the UI yet to allow switching from one authentication method to another. We will also need to define transitions between auth methods in SQL.

Obsolete issue.


Doesn't install on Windoze 10

Doesn't install on Windoze 10.
Get a screen with blocked out writing?

im getting the same thing have you figured it out yet??


User land negate (unary minus) implementation

Things that are absolutely required for implementing an operator like unary minus in user land:

[x] Funciton-like macro
[x] Inline machine code bytes
[x] Bitwise AND operator for encoding MOD R/M (ecfab42588aecf3e22db93d8768353ba4ace121d)
[x] Bitwise shift left for encoding MOD R/M (ecfab42588aecf3e22db93d8768353ba4ace121d)
[x] ~Some way of matching on operand type~
[x] Named return values (6a89995c2c5fa732e43fcf29c805e2591da68205)
[x] ~Matching on operand type for return values?~
[ ] A way to acquire a temp register of the right size
[x] Reflect a value into an operand variant
[x] A way to define a new operator (aa4d0abb27e258fef6c1d5ad2663aeb9930baae6)

There are also a bunch of things that are nice to have

[x] Binary Integer Literals
[x] Bitwise OR operator for encoding MOD R/M (ecfab42588aecf3e22db93d8768353ba4ace121d)
[ ] Enums

All of it might come together into something like this:
X64_Mod :: enum({
  MOD_Displacement_0   = 0b00,
  MOD_Displacement_s8  = 0b01,
  MOD_Displacement_s32 = 0b10,
  MOD_Register         = 0b11,
});

x64_r_m32 :: (op_code: u8, reg_or_op_code : u8, r_m : Register_32) -> () {
  mod_r_m := (
    (mod << 6) +
    ((reg_or_op_code & 0b111) << 3) +
    ((r_m & 0b111))
  );
  inline_machine_code_bytes(op_code, mod_r_m);
}

negate :: macro (x : s32) -> (result : s32) {
  negate_operand(operand_variant_of(x), operand_variant_of(result))
  result
}

negate_operand :: macro (input : Register_32, result : Register_32) -> () {
  if input != result {
    x64_mov(result, input)
  }
  x64_r_m32(0xF7, 3, result)
}

Decided to go with 0 - x implementation for now


CON-878

This enables usage of pgbackrest inside of container in terms of automatic backups (full and incr) using cron.
It is also possible to do restore using clone with pgbackrest.
Cron is running in non-privileged mode.

@Schmaetz @ants some changes are comming in, so pls. wait for those...

@Schmaetz @ants please review


Put the code on Travis to automate the testing of the code

I added pytest to .travis.yml. What else needs to be added?

Add the flake8 check as well so that whenever we have problem with lint build will fail


Incorrect handling of continuation lines in fixed-form FORTRAN

It seems that lexer only allows &$+ as continuation chrarcter while FORTRAN 77 standard states that anything but 0 and space could be used.
          3.2.3  Continuation_Line.  A continuation line  is  any
          line   that  contains  any  character  of  the  FORTRAN
          character set other than the  character  blank  or  the
          digit  0 in column 6 and contains only blank characters
          in columns 1 through 5.  A statement must not have more
          than nineteen continuation lines.

For example I have code at hands which uses @ as continuation character

Thanks for this. We need to add this. Hopefully we can do this soon.


Remove kociemba and rubiks_rgb_solver.py from MINDCUB3R demo

I forked kociemba (sent a pull request to make it python3 compatible) and created a repo for the rubiks cube RGB analyzing code.  We can now remove these from demo/MINDCUB3R and instead point the user to install them via:
sudo apt-get install build-essential python3-pip
sudo pip3 install git+https://github.com/dwalton76/kociemba.git
sudo pip3 install git+https://github.com/dwalton76/rubiks-color-resolver.git

@WasabiFan @ddemidov sound good?

Sounds good to me!


choreadd license header check in fe's checkstyle

Problem Summary:
Add license header check in fe's checkstyle

@924060929 PTAL

LGTM
I thought this already exists...

BTW, do we have any guidance to let developers get a license header template and config generating license header when creating new files automaticly in IntelliJ IDEA?


chore: Bump watcher image to 0.0.4

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/test all

/test all


Sets up the hamilton ui to run on sqlite (WIP)

You can run it with:

python manage.py runserver --settings=server.settings_mini <IP_ADDRESS>:8241 from ui/backend/server
npm run start from ui/frontend/server

Changes
How I tested this
Notes
Checklist

[ ] PR has an informative and human-readable title (this will be pulled into the release notes)
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future TODOs are captured in comments
[ ] Project documentation has been updated if adding/changing functionality.

This is working -- you can:
pip install "sf-hamilton[serve]==1.65.0rc0"
hamilton-serve

TODO:

[ ] Docs -- add to the UI section
[ ] README -- add getting started to the front page
[ ] Test out the docker iamges so they still world
[ ] Add in example projects


Performance regression from 0.38 to 0.41

Reporting a bug

[x] I am using the latest released version of Numba (most recent is visible in
the change log (https://github.com/numba/numba/blob/master/CHANGE_LOG).
[x] I have included below a minimal working reproducer (if you are unsure how
to write one see http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports).

I am experiencing a performance regression after updating numba from version 0.38.1 to version 0.41.0.
This simple function that expect two 3-element lists of float that are unit vector (sum to 1) as arguments is running in 2.57 microseconds with version 0.38.1 on my machine (timed with timeit and  a = [2/9, 3/9, 4/9]; b = [3/9, 5/9, 1/9]). CHanging nothing except updated numba to 0.41, the same function times at 12 microseconds. The function is given below.
I call this function millions of times in a pipeline, passing it different values. I profiled the code for both versions of numba and can observe a clear difference. In the most recent version a call to typeof is triggered and takes most of the processing time. I attached the profiling files and visualization screenshots.
The function:
from math import sqrt
from numba import njit

@njit(cache=True)
def get_angle_unitvec_approx(a, b):
    """
    source:
    https://web.archive.org/web/20161223122122/http://http.developer.nvidia.com:80/Cg/acos.html
    Computes angle between two 3d vectors in radians, Function optimized for acos computation
    :param a: 3-element list representing a unit vector
    :param b: 3-element list representing a unit vector
    :return: angle in rad
    """
    x = a[0] * b[0] + a[1] * b[1] + a[2] * b[2]
    negate = x < 0  # True or False (1 or 0)
    x = abs(x)
    if x > 1:
        x = 1
    ret = -0.0187293
    ret *= x
    ret += 0.0742610
    ret *= x
    ret -= 0.2121144
    ret *= x
    ret += 1.5707288
    ret *= sqrt(1.0 - x)
    ret -= 2 * negate * ret
    return negate * 3.14159265358979 + ret

profile-numba-0-41-on-2018-11-29_10_29_16.txt
profile-numba-0-38-on-2018-11-29_10_26_53.txt

For anyone wanting to view the cprofile output, you can use snakeviz profile-numba-0-41-on-2018-11-29_10_29_16.txt to visualise it in your browser.
It can be installed with pip install snakeviz --user

git bisect seems to think one of the following introduced the slow down:
8923358c762fb15aa5c6c03fd18c9ab262ee9e97
Fix docs and comments
as per review.

50b483cdcaef90282f7df8c7375ef12c0278e25e
Update doc about new list features

7b9575b1b3320ab7b2d2cbcf0b4f0781307d9df1
Fix segfaults due to failure in unboxing elements of a list

19ea6829bda8eae7192cf48ee89956df8d57f865
Fix test for py2

a5c2653ae526a9dc9c1b6da31ab6a2f8205f7f46
Fix double-free because pop’ed element is not incref’ed

059d96f7928a9f774650027aff8ca04d42b5224c
Various fixes as per review comment.
thanks @stuartarchibald

81b86a66de96d71ee93c0d12244ab60099dcda31
Refactor

8f1dc2a9d06102f8b4228c7c1fefa326f129d8cd
Some more test cases for pr/2840

As title.

a96d4404dec2eb013ad616cd9db068da4e66fbec
Update expected-failure test due to new feature

14b96e6bff8547561e2dd421c3f81ba8566fbfcc
Merge branch 'temp/pr2840tests' into enh/listofarray

e36a89421dbc64bcbb54a3217cf801a6d953bc14
The test works now

1df737b002df54a5e518790fb71dfe7201772120
Add tests for list of list

7aa061de2327ce7bc9ddd129289740a738791cf5
Add utilities for hexdump memory region

321d4258c333214d37d73c762aee287f6f0f1c44
Fix heterogeneous list type checking

a07647d0f5ef11a46b5e095a133616a9863d7e6f
Fix list deletion refcount

91ee55ee60f137d8943fd9af6a78df373f6ec676
More work on list of arrays

a304dd95ad962d17b6517635eb9969cf49e3af5d
Add out-of-bound check and type check

d02419dca367d98359a00a60e0a7e4f215eb8897
Disable unboxing of list of reflected-types

e10d007a5f35026c2d5b45534cad0b50b35b65fe
Add basic tests for list-of-array

613fc777dda911886606692a0b00b4b54769bdc3
Add jitclass + list tests

e6d666d7828d0f8caa8559a94f69ec555040271a
Change test: allow nested list

def4b0df43c897793baf30329108d9e5ddfe4a36
Add docs about reflection

e0ebf81799d0937e7bd6b93aba2726be53946308
Initial work to make list of managed type possible

7f1595402cd955b0259e28add9c2323b02b32605
Merge branch 'master' into enh/listofarray

given that these patches significantly enhanced the capabilities of what could go in lists (but as a result more type information was required), it's highly likely that this is the cause of what is presented as a slow down.
As a work around could the large loop compute the values and store them in two 3 long NumPy arrays (that can be allocated outside the loop and just reused)? I think that'd give constant performance.

The culprit is likely to be the changes in https://github.com/numba/numba/blame/6ad2f59990ff64dcdfdd40dce08d94f52ddc9964/numba/targets/boxing.py#L658

We need to speed up the typeof usage at https://github.com/numba/numba/blame/6ad2f59990ff64dcdfdd40dce08d94f52ddc9964/numba/targets/boxing.py#L601.
The #2840 PR added needed typechecking for element inside the list for safety reason, but the usage of typeof usage is slow.


Any accompanying slides?

Just wondering if there're any slides that'd make the code even clearer. Thanks in advance.

right, also I am unclear is a GPU required code-wise or can we train with multiple servers through SGE ?

The code was part of the DL4MT (Deep Learning for Machine Translation) Winter School 2015 that took place two months ago, but it looks like no materials other than the code has been released so far.
http://www.kyunghyuncho.me/home/courses/ds-ga-3001-fall-2015 has some relevant content though, perhaps the same materials was used there.


Update sample to reflect default storage

Minor PR to reflect #33517  in code sample

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

@yanrez is this correct?

#sign-off

@j-martens: I'm sorry - only the author of this article, @sanpil, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


MSM_Limiter does not recognize 8 core CPU in "Per Core control"

I am running Ressurrection Remix 5.7.2 (Adnroid 6.0.1) and Sensei Kernel 2.3R3 on Xiaomi Mi 4i.
Kernel Aditor Mod V15.
Going to KA Mod --> CPU --> MSM_Limiter (enabled) and then enable "Per core control", too does not reflect the real CPU hardware.
Maximum Frequency:
CPU0, CPU1, CPU2 and CPU3 shows the max frequency for the 4 big CPUs but also shows 0MHz fpr CPU4 - CPU7.
Min Suspend Frequency:
shows the same behaviour als "Maximum Frequency". Only has parameters set for the first cores but not the cores CPU4 - CPU7.
Suspend Max frequency:
Not able to set it per CPU core but only for all cores.
Select governors per core:
Again only shows the first 4 cores with a value but not the other four cores CPU4 - CPU7
LITTLE:
does not show any additional options because KA Mod probably does not recognize the LITTLE cores. Probably related to the things mentioned above.
PS:
Disabling MSM_Limiter without disabling "Per core control" will still show the "Edit tunables ... Governors" for every core. So first have to enable MSM_Limiter again, disable per core control and the disable MSM_Limiter

I do not own an 8 core device, so I am unable to test/debug/etc anything with 8 cores. If you cannot provide code that works on your device, I will be unable to do much to fix this.


How to use variable in query

var date;
Select time from table_name where tble_time='date';
How i use any var or state to select the specific data with user input

This could be achived in your JSX code, for example
 var date = new Date(); const query =SELECT TOP * FROM USERS WHERE tbl_time = ${date.toISOString()}MSSQL.executeQuery(query);

@davidstoneham how can I use mssql procedure functions? like weekStart()

@mtahir08 your question is unrelated to this open issue


Building Dojo with webpack

When I try to use webpack to build a Dojo AMD-based application with Dojo 1.10.4 I get the following error:
/Users/jcowley/git-src/webpack-test/node_modules/gulp-webpack/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:204
                                        throw e;
                                              ^
ReferenceError: define is not defined
    at Object.<anonymous> (/Users/jcowley/git-src/webpack-test/web/legacy/bower_components/dojo/i18n.js:1:63)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at DependenciesBlock.loadPitch (/Users/jcowley/git-src/webpack-test/node_modules/gulp-webpack/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:191:17)
    at DependenciesBlock.doBuild (/Users/jcowley/git-src/webpack-test/node_modules/gulp-webpack/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:239:4)
    at DependenciesBlock.build (/Users/jcowley/git-src/webpack-test/node_modules/gulp-webpack/node_modules/webpack/lib/NormalModule.js:66:14)

Is building Dojo with webpack a known problem or is there something special I need to do?
Thanks.

I too would like to know the answer to this, is this an issue with Dojo somehow having its own loader?
A reduced test case (of sorts) is available as a Gist here. You can run:
npm install && npm run webpack

Looks like dojo uses something like i18n! in a request...

I think it is because Dojo's loader plugins are evaluated at build time. I managed to get further through the build by using https://github.com/jrburke/amdefine in the Dojo plugins. However I still got an error at some stage because the some of the plugins refer to document if I remember correctly.

Dojo makes extensive use of loader plugins at runtime, in the case of i18n! it is loading the appropriate internationalization package at runtime. At build time, a runtime plugin can perform its own optimization. (for example, dojo/text inlines a text file to a string similarly to webpack's html or file-loaders).
The issue here is whether or not supporting the full AMD specification (https://github.com/amdjs/amdjs-api/wiki/Loader-Plugins) is important for webpack. If left unimplemented, it makes migrating some large requirejs and dojo projects to webpack impossible.

Does anyone know a good workaround for this?
The options that spring to my mind are:

not webpacking dojo
writing a custom loader

Are either of those infeasible? It's the end of the day and I'm pretty certain I've not grokked the full implications of either of them yet.

@leth I looked into this quite a bit as well and gave up on trying to get webpack to work with Dojo. I regret not writing up the process, but I eventually ran into #439 and ended up using the Dojo build system instead. Though if you're set on using webpack, option 1 might work (e.g. loading Dojo from a CDN, and having webpack deal with everything else).

@whymarrh Unfortunately Dojo is used for a lot of large internal applications and embedded control panels (think web-based control panel for a router), this makes downloading from a CDN impractical. Also, Dojo is about ~30-40MB of loose files, of which only a small portion get used in any given app, making a build step which includes the framework necessary.
The build system is very similar in concept to webpack, which is why attempting to use webpack to migrate older applications to use ES6 modules and npm for dependency management is so appealing (but currently impossible).
How hard would it be to detect an AMD plugin and treat is as a module with a custom build step instead of a loader plugin?

I do remember looking into exactly what you're describing (amongst other things). I don't remember the process I went through nor all the issues I encountered, but I wasn't able to get it working. That's not to say that it's impossible or that it's not worth exploring again, but #439 is an example of what you may encounter. Also, since Dojo uses AMD I would take a look through the open AMD-related bugs to see if any of those will be blockers as well. (If you do end up figuring it out, please do share it, whether it be as an answer on Stack Overflow or your own method.)
As for the Dojo build system, you can still use an ES6 transpiler and npm for dependency management, albeit with an workflow adjusted to meet Dojo's requirements.

@jacowley Any luck with this? Has the situation changed?

FYI: @nordth wrote https://github.com/Nordth/dojo-webpack-loader

Closing as there's a loader now.

There's also https://github.com/OpenNTF/dojo-webpack-plugin which offers:

Support for Dojo loader config properties, including baseUrl, paths, packages, map and aliases
Support for client-side synchronous and asynchronous require() calls for packed modules.
Webpack loader implementations of standard Dojo loaders (e.g. dojo/has, dojo/i18n).
Limited support for client side execution of some Dojo loader extensions.

What about RequireJS plugins like requirejs/text (which is similar to dojo/text)?
Is there any way Webpack can handle those?!
See also https://github.com/webpack/webpack/issues/5735.


[COMMUNITY] add Manu Seth as a new committer

Description
Please join me in welcoming Manu Seth (@mseth10) as a new committer of Apache MXNet! Manu has been working on MXNet since 2018 and contributed ~40 patches to MXNet with increasing technical depth. He worked on improving tests and infrastructure, performance, and more recently on graph partitioning in CachedOp in the presence of dynamic shape operators, so that a neural network graph with dynamic shape operators can be just as performant as a static graph.
Congratulations to @mseth10!
PRs he authored: https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+author%3Amseth10+
Issues he participated in: https://github.com/apache/incubator-mxnet/issues?q=is%3Aissue+involves%3Amseth10
Code reviews: https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+reviewed-by%3Amseth10
Changes

[x] add Manu Seth as a new committer

Awesome. Thanks for all the contributions Manu. Looking forward to more for
MXNet community.
On Sat, 19 Sep 2020, 4:15 pm Sheng Zha<EMAIL_ADDRESS>wrote:

Description
Please join me in welcoming Manu Seth (@mseth10) as a new committer of
Apache MXNet! Manu has been working on MXNet since 2018 and contributed ~40
patches to MXNet with increasing technical depth. He worked on improving
tests and infrastructure, performance, and more recently on graph
partitioning in CachedOp in the presence of dynamic shape operators, so
that a neural network graph with dynamic shape operators can be just as
performant as a static graph.
Congratulations to @mseth10!
PRs he authored:
https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+author%3Amseth10+
Issues he participated in:
https://github.com/apache/incubator-mxnet/issues?q=is%3Aissue+involves%3Amseth10
Code reviews:
https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+reviewed-by%3Amseth10
Changes

[x] add Manu Seth as a new committer
You can view, comment on, or merge this pull request online at:
https://github.com/apache/incubator-mxnet/pull/19191

-- Commit Summary --

add Manu Seth as a new committer

-- File Changes --
M CONTRIBUTORS.md (2)

-- Patch Links --
https://github.com/apache/incubator-mxnet/pull/19191.patch
https://github.com/apache/incubator-mxnet/pull/19191.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191

Incredible! Well deserved Manu! Good job!
On Sat, Sep 19, 2020, 4:47 PM Sheng Zha<EMAIL_ADDRESS>wrote:

Awesome. Thanks for all the contributions Manu. Looking forward to more for
MXNet community.
On Sat, 19 Sep 2020, 4:15 pm Sheng Zha<EMAIL_ADDRESS>wrote:

Description
Please join me in welcoming Manu Seth (@mseth10) as a new committer of
Apache MXNet! Manu has been working on MXNet since 2018 and contributed
~40
patches to MXNet with increasing technical depth. He worked on improving
tests and infrastructure, performance, and more recently on graph
partitioning in CachedOp in the presence of dynamic shape operators, so
that a neural network graph with dynamic shape operators can be just as
performant as a static graph.
Congratulations to @mseth10!
PRs he authored:

https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+author%3Amseth10+

Issues he participated in:

https://github.com/apache/incubator-mxnet/issues?q=is%3Aissue+involves%3Amseth10

Code reviews:

https://github.com/apache/incubator-mxnet/pulls?q=is%3Apr+reviewed-by%3Amseth10

Changes

[x] add Manu Seth as a new committer
You can view, comment on, or merge this pull request online at:
https://github.com/apache/incubator-mxnet/pull/19191

-- Commit Summary --

add Manu Seth as a new committer

-- File Changes --
M CONTRIBUTORS.md (2)

-- Patch Links --
https://github.com/apache/incubator-mxnet/pull/19191.patch
https://github.com/apache/incubator-mxnet/pull/19191.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191#issuecomment-695368051

Congratulations! @mseth10 Well deserved!

Congrats Manu !!!
JackieWu<EMAIL_ADDRESS>于2020年9月19日周六 下午6:26写道：

Congratulations! @mseth10 Well deserved!
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191#issuecomment-695439047

Congratulations Manu! Well deserved!!
On Sat, Sep 19, 2020 at 9:48 PM Chaitanya Prakash Bapat
<EMAIL_ADDRESS>wrote:

@ChaiBapchya approved this pull request.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191#pullrequestreview-492172001

Hi,
Congrats Manu!
Kind Regards,
Furkan KAMACI
On Sun, Sep 20, 2020 at 11:39 PM Sheng Zha<EMAIL_ADDRESS>wrote:

Congratulations Manu! Well deserved!!
On Sat, Sep 19, 2020 at 9:48 PM Chaitanya Prakash Bapat
<EMAIL_ADDRESS>wrote:

@ChaiBapchya approved this pull request.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:

https://github.com/apache/incubator-mxnet/pull/19191#pullrequestreview-492172001
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/incubator-mxnet/pull/19191#issuecomment-695833491


Workspace Input Field Wrapping Issue

The text wrapping is not working properly on workspace input screen. Attaching a screen recording for reference.

Right! I’m aware of this. Does textfield or basic text field allow to wrap the width ? Not sure but will check, I’m gonna look into intrinsic width and see if that helps. Will keep you posted but it’s not a priority right now. Thanks!

https://stackoverflow.com/questions/67719981/resizeable-basictextfield-in-jetpack-compose

Resolved this @rooparsh


"Could not parse LLM output" when using QianfanChatEndpoint in agent.

System Info
langchian=0.0.352
qianfan=0.2.4
When I tried the usage of agent in this video, I changed the model in it from ChatGpt-3.5-turbo to ERNIE-Bot/ERNIE-Bot-turbo, and the output of agent showed the following error:
> Entering new AgentExecutor chain...
Could not parse LLM output: xxxxxxxxx
Observation: Invalid or incomplete response
Thought: Could not parse LLM output: xxxxx
Observation: Invalid or incomplete response
...

And, ERNIE-Bot/ERNIE-Bot-turbo can't call (llm-math) tool correctly.
I wonder if the problem is a lack of capability in the qianfan model itself, or if there is a problem in the qianfan code.
Or is there something wrong with my usage or other issues?
Who can help?
@danielhjz
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[X] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[X] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
my code
llm = QianfanChatEndpoint(
    temperature=0.000001,
    # model='ERNIE-Bot'
)
tools = load_tools(
    ["llm-math", "wikipedia"],
    llm=llm
)
agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
    handle_parsing_errors=True,
    verbose=True
)
agent("300的1/4是多少？")

code in the video
# code in the video
llm = ChatOpenAI(
    temperature=0
)
tools = load_tools(
    ["llm-math", "wikipedia"],
    llm=llm
)
agent = initialize_agent(
    tools,
    llm,
    agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
    handle_parsing_errors=True,
    verbose=True
)
agent("What is the 25% of 300?")

Expected behavior
Run by ChatOpenAI(temperature=0)
> Entering new AgentExecutor chain...
Thought: We need to calculate 25% of 300, which means we need to multiply 300 by 0.25.

Action:
```
{
  "action": "Calculator",
  "action_input": "300*0.25"
}
```

Observation: Answer: 75.0
Thought:The calculator tool returned the answer 75.0, which is correct.

Final Answer: 25% of 300 is 75.0.

> Finished chain.
{'input': 'What is the 25% of 300?', 'output': '25% of 300 is 75.0.'}

BTW, I found the qianfan official cookbook usage of agents in bce-qianfan-sdk and have the following questions after trying it:

Is it mandatory to use this method for current use of the qianfan model?agent = QianfanSingleActionAgent.from_system_prompt(tools, qianfan_chat_model)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

Can langchain built-in tools be used directly?
Is QianfanChatEndpoint(model="ERNIE-Bot") networked by default?
(This is because when I tried the official docs I found that sometimes the weather results seem to be in real time)


Fixed a number of ",or_greater" for the bug #56324

fix to #56324
Note: CPU_Particles_2d is missing ring emitter, thus the ",or_greater" not checked for properties regarding Ring emitters in that case. The fix is only relevant for the 3.x branch Fixes #56324

The fix is only relevant for the 3.x branch

Similar code is present in master, the same fix does seem required there too.

I'll try to fix it there as well, but that'll have to be tomorrow! It's an honour to work with you all onthe amazing project that Godot is.

Thanks! And congrats for your first merged Godot contribution :tada:

Tank you!


FrameNet corpus reader: rewrite howto

This page is out of date. Rewrite borrowing examples from https://arxiv.org/abs/1703.07438.

Related to #1370

Realistically I may not get around to this before Dec. If anyone else wants to take a crack at it, there are examples at http://people.cs.georgetown.edu/nschneid/p/fnapi.pdf and http://people.cs.georgetown.edu/nschneid/p/fnapi-poster.pdf which can serve as a starting point.

Also examples in https://github.com/nltk/nltk/issues/1370


Upgrade to Webpack 4 (including webpack-dev-server). Add ES6 support via Babel 7.

Fixes #13 Fixes #14

👍


typo: Extensbility -> Extensibility

Hi @nschonni - as PnP PowerShell documentation is auto-generated from the open-source code, this edit would be reset back within a month, unless we actually fix the issue in the originating file, which would be following file and line. Hopefully, you can resubmit the edit towards the actual code files, so that we can get this properly fixed:

https://github.com/SharePoint/PnP-PowerShell/blob/dev/Commands/Provisioning/Site/GetProvisioningTemplate.cs#L141
https://github.com/SharePoint/PnP-PowerShell/blob/dev/Commands/Provisioning/Site/ApplyProvisioningTemplate.cs#L96
https://github.com/SharePoint/PnP-PowerShell/blob/dev/Commands/Provisioning/Tenant/ApplyTenantTemplate.cs#L64

If you do not want to or have time to perform the edit towards correct file, please let us know, so that we can perform this manually.
Closing this PR as we do not accept edits on the PnP PowerShell documentation directly on the docs, as this documentation is autogenerated.


add missing parameters

closes https://github.com/MicrosoftDocs/office-docs-powershell/issues/9771

Docs Build status updates of commit c1cd448:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/New-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

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 936e12f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/New-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

skype/skype-ps/skype/Set-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

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 0a517ce:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/New-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

skype/skype-ps/skype/Set-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

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 b263e60:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

skype/skype-ps/skype/New-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

skype/skype-ps/skype/Set-CsTeamsChannelsPolicy.md
:white_check_mark:Succeeded
View (skype-ps)

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

@JohanFreelancer9

@dariomws @tseward

@tiburd Please merge this PR. Thanks


Possible issue with Access Tokens

Hi, I'm relatively new to Identity Server 4 but I've noticed something odd when going through the quickstart tutorials.
I've created a service with IdentityServer4, an API and an MVC client that accesses that API.
The client was configured the following way:
new Client
    {
        ClientId = "mvc",
        ClientName = "MVC Client",
        AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,

        ClientSecrets =
        {
            new Secret("secret".Sha256())
        },

        // where to redirect to after login
        RedirectUris = { "https://localhost:44313/signin-oidc" },

        // where to redirect to after logout
        PostLogoutRedirectUris = { "https://localhost:44313/signout-callback-oidc" },

        AllowedScopes = new List<string>
        {
            IdentityServerConstants.StandardScopes.OpenId,
            IdentityServerConstants.StandardScopes.Profile,
            "api1"
         },

         AllowOfflineAccess = true
    }

In my MVC Client I have a controller with two actions, one that accesses the API using the TokenClient class and another one that uses HttpContex to retrieve the access token.
Both methods can be seen bellow:
 public IActionResult APICallWithHttpContext()
    {
        var accessToken = HttpContext.GetTokenAsync("access_token").Result;
        var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
        var content = client.GetStringAsync("https://localhost:5001/identity").Result;
        ViewBag.Json = JArray.Parse(content).ToString();
        return View("APICall");
    }

    public IActionResult APICallWithTokenClient()
    {
        // discover endpoints from metadata
        var disco = DiscoveryClient.GetAsync("https://localhost:5000").Result;
        if (disco.IsError)
        {
            Console.WriteLine(disco.Error);
            throw new Exception(disco.Error);
        }

        // request token for clientcredentials client
        var tokenClient = new TokenClient(disco.TokenEndpoint, "mvc", "secret");
        var tokenResponse = tokenClient.RequestClientCredentialsAsync("api1").Result;

        if (tokenResponse.IsError)
        {
            throw new Exception(tokenResponse.Error);
        }

        // call api
        var client = new HttpClient();
        client.SetBearerToken(tokenResponse.AccessToken);
        var response = client.GetAsync("https://localhost:5001/identity").Result;

        if (!response.IsSuccessStatusCode)
        {
            throw new Exception(response.StatusCode.ToString());
        }
        else
        {
            var content = response.Content.ReadAsStringAsync().Result;
            ViewBag.Json = JArray.Parse(content);
        }
        return View("APICall");
    }

In the API all methods can be accessed (no Authorized attribute).
I was just testing if I could access the API from the MVC
client.
Everything seemed to be working until I decided to do another test.
On the IdentityServer application I decided to comment the "api" scope on the client configuration:
AllowedScopes = new List<string>
        {
            IdentityServerConstants.StandardScopes.OpenId,
            IdentityServerConstants.StandardScopes.Profile,
            //"api1"
         },

At this point I noticed something, when using the TokenClient class I got an unauthorized response, as it should be. But, when using the HttpContext, I could still access the API from the MVC client, even though the application didn't have access to that scope.
Shouldn't I have a unauthorized response too?
This seems like a bug, It shouldn't be possible to access the API without access to that scope.
You can check the entire code here:
https://github.com/sophisma/IdentityServerTutorial
The IdentityServer application is inside the IdentityServerTutorial folder, te API is in IdentityServerTutorialAPI and the MVC client is in IdentityServerTutorialMVCClient.
The actions that access the API are inside the HomeController in the MVC client.

Is this intended?
https://github.com/sophisma/IdentityServerTutorial/blob/master/IdentityServerTutorialAPI/Controllers/IdentityController.cs#L11

Thank you for answering.
Yes, I commented the Authorized attribute because I wanted to check only the client access part, independently of the user being logged in or not.
Of course the result will be empty as there is no User.
With TokenClient it validates the "api" scope with HttpContext it doesn't.
Sorry if I'm making very basic questions but this is new to me.

I can't follow - sorry. I would recommend you have a look at the tokens you are getting with e.g. https://jwt.io
If it contains an audience of api1 - you will get access to the API - if not - not. Of course this is only enforced when the Authorize attribute is present.
That said
This seems to be a general question about IdentityServer - not a bug report or a feature request.
Please use one of the our free or commercial support options
See here for more details.
Thanks!

Sorry, I got this wrong.
Somehow I thought that the IdentityServer middleware was responsible for allowing/dening access to the clients and the Authorize attribute just authorized the Users.


Update ksproperty-cameracontrol-extended-eyegazecorrection.md and sample code to match new DDI spec

Modified statements about bit logic that STARE needs to be set together with ON to make effect, and updated sample code, to match new DDI spec.

@barrygolden @Sudhaushu @kasumman @NaveenThum This is the PR to update the bit logic in eyegazecorrection msdn and sample code, similar to the just completed backgroundsegmentation one. Please review and sign off if everything looks okay. Thanks!

@LPBourret is added to the review. #Closed

@j-leungyy is added to the review. #Closed

@chrilaMSFT is added to the review. #Closed

@jiteshkris is added to the review. #Closed

@microkatz is added to the review. #Closed

@absubba is added to the review. #Closed

@strongstrongyiwen, let me know when reviewers have signed off and this PR is ready to merge.

@strongstrongyiwen, let me know when reviewers have signed off and this PR is ready to merge.

Thanks Barry, this PR is ready to merge. @barrygolden


Date widget: fix setting state value to binding value on subsequent load of widget

Describe your changes
Screenshots [Optional]
https://github.com/EnsembleUI/ensemble-react/assets/32386713/3e0092b1-96ab-41ba-8038-2fd88f98ab85
https://github.com/EnsembleUI/ensemble-react/assets/32386713/904211db-5384-4871-806a-dc5ed38e47d5
Issue ticket number and link
Closes #
Checklist before requesting a review

[x] I have performed a self-review of my code
[ ] I have added tests
[x] I have added a changeset pnpm changeset add
[ ] I have added example usage in the kitchen sink app

@anserwaseem can we connect about this ?


pseudo-lidar stereo

Hello,
How did you generate pseudo-lidar stereo from stereo depth map?
Thank you.

Hi,

Hi,
We follow Pseudo-LiDAR for generating the pseudo point clouds.


Fix download sources if option is enabled test in DownloadIntelliJSpec

The download sources if option is enabled test was failing with:

Condition not satisfied:

cacheDir.list() as Set == ['cbeeb1f1aebd4c9ea8fb5ab990c5904a676fc41a', '6becac80419981b057df9cf0c62efcd94e6075a8', '116a3a8911c3a4bd49b2cb23f9576d13eaa721df'] as Set
|        |             |
|        |             false
|        [cbeeb1f1aebd4c9ea8fb5ab990c5904a676fc41a, 6becac80419981b057df9cf0c62efcd94e6075a8]
/Users/hsz/Projects/JetBrains/gradle-intellij-plugin/build/testGradleHome/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIC/2020.1

Condition not satisfied:

cacheDir.list() as Set == ['cbeeb1f1aebd4c9ea8fb5ab990c5904a676fc41a', '6becac80419981b057df9cf0c62efcd94e6075a8', '116a3a8911c3a4bd49b2cb23f9576d13eaa721df'] as Set
|        |             |
|        |             false
|        [cbeeb1f1aebd4c9ea8fb5ab990c5904a676fc41a, 6becac80419981b057df9cf0c62efcd94e6075a8]
/Users/hsz/Projects/JetBrains/gradle-intellij-plugin/build/testGradleHome/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIC/2020.1

	at org.jetbrains.intellij.DownloadIntelliJSpec.download sources if option is enabled(DownloadIntelliJSpec.groovy:35)

I'm not 100% sure if it's expected, so it's up to you if it should be merged.

how do you run tests? they are green on my machine and on CI

I've been running it from the IDE - it was always failing but after a n attempt and Gradle cache clearing it works - probably something wasn't downloaded properly. Everything with current tests is fine, closing. 🙃

it should be run using gradle (if from IDE, then with gradle delegation to cacheIntolerant task). in this case the test will run the first time and skipped all other times


How to encrypt string with  RsaCtfTool and special key

Hi,
RsaCtfTool is not designed for encryption. It can recover a key under certains conditions, decrypt a string without the key, but it is not created for encryption.


standard parameters for deconvolution

Hi,
I am trying to integrate mzdeistope in my analysis pipeline for deconvoluting middle down spectra of antibodies. Now I've got it working but I was wondering if you can give me some recommendations for 'standard parameters'/starting points for the high level API (deconvolute_peaks function). I've browsed through the python documentation and managed to come up with some numbers but not everything is completely clear to me.
Many thanks in advance!
Rien

Hello,
By Python documentation, you were reading about https://github.com/mobiusklein/ms_deisotope? ms_deisotope and mzdeisotope use the same core algorithm, but they're not actually linked. mzdeisotope is still a work in progress as all the parts get stress-tested and I haven't written any Python bindings for it yet. mzdeisotope is also missing a lot of features ms_deisotope has.
Choosing parameters for deconvolution is different for MS1 and MS2, depends upon the signal characteristics of your instrument (e.g. TOF vs Orbitrap), and the trade-off between sensitivity and specificity + runtime. For example, you might not have efficient fragmentation in MS2 so you prefer to accept more noise solutions (peaks that lack strong isotopic patterns) because the real isotopic patterns in the same score range will be more likely to be matched later than the noisy ones. Conversely, you might want to be conservative about how many MS1 solutions you accept because they take more work to filter through.
Suggestions for larger ions:

Use the Peptide isotopic model, it is the Senko Averagine formula.
Use error_tolerance = Tolerance::PPM(20.0). The algorithm only works with high resolution MS so there's no point going higher.
Set your charge range based upon your familiarity with your data, or when in doubt go high and then enable use_quick_charge = true and let the
Scoring and Filtering:

For MS1, use the PenalizedMSDeconv with an error_tolerance of 0.02 and a penalty_factor of 1.0 or 2.0, and a MaximizingFitFilter with a threshold between 10.0 and 20.0.
For MS2, use the same, but lower the threshold to between 5.0 and 10.0.

For max_missed_peaks, choose 1 or 2 for MS1, and 1 for MS2
For isotopic pattern generation:

Use truncate_after = 0.95 for MS1 and 0.8 for MS2. Alternatively, you can set this to 0.999 and set incremental_truncation to those values and let the algorithm try all possible configurations between those, but I haven't tested this extensively at scale. This controls how much of the complete isotopic pattern to try to match. Some truncation is necessary because isotopic patterns may get cut off by noise filtering or by the instrument (e.g. Orbitrap denoising), and missing peaks penalize the algorithm.
Use ignore_below = 0.001. This is the default.
Use charge_carrier = PROTON. This is the default

use_quick_charge is generally good to set to true, but if your monoisotopic peak is not detectable, then the algorithm will probably fail to select the correct charge.

I'll add more documentation at some point soon. Please feel free to ask more questions if this didn't help.

I was indeed referring to the ms_deisotope github. Many thanks for your help this helped me a ton


Extracting Opus audio - bitrate ->  videoID ignores video-quality setting, one ID "takes" the argument and gets encoded in bitrate

First I like to thank a big thank you for coding youtube-dl, I really appreciate your work.  I researched and I don't get it.
Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.11.23. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x ] I've verified and I assure that I'm running youtube-dl 2018.11.23

Before submitting an issue make sure you have:

[x ] At least skimmed through the README, most notably the FAQ and BUGS sections
[ x] Searched the bugtracker for similar issues including closed ones
[ x] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x ] Bug report (encountered problems with youtube-dl)

Log:
./youtube-dl.exe DLzxrzFCyOs -x --audio-format opus --audio-quality 32k -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['DLzxrzFCyOs', '-x', '--audio-format', 'opus', '--audio-quality', '32k', '-v']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2018.11.23
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17763
[debug] exe versions: ffmpeg N-91473-gc5329d64b1, ffprobe N-91473-gc5329d64b1
[debug] Proxy map: {}
[youtube] DLzxrzFCyOs: Downloading webpage
[youtube] DLzxrzFCyOs: Downloading video info webpage
[youtube] {18} signature length 40.41, html5 player vfl-6ni-d
[youtube] {36} signature length 40.41, html5 player vfl-6ni-d
[youtube] {17} signature length 40.41, html5 player vfl-6ni-d
[youtube] {271} signature length 40.41, html5 player vfl-6ni-d
[youtube] {137} signature length 40.41, html5 player vfl-6ni-d
[youtube] {248} signature length 40.41, html5 player vfl-6ni-d
[youtube] {136} signature length 40.41, html5 player vfl-6ni-d
[youtube] {247} signature length 40.41, html5 player vfl-6ni-d
[youtube] {135} signature length 40.41, html5 player vfl-6ni-d
[youtube] {244} signature length 40.41, html5 player vfl-6ni-d
[youtube] {134} signature length 40.41, html5 player vfl-6ni-d
[youtube] {243} signature length 40.41, html5 player vfl-6ni-d
[youtube] {133} signature length 40.41, html5 player vfl-6ni-d
[youtube] {242} signature length 40.41, html5 player vfl-6ni-d
[youtube] {160} signature length 40.41, html5 player vfl-6ni-d
[youtube] {278} signature length 40.41, html5 player vfl-6ni-d
[youtube] {140} signature length 40.41, html5 player vfl-6ni-d
[youtube] {171} signature length 40.41, html5 player vfl-6ni-d
[youtube] {249} signature length 40.41, html5 player vfl-6ni-d
[youtube] {250} signature length 40.41, html5 player vfl-6ni-d
[youtube] {251} signature length 40.41, html5 player vfl-6ni-d
[debug] Invoking downloader on 'https://r1---sn-oxujvavbox-jboe.googlevideo.com/videoplayback?initcwndbps=1302500&c=WEB&pl=18&requiressl=yes&mime=audio%2Fwebm&keepalive=yes&source=youtube&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&itag=171&expire=1543538622&gir=yes&mm=31%2C29&mn=sn-oxujvavbox-jboe%2Csn-4g5e6nsk&dur=212.585&mt=1543516938&mv=m&ms=au%2Crdu&lmt=1538219864361466&clen=3651081&ip=<IP_ADDRESS>&key=yt6&ipbits=0&fvip=2&txp=5511222&id=o-AC4ePIttFumUamSJfhA8vARewRFQcJAzZMzeMKE2QWTa&ei=XjMAXIO6JcmTgQfTvayQBA&signature=6861ABD58FD104E3DB82E98CFE8E94D3717B3C5F.08BA5C3D9935163D5ACBCC3C1467B7A2A53F74AE&ratebypass=yes'
[download] Destination: Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.webm
[download] 100% of 3.48MiB in 00:01
[debug] ffmpeg command line: ffprobe -show_streams "file:Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.webm"
[ffmpeg] Destination: Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.opus
[debug] ffmpeg command line: ffmpeg -y -i "file:Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.webm" -vn -acodec libopus "-b:a" 32k "file:Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.opus"
Deleting original file Rick Astley - Never Gonna Give You Up [HQ]-DLzxrzFCyOs.webm (pass -k to keep)

-vn -acodec libopus "-b:a" 32k
So the bitrate argument 32k is recognized and the opus file is encoded
vs:
youtube-dl.exe 9DxeMowxDTU -x --audio-format opus --audio-quality 32k -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['9DxeMowxDTU', '-x', '--audio-format', 'opus', '--audio-quality', '32k', '-v']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2018.11.23
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17763
[debug] exe versions: ffmpeg N-91473-gc5329d64b1, ffprobe N-91473-gc5329d64b1
[debug] Proxy map: {}
[youtube] 9DxeMowxDTU: Downloading webpage
[youtube] 9DxeMowxDTU: Downloading video info webpage
[debug] Invoking downloader on 'https://r2---sn-oxujvavbox-jboz.googlevideo.com/videoplayback?mime=audio%2Fwebm&signature=1D782380ADC244D66A14C11291A8E0E3A86EE5AB.6F124D896EEBC9FBDF3D1DFBD6BDC44B28D73C72&clen=102948313&sparams=clen%2Cdur%2Cei%2Cgcr%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Crequiressl%2Csource%2Cexpire&fvip=2&txp=5511222&pcm2cms=yes&initcwndbps=1110000&gir=yes&pl=18&source=youtube&gcr=de&c=WEB&requiressl=yes&mn=sn-oxujvavbox-jboz%2Csn-4g5edn7l&mm=31%2C29&keepalive=yes&mv=m&mt=1543516938&ms=au%2Crdu&ei=mzMAXO6IM86i1gLAlpGYAQ&ipbits=0&expire=1543538684&key=yt6&ip=<IP_ADDRESS>&lmt=1543052929515147&dur=7704.881&itag=251&id=o-AP2-1BpmhDXcqGYgF2Yz7noBtyHqHBwnMvo4MYbORPEQ&ratebypass=yes'
[download] Destination: Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.webm
[download] 100% of 98.18MiB in 00:10
[debug] ffmpeg command line: ffprobe -show_streams "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.webm"
[ffmpeg] Destination: Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.opus
[debug] ffmpeg command line: ffmpeg -y -i "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.webm" -vn -acodec copy "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.opus"
Deleting original file Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.webm (pass -k to keep)

-vn -acodec copy
Description of your issue, suggested solution and other information
I use the same command-line arguments, with the video 9DxeMowxDTU I can change the --audio-quality to what every I want 0-9 or bitrates, it always stays the same (-acodec copy), other formats like ,mp3, ,acc "take" the quality accordingly.
Why does this happen with this video and/or only with opus?
Further research:
I get that "-acodec copy" would be ok if the source-webm-file would be the same bitrate as the parameter for the audio-quality, but it isn't (and I want to change the quality no matter what).
If I download -f mp4 the --audio-quality parameter IS passed on. Files with *.webm same to get the copy parameter no matter would audio-quality you choose for the opus file:
./youtube-dl.exe 9DxeMowxDTU -f 22 -x --audio-format opus --audio-quality 64k -k -v
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['9DxeMowxDTU', '-f', '22', '-x', '--audio-format', 'opus', '--audio-quality', '64k', '-k', '-v']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2018.11.23
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17763
[debug] exe versions: ffmpeg N-91473-gc5329d64b1, ffprobe N-91473-gc5329d64b1
[debug] Proxy map: {}
[youtube] 9DxeMowxDTU: Downloading webpage
[youtube] 9DxeMowxDTU: Downloading video info webpage
[debug] Invoking downloader on 'https://r2---sn-oxujvavbox-jboz.googlevideo.com/videoplayback?fvip=2&id=o-AEeJwnKvGuAWV-HM60aPBF_90WEUOtp4nutya21FN5Bz&ei=FDsAXJHSBdiB8gPd6oOIDA&ms=au%2Crdu&mt=1543518844&mv=m&pl=18&source=youtube&mm=31%2C29&mn=sn-oxujvavbox-jboz%2Csn-4g5e6nls&ratebypass=yes&ip=<IP_ADDRESS>&itag=22&dur=7704.915&gcr=de&mime=video%2Fmp4&signature=6728E0A3271078BE3D38A3D11F45B32373941A30.890BDBC91EAB9871EE69B4777CCE9C3E3DE69D7B&expire=1543540596&ipbits=0&requiressl=yes&lmt=1542967840595231&sparams=dur%2Cei%2Cgcr%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&c=WEB&txp=5532432&key=yt6&initcwndbps=1058750'
[download] Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.mp4 has already been downloaded
[download] 100% of 732.97MiB
[debug] ffmpeg command line: ffprobe -show_streams "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.mp4"
[ffmpeg] Destination: Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.opus
[debug] ffmpeg command line: ffmpeg -y -i "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.mp4" -vn -acodec libopus "-b:a" 64k "file:Joe Rogan Experience #1205 - Jake 'The Snake' Roberts & Tony Hinchcliffe-9DxeMowxDTU.opus"

Conversion will only happen when original format does not match --audio-format. DLzxrzFCyOs bestaudio vorbis => conversion. 9DxeMowxDTU bestaudio opus => no conversion.


Hang from apt_repository command

I found when running a playbook that included apt_repository:
- name: add nginx ppa
  become: yes
  apt_repository: repo='ppa:nginx/stable' update_cache=yes

that it hangs on that step and makes no further progress, but only on newish versions of the repo. I did a bisect and found that 7a061fe was the first bad commit, and that it works ok on 9079176 and below.

Thanks for the bisect, priceless! It's 2am here, but let's see if this can be fixed real quick.. otherwise, will fix it tomorrow. Thanks for reporting!

Related: the unfinished last part of https://github.com/dw/mitogen/issues/76 would have caused this to be a crash rather than a hang.
The target context is disconnecting, most likely due to a crash. Still digging.


Add continuous trigger log

It should keep a log of each trigger firing. It can probably be stored similarly to how stats are stored to minimize performance impact.

We can also just used UNLOGGED tables or something.

So I guess the question is do we leave triggers in and give them slightly special behavior, such as writing to a trigger log? Or do we just roll this into a transform on an output stream, in which case users are free to do whatever they want with the output?

I think we should roll it into a transform. Logging triggers should just
have a UDF that writes to a stream as well.
On Sunday, July 24, 2016, Derek Nelson<EMAIL_ADDRESS>wrote:

So I guess the question is do we leave triggers in and give them slightly
special behavior, such as writing to a trigger log? Or do we just roll this
into a transform on an output stream, in which case users are free to do
whatever they want with the output?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pipelinedb/pipelinedb/issues/1556#issuecomment-234800723,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0EL1voxCsqAzOZqqhxpkqLZpcIfaZ_ks5qY807gaJpZM4IvNHQ
.

--
Usman

I agree, let's rip them out and just add pipeline_log_stream_insert or something like that. Technically there is no reason we can't support regular triggers on non-SW matrels, but it seems cleaner to only do this one way via transforms since they're more general.

I agree. We should rip out triggers completely from continuous queries.

Since it's a UDF, we don't really have to do any work. People can write a PLpgSQL function to get the desired behavior when a trigger is fired.


WorldEnvironment in Canvas in 2D glitches preview and editor UI

Godot version
4.0dev (ae5668f81e)
System information
Windows 10, AMD Radeon 6800 XT (22.3.1), Vulkan
Issue description
When trying to do post-proccessing via the WorldEnvironment node in 2D, choosing "Canvas" as the background mode will glitch the preview screen and the editor UI.
Before:

After:

Steps to reproduce
Switch the background mode to "Canvas" and observe.
Minimal reproduction project
Godot4_WorldEnvironment2D_Bug.zip

Duplicate of https://github.com/godotengine/godot/issues/52467.


Numpy missing in requirements.txt

steps to reproduce:
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
ollecting resampy>=0.1.0 (from librosa>=0.4.3->-r requirements.txt (line 3))
Downloading resampy-0.1.4.tar.gz (442kB)
100% |████████████████████████████████| 450kB 2.0MB/s
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/private/var/folders/0v/h83f7t897wnfzkh127v1y0qh3f10dr/T/pip-build-yPf939/resampy/setup.py", line 6, in
import numpy as np
ImportError: No module named numpy

Forget it, it comes as a tensorflow requirement :)