Extension of Electrical Equivalent Circuits (EEC) to time harmonics

The EEC implemented in Pyleecan (voltage to current transfer function) deal with fundamental values of voltage / currents, but when supplied with PWM or when introducing back emf harmonics the equivalent circuit does not work.
Extending EEC to time harmonics requires first to introduce skin effect and inductance factors for R, L elements depending on shape of conductor (round, square), without proximity effects for the moment.
Skin effects would also allow to improve winding loss calculations.

Hello,
I want to calculate magnetic fluxes Phid, Phiq (over time) from three-phase frame (PhiA, PhiB, PhiC), with Park transformation. Then, I load these fluxes in SciDataTool variable form (DataTime). Could I output directly the phase, module, frequency of their harmonics by "get_harmonics"?
Best regards
Sijie
def comp_EMF_harmonics(Phi_A, Phi_B, Phi_C,f, fs):
Phi_d=sqrt(2/3)*(Phi_A*cos(delta)+Phi_B*cos(delta-2*pi/3)+Phi_C*cos(delta+2*pi/3))
Phi_q=sqrt(2/3)*(-Phi_A*sin(delta)-Phi_B*sin(delta-2*pi/3)-Phi_C*sin(delta+2*pi/3))
Phi_h=sqrt(2/3)*1/2*(Phi_A+Phi_B+Phi_C)

time_axis = DataLinspace(
    name="time",
    unit="s",
    initial=0,
    final=(len(Phi_d) - 1) / fs,
    number=len(Phi_d),
    include_endpoint=True,
)
Phi_d_data = DataTime(
    name="Phi_d",
    symbol="Phi_d",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_d,
)

Phi_q_data = DataTime(
    name="Phi_q",
    symbol="Phi_q",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_q,
)
Phi_h_data = DataTime(
    name="Phi_h",
    symbol="Phi_h",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_h,
)

# Number of harmonics
N_harm=2000

Phi_d_fft=Phi_d_data.get_harmonics(N_harm)
Phi_q_fft=Phi_q_data.get_harmonics(N_harm)
Phi_h_fft=Phi_h_data.get_harmonics(N_harm)

v_d=-2*pi*f*Phi_q_fft.values*1j
v_q=2*pi*f*Phi_d_fft.values*1j

return v_d, v_q

Hello,
New release about comp_BEMF_harmonics:
def comp_BEMF_harmonics(Phi_A,Phi_B,Phi_C, delta, time):
"""
Compute the back electromotive force harmonics from magnet fluxes (PMSM)
Parameters
----------
Phi_A: Magnetic flux of phase A
Phi_B: Magnetic flux of phase B
Phi_C: Magnetic flux of phase C
delta: Rotor angular position
time: time vector

"""

#Park transformation (keep the amplitude factor=2/3)
Phi_d=2/3*(Phi_A*cos(delta)+Phi_B*cos(delta-2*pi/3)+Phi_C*cos(delta+2*pi/3))
Phi_q=2/3*(-Phi_A*sin(delta)-Phi_B*sin(delta-2*pi/3)-Phi_C*sin(delta+2*pi/3))
Phi_h=2/3*1/2*(Phi_A+Phi_B+Phi_C)

# Create time vector in form of DataLinspace
time_axis = DataLinspace(
    name="time",
    unit="s",
    initial=0,
    final=time[-1],
    number=len(time),
    include_endpoint=True,
)

# Load Phi into DataTime
Phi_A_data = DataTime(
    name="Phi_A",
    symbol="Phi_A",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_A,
)

Phi_B_data = DataTime(
    name="Phi_B",
    symbol="Phi_B",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_B,
)
Phi_C_data = DataTime(
    name="Phi_C",
    symbol="Phi_C",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_C,
)

Phi_d_data = DataTime(
    name="Phi_d",
    symbol="Phi_d",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_d,
)

Phi_q_data = DataTime(
    name="Phi_q",
    symbol="Phi_q",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_q,
)
Phi_h_data = DataTime(
    name="Phi_h",
    symbol="Phi_h",
    unit="Wb",
    normalizations=None,
    axes=[time_axis],
    values=Phi_h,
)

# Phi_q_data.plot_2D_Data("time")
# Phi_q_data.plot_2D_Data("freqs", type_plot='curve')
# plt.show()

# Calculate FFT for Phi on the dq0 frame
d = Phi_d_data.get_along("freqs")
freqs_d = d['freqs']
complx_d = d['Phi_d']

q = Phi_q_data.get_along("freqs")
freqs_q = q['freqs']
complx_q = q['Phi_q']

h = Phi_h_data.get_along("freqs")
freqs_h = h['freqs']
complx_h = h['Phi_h']

# Calculate back-emf (E) on dq0 frame
E_d=-2*pi*freqs_q*complx_q+2*pi*freqs_d*complx_d*1j
E_q=2*pi*freqs_d*complx_d+2*pi*freqs_q*complx_q*1j
E_h=2*pi*freqs_h*complx_h*1j

return E_d, E_q, E_h, freqs_d, freqs_q, freqs_h

Does it correspond with your needs? especially for the input variables of the function?
Best regards,
Sijie

Hello Pierre,
I wasn't aware of the ELUT thing until now. Have you been working on this issue recently?
I use something similar, i.e. a "MagLUT" and some extended EEC with table interpolation. So we may share some ideas if you like.
BR S

Heb Sebastian,
Yes we are working on Electrical Look Up Table right now. The idea is to include magnetizing inductances function of currents (Lm(I) for SCIM, Phid and Phiq(Id,Iq) for PMSM) and have an Equivalent Electrical Circuit to feed the models with voltage instead of currents. The ELUT makes the V to I transfer function while the MagLUT makes the I to B transfer function.
What have you done so far on your side ?

Hello,
is there already a branch on your work?
I got a MagLUT that is essentially a special XOutput of a mulit simulation over a grid of some reasonable d- and q-axis current densities. (I use current densities to be independent of the actual winding number of turns.) So this is my 'fluxlinkage over current' table. I also use this data to calculate iron losses, etc.
The interpolated table data are then used in some eec to calculate the machine operational parameters, e.g. to get the well known efficiency maps. So at the moment I only calculate effective values. There is are no harmonics incluced. On the other hand I have no explicit transfer function V to I. I use some optimization to solve the eec. So I can impose/constrain V and/or I.
Since you may not only want to solve for effective values but also harmonics, how do you plan to realize the transfert function?
Will it be time domain or frequency domain? For the magnetizing functions, they should be very similar to my MagLUT.
If you got something ready, I'm very interested to see :-)
BR S

Hello @SebGue,
We are currently working on the EEC branch of EOMYS-public: https://github.com/EOMYS-Public/pyleecan/tree/EEC
This branch also introduces many improvements on how to handle time/angle axes + periodicities, because we are also working on EEC for on-load SCIM (inclduing non-zero slip).
Concerning what we are doing for EEC of PMSM, the first step is to implement a method in OutMag to calculate phi_d and phi_q from phi_wind for a given Id/Iq point and return it as a DataFreq.
Then we'll build the ELUT the same as you did, i.e. a variable load simulation for given Id/Iq list and in the end we apply the method to calculate Phi_d/Phi_q from all phi_wind in the output_list.
Finally we get Ld/Lq function of id/iq by derivation of Phi_d and Phi_q, and back-emf for Id=Iq=0 Arms.
From this we can run the EEC and deduce current fundamental and harmonics, e.g. due to PWM harmonics.
Do you plan to share your code on how to interpolate in between a grid of Id/Iq currents and how to solve EEC using optimization ?
I ask specifically about the optimization because we are also working on using the ELUT to calculate maximum torque per ampere (MTPA) strategy, and I could find a solution but it would be cleaner by solving an optimization problem and I couldn't manage to make it work.
We are going to make a clean pull request of our branch and explain all changes.
Best regards,
Emile

Hello @EmileDvs,
This is a really huge topic with lots of aspects. In general I think it would make sense to not having 2 approaches for the same 'issue'. So I'm totally fine if we bring our ideas/code together. The question is how we could do that efficiently.
For the EEC of PMSM, why DataFreq? Is it for the rotor angle?
Is @Superomeg4 also involved in this. I started some discussion with him on something related, i.e. some idea how to hopefully improve the interpolation on the ELUT. Nevertheless I can share the grid interpolation and also the optimization. Just tell me where/how.
Do you have any praticular reason using Ld/Lq instead of the flux linkage directly? (Btw. for completeness you got to use the coupling inductance Ldq = Lqd too.) In my opinion the equation system will be more simple using flux linkage.
One feature of my MagLUT, I missed to tell but that seems important to me, is that it is independent of some machine properties, e.g. actual length, number of turns, ... So I can reuse the table if I change lenght or winding without costly recalculation of the table.
For the optimization, maybe you can already give me your EEC/MTPA code and I adapt my solution to it?
I'm really interessted in your ideas / implementation.
Best regards, Sebastian

Hello @SebGue,
Thanks for your answer, we are indeed several persons working on this topic, Superomeg4 included.
For me the most efficient way to merge our approaches is:

on our side we continue to work on EEC branch (cf link on previous post), which contain all the changes that we have already done/planned to do. As said before, we will summarize these changes in a global issue (#452, to be completed) for more clarity.
we create a branch on Eomys-Public based on EEC branch, let's say EEC_merge for example
you implement the new features you want to share in EEC_branch and if it requires some rework/merge with the existing models in EEC branch we'll work on this together. Maybe the best here is to present the main changes you want to add in a new issue
make a pull request of EEC_merge to pyleecan/master that link the global issue #452 and the new issue you created with your improvements

Please let us know if you are ok with this,
Best regards,
Emile

@SebGue, here are also some answers to your other questions/remarks:

For the EEC of PMSM, why DataFreq? Is it for the rotor angle?

Yes I see your point, to be honest I am still not sure for now if we should save in time or frequency domain in ELUT. It's mainly a question of optimization, i.e. in which domain we will need more these quantities. And since all EEC for now are in frequency domain, it seems more optimal to me to store data as DataFreq. Anyway there is an equivalence between DataTime and DataFreq. Besides, we have introduced new normalizations in SciDataTool that enable to switch any quantity from time to rotor angle vectors, accounting for speed (non necessarily constant) and for initial rotor position.

Do you have any praticular reason using Ld/Lq instead of the flux linkage directly? (Btw. for completeness you got to use the coupling inductance Ldq = Lqd too.) In my opinion the equation system will be more simple using flux linkage.

Yes the aim is to calculate PWM currents from PWM voltages at variable frequency so the inductance is more suitable to get variable frequency impedance. You are completely right about calculating coupling inductances and the assumption Ldq=Lqd looks fine to me. We will probably use the dq model developed equations 4/5/6:

( reference https://www.researchgate.net/publication/335828937_Structure-borne_Noise_at_PWM_Excitation_using_an_Extended_Field_Reconstruction_Method_and_Modal_Decomposition)

One feature of my MagLUT, I missed to tell but that seems important to me, is that it is independent of some machine properties, e.g. actual length, number of turns, ... So I can reuse the table if I change lenght or winding without costly recalculation of the table.

Really interesting it is definitely a pyleecan feature that would be powerful for optimization/parameter sweep.

For the optimization, maybe you can already give me your EEC/MTPA code and I adapt my solution to it?

The EEC code is already in EEC branch, however MTPA is a script that I built before the work we did on the branch so I have to adapt it the new changes. I'll mention you whenever it is ready :)
Best regards,
Emile

Hello @EmileDvs ,
I think we will get wrong results, if we use this equations system. The reason is, that they use the differential (or incremental) inductance in the 'w_e * L' terms, while it should be the absolute inductance there. Do you have any particular reason to use this system? Otherwise we should derive the equations ourself and to our needs.
Best regards, Sebastian

@EmileDvs
I'm okay with your approach. But I got one wish :-) Maybe you can do a mini roadmap of who is doing which part and when.
This is since I don't know where to start. E.g. the EEC seems to be the same as (long) before (except for skin eff.).

issue solved with PR #464 and PR #481


upgrading qtpy from 1.1.2 to 1.2.0 breaks spyder with qt4

Description of your problem
Spyder crashes if I upgrade qtpy from 1.1.2 to 1.2.0
Originally I posted in the spyder-ide repository, but I was redirected here.
https://github.com/spyder-ide/qtpy/issues/95
What steps will reproduce the problem?

pip install -U qtpy (installs version 1.2.0 and breaks Spyder)
pip install qtpy==1.1.2 (everything working again)

What is the expected output? What do you see instead?
Spyder doesn't start correctly, showing the following message:
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/app/mainwindow.py", line 3001, in main
mainwindow = run_spyder(app, options, args)
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/app/mainwindow.py", line 2905, in run_spyder
main.setup()
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/app/mainwindow.py", line 869, in setup
self.projects = Projects(self)
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/plugins/projects.py", line 71, in init
self.setup_project(self.get_active_project_path())
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/widgets/projects/explorer.py", line 226, in setup_project
show_all=self.show_all)
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/widgets/explorer.py", line 195, in setup
self.common_actions = self.setup_common_actions()
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/widgets/projects/explorer.py", line 55, in setup_common_actions
self.toggle_hscrollbar(self.show_hscrollbar)
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/spyder/widgets/projects/explorer.py", line 70, in toggle_hscrollbar
self.header().setResizeMode(QHeaderView.ResizeToContents)
File "/home/developer/.virtualenvs/dev3/lib/python3.5/site-packages/qtpy/_patch/qheaderview.py", line 83, in setResizeMode
raise Exception('setResizeMode is only available in Qt4. Use '
Exception: setResizeMode is only available in Qt4. Use setSectionResizeMode instead.

Versions and main components

Spyder Version: 3.0.2
Python Version: 3.5.2
Operating system: Ubuntu 16.04
Qt4 related info: Qt 4.8.7, PyQt 4.11.4, SIP 4.18.1

Dependencies
jedi >=0.8.1     :  0.9.0 (OK)
matplotlib >=1.0 :  1.5.3 (OK)
nbconvert >=4.0  :  4.2.0 (OK)
numpy >=1.7      :  1.11.2 (OK)
pandas >=0.13.1  :  0.19.1 (OK)
pep8 >=0.6       :  1.7.0 (OK)
psutil >=0.3     :  5.0.0 (OK)
pyflakes >=0.6.0 :  1.3.0 (OK)
pygments >=2.0   :  2.1.3 (OK)
pylint >=0.25    :  1.6.4 (OK)
qtconsole >=4.2.0:  4.2.1 (OK)
rope >=0.9.4     :  0.9.4-1 (OK)
sphinx >=0.6.6   :  1.4.8 (OK)
sympy >=0.7.3    :  1.0 (OK)

@rlaverde could you work on this one?

We need this for today or tomorrow morning at most @rlaverde :-)


Krusna!!! Add your code!!!

Get your solutions from leetcode. It shows you all the problems you solved and the code

Good job!

done


When using .data to update, then .remove to remove a row, id selector can return stale data, or fails

http://jsfiddle.net/h5uw1oL6/4/
This only seems to happen with this particular chain of events, update a row using the .data() api call, then .remove() it.  After this, using the id returns the wrong row (seems to be the following one) or sometimes will return a collection with a length of 1, but will raise an exception if .node() is called on it.
Edit:  I just realized that this is actually because of how I'm updating the row, using an array.  Seems there's an internal field of some sort (DT_RowId) that makes up part of the data, and if that's not passed in, it seems to get cleared out internally by the call to .data().  Would it make sense to have the id only update if the DT_RowId key exists?

This is a good one - thanks! You are correct, its due to the data update. I've made a change locally that will insert the id into the array if you update the row with a plain array, just as it does when the row is original read, which addresses this.
I'll commit it shortly when I've written a test case.

Fixed here.
Thanks again


Doesn't redis-cluster  support pipeline?

when I use the redis cluster and pipeline, there is the error:
dial tcp :6379: getsockopt: connection refused

That means that Redis is not running. Also it is unlikely that Redis Cluster is listening on :6379 - that is normal/classic Redis port. Please use stackoverflow for questions like that.


Add and use another Github repo to specify the native module list and their PrestaShop compatibility range

This new repo will be updated automatically by the distribution API but can be manually updated if we discover later a compatibility issue. This change should then trigger an update of the distribution API.

Fixed by #9


Getting "Text content does not match server-rendered HTML" on beta version

Hi,
Updated to beta from v1 and getting 2 errors when opening site:
"Text content does not match server-rendered HTML"
and
"There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering"
Warning: Text content did not match. Server: "Last updated on May 1, 2022" Client: "Last updated on 1 May 2022"
div
main
article
Body@webpack-internal:///./node_modules/nextra-theme-docs/dist/index.js:2227:12

"nextra": "^2.0.0-beta.6",
"nextra-theme-docs": "^2.0.0-beta.6",

Will be fixed in next release

Error: There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering.

@B2o5T hey, should this one also be fixed? still getting this on beta 11

@chilikasha needs more details where error occurs or reproduction, examples work fine

@B2o5T unfortunately I haven't pushed these changes, still working on them. but can provide the following details:
_app.js file
import 'nextra-theme-docs/style.css'
import '../public/style.css'
import { usePanelbear } from '@panelbear/panelbear-nextjs'

export default function Nextra({ Component, pageProps }) {
  usePanelbear('JHnEG7vc0FG', {
    debug: false
  })
  const getLayout = Component.getLayout || ((page) => page)
  return getLayout(<Component {...pageProps} />)
}

package.json
"next": "^12.1.6",
    "nextra": "^2.0.0-beta.11",
    "nextra-theme-docs": "^2.0.0-beta.11",
    "react": "^18.0.0",
    "react-dom": "^18.0.0"

I do yarn next and open localhost:3000. usually it opens without any errors. but then I just refresh the page and result below on this video: https://jmp.sh/vS6p0Ez
please let me know if I can provide smth else

@chilikasha have you tried to comment usePanelbear hook?

@B2o5T just tried, no difference.
what I've mentioned is: I have some span elements (visually look like tags) in mdx files. code is like:

macOSfree

if I remove these divs from an mdx file, then I don't see the errors (though they are present on the pages where similar divs are left)

I suck at front-end dev, but guess I've fixed that by moving this span to a component

@chilikasha just tied add
macOSfree
 and didn't receive some error.
Could you provide a reproduction?

@B2o5T hm, then I don't have any good ideas. probably you could clone https://github.com/chilikasha/tinytools and paste this  in any .mdx page and see if it's reproducible. (try refreshing pages, I was usually getting errors on refresh)

@chilikasha just tried, and I didn't receive some errors, seems like you updated to the latest nextra/nextra-theme-docs and the error was disappeared


[TEST] Add verifier to DotOp

Add verifier to enforce that kWidth attributes match between A and B operands.

This PR introduces a dependency from Triton to TritonGPU (dialects and compile targets) but there is already one in the other direction. This PR thus introduces a cycle in the dependency graph. Again, this breaks building with BUILD_SHARED_LIBS but more generally, it's an indication of unclean layering. If these attributes play a role in the Triton dialect, maybe they should live there? If they don't, maybe they shouldn't be verified there?

This PR introduces a dependency from Triton to TritonGPU (dialects and compile targets) but there is already one in the other direction. This PR thus introduces a cycle in the dependency graph. Again, this breaks building with BUILD_SHARED_LIBS but more generally, it's an indication of unclean layering. If these attributes play a role in the Triton dialect, maybe they should live there? If they don't, maybe they shouldn't be verified there?

There is already a PR to break the circular dependency. Does that solve your problem?
https://github.com/openai/triton/pull/1877

Ah, I wasn't aware of a change in that respect. But I don't think it is enough. The code generated for the attributes is still compiled as part of Dialect.cpp and hence of the TritonGPUIR library.

Ah, I wasn't aware of a change in that respect. But I don't think it is enough. (Update: I don't think that changing CMake files is enough.) The code generated for the attributes is still compiled as part of Dialect.cpp and hence of the TritonGPUIR library.

I'm not sure why this is a problem. TritonGPU is meant to depend on attributes anyway. The difference is that Triton only depends on attributes and there is a separate header include/triton/Dialect/TritonGPU/IR/Attributes.h that Triton depends on. So Triton doesn't have to depend on the while TritonGPU.

The problem is that the attributes that the TritonIR library depends on are part of the TritonGPUIR library: TritonIR uses the attributes in Ops.cpp and they are part of TritonGPU because they are generated into TritonGPUAttrDefs.cpp.inc, which is included in Dialect.cpp which is compiled into the TritonGPU library. Since that is the case, to link TritonIR, I need TritonGPUIR. (And that creates a circle together with the old dependency in the reverse direction.)

I'll call it a day now. I might look at it tomorrow if you haven't done anything yet. (Though I am still not sure whether I understand what you are proposing.)

I'll call it a day now. I might look at it tomorrow if you haven't done anything yet. (Though I am still not sure whether I understand what you are proposing.)

Ah, sorry, only seeing this now... and I am not in front of a computer... Any call to CMake with '-DBUILD_SHARED_LIBS=ON' should do the trick.

Yes, I tried to avoid this circular dependency with https://github.com/openai/triton/pull/1877 but unfortunately it is not sufficient because the attribute's TypeIDs are defined in TritonGPUAttrDefs.cpp.inc, which is included in Dialect.cpp. For the bazel build I now combined TritonDialect and TritonGPUDialect into a single target. We could revert https://github.com/openai/triton/pull/1877, but @Jokeren said it's fine to leave it as is.
I'm not sure there is a clean solution short of moving the attribute to TritonDialect or skipping the verification altogether. The attributes need the dialect's symbols so a TritonGPUAttributes shared library would not work. Neither would splitting out a TritonOps shared library, because the dialect needs the op symbols for registration.
We could define an attribute trait in the TritonDialect which the then DotOperandEncodingAttr implements to verify equal MMA widths.

Sorry for the delay, I sent a PR to fix this here:
https://github.com/openai/triton/pull/1938


minor: Change the syntax for some project-structure.md sentences to be more accurate

What kind of changes does this PR include?

[x] Minor content fixes (broken links, typos, etc.)

Description

What does this PR change? Change some of the syntax from project-structure.md to suit more in the given context, some suggested by @jbrains

Thanks, @Chrissdroid I've made some comments on the changes that I do NOT accept as is, and the rest are great!

Reverted !

Great! Thanks! Just waiting for the checks!


Check default gcloud project if DASK_BIGQUERY_PROJECT_ID not set

Tests should pass locally with pytest dask_bigquery if you have a default project set. If you don't and you don't pass DASK_BIGQUERY_PROJECT_ID, you'll see
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/google/auth/_default.py", line 491, in default
    raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started

... which seems pretty good, but maybe not as nice as something else clarifying that you could set DASK_BIGQUERY_PROJECT_ID instead?

@ncclementi looking 💚 after pushing to coiled/dask-bigquery@default_project

@ncclementi updated!

Perfect, thanks @bnaul this goes in 🎉


is there a diagram explaining how private keys are stored?

hey all!
I'm curious how the mnemonics are stored inside of the near wallet, is it an iframe or some type of secure enclave?
Would be great to understand how it comes together, and I believe would be helpful for the community as well, thanks!

@janewang thanks, what is NAJ? This is posted in the repo mentioned, here. Would be great if you can provide some insights or information. Thanks!


Forum Categories

It would be nice if the forum had category support like  phpbb3 does.

If you submit a pull request with code that does this then it would :)

@gabrielbaez: Have you had a go at this yet? I think it would be good to have this feature in Forem and I'd be happy to provide feedback / guidance on any code you write for it.

sorry, I haven't had time been busy.

but I'll look into it,  I recently rewrote my website from php to ruby and rails and not looking back :)  I had a custom  forum I wrote based on punbb that had this. I'm still new to ruby & rails,  but I'll give this a shot :)

@radar I started to give this a crack  using fluxbb as a guide,  I have it working,  but I do not have the piece for  creating the category for the admin panel,  I can't seem to get  rake routes to  work.    here is a screen shot of the forum.
http://dl.dropbox.com/u/875374/forem/category.png

Ok, that all seems fine... what's the issue with rake routes? Can you proceed without it?

It was throwing me off at first, since I'm using to using that command to get the list of routes whenever I'm working on something,  but it did not stop me from making the categories admin section.

Feature has been implemented.


Raise an error when font is set to a nonexistent family

Description
When the font argument is set in the text function to a nonexistent font family, it currently silently falls back on the default font.

However, it should throw an error.
Use Case
It seems to me that if the specified font cannot be found, the user has made a mistake and ought to know so they can correct it.  Good error reporting is especially important for this because it's not always easy to tell by looking at the text which font is being used.

Hi, I believe this is a duplicate of https://github.com/typst/typst/issues/2818

Oops, yes it is.


Tuning excessive memory retention

Hi,
just want to share some information about an experiment we did, that looks a bit suspicious.
We have a binary that starts doing nothing, periodically it picks a random thread from a pool of 20, this thread iterates through a directory full of fairly large xml files (kept fixed, say, 10 files, 50 MB each); each file is parsed using pugixml (a DOM parser, that basically copies the entire file in memory in a big string), and then all the data is dropped (for the purpose of this experiment, we just return true/false if the file was valid xml).
In particular, everything happens within a single thread: the parser is created, triggered and destroyed every time; nothing is passed to another thread. Also, there are no leaks, as we also run it under valgrind (without mimalloc).
What we noticed is that whenever a new thread in the pool picks up the task, memory grows significantly (say 150MB), and never decreases; then, when the same thread runs again, memory consumption is roughly flat.
These numbers would be explained if mimalloc does not return the memory back to the OS.
Here's what we tried so far:

mi_collect true/false has no effect (we run it in each thread, just before stats_merge)
starting with MIMALLOC_PAGE_RESET=1 has no effect on RSS, but it's visible in the stats:

heap stats:     peak      total      freed       unit      count
  reserved:   512.0 mb   512.0 mb    12.0 kb       1 b              not all freed!
 committed:   690.0 mb   690.0 mb    12.0 kb       1 b              not all freed!
     reset:    89.2 mb   351.0 mb   461.6 mb       1 b              ok

   process: user: 32.399 s, system: 13.636 s, faults: 5, reclaims: 179973, rss: 737.7 mb

heap stats:     peak      total      freed       unit      count
  reserved:   512.0 mb   512.0 mb     8.0 kb       1 b              not all freed!
 committed:   687.5 mb   687.5 mb     8.0 kb       1 b              not all freed!
     reset:       0 b        0 b        0 b        1 b              ok

   process: user: 27.284 s, system: 10.617 s, faults: 3, reclaims: 177145, rss: 726.8 mb

we tried using a different heap for the xml parser (pugixml supports passing two pointers to "malloc" and "free"). that was by far the worse solution. the heap grows as much as 4GB during parsing, and when we destroy it, about 25% is kept by the process.

we tried destroying the threads after parsing. basically no effect, memory usage is slightly higher during parsing, and eventually no memory is released to the OS.

Is there anything we should tune?
thanks in advance for the hints

Thank you for the report; (if you can create a binary that I could run to repro locally that would be great, but I can see that usually not so easy).

Is this on Windows ?  (this is important for commit/reset statistics vs. Linux).  Is this the latest mimalloc master branch?

Generally, mimalloc is not eager to share memory between threads as that generally is not good for performance so the behavior is not entirely unexpected (moreover, mimalloc will reset memory so the physical memory can be reused by other threads anyways).  Nevertheless, it seems as if the memory stays in rss without ever being "reset"; here are some things to try:

On some OS's, even when the memory is "reset" it will still show in the rss as it is reset lazily by the OS (but it is actually available to other processes). You could set both MIMALLOC_PAGE_RESET=1 as well as MIMALLOC_RESET_DECOMMITS=1 to force more aggressive reset that is reflected in the rss for sure. (Also set MIMALLOC_ABANDONED_PAGE_RESET=1 -- I don't think it helps but just to make sure.).

At the end of the parsing etc. call mi_collect(false); mi_collect(true)   (twice) -- this should really purge everything. You seem to imply it does not do this though, which makes me suspect that some memory is not freed ...  (.. but you checked with valgrind ... hmm, I wonder if perhaps the library uses a free call that is not intercepted by mimalloc? )

If the previous things do not change things, it would be great if you could try the dev-slice branch -- this is currently the candidate for mimalloc 1.8 and does decommit on a finer grained basis. Try it first with stock settings, and then with MIMALLOC_RESET_DELAY=1 or even MIMALLOC_RESET_DELAY=0 (these settings are too aggressive for general use but it would let me understand what is happening with your workload).

Hope there is something we can do here.

Thank you for the report; (if you can create a binary that I could run to repro locally that would be great, but I can see that usually not so easy).

Is this on Windows ?  (this is important for commit/reset statistics vs. Linux).  Is this the latest mimalloc master branch?

Generally, mimalloc is not eager to share memory between threads as that generally is not good for performance so the behavior is not entirely unexpected (moreover, mimalloc will reset memory so the physical memory can be reused by other threads anyways).  Nevertheless, it seems as if the memory stays in rss without ever being "reset"; here are some things to try:

On some OS's, even when the memory is "reset" it will still show in the rss as it is reset lazily by the OS (but it is actually available to other processes). You could set both MIMALLOC_PAGE_RESET=1 as well as MIMALLOC_RESET_DECOMMITS=1 to force more aggressive reset that is reflected in the rss for sure. (Also set MIMALLOC_ABANDONED_PAGE_RESET=1 -- I don't think it helps but just to make sure.).

At the end of the parsing etc. call mi_collect(false); mi_collect(true)   (twice) -- this should really purge everything. You seem to imply it does not do this though, which makes me suspect that some memory is not freed ...  (.. but you checked with valgrind ... hmm, I wonder if perhaps the library uses a free call that is not intercepted by mimalloc? )

If the previous things do not change things, it would be great if you could try the dev-slice branch -- this is currently the candidate for mimalloc 1.8 and does decommit on a finer grained basis. Try it first with stock settings, and then with MIMALLOC_RESET_DELAY=1 or even MIMALLOC_RESET_DELAY=0 (these settings are too aggressive for general use but it would let me understand what is happening with your workload).

Hope there is something we can do here.

Thanks for your quick reply. I have a question, first, and some more data below.
Is there a way to create a custom heap, use it, and on destruction force returning all its memory to the OS?
We didn't check the code of mi_heap_destroy, but it sounds achievable.
This would actually be super useful, because in the real binary, we have different thread pools doing different things, and generally we are very satisfied by default mimalloc settings (so, in particular, making mimalloc too aggressive may not be a good solution). It's just this thread pool that is doing weird things, because it has a different allocation pattern (i.e. periodical large spikes of allocation, which are quickly freed).

if you can create a binary that I could run to repro locally that would be great, but I can see that usually not so easy

I'll try to make one. Possibly it's enough to copy files in memory, without even parsing them.

Is this on Windows ?  (this is important for commit/reset statistics vs. Linux).

no, but we see an identical behaviour on macosx, linux and freebsd.

Is this the latest mimalloc master branch?

no, it's release 1.6.3, I believe.
we do occasionally check code changes, but we didn't remember anything that seems relevant (this is not a proof, of course...).
do you think using master would help?

mimalloc will reset memory so the physical memory can be reused by other threads anyways

sorry for the dumb question... so reset means "available to any thread"?

Nevertheless, it seems as if the memory stays in rss without ever being "reset"

without being ever returned to the OS.
we also checked that the memory in RSS of this process cannot be reclaimed by the OS: we created another binary that allocates a linked list of N strings of length M, so it basically consumes a given fixed amount of memory, and when we exhaust the RAM, this process is killed, but the OS does not touch the other (swapfile off, no need to say).

could set both MIMALLOC_PAGE_RESET=1 as well as MIMALLOC_RESET_DECOMMITS=1

Thanks, we will try.

At the end of the parsing etc. call mi_collect(false); mi_collect(true)   (twice) -- this should really purge everything.
You seem to imply it does not do this though, which makes me suspect that some memory is not freed ...
(.. but you checked with valgrind ... hmm, I wonder if perhaps the library uses a free call that is not intercepted by mimalloc? )

we tried calling either mi_collect(true) or mi_collect(false); none had any effect (as visible from top and ps aux).
we never tried calling them both.
I'm totally confident that pugixml is doing the right thing, because it was my prime suspect, and we intensively debugged it.
this thing, as I may have mentioned, takes two pointers to functions "malloc" and "free" and it uses them absolutely everywhere.
By default, of course, they are initialised with the real malloc and free.
We also tried registering a custom "malloc" that adds all pointers in a global std::set, a custom "free" that removes pointers from the set, and we have an assert that ensures that the set is empty every time it should be.

If the previous things do not change things, it would be great if you could try the dev-slice branch -- this is currently the candidate for mimalloc 1.8 and does decommit on a finer grained basis. Try it first with stock settings, and then with MIMALLOC_RESET_DELAY=1 or even MIMALLOC_RESET_DELAY=0 (these settings are too aggressive for general use but it would let me understand what is happening with your workload).

thanks, I'll try and let you know.

Thanks for your quick reply. I have a question, first, and some more data below.
Is there a way to create a custom heap, use it, and on destruction force returning all its memory to the OS?
We didn't check the code of mi_heap_destroy, but it sounds achievable.
This would actually be super useful, because in the real binary, we have different thread pools doing different things, and generally we are very satisfied by default mimalloc settings (so, in particular, making mimalloc too aggressive may not be a good solution). It's just this thread pool that is doing weird things, because it has a different allocation pattern (i.e. periodical large spikes of allocation, which are quickly freed).

if you can create a binary that I could run to repro locally that would be great, but I can see that usually not so easy

I'll try to make one. Possibly it's enough to copy files in memory, without even parsing them.

Is this on Windows ?  (this is important for commit/reset statistics vs. Linux).

no, but we see an identical behaviour on macosx, linux and freebsd.

Is this the latest mimalloc master branch?

no, it's release 1.6.3, I believe.
we do occasionally check code changes, but we didn't remember anything that seems relevant (this is not a proof, of course...).
do you think using master would help?

mimalloc will reset memory so the physical memory can be reused by other threads anyways

sorry for the dumb question... so reset means "available to any thread"?

Nevertheless, it seems as if the memory stays in rss without ever being "reset"

without being ever returned to the OS.
we also checked that the memory in RSS of this process cannot be reclaimed by the OS: we created another binary that allocates a linked list of N strings of length M, so it basically consumes a given fixed amount of memory, and when we exhaust the RAM, this process is killed, but the OS does not touch the other (swapfile off, no need to say).

could set both MIMALLOC_PAGE_RESET=1 as well as MIMALLOC_RESET_DECOMMITS=1

Thanks, we will try.

At the end of the parsing etc. call mi_collect(false); mi_collect(true)   (twice) -- this should really purge everything.
You seem to imply it does not do this though, which makes me suspect that some memory is not freed ...
(.. but you checked with valgrind ... hmm, I wonder if perhaps the library uses a free call that is not intercepted by mimalloc? )

we tried calling either mi_collect(true) or mi_collect(false); none had any effect (as visible from top and ps aux).
we never tried calling them both.
I'm totally confident that pugixml is doing the right thing, because it was my prime suspect, and we intensively debugged it.
this thing, as I may have mentioned, takes two pointers to functions "malloc" and "free" and it uses them absolutely everywhere.
By default, of course, they are initialised with the real malloc and free.
We also tried registering a custom "malloc" that adds all pointers in a global std::set, a custom "free" that removes pointers from the set, and we have an assert that ensures that the set is empty every time it should be.

If the previous things do not change things, it would be great if you could try the dev-slice branch -- this is currently the candidate for mimalloc 1.8 and does decommit on a finer grained basis. Try it first with stock settings, and then with MIMALLOC_RESET_DELAY=1 or even MIMALLOC_RESET_DELAY=0 (these settings are too aggressive for general use but it would let me understand what is happening with your workload).

thanks, I'll try and let you know.

Ok, here's a minimal example, which possibly reproduces this beheviour.

  KEYPRESS;
  PRINT_MEM;
  KEYPRESS;

  mi_collect(false);
  mi_collect(true);
  PRINT_MEM;
  return 0;
}

We compiled with mimalloc 1.6.7 in linux and put ~ 580MB in ./tmp.
 After the thread is gone, it's still 580MB.
Only after mi_collect, RSS shrinks, but it only goes down partially (with mimalloc 1.6.3, mi_collect had no effect).
All the other options instead seem to have no impact (MIMALLOC_PAGE_RESET=1 MIMALLOC_RESET_DECOMMITS=1 MIMALLOC_RESET_DELAY=1)
Also, mi_collect(false) does nothing (which is somewhat surprising).
In freebsd the behaviour is almost identical, except that mi_collect brings RSS down to something like 220MB.

Ok, here's a minimal example, which possibly reproduces this beheviour.

  KEYPRESS;
  PRINT_MEM;
  KEYPRESS;

  mi_collect(false);
  mi_collect(true);
  PRINT_MEM;
  return 0;
}

We compiled with mimalloc 1.6.7 in linux and put ~ 580MB in ./tmp.
 After the thread is gone, it's still 580MB.
Only after mi_collect, RSS shrinks, but it only goes down partially (with mimalloc 1.6.3, mi_collect had no effect).
All the other options instead seem to have no impact (MIMALLOC_PAGE_RESET=1 MIMALLOC_RESET_DECOMMITS=1 MIMALLOC_RESET_DELAY=1)
Also, mi_collect(false) does nothing (which is somewhat surprising).
In freebsd the behaviour is almost identical, except that mi_collect brings RSS down to something like 220MB.


Blank editor afetr update to 1.19.0-insider in Ubuntu 16.04

I am getting blank editor after updating this evening.

VSCode Version: 1.19.0-insider
--
OS Version: Ubuntu 16.04 amd-64 bit

Same here on Ubuntu Mate 17.10

Same here on Debian 8

Same here. Ubuntu Mate 17.10. It looks like the page is scrolled to the last line, but I can't scroll up to see the text.

More info. Developer tools console is full of this error:
charCode is not defined: ReferenceError: charCode is not defined
    at o (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:530695)
    at Object.s [as renderViewLine] (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:531359)
    at e.renderLine (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:1491408)
    at e._finishRendering (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:400302)
    at e.render (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:398052)
    at e.renderLines (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:397467)
    at t.renderText (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:1538123)
    at t._actualRender (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:1641210)
    at file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:1640476
    at z (file:///usr/share/code-insiders/resources/app/out/vs/workbench/workbench.main.js:9:1633012)

Experiencing the same on Ubuntu Gnome 17.10.
Version 1.19.0-insider
Commit 432b53bc3a263fda8db6ecca83d1ce89ede04bf2
Date 2017-11-06T06:22:36.757Z
Shell 1.7.9
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

same here

Just noticed this is a duplicated of #37698.

Any chance this is going to get any comment or fix soon? The app is pretty much broken.

Any chance this is going to get any comment or fix soon? The app is pretty much broken.

You can downgrade to latest 1.18 in the meantime:
sudo apt install code-insiders=1.18.0-1509770825

I have downgrade to 1.18. Is this issue only in Linux?

Is this issue only in Linux?

The error doesn't look like something platform specific, but haven't seen Windows or Mac users complaining.

My windows and Mac systems don't have the 1.19-insiders available yet, so it's hard to test. The Linux builds generally get the new insiders (when versions change) a couple days before Win and Mac (for whatever magical reason.)

Lets continue here: https://github.com/Microsoft/vscode/issues/37698


Scale deployment to meet resource demands

Currently there's an issue with the heroku deployment where the ants preprocessing goes above the hard memory limit and causes the worker to get killed.

@AlmightyYakob I just did a complete run of the preprocessing and analysis pipeline on 34 images from OASIS-1, and I tracked memory and CPU usage by those processes:


fixed value func cache race condition

This PR simply adds a mutex to guard the map for the caching of the value functions. I think it has negligible impact on performance, so a more sophisticated approach should not be needed.

Thanks for the PR! Also finally found out I had some bad HTML in one of my tests. :-)

Coverage increased (+0.06%) to 91.375% when pulling 48b0614f0750b89bf7b02f2b2ab3d9ab3b719b37 on awishformore:fix-concurrent-map-access into 77b263fb8a927d0394229ec12c5a17f0eda99d9c on andrewstuart:master.

Excellent, thanks for merging & fixing tests :)


Fix Sympy 1.6 Incompatibility

Fix incompatibility with sympy 1.6 due to deprecation of string sympification

Codecov Report

Merging #505 into master will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #505      +/-   ##
==========================================
- Coverage   80.28%   80.26%   -0.03%
==========================================
  Files         101      101
  Lines       10603    10602       -1
==========================================
- Hits         8513     8510       -3
- Misses       2090     2092       +2

Impacted Files
Coverage Δ

pysb/bng.py
93.05% <100.00%> (ø)

pysb/macros.py
79.24% <100.00%> (-0.05%)
:arrow_down:

pysb/core.py
88.68% <0.00%> (-0.17%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d112d82...6ba16df. Read the comment docs.


Constitution changes

Writing initial changes to constitution

I'm so sorry

No worries! GitHub takes a while to get used to


UnsatisfiedLinkError using JNI for Java

I compiled everything so far on a windows 10 system and tried now to execute the example Java code using the given explanation. (for x64 system) I used MSVC and the Visual Studio 15 generator for cmake.
There were no errors at compile time left and everything built properly.
At the last step I typed:
java -Djava.library.path=. org/drinkless/tdlib/example/Example
and I get:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Maxi\Desktop\One\td\example\java\bin\tdjni.dll: Can't find dependent libraries         at java.lang.ClassLoader$NativeLibrary.load(Native Method)         at java.lang.ClassLoader.loadLibrary0(Unknown Source)         at java.lang.ClassLoader.loadLibrary(Unknown Source)         at java.lang.Runtime.loadLibrary0(Unknown Source)         at java.lang.System.loadLibrary(Unknown Source)         at org.drinkless.tdlib.example.Example.<clinit>(Example.java:58)
It is stated to add the libs which were used to the java/bin/ directory (next to the tdjni.dll I suppose). First of all, I don't even know which lib is used from the tdjni.dll and where to find them. I already tried to copy all the .dll's and .lib's files from my project into the java/bin directory. Still no success. Does anybody have an idea for a solution?

You need to copy LIBEAY32.dll, SSLEAY32.dll and zlib1.dll from example\java\build\Release folder for Release build or LIBEAY32.dll, SSLEAY32.dll and zlibd1.dll from example\java\build\Debug for Debug build.

Thanks for the fast reply! I' sure I compiled for release build, but there  is no Release directory next to Debug. So I looked in the Debug dir and found LIBEAY32.dll, SSLEAY32.dll, but there is no zlibd1.dll. Beside that i tried it with only the 2 of these dll files and I got now a different exception:
C:\Users\Maxi\Desktop\One\td\example\java\bin>java -Djava.library.path=. org/drinkless/tdlib/example/Example Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Maxi\Desktop\One\td\example\java\bin\tdjni.dll: %1 is no valid win32 application         at java.lang.ClassLoader$NativeLibrary.load(Native Method)         at java.lang.ClassLoader.loadLibrary0(Unknown Source)         at java.lang.ClassLoader.loadLibrary(Unknown Source)         at java.lang.Runtime.loadLibrary0(Unknown Source)         at java.lang.System.loadLibrary(Unknown Source)         at org.drinkless.tdlib.example.Example.<clinit>(Example.java:58)
I searched for it and it seems that the dll's are the problem, compiled to another format. While building in jnibuild directory I used the -A x64 flag. Is that probably causing this problem? I guessed I had to use this flag when creating the cmake configuration before building like this:
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. .. -A x64
after that I did:
cmake --build . --target install  as described. Is that the right way to compile for a 64 Bit version?

If you want to build 64-bit version. you need to specify -A x64 in both cmake invocations. You will need to delete the whole build directory before re-running cmake with changed parameters.
You can also use 32-bit library version, specifying -d32 parameter to java.
To build for Release using MSVC you need to run cmake --build . --target install --config Release.

Can I know in which directory did you copy the LIBEAY32.dll, SSLEAY32.dll libraries please @MaxiGH ?

Libraries should be copied to example\java\bin folder.

Hallo again, I rearranged that project and have some new issues. I want to compile that project for Java x64 on Windows.
So what I am doing, is 2 steps for building. First: Build jnibuild:
cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td .. -A x64 -DCMAKE_TOOLCHAIN_FILE=<VCPKG_DIR>/scripts/buildsystems/vcpkg.cmake
and after cmake configuration:
cmake --build . --target install --config Release
Now I go into /example/java/build:
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. .. -A x64 -DCMAKE_TOOLCHAIN_FILE=<VCPKG_DIR>/scripts/buildsystems/vcpkg.cmake
then I get a note in the progress,
CMake Error at C:/Users/Maxi/Desktop/td/TdConfig.cmake:3 (include):
include could not find load file:
C:/Users/Maxi/Desktop/td/TdTargets.cmake
Call Stack (most recent call first):
CMakeLists.txt:5 (find_package)
I tried to search for that file and found two, one in td/jnibuild and the other one somewhere in the java directory. I tried to copy both, but it ended with weird file include path errors. So I guess these files are not to be meant to use.
after that I assume to finish building process with:
cmake --build . --target install --config Release
I guess using the vcpkg toolchain file for both cmake parts (jnibuild and java/build) is right. I also use -A x64 in both lines.  If it would work, I would have used the same cmake --build command than before. Is that a correct assumption? I don't get what I'm missing, for jnibuild everything looked fine. Can you help me out?


Add issues & pull requests into GitHub connector.

The GitHub connector would be more useful if could also be configured to pull in issues and pull requests for a repository

Working on it:
https://github.com/Lucretiel/datastudio/tree/master/community-connectors/github

+1 !

There was an error caused by the community connector. Please report the issue to the provider of this community connector if this issue persists.
Connector details
There was an error caused by this connector.


Pixel-based Lab examples

Test chamber and Pong, in opennars-lab, were written at a time when OpenNARS was not quite there yet.
Given the system's current capability to handle relatively high-bandwhich input with relatively little resource effort, these examples can now all be re-designed to work on a per-pixel input basis. The new Pong simulation will be able to show the future expected positions of pixels similar as Crossing shows future positions of entities. The system is expected to learn to play the game with similar speeds as it already does now with the simpler input representation. Also a new testchamber-like environment can be designed, this time the surrounding will be perceived similar as the camera in Crossing, the camera will be centered around the agent and will allow it to "see" the current surrounding.

It's not that important for now, we don't need to rely on pixel input, let's concentrate on the system's strengths, relational reasoning and spatial reasoning for the Crossing example, closed for now.


Switch to YYYY.M.D Calendar Versioning

To avoid confusion with Ubuntu versions, since I'm truly date time stamping versions and not using semantic versioning for the whole repos

Closed per https://github.com/icancclearynow/ubuntu-dev-playbook/releases/tag/v2021.9.8


Excessive Migration Time and Readiness/Liveness Timeouts During System Update

Describe the issue
When performing an update, the migration process takes an excessive amount of time, leading to readiness/liveness timeouts and subsequent pod restarts.
The migration process exceeds the anticipated timeframe, resulting in readiness/liveness timeouts and the subsequent restart of the pod.
The readiness and liveness timeouts are not adjustable via the values yaml file, which limits our ability to mitigate the issue.
Recommendation:

Introduce the option to modify the readiness and liveness timeout values as configurable variables in the values yaml file.
Alternatively, consider increasing the default readiness and liveness timeout values to accommodate scenarios where the migration process requires additional time due to limited hardware resources.

I already tried

[X] I've read and searched the documentation.
[X] I've searched for similar issues in this repository.

Steps to reproduce the behavior

Initiate an update on the system.
Observe the migration process during the update.

Expected behavior
The migration process completes within a reasonable timeframe, allowing the pod to maintain its readiness and liveness.
Screenshots

Exception traceback
No response
Additional context
https://github.com/WeblateOrg/helm/blob/5b01aced65f929b80afe055d9810de8e14b91bc7/charts/weblate/templates/deployment.yaml#L179-L192
The extended duration of the migration process on our system can be attributed to the constrained hardware resources available.

Some migrations can indeed take longer, at the container level, this has been addressed by https://github.com/WeblateOrg/docker/commit/e9baff1351e2062628f66d7c8d57fd30f78d8999, not sure whether this helps in Kubernetes as well.

Hi nijel, the HEALTHCHECK setting in Docker images is used for Docker to check if a container is running.
The livenessProbe and readinessProbe settings in Kubernetes deployments checks if the pod is running and if it's active to accept connections. You can rely solely on HEALTHCHECK, but you've got to remove liveness and readiness probes from the deployment in that case as otherwise they will kill the pod (or increase their configurations higher than the HEALTHCHECK).

I've increased the initialDelaySeconds to have same value as in https://github.com/WeblateOrg/docker/commit/e9baff1351e2062628f66d7c8d57fd30f78d8999.
Having a migration container would be probably a better approach, but that is way beyond my Kubernetes knowledge.


Default user model is now the one in auth (fixes Class 'App\User' not found error when installing on Laravel 8)

Because in Laravel 8+ the default User model has been moved from App\User to App\Models\User, by default when you install Backpack 4.1.x on Laravel 8, you won't be able to login - it'll throw a Class 'App\User' not found error (see https://flareapp.io/share/w5BBOwD5)
This is a very bad first experience when installing Backpack. We should make it "just work" both on Laravel 6 and 7 (App\User) and on Laravel 8 (App\Models\User). One way would be to just use the same config value in the auth.php file - which is what this change does.
However, using a config value in a different config file did not use to work, a while back. I was surprised it does, now that I tried it 😄 🥳 I wonder - what's the order? Maybe now Laravel loads its config files first, then the other ones? I don't know, but this would be a great non-breaking fix for this. Just want a second/third opinion before I merge it, to make sure we're not breaking anything. @pxpm ? @mahasadhu ?
Thanks a lot!
Addresses https://github.com/Laravel-Backpack/docs/pull/186

A new inspection was created.

The inspection completed: No new issues

Hello @tabacitu
I'd had some issues with using config() inside a config file before.
From my browser history: https://blog.maqe.com/dont-use-laravel-s-config-inside-config-files-40e2c8207225
It's an old post but I think it still applys because the issue was with OS.
Let me know,
Pedro

Haha! Answers my question exactly, thank you @pxpm . Sooo.... if Laravel now loads config files by file name... auth.php will always be loaded before base.php... soo... it should be ok? Maybe?!

Yes, it seems ok now because they sort the files by name.
https://github.com/laravel/framework/blob/3e4f5f4b771fbdc12a10db1694d55c7c91441161/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php#L94
I'v checked and atleast since 6.X they do the sorting thing.
Best,
Pedro

That's awesome, because that's what we currently support 😆 6.x, 7.x and 8.x
Ok then, merging!

Well this is a new thing for me, even though after I checked this is a default behavior since 2017
https://github.com/laravel/framework/pull/21634/files
This could helps me prevent redundant values in my config files 😃
Thank you @tabacitu @pxpm !


pfe-vertical jump links design updates

duplicate of https://github.com/patternfly/patternfly-elements/issues/892


Virtual Scroll Plugin scrolls to top when next url loads

Describe the bug
Each time nextUrl loads on the Virtual Scroll examples on the tom-select website, the select scrolls all the way back to the top of results, which is a frustrating user experience.
To Reproduce
View Virtual Scroll examples at https://tom-select.js.org/plugins/virtual_scroll/ or https://tom-select.js.org/plugins/ and scroll far enough to load more than one url's worth of options.
Expected behavior
The new content is appended, and user can scroll from the position which used to be the bottom (and is now the top of the new set of results).
Additional context
Add any other context about the problem here.

Ubuntu 22.04
108.0.5359.124 (Official Build) (64-bit)
Version used on tom-select website
Laptop

For comparison, using Chrome in Android it works properly.

This is still an issue in version 2.3.4
The workaround that I currently use monkeypatches scrollToOption  to not do anything until the callback has done its thing.

      fetch(url)
        .then(response => response.json())
        .then(json => {
          const _scrollToOption = this.scrollToOption
          this.scrollToOption = () => {}
          callback(json.results)
          this.scrollToOption = _scrollToOption

No news about this issue?

Tracked this one down to same_query in refreshOptions: when it is called following new options being added its value almost always is false, which is wrong since the query didn’t change. The result is that the first option is considered the active one, and scrolled to.

@skerit can you share your solution, please?
Thanks


Also support restoring ownership by name

Output of restic version
restic 0.12.0 compiled with go1.16.6 on linux/amd64
What should restic do differently? Which functionality do you think we should add?
It would be great, if restic restore would support an option for restoring ownership information from the symbolic user/group names instead of just restoring the uid/gid.
Also, it would be extra great, if restic would warn, by default, if the uid/gids of restored files map to different user/group names on the target system than on the backed up system.
What are you trying to do? What problem would this solve?
I was doing a disaster recovery of a system, i.e. I installed it from scratch, installed and configured some services via a playbook and restored some data file with restic. It turns out that many system users such as 'nginx' have dynamically assigned uid/gids on modern Linux distributions. Thus, they likely change if the system is re-deployed from scratch.
Since restic stores/restored raw uids/gids, I had to chown the restored files which was quite tedious.
See also https://forum.restic.net/t/restore-with-numeric-uid-or-with-username/3811/2 for a similar description of this use case.
Did restic help you today? Did it make you happy in any way?
Restic recently helped me backing up some old Intel Core 1 host with just 2 GB RAM with reasonable speed which was nice.

Hey, I would also argue this restore option should be the default and the current implementation should be the new optional way. Otherwise this current way would suite only the special case to restore on the very same machine, although this new implementation would work equally well.


lib_rexec has big security hole

According to the man page of rexec, the rexec() function sends the unencrypted password across the network. This is a big security hole. Shall we disable this library, or at least give users a security warning?

@xiaoxiang781216 @pkarashchenko @btashton suggestion?

rexec/rexec_af just a passive function which doesn't have any side effect if no program calls them. The applications which expose remote execution functionality are:
apps/netutils/rexec
apps/netutils/rexecd
Both are disable by default and require the user enable them explicitly in defconfig.

BTW, exec/execd developed by @Donny9 is really used to execute a program on remote CPU from the main CPU in one SoC, which is perfect to ignore the security issue.

@xiaoxiang781216  BSD or Linux like implementation behave the same since ever...

Security
Users of this command should be aware that [rexec] transmits their password to the remote host clear text, not encrypted. If the network is not secure to the remote host, the password can be comprimised.

So the text just states if within a case your network is not secure "be aware that [rexec] doesn't nothing much than just transmit data to remote" ; thus just read; "your responsibility to get it right."


Add Kotlin solution for 918. Maximum Sum Circular Subarray

File(s) Modified: 0918-maximum-sum-circular-subarray.kt
Language(s) Used: Kotlin
Submission URL: _https://leetcode.com/problems/maximum-sum-circular-subarray/submissions/925172856/_

Looks good, thank you !


Adding Movies rating data

Is your feature request related to a problem? Please describe.
API with a bunch of movie related content is useful and can also be used as a valid data for recommendation systems too.
Describe the solution you'd like
I could be better if it's about movie, rating and other information

This could be a lot of fun, do you have an idea of the endpoints and the info that they will return

I can start my research if you could assign to me as part of hacktoberfest. @ageddesi

Its all yours :) 👍

Hi @saimaheshtaduri Is this something you would still like to work on?

Removing @saimaheshtaduri from the assignee due to inactivity


DynamoDB Leader Monitor: On Next Should Always Provide MasterDescription

It appears that specifying null to the observer results in a weird terminal condition where all values after null are not observed.
ToDo(kmg): Need to verify this and create or add to the unit tests.
Context
Explain context and other details for this pull request.
Checklist

[ ] ./gradlew build compiles code correctly
[ ] Added new tests where applicable
[ ] ./gradlew test passes all tests
[ ] Extended README or added javadocs where applicable

Closing in favor of https://github.com/Netflix/mantis/pull/692


Improvement: URL based image manipulation with parameters

Would be great if the package supports flexible resizing, effects etc. through url parameters. This can "almost" be done, but the image cache does not support this:
In short:
Issue: ImageCache does not support url parameters, but takes only filename as cache key
possible solutions:

allow to configure custom implementation of ImageCache
allow to pass cache key parameters through applyFilter() method

working example for  'dynamic' filter:
    public function applyFilter(Image $image)
    {

        // issue:
        // parameter is not added to cachekey

        // w = width in px
        $width =request()->input('w');
        $quality =request()->input('q') ?? 90;

        $image->resize($width, null, function ($constraint) {
            $constraint->aspectRatio();
        })
            ->encode('jpg', $quality)
        ;
        return $image;
    }

example requests:

generate thumbnail:

http://yourhost.com/{route-name}/original/{file-name}?w=100&q=50

generate preview:

http://yourhost.com/{route-name}/original/{file-name}?w=200&q=90
both urls will return the same cached image (whichever was called first) as the cache key does not support parameters.

PR with solution:
https://github.com/Intervention/imagecache/pull/126


Is there a way to disconnect from one headless M8 and connect to another?

I have multiple M8 headless units and one real M8. Is there an easy way to connect and disconnect to different units? They're all using different COM ports on Windows.

Right now the code will always pick whichever device appears first in the list it can see. I think an obvious improvement would be to disable the auto-connect when multiple devices are available. Then clicking on the Connect button would show you the list so you could pick a specific device from the browser menu. A "Reconnect" button in the menu would probably be useful here too, or you could just refresh the page and click the Connect button again.
The only issue I can see is with the audio device connection, and I'm curious how you are currently dealing with this. This also just connects to the first device it can see. There's no way to link the audio and serial devices (at least, not from a web app), and even with a separate picker I don't think it would be clear which one matched the serial device you picked.

Ah, OK - they're all on a USB hub with on-off buttons and I've been using the buttons to select them.


Cache emr cluster id by cluster name to avoid multiple concurrent calls to EMR api to find current running cluster

https://github.com/relateiq/azkaban/issues/12

Double check the logic in the finally block, otherwise LGTM


ENH: Display q2:types info in tabulate viz

Fixes #3

Good catch @jairideout! I pushed up some changes that handle this, but in the process I had to drop all of the other export options besides CSV/TSV (building parsers for those formats seemed like a pretty limited return on investment).
This seemed okay, since these export formats are already of (arguably) limited utility, and I think as long as we support CSV/TSV, that should be fine (it is already more than we provide in most of our other visualizations!).
If this doesn't work for you, let me know and we can come up with a new strategy. Thanks!


Support MCU for WebRTC, or interactive live streaming.

MCU is required for some embeded device.
ChromeA --WebRTC--->---+        +------------+
ChromeB --WebRTC--->---+-->-----+  SRS(MCU)  +---WebRTC-->-- Embeded Device
ChromeC --WebRTC--->---+        +------------+

Note: Chrome A/B/C use SFU to interact with each other, which is supported by SRS 4.0. For some embeded device, it only supports one stream, so SRS should support MCU to merge multiple streams to one, then deliver to it.

For interactive live streaming, also need MCU to merge two live stream.
ChromeA --WebRTC--->---+        +------------+
ChromeB --WebRTC--->---+-->-----+  SRS(MCU)  +---RTMP-->-- Live
ChromeC --WebRTC--->---+        +------------+

We will try solution #3459 first, if it works, we won't do it in SRS.


Add point in time support to es-hadoop

This replaces scrolls with points in time as described in #1925. It requires https://github.com/elastic/elasticsearch/pull/85705 in order to work. Here's the known to-do list:

It depends on https://github.com/elastic/elasticsearch/pull/85705, which needs to get finished and merged
We need to make it so that we can configurably instead of PITs (because PITs won't even be an option in any version before the above PR is merged).
The PIT code needs proper unit tests.
We need to do a performance test to make sure this doesn't accidentally hurt performance or cluster stability

Closing this because of the (at least for now) because of the long to-do list.


Dump data to Elasticsearch 5.4.3 error

Hi, first it run for a few seconds, then it encounter with following error:
2017-07-12 18:12:55,744 [WARNING] elasticsearch:94 - POST http://<IP_ADDRESS>:9200/_bulk [status:N/A request:0.003s]
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/urllib3/connectionpool.py", line 594, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/site-packages/urllib3/connectionpool.py", line 361, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.5/http/client.py", line 1106, in request
    self._send_request(method, url, body, headers)
  File "/usr/local/lib/python3.5/http/client.py", line 1151, in _send_request
    self.endheaders(body)
  File "/usr/local/lib/python3.5/http/client.py", line 1102, in endheaders
    self._send_output(message_body)
  File "/usr/local/lib/python3.5/http/client.py", line 936, in _send_output
    self.send(message_body)
  File "/usr/local/lib/python3.5/http/client.py", line 908, in send
    self.sock.sendall(data)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/util.py", line 33, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/doc_managers/elastic2_doc_manager.py", line 367, in bulk_upsert
    for ok, resp in responses:
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 162, in streaming_bulk
    for result in _process_bulk_chunk(client, bulk_actions, raise_on_exception, raise_on_error, **kwargs):
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 91, in _process_bulk_chunk
    raise e
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 87, in _process_bulk_chunk
    resp = client.bulk('\n'.join(bulk_actions) + '\n', **kwargs)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/client/utils.py", line 71, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/client/__init__.py", line 1096, in bulk
    doc_type, '_bulk'), params=params, body=self._bulk_body(body))
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/transport.py", line 318, in perform_request
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/connection/http_urllib3.py", line 122, in perform_request
    raise ConnectionError('N/A', str(e), e)
elasticsearch.exceptions.ConnectionError: ConnectionError(('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))) caused by: ProtocolError(('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/oplog_manager.py", line 621, in do_dump
    upsert_all(dm)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/oplog_manager.py", line 607, in upsert_all
    mapped_ns, long_ts)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/util.py", line 44, in wrapped
    reraise(new_type, exc_value, exc_tb)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/compat.py", line 9, in reraise
    raise exctype(str(value)).with_traceback(trace)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/util.py", line 33, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.5/site-packages/mongo_connector/doc_managers/elastic2_doc_manager.py", line 367, in bulk_upsert
    for ok, resp in responses:
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 162, in streaming_bulk
    for result in _process_bulk_chunk(client, bulk_actions, raise_on_exception, raise_on_error, **kwargs):
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 91, in _process_bulk_chunk
    raise e
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/helpers/__init__.py", line 87, in _process_bulk_chunk
    resp = client.bulk('\n'.join(bulk_actions) + '\n', **kwargs)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/client/utils.py", line 71, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/client/__init__.py", line 1096, in bulk
    doc_type, '_bulk'), params=params, body=self._bulk_body(body))
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/transport.py", line 318, in perform_request
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
  File "/usr/local/lib/python3.5/site-packages/elasticsearch/connection/http_urllib3.py", line 122, in perform_request
    raise ConnectionError('N/A', str(e), e)
mongo_connector.errors.OperationFailed: ConnectionError(('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))) caused by: ProtocolError(('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')))
2017-07-12 18:12:56,096 [ERROR] mongo_connector.oplog_manager:674 - OplogThread: Failed during dump collection cannot recover! Collection(Database(MongoClient(host=['<IP_ADDRESS>:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='amap'), 'local'), 'oplog.rs')

What can I do about this ?

I have found the solution:
       http.max_content_length:1024mb
       http.compression:true

add the above configuration to the elasticsearch.yml, It looks like that http post body is too large


fix proxy wasm cpp host

Ⅰ. Describe what this PR did
https://github.com/higress-group/proxy-wasm-cpp-host/commit/08aef9c153fa21ac7ea2e1874823ce95d98520e9
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

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

Project coverage is 44.31%. Comparing base (ef31e09) to head (ac60d98).
Report is 89 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1287      +/-   ##
==========================================
+ Coverage   35.91%   44.31%   +8.40%
==========================================
  Files          69       75       +6
  Lines       11576     9823    -1753
==========================================
+ Hits         4157     4353     +196
+ Misses       7104     5142    -1962
- Partials      315      328      +13

see 90 files with indirect coverage changes


[WIP] refactor: split controllers

Description
This PR attempts to resolve #42
When looking at this issue, I thought about two ways to address it.
The first is to do it through dependency injection. The idea was to create a global interface for controllers, and then inject controllers into the new management class. The second one is to simply get inspiration from the facade design pattern, and have one class that wraps all of the other controllers through a simplified interface where we create instances of these controller classes. I went for the latter and would like to hear your opinions @ndr-brt @fdionisi
How to test it

Approach

Open Questions and Pre-Merge TODOs

Learning

@ndr-brt do you feel like we should also split tests exactly like we did for the sub controllers?

@ndr-brt do you feel like we should also split tests exactly like we did for the sub controllers?

@OlfaBensoussia definitely!


feat: support creation of aemm container with defaults only

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@ebc0c53). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             main        #1   +/-   ##
========================================
  Coverage        ?   100.00%
========================================
  Files           ?         1
  Lines           ?        11
  Branches        ?         0
========================================
  Hits            ?        11
  Misses          ?         0
  Partials        ?         0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ebc0c53...1f6182d. Read the comment docs.


[Improvement]: Improve strand dump output when strand metadata fields are null

Description
$title
Instead of showing them as null, need to show them in another way. eg: n/a
Describe your problem(s)
No response
Describe your solution(s)
No response
Related area
-> Runtime
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Discussed this is not necessary. Hence closing the issue.


npm-publish fails if package.json version contains leading v

The package.json file requires a version field that is semver accepted. However the NPM specification for semver parsing allows a leading v or = char on the version string.
SemVer Spec: https://semver.org
NPM SemVer: https://docs.npmjs.com/misc/semver#versions
The following example shows the issue:
[srussell@ln70-srussell nmbl-srussell]$ jfrog --version
jfrog version 1.14.0

[srussell@ln70-srussell nmbl-srussell]$ cat package.json
{
  "name": "nmbl-srussell",
  "version": "v1.1.2",
  "description": "Test semver and jfrog npm-publish",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Scott Russell",
  "license": "MIT"
}

[srussell@ln70-srussell nmbl-srussell]$ jfrog rt npm-publish npm
[Info] Running npm Publish
[Debug] Preparing prerequisites.
[Debug] Using npm executable: /auto/home.nas04/srussell/.nvm/versions/node/v8.11.1/bin/npm
[Debug] Working directory set to: /auto/home.nas04/srussell/nmbl-srussell
[Debug] Reading Package Json.
[Debug] Setting Package Info.
[Debug] Reading info from package.json file: /auto/home.nas04/srussell/nmbl-srussell/package.json
[Debug] Creating npm package.
nmbl-srussell-1.1.2.tgz
[Debug] Created npm package at /auto/home.nas04/srussell/nmbl-srussell/nmbl-srussell-v1.1.2.tgz
[Debug] Deploying npm package.
[Debug] Extracting info from npm package: /auto/home.nas04/srussell/nmbl-srussell/nmbl-srussell-v1.1.2.tgz
[Error] Two errors occurred:
open /auto/home.nas04/srussell/nmbl-srussell/nmbl-srussell-v1.1.2.tgz: no such file or directory
remove /auto/home.nas04/srussell/nmbl-srussell/nmbl-srussell-v1.1.2.tgz: no such file or directory

Thanks for reporting this @scottrus.
We're looking into this and will update soon.

@scottrus,
We pushed this commit to the dev branch with a fix for this issue. We'd appreciate your feedback for it.
Will you be able to build the CLI from the dev branch sources?

Change looks good to me. I'll setup Go on my CentOS 7 box and see if I can build and test locally.

@scottrus,
This fix is included in the latest JFrog CLI release, so I'm closing this issue.


fix(plugin:mirror): incorrect use of the function 'positionMirror'

fix #506

Thank you for submitting a pull request! Please make sure you have read the contribution guidelines before proceeding.

This PR implements or fixes... (explain your changes)
incorrect use of the function 'positionMirror'
…
This PR closes the following issues... (if applicable)
#506
…
Does this PR require the Docs to be updated?
no
…
Does this PR require new tests?
no
…
This branch been tested on... (click all that apply / add new items)
Browsers:

[x] Chrome 93.0
[] Firefox version
[] Safari version
[ ] IE / Edge version
[ ] iOS Browser version
[ ] Android Browser version

After fix this bug, the unit test can't success.  I do not know why.

I fixed the test. Thank you.


Facing SatSearchError: search_phase_execution_exception error

I'm using satsearch to get list of sentinel images that overlap with my geometry. The code works fine for most shapefiles but gives this error for random shapefiles. Any idea why this could be happening?

As discussed by @matthewhanson in #133, its a good practice to move to new repository and use the new api.


How to support complex data type?

Hi. It's a great project.
I want to use KAN in radar signal processing domain. As you know that the radar signal is complex number. When I create a dataset with complex data and try to train KAN it report errors as below:
Traceback (most recent call last):
  File "/home/yantao/software/miniforge3/envs/kan/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/yantao/software/miniforge3/envs/kan/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/yantao/awork/pykan/apps/fmcw/fmcw_app.py", line 39, in <module>
    main(args=args)
  File "/home/yantao/awork/pykan/apps/fmcw/fmcw_app.py", line 26, in main
    FmcwApp.startup(args=args)
  File "/home/yantao/awork/pykan/apps/fmcw/fmcw_app.py", line 23, in startup
    model.train(dataset, opt="LBFGS", steps=20, lamb=0.001, lamb_entropy=2.)
  File "/home/yantao/awork/pykan/kan/KAN.py", line 896, in train
    self.update_grid_from_samples(dataset['train_input'][train_id].to(device))
  File "/home/yantao/awork/pykan/kan/KAN.py", line 241, in update_grid_from_samples
    self.forward(x)
  File "/home/yantao/awork/pykan/kan/KAN.py", line 309, in forward
    x_numerical, preacts, postacts_numerical, postspline = self.act_fun[l](x)
  File "/home/yantao/software/miniforge3/envs/kan/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1511, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/yantao/software/miniforge3/envs/kan/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1520, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/yantao/awork/pykan/kan/KANLayer.py", line 173, in forward
    y = coef2curve(x_eval=x, grid=self.grid[self.weight_sharing], coef=self.coef[self.weight_sharing], k=self.k, device=self.device)  # shape (size, batch)
  File "/home/yantao/awork/pykan/kan/spline.py", line 100, in coef2curve
    y_eval = torch.einsum('ij,ijk->ik', coef, B_batch(x_eval, grid, k, device=device))
  File "/home/yantao/awork/pykan/kan/spline.py", line 59, in B_batch
    B_km1 = B_batch(x[:, 0], grid=grid[:, :, 0], k=k - 1, extend=False, device=device)
  File "/home/yantao/awork/pykan/kan/spline.py", line 59, in B_batch
    B_km1 = B_batch(x[:, 0], grid=grid[:, :, 0], k=k - 1, extend=False, device=device)
  File "/home/yantao/awork/pykan/kan/spline.py", line 59, in B_batch
    B_km1 = B_batch(x[:, 0], grid=grid[:, :, 0], k=k - 1, extend=False, device=device)
  File "/home/yantao/awork/pykan/kan/spline.py", line 57, in B_batch
    value = (x >= grid[:, :-1]) * (x < grid[:, 1:])
RuntimeError: "ge_cpu" not implemented for 'ComplexDouble'

How to solve this problem? I prepare the development environment by using pip install -r requirements. I notice that the pytorch is CPUversion. What about I switch to GPU version Pytorch? Can it solve this problem?

Hi, unfortunately pykan doesn't support complex numbers. However, you may try treating real and imaginary parts separately, so you end up feeding KAN with vectors of doubled length.

Is there any particular reason in your domain that you don't want to separate real and imaginary parts? I know in some applications people want to constrain to holomorphic functions where complex neural networks are favored. In other cases, I don't see a strong reason not to just treat real and imaginary separately and feed into real-valued neural networks (which are more optimized than complex-valued ones).

Something like Earth gravity fields required N summation of spherical harmonics. However, I currently do not figure out (1) how to add multiple spherical harmonics base functions as symbolic function. (2) how to apply complex numbers.

@plyu3  thanks for the feedback. Currently it's not supported but sounds like something worth being included in the future.


Set experimental mode in telemetry

What type of PR is this:
/kind feature
What does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes partially #6508
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:

/override ci/prow/v4.11-integration-e2e
Flaky e2e test

/override ci/prow/v4.11-integration-e2e


How to install? Flatpak? AppImage?

Hello, I could not find any option to get a binary. For such a simple app, does it make sense to build an AppImage? Or Flatpak? Or, how can I install it to try it?

I'm not providing any binary builds, but if you have Rust installed on the system (see https://www.rust-lang.org/tools/install) it is quite easy to install by using cargo:
cargo install --locked writingbuddy


Add small note to README that a composer install needs to be executed before a vagrant up

I wanted to try Cachet and thankful you provide a Vagrant machine.
I cloned the repo and fired a vagrant up. An error appears:
$ vagrant up
There was an error loading a Vagrantfile. The file being loaded
and the error message are shown below. This is usually caused by
a syntax error.

Path: /Users/agrunwald/Development/Cachet.git/Vagrantfile
Line number: 11
Message: LoadError: cannot load such file -- /Users/agrunwald/Development/Cachet.git/vendor/laravel/homestead/scripts/homestead.rb

After a composer install this problem was solved.
But maybe a small note about this step is useful.
This Pull Request is about adding this small note :)

Ping @jbrooksuk. Looks ok to me.

This is probably quite useful to those who use Docker. Thanks! :)


removing 'use strict'; line

hey, thanks for this module, super handy! Just ran into a confusing issue where it would say each wasn't defined in chrome when using this with webpack module hot loading. Presumably it's because webpack will use eval to isolate code blocks during dev builds and according to this: http://whereswalden.com/2011/01/10/new-es5-strict-mode-support-new-vars-created-by-strict-mode-eval-code-are-local-to-that-code-only/ that means eval'ed use strict code can't create variable outside of its scope.
Additionally weird is that the error would only appear with devtools closed.
All that said, here was the end result:
https://cloudup.com/cwzFJUJo8sH
Anyway, if there wasn't a particular reason for having the 'use strict' statement here, i figured i'd offer to remove it since this resolved the issue for me and possibly someone else using webpack would have similar issues.

Hmm that's weird. It was added as an optimization for V8 but I'm not sure it even really applies, and 99% confident it is a premature optimization anyways.
But you will probably see the same pattern crop up in other modules here and there. Maybe there's something webpack can do to fix..?
Merged. Good to hear these modules are working with webpack! :+1:


inbox_ui: Fix row_focus not synced with inbox rows.

Have one inbox row and focus on it. Mark the message as read in another tab. Press r in the first tab will return an error as the row_focus didn't change but there is no present. So, we fix it by updating the row_focus if it can get out of bounds when updating inbox view.
discussion: https://chat.zulip.org/#narrow/stream/9-issues/topic/error.20in.20dev

Merged, thanks @amanagr!

Backported to 9.x in #31238.


Updated simple example for current release

The simple example in the readme file didn't work with the latest release. I don't know when it broke, but I copied the version from here to github.

It will work in the next release, and works in the version currently on master.

Closing, there's no need to make this change. The version on https://crates.io/crates/rusqlite is correct for the latest release, the version on github is correct for not-yet-released code.
Perhaps it shouldn't have been changed in advance, but at this point there's no reason to undo the change.


guessView fallback not working

Hi, I've tried out today sane without docker (just `sane new testProjectSane)
and running sane generate new resource user name:string age:number generated the resource, but trying to view it as raw by visiting localhost:1337/api/v1/users crashes the server
$ testProjectSane/server/api/responses/ok.js:44
else return res.guessView({ data: data }, function couldNotGuessView () {
                        ^
TypeError: undefined is not a function

I believe your problem is in the syntax of your command.  Instead, try running sane generate resource user name:string age:number (without the "new").

@IanVS sry I made an typo by rewriting, the new shouldn't be there,
i type just sane generate resource user name:string age:number
it outputs:
$ sane generate resource user name:string age:number
version: 0.1.15
info: Created a new controller ("user") at api/controllers/UserController.js!
info: Created a new model ("User") at api/models/User.js!
installing
  create app/models/user.js
installing
  create tests/unit/models/user-test.js
installing
  create app/routes/user.js
  create app/templates/user.hbs
installing
  create tests/unit/routes/user-test.js

accesing the URL http://<IP_ADDRESS>:1337/api/v1/users in browser results to:
server   | /workspace/testProject/server/api/responses/ok.js:44
server   |   else return res.guessView({ data: data }, function couldNotGuessView () {
server   |
server   |          ^
server   | TypeError: Object #<ServerResponse> has no method 'guessView'
server   |     at Object.sendOK (/home/vire/workspace/testProject/server/api/responses/ok.js:44:19)

but $ curl http://<IP_ADDRESS>:1337/api/v1/users gives:
{
  "users": []
}```

[duplicate] #65


broken floating point fix.

Hi there,
I'm a developer at Nakamotogame.com
I found a bug and fixed it. The bug is that when a user sends 0.0003BCH, it actually sends 0.00029999BCH.

Hey thank you for this PR.
I'll be sure to include it in a release soon!

@iiamboss This bug fix is included in the recent 0.5.0 release on npm.
Thank you for this contribution.


240 NPSP Localization

Critical Changes
Changes

NPSP now supports Brazilian Portuguese.

Issues Closed
Community Ideas Delivered
Features Intended for Future Release
Features for Elevate Customers
New Metadata
Deleted Metadata

@npsp-reedestockton this one should be ready for another pass


How to deal with unassigned transcripts from prior segmentation

Dear all,
Thanks for developing this great tool! I'm trying to apply it to Xenium data and use the standard Xenium segmentation as prior segmentation. The Xenium segmentation gives a dataframe with a cell_id column which includes also the label "UNASSIGNED". Since Baysor only allows integers as cell_id I'm wondering how to deal with this. Should I substitue UNASSIGNED with NaNs or what's the correct procedure for this?
Thanks a lot in advance for your help!

Ok I found the solution. Unassigned reads need to be 0 like in segmentation masks. Makes sense :)


ENH: Add CoordTransform::transform_bounds()

[x] I agree to follow the project's code of conduct.
[x] I added an entry to CHANGES.md if knowledge of this change could be valuable to users.

This wraps OCTTransformBounds to provide CoordTransform::transform_bounds() for GDAL >= 3.4
Output values were verified manually using rasterio.

I'd like to add an example to examples/spatial_reference.rs, but it is unclear how to do so for GDAL version-specific functions; I did not see other version-specific functionality in any of the examples.  Is there a pattern for doing so, or it better to leave out such examples?

Test failure seems unrelated:
---- config::tests::test_error_handler stdout ----
thread 'config::tests::test_error_handler' panicked at 'assertion failed: `(left == right)`
  left: `[(Failure, 42, "foo"), (Warning, 1, "bar"), (Warning, 1, "GPKG: bad application_id=0x00000000 on '/tmp/.tmp25HDOI.gpkg'")]`,
 right: `[(Failure, 42, "foo"), (Warning, 1, "bar")]`', src/config.rs:230:9

Still a formatting error (try cargo fmt).

LGTM, I'll merge this tomorrow unless anyone else has objections.


Enable rainbow colour palette

It should be possible to add a colour rule "By Property" to colour molecules by rainbow (sequence position).

Duplicate of #244


Possible to set pitch/roll in the way that we set yaw?

Hello there, I'm still trying to navigate my quad in a GPS-denied environment.
Though I've managed to take off, hover, and land with RC_override, I finally came to the conclusion that this method is just not reliable, and I'd like to try something else.
By browsing the documentation, I understand that it is possible to set the yaw in the following method:
http://python.dronekit.io/guide/copter/guided_mode.html#guided-mode-copter-set-yaw
So can we set roll/pitch in some similar way?
I discovered that we can set the ROI of the camera like this:
http://python.dronekit.io/guide/copter/guided_mode.html#guided-mode-copter-set-roi
Does it work with the vehilcle itself?
Above all, is it possible to set/control the attitude of the vehicle with Dronekit Python in a GPS denied environment?

Hi @AndrewOak,
True, GPS is currently fundamental to many ardupilot modes.
The simple answer is I don't know what you can do to get around this - but you can find out what commands were supported in the last version of ardupilot here: http://ardupilot.org/dev/docs/copter-commands-in-guided-mode.html
I experimented with the ROI at some point. How this works depends on the type of gimbal (ie it points the vehicle if you don't have a gimbal on board. But I don't know about GPS dependencies for this.
The longer answer is that this isn't really a dronekit question - we just send commands to the autopilot. I think you're best off raising these discussions in the discussion forums, and then if you find a message you know is required, requesting it's addition (or calling it yourself, which DK supports).
Regards
Hamish

Hey @AndrewOak , have you made any more progress since these two posts? I'm looking into using DroneKit to operate in a GPS deprived environment, and was curious if you managed to set the Roll/Pitch values. Looking through the documentation, it seems that the velocity control feature does what we're looking to do.

Hi @AndrewOak and @agribov. Have you made any further progress about indoor drone controlling with DroneKit and Pixhawk? I've tried Guided_NoGPS and RC override as you did, but I couldn't manage to take off. Does anyone think Pixhawk and DroneKit platform is not the correct choice for that purpose? I think they are capable though.

Ended up giving up on Dronkekit, didn't seem developed enough for my purposes, and there wasn't much support. Instead I'm passing the sbus signal through another microcontroller on the way to the FC, and having that microcontroller run my own proprietary code.

There is a Mavlink message to set the attitude target. SET_ATTITUDE_TARGET should be implemented for arducopter 3.4+


I entered my email incorrectly Т.Т

Hello. I paid for the program, but I entered the wrong email address. Without adding the number 18 at the very end. Is there any way to deal with this?
Card number: 53... ...02 (I sent more complete information by mail)

Hi, I found your email address and resent the email. Did you receive it?

Hello! Yes, thank you very much for such a quick response and help!!!


CC: Update existing docs based on Jesse's user-testing feedback

From Slack:

docs say you get an initial admin user. I think that’s a historical artifact that needs updating: https://www.cockroachlabs.com/docs/managed/stable/learn-cockroachdb-sql.html#create-a-database
we need to review https://www.cockroachlabs.com/docs/managed/stable/managed-connect-to-your-cluster.html to make sure it’s clear that you really need to create a user before anything else.
Also need to guide users to create a database, etc. Not sure it’s clear they can do that. No way to know that users you create in the mso console are assigned to the admin role, which is required for creating databases.
look into including language-specific connection strings in the connect modal doc

Addressed in the "Connect to your cluster" doc and Quickstart guide.