docs: Add Requirements

saving time for look up how to install the "cv2" package

Thank you for you contribution to the repo and the community
On 18 Feb 2017, at 05:59, ChenYuan<EMAIL_ADDRESS>wrote:

saving time for look up how to install the "cv2" package
You can view, comment on, or merge this pull request online at:
https://github.com/geekcomputers/Python/pull/125
Commit Summary
docs: Add Requirements
File Changes
M webcam.py (4)
Patch Links:
https://github.com/geekcomputers/Python/pull/125.patch
https://github.com/geekcomputers/Python/pull/125.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Add onCollapse callback

If is necessary to run an action after the bottomsheet collapse, the
onCollapse callback can be useful

after we merge i will send to the original repo


income statement print not showing titles

income statement print not showing titles

resolved in patch 6.2.8


chunks images do not support width and height

when i upload an image with chunks,  accessed url do not support width and height params。What should I do?

Not plan to support this. Maybe use other options.


Look into alternatives to OP_IN

This is currently the only new opcode added by Pluto, and while we won't be able to remove it for a while to maintain bytecode compatibility, it might be worthwhile to consider if this can be removed and what the overall performance impact is — on both the general case where only the VM is run but with/without this case, and in the specific cases of trying to match a substring or table element.

String bench on my machine:
str IN str: 15231.87 iterations/ms
string.find: 9270.89 iterations/ms

local function bench(name, f)
    $define NUM_MS = 100
    local deadline = os.millis() + NUM_MS
    local its = 0
    while os.millis() < deadline do
        f()
        ++its
    end
    print($"{name}: {its / NUM_MS} iterations/ms")
end

bench("str IN str", function()
    assert("ee" in "deez")
    assert(not "ie" in "deez")
end)

bench("string.find", function()
    assert(string.find("deez", "ee", 1, true) ~= nil)
    assert(string.find("deez", "ie", 1, true) == nil)
end)

bench/vm.pluto:

Without OP_IN case: 5.216s
With OP_IN case: 5.354s


Show Symbol Titles

I would love an option to show the symbols names on that sheet, that would allow me to use this as a document for the developers because my symbols names are self-explanatory and I've been doing this process manually by labeling one by one symbol states and everything else.
Thank you!

any news about this?
thanks!

@stdk00 I will consider this as a feature enhancement, thank you for the feedback.


change meaning of framework features

Changes the default feature flags to only build in support for the Native backend, since that is what most people will have available on their development machines.
It also changes the meaning of the framework feature flags (native,cuda,opencl), so that only the capabilities that are shared between the frameworks will be included in the compiled version. See #81 for a possible long term solution.
Example:

feature flags are native cuda -> Convolution Layer is not available since the native backend does not provide the required traits, not even for the CUDA backend.
feature flags are cuda -> Convolution Layer is available since the CUDA backend provides the required traits and there is no native backend it has to be compatible with.
feature flags are native -> Convolution Layer is not available since the native backend does not provide the required traits and there are no other frameworks present.

WIP:
I still nedd to finish a top-level FEATURE-FLAGS guide that explains this a bit more in depth.

@homu r+

:pushpin: Commit 642a4d4 has been approved by hobofan

:zap: Test exempted - status


[Bug]: BRNT3DOOMSDAY Side turret misalignment issue when firing

What happened?
The first time a new BRNT3DOOMSDAY fires an attack, the small turrets on his sides will slide a short distance like the side.
Steps to reproduce
All you have to do is cheat a BRNT3DOOMSDAY and have him attack the ground and you'll be able to spot the unusual behavior of the small turrets on either side of him
Expected behavior
I checked the scm and scan files and found the problem. The small turret bone position in SCA is different from that in scm. This causes the four turrets in the red circle to be misaligned every time the unit plays the sca animation (i.e. the animation of opening the missile launcher).
If someone can make the small turret position in the sca file of this unit match that in the scm file, the problem should be solved. I personally think the position of the turret is correct in scm, because it looks like the turret's rotating axis is right in the center of the base circle, while the turret's position is obviously off in sca.

Additional image: The turret in the red circle in the image is the turret with the problem. You can see that these turrets are positioned differently in SCA and scm

Well, if you delete the BRNT3DOOMSDAY_Deploy.sca file, the turret animation works correctly.
That leads me to the conclusion that the error is indeed in the .sca file.
Unfortunately, I can't change the animation file. :(

Well, if you delete the BRNT3DOOMSDAY_Deploy.sca file, the turret animation works correctly. That leads me to the conclusion that the error is indeed in the .sca file. Unfortunately, I can't change the animation file. :(

Sad. Hopefully someone will help solve this problem later

I am already talking to a guy who should be able to solve this. :)
At least there is hope hehe

fixed https://github.com/FAForever/fa-total-mayhem/pull/29


Null Pointer Exception

https://pastebin.com/FSqvWWfS
Happened while exiting a server.

Pushed v<IP_ADDRESS> to CurseForge with fixes.


Buy this domain

I don't want to buy indyarmy.com, I want to see a demo:)

I'm impressed the ad-squatters actually got some valid search results for that domain :)
Thanks for noticing - I let the domain go a while ago, but haven't updated some of the repos for quite some time. There's no demo right now, but I'll put up some gh-pages soon to show it again.

Great, thanks:)

Demo up at http://metaloha.github.io/color2color/


Verify style follows PEP-8 using flake8

https://pypi.python.org/pypi/flake8

Ideally this would be part of the continuous integration process.


Add Chalk to Showcase

This is blocked until https://github.com/nielsenramon/chalk/pull/151 is is accepted.
Edit: feel free to merge, @kingdido999! Chalk now uses zooming.

Awesome!


Android Build?

I would be tickled pink to be able to use my box of old Android devices as Wyoming Satellites.  I realize the build platform is different for this project, but I'm wondering how fesible it would be to port the functionality to Android and build an app that could be sideloaded onto an Android phone.
The basic functionality would be enough for now - PTT, VAD, etc.

This would have to be a whole different app I think.

The lenovo teams device that a lot of people have bought would be great to run this on.
Using RTPmic currently to stream audio, but would prefer local wake word.


Change the callback used in UuidMixin

Prior to fab74b285e2d93f85456d9a0985081b5eb7b9aff cloud managers used to
ensure dependent managers (for example network, storage) via
before_validation. The above commit changed this to before_create.
The UuidMixin, which is responsible for setting the GUID of a manager
was consequently only called on the main (cloud) manager, but not for
dependent managers.
This patch proposes to change the UuidMixin to use before_create
callback.
After this patch is applied, unmodified providers will get their GUIDs.
Missing GUIDs were spotted by @sergio-ocon while trying to accept the changes
on the EBS storage manager.
@miq-bot add_label bug
@miq-bot assign @Fryguy
cc @blomquisg

BTW, we may need a data migration to "fix" existing broken managers anyway.

Sorry for the late review on this.  I thought we had discussed not doing this, so now I'm not sure what state this PR is in.  Do you still need this?
Even so, I'm not sure how this PR solves the problem.  When won't before_validation get executed?


Handle commands other than highlight

When walking the tokens, handle the following commands

\width: Change the number of bytes per line
\lower: Output as lowercase
\upper: Output as uppercase
\missing: Fill missing bytes with this character

Let's use / instead of \ as it'll make escaping less likely to conflict


[Feature]: Allow ACL associations to interfaces

One usage of ACLs is applying to an interface.  It would be ideal to set this.

@DanSheps was kind enough to point me to How he contributed to existing classes in the secretstore plugin.

A generic relationship is considered a many relationship though, so you need to do .all() .first() etc

Thanks Dan!


[Bug] Timer class

If I have well understood the Timer lib (Timer.cpp and Timer.hpp) the Timer::reset() works as expected only when _tickAtBeginning == true
I guess should be change this line to:
if (tickAtBeginning) _initialTime = 0;
else this->tick();

Please send a sample test code showing the bug.

HomieInternals::Timer test;

void setup() {
  Serial.begin(9600);
  test.setInterval(1000, false);
}

int i = 0;
unsigned long previousMS = 0;

void loop() {

  if (i >= 6) {
    Serial.print(F("RESET: ")); Serial.println(i);
    test.reset();
    i=0;
  }

  if (test.check()) {
    Serial.print(F("CHECK: ")); Serial.print(i); Serial.print(" ("); Serial.print(millis() - previousMS); Serial.println(")");
    test.tick();
    previousMS = millis();
    i++;
  }
}

Right, will fix. Thanks!
But be careful, this is an internal component of the framework, so there's no guarantee the API won't change.

Thanks to you for this amazing framework! I use by 3 days but I just love it!
Why don't use a "standard" Timer lib, like you have done with Bounce lib?
I need this feature for my little project and I think include another library could be not good.
anyway I'll use your internal library...if something change I guess will not be a big problem :+1:

Fixed, thanks!
Because that would require another dependency, which is cumbersome IMO.


Update readme

Hello again,
I updated a few little things in the readme file, including some minor typos/capitalizations and also a code snippet that appears to have been based on older version.
Additionally, I noticed an extra older readme file in the src directory so I removed it.

@Aaronontheweb LGTM


[README] reintroduce a "History" paragraph

for some reasons, this was removed in https://github.com/behdad/fonttools/pull/359
/cc @davelab6 @miguelsousa @benkiel

I recommend that markdown files have one line per sentence, it makes cleaner diffs and doesn't change visible output


About code explanation

I found the original data format of Commitpackft is like this：

I don't really understand how to use it to finetune my model on code-explanation task, because it seems that there is no information about what this piece of code is doing.

You can finetune it to predict the commit subject which usually explains what the change is doing but not what the entire code is doing.
To get data that explains what the entire code is doing you could filter for commits where old_contents is empty. Then you may get commit subjects that explain the entire new_contents. We haven't tried this though, but I'd love to know how well it works.

You can finetune it to predict the commit subject which usually explains what the change is doing but not what the entire code is doing.
To get data that explains what the entire code is doing you could filter for commits where old_contents is empty. Then you may get commit subjects that explain the entire new_contents. We haven't tried this though, but I'd love to know how well it works.

Thank you so much!


Executing Raw Queries

How can I execute Raw Queries like g.V().out("connectTo")

i don't understand your question, can you be more specific?

instead of using the Scala DSL. I want to send in RAW queries to the graph engine which is a String but is actually a gremlin query. For Example When you send in the Raw queries to JDBC Driver you send in as "Select * From table name". I want to know how we can do that . Hope that makes sense. Right

I.e. you would like to send a gremlin-groovy query as a string?
The answer to that depends on the graphdb (refer to it's documentation) and isn't part of gremlin-scala.

at the end of the day Gremin Scala is using something underneath it to make those calls. Don't those interface support passing a String. I will see if Tinker Pop Allows it or no.


Karma Manager the Anagram Maker is almost an Anagram

Maybe you could spell it: "Karma Managar the Anagram Maker" or "Karma Manager the Anagrem Maker" (j/k)
I had KM on my old Quadra - love it!
Thanks!


Instead of pimpl use CRTP

Instead of:
#define WIN32
// #define UNIX

#ifdef WIN32
using WindowImplType = WindowImplWin32;
#elif defined UNIX
using WindowImplType = WindowImplUnix;
#endif

class WindowImpl
{
public:
    virtual ~WindowImpl() = default;

    virtual bool isOpen() const = 0;
};

class Window
{
public:
    Window() { m_impl = new WindowImplType(); }
    Window() { delete m_impl; }

    bool isOpen() const { return m_impl->isOpen(); }

private:
    WindowImpl* m_impl;
};

class WindowImplWin32 : public WindowImpl
{
public:
    bool isOpen() const override { return true; }
};

class WindowImplUnix : public WindowImpl
{
public:
    bool isOpen() const override { return true; }
};

I know that it is implemented a little differently, but the essence is the same
Use:
template<typename Implementation>
class WindowInterface
{
public:
    bool isOpen() const { return impl()->isOpen(); }

private:
    Implementation* impl() { return static_cast<Implementation*>(this); }
};

class WindowWin32 : public WindowInterface<WindowWin32>
{
public:
    bool isOpen() const { return true; }
};

class WindowUnix : public WindowInterface<WindowUnix>
{
public:
    bool isOpen() const { return true; }
};

#define WIN32
// #define UNIX

#ifdef WIN32
using Window = WindowWin32;
#elif defined UNIX
using Window = WindowUnix;
#endif

We keep strong interface
Example:
class Texture
{
    template<typename T>
    void Texture::update(const WindowInterface<T>& window);
};

int main()
{
    Window window;
    sf::Texture texture;
    texture.update(window);
}

[+] We get rid of unnecessary indirection new WindowImplType() - perfomance boost
[+] We save strong interface
[+] We have reusable code in WindowInterface
[-] We slow down the build speed

Would this require moving lots of code from .cpp files to .hpp files?

Would this require moving lots of code from .cpp files to .hpp files?

Moving:

WindowInterface all
Functions that take as an argument WindowInterface

Not moving:

WindowWin32, WindowUnix etc...

I have a few question because I'm honestly not sure.
Please correct me if I'm wrong but CRTP and PIMPL address two different, but related issues? Where PIMPL is about extending the private implementation details, but not changing public interface.
Where CRTP is more about extending the public interface?
As this is a library; would this not be a concern to risk leaking implementation details?
As far as the speed, while static dispatch is faster, when system calls are involved would it make a difference there?

I have a few question because I'm honestly not sure.
Please correct me if I'm wrong but CRTP and PIMPL address two different, but related issues? Where PIMPL is about extending the private implementation details, but not changing public interface.
Where CRTP is more about extending the public interface?
As this is a library; would this not be a concern to risk leaking implementation details?
As far as the speed, while static dispatch is faster, when system calls are involved would it make a difference there?

Yep, CRTP and PIMPL different
Yep, implementation details leaked <Windows.h> and other os self window api, its a problem. I think yes, because in one frame we call +- 1-5 pollEvent(event)`


How Packaging my code generator,with extensions CodeGeneration.Roslyn

if project reference it work better ,but when Packaging nuget, project install it, not work .
i use .net core

Hi. I'm sorry, but I need some more details. What is your actual problem? What's working for you and what isn't?

i create new project Hunter.Core.CodeGeneration with Implementation  RichGeneration, when i packing
it for other code generation project, the  other project not work to generation code. i must be install CodeGeneration.Roslyn nuget, and copy Hunter.Core.CodeGeneration RichGeneration code to every code generation project, it work better!

@hanxinimm As I understand it, you pack your code generator into a NuGet and it doesn't work.
Have you followed https://github.com/AArnott/CodeGeneration.Roslyn#packaging-up-your-code-generator-for-others-use ?

Closed as deprecated


iOS App Audio after Agora VideoCall only on ear speaker

Bug Scenario

My Flutter App on iOS is playing specific videos with audio over loud speaker.
If an agora video call is made (incoming or outgoing) during that time, then this call is also on loud speaker
After ending the call the specific video is resumed.
Problem: Now the Videos Audio is coming from the ear piece speaker and not the loud speak anymore, which is wrong.
This is not happening on Android

Expected behaviour
After leaving the Agora call the in app audio should resume playing from the load speaker like before the call
Versions

Flutter 2.2.3
latest agora_rtc_engine: ^4.0.7

Smartphone

Device: all iPhones
OS: 14.7

Additional info

i already tried to call destroy or keep the agora engine after call but with both same behaviour
i tried setDefaultAudioRoutetoSpeakerphone(true) and with false but error persists

you can refer to this doc
https://docs.agora.io/en/Video/set_audio_route_ios?platform=iOS

@LichKing-2234
Thanks. I know that part of the docs and im using
setDefaultAudioRouteToSpeakerphone
and tried setEnableSpeakerphone
But the problem is after finishing the call the other audio of the app is still playing ducked. You can hear it but very silent.
After investigating the issue i found out that either the agora lib, but more likely the call kit lib are changing the AVAudioSession to their video call needs but after finishing the call these settings are not reset.
So i am doing this now manually with a MethodChannel call to iOS.

If you still face issues, please try upgrading to the new version to see if it works for you.


fix!(ioredis): net.peer.ip -> db.connection_string

This is split out of #913 because ioredis tests seem to hang CI.

@open-telemetry/javascript-approvers is this by any chance a known issue that CI is hanging on ioredis tests?

cc @Rauno56  since i think you worked a little bit on the ioredis tests ?

@open-telemetry/javascript-approvers is this by any chance a known issue that CI is hanging on ioredis tests?

Not that I'm aware of

what do you know, when I fixed the code, it fixed CI 😭 sorry for the noise

what do you know, when I fixed the code, it fixed CI 😭 sorry for the noise

😮

@dyladan - the name of the PR starts with fix!, how will release please handle that?
looks like it does not generate a release for the package

According to this it should have treated it as breaking https://github.com/googleapis/release-please#how-should-i-write-my-commits


add fetchPackwizModpack

Adds a build-support function: fetchPackwizModpack.
It uses FOD (fixed output derivation) to fetch an entire Packwiz pack, given its pack.toml URL.
You can then easily use the symlinks and files options to put mods, configs, and anything else the pack provides, in a granular way.
There's also two cool other features:

The built modpack exports a manifest attribute, that is the pack.toml imported as a Nix expr. This lets you, for example, get the MC and Fabric version your server should run.

This, by default, uses IFD (for convenience). They user may alternatively specify a manifestHash, which will then be used with builtins.fetchurl to avoid IFD.

There's also a addFiles attribute that lets you include/overwrite additional files on the modpack so, for example, you can add server-specific mods that the pack does not include.

This fixes https://github.com/Infinidoge/nix-minecraft/issues/12
An alternative is packwiz2nix. It's a smarter implementation but, as of now, it has some limitations that hurt its usability (curseforge does not work, modpacks must have additional hashes added, etc). In the future, when it's more mature and handles all use cases, this function could use packwiz2nix's implementation instead.

I've added documentation to it (hope we can improve documentation on other parts of the repo in the future, too!), but here's an additional usage example:
https://github.com/Misterio77/nix-config/blob/2936608/hosts/celaeno/services/minecraft/servers/modpack/default.nix

Thanks for the feedback!


Edit and Remove locations

Add the functionality to edit and remove locations.

Edit locations added in 611fad960413a0999198f96378f2e79ab7254403
TODO: remove locations

remove locations added in 99c3a0223d7402f054412b043b456f0991eeab48


Command to show AMT firmware information

I want a command in RPC that will present information about the current AMT settings so that I can know what the state is of the AMT device.
Items that I'm interested in knowing:

AMT Provisioning State (Configured or not)
AMT Configuration Mode (Admin mode or Client mode)
AMT Firmware version and build
State of Wired and Wireless interfaces for AMT
IP address of each AMT interface
MAC address of each AMT interface
Static or Dynamic IP address setting

resolved in 23fe0e1


Automatically clear results

Would it be useful to write a finalizer for the Result type where it would call clear when the result goes out of scope and has not already been cleared?

Yes. I've been avoiding it for a while so I wouldn't have to deal with any finalizer quirks that might exist but now's a good time to add those in.

Cool! I'll try and whip up a PR to add this soon.

Fixed by #40


OutOfMemoryError

java.lang.OutOfMemoryError: Failed to allocate a 8294412 byte allocation with 16777216 free bytes and 130MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:939)
at android.graphics.Bitmap.createBitmap(Bitmap.java:912)
at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
at tourguide.tourguide.FrameLayoutWithHole.init(FrameLayoutWithHole.java:122)
at tourguide.tourguide.FrameLayoutWithHole.(FrameLayoutWithHole.java:87)
at tourguide.tourguide.TourGuide$1.onGlobalLayout(TourGuide.java:173)
at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:889)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2070)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1191)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6642)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
at android.view.Choreographer.doCallbacks(Choreographer.java:590)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
Of course I use  android:largeHeap="true" but It doesn`t help.
Samsung s4.

Hi there,
This is not normal at all! We've fixed a memory leak issue previously, and I've installed LeakCanary, it's not currently showing any leak. So I'm not sure where to troubleshoot.
Can you tell me how are you using it so that I can reproduce the same issue?
Thanks!

Thanks for your reply.
Yes, I am able to reproduce this issue and I saw the same report with memory overflow like(https://github.com/worker8/TourGuide/issues/4)
Our app dynamically update the text in the title of tabs.
After code with tourguide show I update my view  - after out of memory.
I guess the problem is in TourGuide.class -> setupView() -> ViewTreeObserver.
There is my test app with googles SlidingTabs.

it is doesn`t matter how much chars update...

I'm seeing the same thing, and it has to do with TourGuide.mHighlightedView's global layout listener getting called over and over, even though this listener is removed immediately.  Somehow it's not getting removed.

Facing the similar issue in my code which is in production. Device model is SM-G900I running Android 5.0. Was anyone able to figure out a fix for this?
App trace:
java.lang.OutOfMemoryError: Failed to allocate a 8294412 byte allocation with 4807864 free bytes and 4MB until OOM 	at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 	at android.graphics.Bitmap.nativeCreate(Native Method) 	at android.graphics.Bitmap.createBitmap(Bitmap.java:939) 	at android.graphics.Bitmap.createBitmap(Bitmap.java:912) 	at android.graphics.Bitmap.createBitmap(Bitmap.java:879) 	at tourguide.tourguide.FrameLayoutWithHole.init(FrameLayoutWithHole.java:122) 	at tourguide.tourguide.FrameLayoutWithHole.<init>(FrameLayoutWithHole.java:87) 	at tourguide.tourguide.TourGuide$1.onGlobalLayout(TourGuide.java:236) 	at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:863) 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2059) 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1180) 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6558) 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) 	at android.view.Choreographer.doCallbacks(Choreographer.java:590) 	at android.view.Choreographer.doFrame(Choreographer.java:560) 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763) 	at android.os.Handler.handleCallback(Handler.java:739) 	at android.os.Handler.dispatchMessage(Handler.java:95) 	at android.os.Looper.loop(Looper.java:145) 	at android.app.ActivityThread.main(ActivityThread.java:5835) 	at java.lang.reflect.Method.invoke(Native Method) 	at java.lang.reflect.Method.invoke(Method.java:372) 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

I am getting the same error in lollipop with samsung devies like Samsung S5, S6, A3. Anyone with a fix yet?

Pending approval, this commit in my pull request is a bit hacky, but it solves the problem of the global layout listener being called repeatedly until the OOM.  I also added both global layout listener removal methods in this commit.


Add yarn caching to speed up CI builds

Closes #38

This should be ready to go @waxlamp. You can verify that it worked on the 3rd to last and second to last CI runs. It used the cache reducing the install time of node_modules from 25 seconds to 5. In the last run I updated the name of the cache (from the temporary debugging name that I was using) so it might won't have restored the cache but should work into the future.


Feature/rollups  user interface sprint 2a

Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata

@randi274 Can you add some details to the top of the PR comment with what new functionality this PR brings to the UI?

@randi274 I noticed that most of the equality and inequality operators were fixed, but there are still remaining items and some other minors issues. I suggest using the linter to address whatever is left over.
sfdx force:lightning:lint src/aura | grep -v "console"
The grep part removes the warnings about console.log usage. Normally, there's a linter config file that can be used to strip that out, but Salesforce considers those warnings critical so they don't allow those to be ignored. These will have to be stripped out eventually, but there's no rush on that.


Add support for ! on scalar bit types

It's not 100% clear from the OQ3 spec whether this is permitted, but Qiskit certainly outputs using this, the IBM QE stack allows this, and it generally sensible.
Fix #14

After reading the OQ3 spec, it seems clear to me that in the constructions
$$\text{if} ( expr \text{)}  \quad \text{ and }  \quad \text{while} ( expr \text{)} $$
the expression expr must evaluate to a bool.
I don't see any support for truthiness in the spec. I guess that while (!_bit0) should instead be while (_bit0 == 0)

I agree there's insufficient rigour in the spec around these types, but in practice this is currently what Qiskit outputs and IBM QE accepts, and at worst it's giving some unambiguous meaning to OQ3 programs that were previously invalid.  I think it's not entirely clear what (if any) the difference between a bare bit (as opposed to a bit[n]) and a bool is meant to be in the OQ3 spec (if there is one at all); they're both two-valued types whose values represent the concepts of "set" and "not set", and I'm not certain that there's any meaningful semantic differences between the two that would motivate them being separate types.  (Of course bit[n] is a different beast, but this is just about the scalar type bit.)
For now, I think this package should probably at least read in these conditions in the same form that Qiskit puts them out (for non-Expr nodes), and I think it might be better to tighten the semantics on both sides if more clarification in the OQ3 spec / the platforms we know use our outputs change.

The spec is not particularly unclear on the matter. It says that bit and bool are different types, and the conditionals must use the latter.
I guess there is no reason to have separate bit and bool types. It's probably worth doing a survey (if we haven't already done it) and clearing this up.
Maybe:  bit[n] represents an array of bits. But when dealing with individual bits, you always work with type bool. That is
bit[3] bit_array = "111";
bool x;
\\ bit x;    illegal
x = bit[3];

The languages I can think of off the top of my head do this or something similar. Like just use bool for everything.
Julia has both bit arrays and an array of bools. But the elements of both are always semantically bools.
I'm concerned about supporting something that's not clean, but becomes common and has to be supported in the future.
I think while(x != 0) and so forth is not elegant. But keeping both bit and bool and giving bit some of bools semantics is redundant and complex.
What I really would not like to see is int[16] x;, while(x) and so forth.

I'd like to get this package aligned with both Qiskit and QE in terms of what it accepts (which this PR does), and if what exactly that behaviour is should change, then do that in a more unified manner once we're sure what that should be.
Fwiw, this PR does not newly cause bit to be accepted as the type of an if - this package has always allowed that, in line with the QE stack - the new behaviour is effectively a bit -> bool overload for the ! unary operator.


Manually installing I get 'cjs' extensions instead of 'ts'.

Current Behavior
Following the steps in the docs to install skeleton manually in an existing project, when I do the command 'npx svelte-add@latest tailwindcss' the files 'tailwind.config.cjs' and 'postcss.config.cjs' are generated with format 'cjs' instead of 'ts'.
Expected Behavior
Instead of generating 'cjs' files, they should be created with the appropriate 'ts' extension.
Steps To Reproduce
No response
Link to Reproduction / Stackblitz
No response
More Information
No response

That is something you'll have to take up with Svelte-Add I'm afraid, Skeleton doesn't maintain the Tailwind Installation using Svelte-Add.

@gzuuus what Sarenor said, I'd recommend taking this upstream.
That said, you should be able to manually rename the file to match your configured application settings (JS or TS). Then adjust the contents to what's shown in our docs.

Yes! I managed to get it working, but the content of tailwind.config.ts seems to be out of date in the docs as it didn't work with the suggested config. I had to use the config from another project where I was testing skeleton and created with skeleton cli.

@gzuuus interesting - do you have a diff to compare? The version shown in our docs is the base config, while the CLI will certainly add a few other things based on your prompts on setup - such as adding additional Tailwind plugins.

Yes sure
Docs purpose tailwind.config.ts
import { join } from 'path';
import type { Config } from 'tailwindcss';

// 1. Import the Skeleton plugin
import { skeleton } from '@skeletonlabs/tw-plugin';

const config = {
	// 2. Opt for dark mode to be handled via the class method
	darkMode: 'class',
	content: [
		'./src/**/*.{html,js,svelte,ts}',
		// 3. Append the path to the Skeleton package
		join(require.resolve(
			'@skeletonlabs/skeleton'),
			'../**/*.{html,js,svelte,ts}'
		)
	],
	theme: {
		extend: {},
	},
	plugins: [
		// 4. Append the Skeleton plugin (after other plugins)
		skeleton
	]
} satisfies Config;

export default config;

tailwind.config.ts generated by skeleton cli
import { join } from 'path'
import type { Config } from 'tailwindcss'
import { skeleton } from '@skeletonlabs/tw-plugin'

export default {
	darkMode: 'class',
	content: ['./src/**/*.{html,js,svelte,ts}', join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')],
	theme: {
		extend: {},
	},
	plugins: [
		skeleton({
			themes: {
				preset: [
					{
						name: 'skeleton',
						enhancements: true,
					},
				],
			},
		}),
	],
} satisfies Config;

So I see three notable differences here - which are intended:

More comments on the doc version - which is intended
The export method style differs - also intended, and both operate the same
The CLI version takes an opinionated stance on the theme and theme settings

We can't and won't follow number 3 here, because those steps are covered in a subsequent step for the manual instruction where the path forks between using either a preset or custom theme. So overall they differ, but in an very intentional manner.
Thanks for sharing to confirm!


How to keep no metadata?

The section on KeepMetadata explains:

An empty value for this attribute is equivalent to not specifying it.

Given that, how does one exclude all metadata from items? I have considered specifying KeepMetadata="SomeUnlikelyValue" but don't know if this is a good approach.
It would be nice if the documentation was extended to cover this scenario.

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

ID: 2d4c1957-1da1-073e-e5d2-b88dbb6e4f0c
Version Independent ID: da079116-5827-d486-271b-9e2cb10bf063
Content: MSBuild Items - MSBuild
Content Source: docs/msbuild/msbuild-items.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @ghogen
Microsoft Alias: ghogen

@drewnoakes -- Drew, thank you for your question.  Please consider these resources:

Visual Studio on Microsoft Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

@ghogen -- Gordon, please look into this issue.

I think the best bet here is
<NewItem Include="@(OldItem->ClearMetadata())" />

https://github.com/MicrosoftDocs/visualstudio-docs/blob/12e65d3196c49e76bd070d7a7c7cce5a3e305ac0/docs/msbuild/item-functions.md?plain=1#L62
Cross-links in both directions seem like they might be a good idea.


feat: add external event url menu option in EventDetailsFragment

Fixes: #1505
Changes:

Added a menu option to EventDetailsFragment to navigate to the external event url for the event
If the external URL is null, then the menu option is disabled

Screenshots for the change:

Additional details:

The option has been titled 'Open External Event URL' to maintain consistency with the eventyay frontend e.g. check the option on the right side at https://eventyay.com/e/a1fcaa21/coc/

Instead of removing the menu item if the URL is null, I have chosen to disable the option because removing the item requires calling invalidateOptionsMenu() which will force the menu options to be prepared once again. This resets the favorite icon status also hence the favorite icon will have to be set again. Hence to avoid this complexity I have simply disabled it. If suggested, I can use this approach to remove the option altogether when the URL is null

EDIT: Updated GIF after now hiding option when URL is null
Will squash commits once this gets approved

Hide the option if url not available.

can use this approach to remove the option altogether when the URL is null

IMO, hiding it is a better option.

@liveHarshit changes made

@liveHarshit removed extra lines and squashed commits


How to debug in C++?

newbie question.
get it running under macOS, wanna debug with Xcode.

Here are the steps:

Click the Debug menu (on the top bar)
Point at Attach to Process
Choose Unity
Set a breakpoint
Run in the editor to execute the breakpoint code
Debug in Xcode

Screenshot:


Improve legibility of TextViews

GTFO.

+1 to OP plz reopen I need this

We were waiting for this feature. Please reopen this issue to discussion.

even CLA bot isn't having it

Nick is literally hitler.


workshop_20220615

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes

sakamossaaaan seems not to be a GitHub user.
You need a GitHub account to be able to sign the CLA. If you already have a GitHub account, please add the email address used for this commit to your account.
Have you signed the CLA already but the status is still pending? Recheck it.

Pull request in error from a workshop run.


Kubectl exec output is not binary clean

Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.): NO
What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.): binary

Is this a BUG REPORT or FEATURE REQUEST? BUG REPORT

Kubernetes version (use kubectl version):
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac55d903350454310a", GitTreeState:"clean", BuildDate:"2018-07-17T18:53:20Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:08:19Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Cloud provider or hardware configuration: kube-spawn
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

What happened:
$ kubectl exec -it POD sum /bin/bash
50572  1088

$ kubectl exec -it POD cat /bin/bash > /tmp/bash; sum /tmp/bash
34079  1092

What you expected to happen:
I expect that the output path of kubectl exec is binary clean.
How to reproduce it (as minimally and precisely as possible):
Run the kubectl exec commands above.
Anything else we need to know:

/sig cli
/area kubectl

/priority P2

I suspect the shell is going to interpret some characters differently if you're in interactive mode.
What are you trying to do? If you want to copy the file, you could use kubectl cp instead. If you want to use kubectl exec (maybe you're generating some output), use non-interactive mode: kubectl exec -t POD cat /bin/bash > /tmp/bash; sum /tmp/bash (note t Styling with Markdown is supported
he lack of i) does what you want.
Feel free to re-open if I mis-understood and there is indeed a bug.


Lease is not released in time if DynamoDb TTL doesn't delete the expired item fast enough

Let me begin by saying THANK YOU! This is really helpful
I see this implementation highly depends on DynamoDb deleting the TTL expired item in time if we want to use it as a leader election implementation. From DDB documentation, it may take up to a few days for DDB to delete the expired item: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html
If DDB does NOT delete the ttl expired item in time, we may have the lease still locked for a few days even though it should have been released long time back.
Will you consider enriching this part so that it first tries to read from the DDB and if the lease exists but has already expired, just release the lease and acquire it.

Dynamodb ttl is used, but won't generally be triggered as leases are explicitly removed on drop in normal operation.
Ttl is only for the case the lease holder loses contact with the db / crashes. So in that respect i wouldn't say we highly depend on timely ttl deletion.
However, what you suggest still seems an improvement for this crash scenario. So it seems to be worth doing.


testing: Benchmark prints nothing on failure

Benchmark functions can call Log, Error and Fatal, but if the benchmark is run with the Benchmark function, all messages are discarded.
https://play.golang.org/p/fd5Ed-il70V
Perhaps the messages should be printed to standard error?

Hi, I can confirm that the output is discarded
https://github.com/golang/go/blob/master/src/testing/benchmark.go#L772.

I stumbled upon this today, any updates on this? It feels like a pretty valid case and I was hoping it could do one of the following:

testing.Benchmark takes io.Writer as an input.
Allow users to create a custom testing.B and call Benchmark on top of it.

If anyone from the team agrees the the approach of creating a new func that take a io.Writer and uses it here https://github.com/golang/go/blob/fbc6a972226f889d2ab1150468755615098ee80f/src/testing/benchmark.go#L772
I can do the code, should be pretty easy to add and test 😊


Fix TLSDESC description

The table specifies R_RISCV_TLSDESC_LOAD_LO12 and
R_RISCV_TLSDESC_ADD_LO12, while some text uses the _I suffix. Remove the _I suffix to be compatible with
LLVM and the proposed binutils patch.
auipc a0 in a relaxation result should be auipc tX.

@ishitatsuyuki

The _I change looks good to me.
I’m not sure if the tX change is necessary. Both a0 and tX are legal choices here (although tY is not guaranteed to be alive because LOAD is allowed to be reordered after ADD). I think a0 is better overall because the resulting instruction sequence is macro-fusable if both instructions are adjacent.

I think it makes sense that things are kept consistent with the initial template,  so the use of tX seems appropriate to me.
If there's a big concern about that, then maybe  we can add aa comment/note that using a0 would maximize the benefit in most cases, but is up to the implementation.

I think it makes sense that things are kept consistent with the initial template, so the use of tX seems appropriate to me.

I’m not sure if I see why this is more consistent. The destination register for the ADD instruction is a0, so I think it makes more sense for the relaxed instruction to target a0 too.
It’s fine to clarify that both a0/tX can be used, but if we want to pick one, I don’t see any reason so far why tX should be used instead.

I think it makes sense that things are kept consistent with the initial template, so the use of tX seems appropriate to me.

I’m not sure if I see why this is more consistent. The destination register for the ADD instruction is a0, so I think it makes more sense for the relaxed instruction to target a0 too.
It’s fine to clarify that both a0/tX can be used, but if we want to pick one, I don’t see any reason so far why tX should be used instead.

I was thinking whether we needed the flexibility but I guess the answer is probably no.
From the perspective of implementations, a fixed register is easier, so I reverted the auipc wording change :)


EAGLE-565 Because of the "type" field when has subqueue ,response of RM REST API doesn‘t match the SchedulerWrapper object

EAGLE-565 Because of the "type" field when has subqueue ,response of RM REST API doesn‘t match the SchedulerWrapper object

Ignore and add comments on the "type" field in class Queue, in order to workaround YARN-4785
https://issues.apache.org/jira/browse/EAGLE-565

As 'type' field is not a must to have for Eagle, it is ok to remove it. I will merge this pr

isnt this is same PR as #451 ?


fix and refactor ApiClient and nextRows.

ensure closed exactly once and close as early as possible.
use sessionStateRaw for compatibility.
unify retry policy.
allow QueryResponse.Schema to be nil.
one place to call NextQuery().
better code reuse to easy maintain.
allow QueryResponse.Stats to be nil.
fix warnings.

cc @hantmac


Installing plugin

Any chance you could explain in a little more detail how to installing this on Kirby. I couldn't quite follow the instructions. :\
Thanks!
I

@shiftsave Sure!
To install you’ll need to use Composer. It is a command line tool for installing PHP dependencies. Installation of Composer for Mac, Linux, and Windows can be found in their docs. (I recommend installing it globally so it can be used simply as composer.)
Once Composer is installed you’ll need to create a JSON file in the root of your project called composer.json. The contents should be similar to the following (but may have other stuff if you’re already using Composer for your project):
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/matthewspencer/kirby-twig-plugin"
        }
    ],
    "require": {
        "matthewspencer/kirby-twig-plugin": "2.0.5",
        "composer/installers": "~1.0"
    },
    "extra": {
        "installer-paths": {
            "site/plugins/{$name}/": ["type:kirby-plugin"]
        }
    }
}

Note: You may need to be update the installer-paths for your project, which sets the relative path to the Kirby plugins directory.
Then run composer install in the directory that has the composer.json file. (You may need to run it as php composer.phar install depending on how it was installed on your system.)
Then you’ll need to tell Kirby some paths in the main config.php file:
kirby()->roots->vendor = dirname( kirby()->roots()->site() ) . '/vendor';
kirby()->roots->twig = kirby()->roots()->site() . '/twig';
c::set( 'twig.file.extension', 'twig' );

These are set so the plugin can instantiate Twig.
Now it should be installed. From here, follow the usage from the README.


Size vs PVC Templates

Using one of your examples:
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: db-test
spec:
  instances: 1
  primaryUpdateStrategy: unsupervised

  # Persistent storage configuration
  storage:
    # !!!
    size: 1Gi
    pvcTemplate:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: standard
      volumeMode: Filesystem

I had missed that I also need to set Size when I setup a cluster:
{"level":"error","ts":1666283562.0588248,"msg":"Reconciler error","controller":"cluster","controllerGroup":"postgresql.cnpg.io","controllerKind":"Cluster","cluster":{"name":"db-test","namespace":"test"},"namespace":"test","name":"db-test","reconcileID":"bf6ccf11-1ad3-4993-b41b-a60cfefeeca5","error":"while parsing PVC size : quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:273\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234"}

I am guessing that because Size is a string, it gets evaluated by the API. But maybe that requirement can be lifted? It seems redundant, or is there another reason?

Hi, you are actually correct, it's a bug, we should allow specifying the size either via size or resources.requests.storage.
I opened a PR for it, thanks for the heads-up!

That was fast. :) Thank you very much!


First request through Zuul/Euruka will always timeout. Subsequent requests then behave as expected (no timeouts).

Hi all,
Hoping to receive some advice about a timeout issue we're repeatedly experiencing.
We have a number of microservices that are integrated with Eureka and Zuul. Whenever we start up our services (including the Eureka and Zuul services), the first request that hits Zuul will always timeout. This timeout will occur regardless of how long we wait (i.e. the timeout will occur even if we wait 15 mins after starting up). After this first request, Zuul/Eureka then seem to wake up and all subsequent requests will work as expected. Has anyone else experienced this?
This file contains the full Zuul stack trace  we experience on the first request. The pertinent parts of the stack trace are also pasted below:
com.netflix.zuul.exception.ZuulException: Forwarding error
 	at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:170)
 	at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:145)
 ....
Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: my-service-id timed-out and no fallback available.
 	at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:805)
 	at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:790)
....
Caused by: java.util.concurrent.TimeoutException: null
 	at com.netflix.hystrix.AbstractCommand.handleTimeoutViaFallback(AbstractCommand.java:980)
 	at com.netflix.hystrix.AbstractCommand.access$500(AbstractCommand.java:59)
 	at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:595)
 	at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:587)
 	at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)

Thank you.

Might possibly be related to #1334.  Maybe try out the fix in PR ##1749

I'm getting the same issue, did you resolve it?

@trcodestore @matt-shaw Maybe you should try ribbon.eager-load.
OR, you May set Hystrix's timeout longer.

Hi, I've added the Zuul eager application loading settings as specified here Zuul Eager loading settings but don't understand their relationship to the general ribbon eager loading settings listed here General Eager loading settings?
How would I set the Hystrix timeout longer in Zuul?

I get the following stack trace in Zuul.
`com.netflix.zuul.exception.ZuulException: Forwarding error
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:189) ~[spring-cloud-netflix-core-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:164) ~[spring-cloud-netflix-core-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:111) ~[spring-cloud-netflix-core-1.4.0.RELEASE.jar:1.4.0.RELEASE]
at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.3.0.jar:1.3.0]
at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193) ~[zuul-core-1.3.0.jar:1.3.0]
at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:157) ~[zuul-core-1.3.0.jar:1.3.0]
at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:118) ~[zuul-core-1.3.0.jar:1.3.0]
........
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: person-app
at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerContext.java:483) ~[ribbon-loadbalancer-2.2.4.jar:2.2.4]
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:184) ~[ribbon-loadbalancer-2.2.4.jar:2.2.4]
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180) ~[ribbon-loadbalancer-2.2.4.jar:2.2.4]
at rx.Observable.unsafeSubscribe(Observable.java:10151) ~[rxjava-1.2.0.jar:1.2.0]
at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94) ~[rxjava-1.2.0.jar:1.2.0]
.....
`

Please learn how to format code on GitHub.
The error indicates that Ribbon does not know about an app names person-app.

Sorry about code formatting.
Thanks, basically we’re using Zuul and Eureka.  How do I configure Zuul/Ribbon to refresh its list of services from Eureka if it doesn’t know about an app, as above, and then if Eureka doesnt have a service registered with it yet back off and retry in X seconds X times?

By default, the Eureka client will automatically refresh the service registry from the Eureka client every 30 seconds, there is nothing you should have to do but include the Eureka client jar to your classpath and add @EnableDiscoveryClient.

I have order and customer service that integrated with zuul, config, eureka, hystrix. Everything went well until i hit an order-service endpoint that requires remote call (with hystrix command) to the customer-service. If i hit that endpoint directly (without going through zuul proxy) I dont get an error. This problem only exists for the first hit. I have followed all the above suggestions but it does not work for me.
I get the following stack trace in Zuul
gateway_1          | Caused by: com.netflix.client.ClientException: null
gateway_1          | 	at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:118) ~[ribbon-loadbalancer-2.2.5.jar!/:2.2.5]
gateway_1          | 	at org.springframework.cloud.netflix.zuul.filters.route.support.AbstractRibbonCommand.run(AbstractRibbonCommand.java:187) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar!/:1.4.4.RELEASE]
gateway_1          | 	at org.springframework.cloud.netflix.zuul.filters.route.support.AbstractRibbonCommand.run(AbstractRibbonCommand.java:52) ~[spring-cloud-netflix-core-1.4.4.RELEASE.jar!/:1.4.4.RELEASE]

My Spring Cloud Version is Edgware.SR3 with Spring Boot 1.5.13.RELEASE.
Thank you.

@nestramix this is unrelated.  You problem is just a simple read timeout.  http://cloud.spring.io/spring-cloud-static/Finchley.RC2/single/spring-cloud.html#_zuul_timeouts

First of all thank you @ryanjbaxter  @indraneelb1903. I was set Zuul Timeouts more than my business service timeout and everything work fine.
``
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds= 20000
ribbon.ReadTimeout= 4000
ribbon.ConnectTimeout= 4000
``

@nestramix @ryanjbaxter As he says his problem is only on the first hit, ribbon eager loading should help -
ribbon.eager-load.enabled = true

What service do I need to configure this? Gateway, Eureka or Clients?


[Bug] When I submit my flink task I meet some errors

Search before asking

[X] I searched the issues and found no similar issues.

Streamis Component
streamis-server
What happened + What you expected to happen
There are my meta.json and flink.jar (with dependencies)

There are the errors of my streamis

what should I do ?  in this time
Relevent platform
Flink 1.12.2
Linkis 1.1.1
Dss 1.1.0
Reproduction script

Anything else
no
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Should I use the jar with no dependencies?

Use orginal jar


i can't download dependency from maven repository

Question
in the sdk doc,  it mentions that shenyu gateway should refer this dependency, but i can not find it in maven repository, how can i reach it

Replace the version value with the last version  2.5.1


Add Azure spot instance and new instance types, also fix an issue when Azure is too slow to provision a VM

Changes
In this PR 2 changes are made:

Add Spot instance and new instance size for Azure
Add a delay of 180s before removing an unused IP

Add Spot instance and new instance size for Azure
So basically, now we have the possibility to use Standard_A1_v2 and Standard_D2plds_v5 VM.
I use the A1_v2 VM on my side and it works. For the ARM image, I have an issue with it right now when we create the VM image as the VM image don't have the arch parameter, Azure try to create an amd64 image instead of an arm64 image.
Also, you can't use the Spot instance pricing with the B* VM series.
Why I add the Spot pricing? because the A1_V2 VM price is almost the same (3.14$/month) as the B1ls VM (3.80$/month) with 1 full vPCU and 2 G of memory and, normally, a better network throughput.
And the D2plds_v5 is5.6$/month with 2vCPU and 4G of memory with a far better bandwidth.
Add a delay of 180s before removing an unused IP
Actually, we have a race condition, when we create a deployment, Azure will create the public IP first, then a NIC and, at the end, the VM. But, in the same time, if scrapoxy do a listProxy, it will delete unused resources like public IP and NIC. That why we add a 180s delay before a resource is deleted.

I've cloned the branch from my repository and rebased it onto the master branch.
I retained the Spot Instance functionality but replaced the IP timeout mechanism with a different solution: listing deployments to identify instances in creation, eliminating the need for a timer.
Big thanks to you! This is the first accepted PR for Scrapoxy V4.
The release is V4.10.1. I've quoted you in the changelog => https://scrapoxy.io/intro/changelog#_4-10-1
Best,
Fabien

Merged


Remove cobertura for using jacoco

Codecov Report

Merging #45 into master will decrease coverage by 0.07%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master      #45      +/-   ##
============================================
- Coverage     83.55%   83.48%   -0.08%
- Complexity        0      542     +542
============================================
  Files            71       71
  Lines          1818     1816       -2
  Branches         94       94
============================================
- Hits           1519     1516       -3
- Misses          265      266       +1
  Partials         34       34

Impacted Files
Coverage Δ
Complexity Δ

.../qualitoast/service/ElasticsearchIndexService.java
89.18% <0%> (-2.71%)
4% <0%> (+4%)

...imaud/qualitoast/config/SecurityConfiguration.java
97.29% <0%> (-0.04%)
10% <0%> (+10%)

...ualitoast/security/SpringSecurityAuditorAware.java
100% <0%> (ø)
3% <0%> (+3%)
:arrow_up:

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 5e19de6...bcb5188. Read the comment docs.


fix: PPS-113 fix max number of links check

Fix check on the length of the Set of crawled links

Closes issue #80


Fix Option cannot be disabled once enabled

fix "Do not set last modified time of destination file to match source file" option cannot be disabled once enabled after the warning dialog,

the "Do not set last modified time of destination file to match source file" option was broken: cannot be disabled once enabled

the "Do not set last modified time of destination file to match source file" option was broken: cannot be disabled once enabled
since filter v2 is enabled in release: hide extended version filter v1 when filter v2 is enabled


Could you please share your trained weights

Hi @chenhsuanlin ,
Thanks for providing your code. Could you please share your trained weights on your single-category and multi-category experiments?
Thanks a lot!

Dear @chenhsuanlin,
I appreciate your sharing.
Could you please share your trained weights on your single-category and multi-category experiments?
Thank you very much!!

Hi,
I'm not sure if my late reply will help you. But you can try to get the trained weights here:
https://www.dropbox.com/sh/yt979tgv2bgs3v9/AAAUt2Zh-RFN5HwE1AAHPbU8a?dl=0


Fix no context in serializer issue

Fix bugs for views couldn't be found in SocialLoginSerializer. The SocialLoginSerializer need context.

Hi @Helenyin123,
Can you tell me about the issue this is intended to fix? What steps can I take to reproduce it?

When using SocialLoginView, the SocialLoginSerializer will send error "View is not defined, pass it as context variable". This is because the view info is not passed in context. You could reproduce by using django-rest-auth SocialLoginView and combine with django-allauth provider adapter.

Hi Michael,
I found that I messed up django-rest-auth and dj-rest-auth. I closed this request.

@Helenyin123 why does this mess up dj-rest-auth ? It seems like the correct fix.


Can't sent email via swiftmailer after update 2.0.8

Yii2 can't send email by using mailer component after update to v 2.0.8. it can work normally on 2.0.6 (not sure for 2.0.7).
In v.2.0.6 when sent an email it will have a two lines show in PHP Script Name in DirectAdmin at Email usage menu.
Example:
frontend/controllers/SiteController.php
vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SimpleMailInvoker.php

But after update yii2 to 2.0.8
There nothing show in PHP Script Name (if using yii mailer).
Code have not to change anything too.
Tried to use mail() function, it works normally.
Code:
\Yii::$app->mailer->compose()
<EMAIL_ADDRESS><EMAIL_ADDRESS>    	->setSubject('Hello Test')
    	->setTextBody('Can u see me?')
    	->send();

Config:
'mailer' => [
						'class' => 'yii\swiftmailer\Mailer',
						'useFileTransport'=> false,
						'transport' => [
								'class' => 'Swift_SmtpTransport',
								'host' => 'smtp.gmail.com',
								'username' =><EMAIL_ADDRESS>								'password' => 'xxxxx',
								'port' => '465',
								'encryption' => 'ssl',
						],
				],

Another config
'mailer' => [
						'class' => 'yii\swiftmailer\Mailer',
]

Additional info

Q
A

Yii version
2.0.8

PHP version
5.6.8

can you try to track this down using git bisect?

I can't see any headers with stacktrace on 2.0.6. Check out yii2-switfmailer to a previous release, no stacktraces as well.


Deinitialize

Hi there,
here's my added func as referred to in Issue #17 on your repository page.
All the best,
Patrick Wingren

Thanks for PR. Code is quite nested and complex as for what it does what in reality is just removing matching observers.
Would something like
msobservers.deInitialize = function(selectorsToRemove) {
  /*
       * func for removing matching MutationSelectorObservers:
       *
       *    - all if var selectors is undefined, ex $.deInitialize();
       *
       *    - single selector if var selectors is a string,
       *       ex    $.deInitialize('.my-class');
       *
       *    - matching selectors if var selectors is an array,
       *       ex    var array = ['.my-class-one', '.my-class-2'];
       *             $.deInitialize(array);
       */

  if (selectorsToRemove === undefined) {
    msobservers = [];
    return;
  }

  if ($.isArray(selectorsToRemove)) {
    msobservers = msobservers.filter(observer => {
      return !selectorsToRemove.includes(oberver.selector);
    });
    return;
  }

  msobservers = msobservers.filter(observer => {
    return selectorsToRemove !== oberver.selector;
  });

};

do the job?

Also, maybe API like:
const deinitializer = $.initialize(selector, cb);

// later on
deinitializer(); // now it's stopped

would be more 'elegant'? It is not forcing you to remember all the selectors and abstracts it away.
BTW. what is your use case for this?

I sure like your condensed version! But wouldn't that approach throw out the funcs themselves (initialize, deInitialize)?
The API approach is nice!
I'm using it for on-the-fly translations of dynamic, ajax-rendered content, so I need to catch every appearance of the elements, not only the first one. Thus every hashchange empties the selectors, and treats it like an initial page load.

And oh, I really like this script - it made everything I wanted to do so much easier!

Your approach to your use case is VERY wrong. I won't say that the proposed functionality itself is bad, but you seem to misunderstand the core concepts of the MutationObserver API heavily. What you attempt to do is no better than iterating over all elements each time you detect some change, manually, and makes no real use of the API, while it allows you to avoid doing exactly that! It does allow you to get every change you asked it for, so just ask nicely, and you will both get every change and not overload the browser, so there is certainly no sense in "treating it like initial page load" – every time – if you can get away with working only with actually changed elements. I don't see why would translations require to do what you attempting to do or are already doing.

@ZzZombo I'm sure your way of using the MutationObserver API is VERY right. And you are also quite right that I'm not very familiar with the core concepts of the API, much less so than I'd like to be.
That said, I'm not particularly interested in doing things the way they are "supposed" to be done. In everything I do, I follow this simple logic: if it brings me the desired end results, its right - for me.
I love the jquery.initialize script because it lets me work effortlessly without diving in under the hood, which incidentally is pretty much what libraries and plugins are made for. I'm absolutely positive that you'd build the code for my task in a totally different way, but that don't really matters.
I aim less for how it "should" be done than for what it accomplishes. Being very happy with the performance right now (blazingly fast on-the-fly interactions in a quite complex DOM structure) I se no reason whatsoever to change my code logic just for the sake of it.  So I respectfully nod at your knowledge, and then I carry on with what I'm doing.

Hi @ZzZombo, you are correct regarding the issue with #17 in that for every DOM mutation, the entire document is scanned. I have plans to allow an option (for backward compatibility) to limit the scan to the mutated element only to resolve this. Please make further suggestions to #17 and let us know your thoughts.

I must admit, this deinitializer feature seems a little strange. I do not see a use case where one would want to remove an initializer. However, I am not opposed to the code change if the use case is valid.
@pati610, are you aware that if an element is initialized once, it will not be touched again subsequently? That is, if a mutation callback has previously matched its selector against an element and initialised it, it will remember that element and not initialise it more than once for further mutations? See:
        var callbackOnce = function () {
            if (seen.indexOf(this) == -1) {
                seen.push(this);
                $(this).each(callback);
            }
        };

Agree with @dbezborodovrp . I still see use-case for de-initialization tho. Let's say you have some heavy app, and you simply want to 'pause' initialization for some time (eg. in time you have a lot of DOM mutations that you know will not be affected by initializer).

@pie6k just a quick repeat if my question earlier (I'm coming from PHP where nothing is copied by reference if not explicitly done so, so please bare with me):
Wouldn't this line in your original reply
if (selectorsToRemove === undefined) {
    msobservers = [];
    return;
  }

throw out the funcs if there's not a conditional checking, touching only the msobservers that aren't funcs?

Hi @pati610

to be sure that it happened every single time was to initialize at every dynamic partial load

How are you dynamically loading the partial? I have an application that loads partials using HTTP requests. For example, it will get an HTML partial using jQuery.get(), pass it through Handlebars, then render the content in container using .html. Every time the partial is loaded, all the elements are reinitialized, because they have not been seen by the initializer. That is, the previous partial is removed from the DOM and new elements replace them. I have never had any problems with this approach.

every call to history (-> on hashchange).

I no experience manipulating browser history, so I'm not sure how this would affect the initialiser.
I think it would be best if you can provide an isolated example of the bug, so that then we can have something tangible to work with. If you can provide a demonstration of the bug, please open a new Issue, since this pull request has been closed.
(Please also note that the codebase has been heavily rewritten in #17, #19, and #21, so nay merge requests will need to avoid conflicts there.)


Getting error line/column

Hi. Is there an easy way to find out at which line/column parsing failed? Or do I have to calculate that manually by index?

There's no automatic way right now, as Eto.Parse does not read line by line.  The best way is to count the newlines up to the index of the error.


Turn on Ubuntu testing

Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

@edsantiago Looks like you registry script does not work on ubuntu?

Entirely my fault: I took shortcuts when writing the script, and deferred error handling "for later". I deferred too long. I apologize.
I've filed #6375 to address this; errors should now be visible to the caller. @rhatdan if that passes, please feel free to rebase onto it so we can see what's failing here.

@edsantiago It looks like podman does not like the --root flag on Ubuntu. I have no idea what is causing this?

../podman-registry: line 102: --root: command not found

It looks like $PODMAN is not being set. It should be set in line 17 via:
PODMAN=${PODMAN:-$(type -p podman)}

I'm leaving home now and can't check, but I have a vague memory that there's some code that installs podman, then deletes all the installed files. I don't know why that would happen only on Ubuntu and not Fedora though.
My two suggestions are to (1) set PODMAN=/path/to/podman in whatever code invokes this script, or (2) change the default in the script to $(dirname $0)/../bin/podman (to use the podman built in the tree). I don't have a good sense for which is better or if there are other options.
Gotta go, sorry. HTH

Found it: contrib/cirrus/lib.sh:remove_packaged_podman_files(). What I don't understand is how then the script would work on Fedora.
I'm leaning slightly toward this solution, if you'd like to apply it and test with it.
--- a/hack/podman-registry
+++ b/hack/podman-registry
@@ -14,7 +14,7 @@ PODMAN_REGISTRY_PASS=
 PODMAN_REGISTRY_PORT=

 # Podman binary to run
-PODMAN=${PODMAN:-$(type -p podman)}
+PODMAN=${PODMAN:-$(dirname $0)/../bin/podman}

 # END   defaults

Trying it out.

@rhatdan it's not going to work; see #6390. Sorry.

Yikes! Could this be a problem with a bad golang version on ubuntu?

@AkihiroSuda @giuseppe Looks like rootless kit is pulling in requirements for newer versions of golang for ubuntu versions.  What do you guys suggest we do?

Could you be more specific? It should work with Go >= 1.13 and probably also 1.12.

When compiling the code on Ubuntu we are seeing these errors.
[+0124s] # github.com/containers/libpod/vendor/k8s.io/apimachinery/pkg/util/errors
[+0124s] vendor/k8s.io/apimachinery/pkg/util/errors/errors.go:99:10: undefined: errors.Is
[+0124s] # github.com/containers/libpod/vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/parent
[+0124s] vendor/github.com/rootless-containers/rootlesskit/pkg/port/builtin/parent/parent.go:94:9: undefined: "github.com/containers/libpod/vendor/github.com/pkg/errors".Is

Bumping up https://github.com/pkg/errors works?
https://github.com/pkg/errors seems tested with Go >= 1.11: https://github.com/pkg/errors/blob/614d223910a179a466c1767a985424175c39b465/.travis.yml#L4

Ah, Is() seems to require Go 1.13
https://github.com/pkg/errors/blob/v0.9.1/go113.go

Is golang 1.13 available on ubuntu 19?

Yes https://packages.ubuntu.com/eoan/golang-1.13

Ok so we probably need to update the VM images.

Closing in favour of #6418


Overriding the meta tag for article:author

The plugin renders the following meta tag by default (where "mywebsite" is the domain of the website):
<meta property="article:author" name="article:author" content="http://mywebsite/author/admin/" />
Would it be possible to suppress this tag if I don't want to expose the author URL ("author/admin")? Or, simply override the value http://mywebsite/author/admin/ with just the domain http://mywebsite/?

As noted in the readme, you can hook into the opengraph_metadata filter to override any data provided by the plugin.  You'll want to register your function with a higher priority so it runs after the built-in functions and overrides the default values.  So something like:
add_filter( 'opengraph_metadata', function ($data) {
	$data["article:author"] = "http://mywebsite/";
	return $data;
}, 20);

Thank you. 👍🏼


Attach dynamics markings to notes or rests on reading MusicXML files

Currently dynamics markings engraver assumes that dynamics is attached to a note or rest. MusicXML importer however attaches it to ImoDirection when reading it as a descendant of <direction> tag. This difference results in dynamics being not aligned with notes or rests which they belongs to, for example (with test-scores/50035-directions-take-no-space.xml)

With some real-world scores it may look even worse: some dynamics marks become crossing barlines and causing some wedges being pushed further down:

This commit makes MusicXML analyser attach dynamics markings to notes and rests instead of ImoDirection. I am not sure whether it has any implications on the model side, but the engraver seems to work much better in this case making dynamics marks aligned with the relevant notes:

The approach used here is similar to that already used for octave shifts: if dynamics marking needs to be attached to a note or rest which is not yet available, it is added to a list of pending items which get attached to the next note or rest when it gets read. This approach should be possible to use for other objects that might need it as well — at least I was considering something similar for pedal marks (unless they would be better to be attached to ImoDirection?).

Thanks for this PR.
Lomse philosophy is that any StaffObj can have attachments (AuxObjs and RelObjs). AuxObjs are isolated notations and the only restrictions about the parent staff obj are the ones we would like to impose due to semantic reasons or other, but not due to the internal model. In the case of dynamic marks there is no problem in attaching them to notes/rests. In fact, in the LDP language format, dynamic-marks are attached to notes/rests and this is the reason for considering also note heads in the engraver.
I have doubts about dynamic marks in MusicXML because the spec. says that "Dynamics can be associated either with a note or a general musical direction". I have to study this in more detail before commenting your PR. I will do it ASAP.

According to the MusicXML spec. "Dynamics can be associated either with a note or a general musical direction". After reviewing the spec. with more detail I understand than dynamics marks (<dynamics> elements) can be child of <notations> and of <direction> elements. In the first case, Lomse will attached it to the note having the <notations> child. In the second case the current Lomse approach is to attach it to an ImoDirection object. In the lilypond samples (folder tests-scores/regression/scores/lilypond) there are examples of both cases, e.g. 43e-Multistaff-ClefDynamics.xml line 42 (attached to direction) and 42b-MultiVoice-MidMeasureClefChange.xml line 255 (attached to note).
The MusicXML spec. also says that "For applications where a specific direction is indeed attached to a specific note, the direction element can be associated with the note element that follows it in score order that is not in a different voice.". You just attaches the pending dynamics mark to the next analyzed note without checking for the voice, but as dynamics marks are not voice related, I think it is OK to attach the AuxObj to the next note and it is not necessary to check for voice. In any case, although the <direction> element has an optional voice element, I've not seen it on the MusicXML samples. Also the voice elements is currently not parsed in DirectionMxlAnalyser (line 2638). Anyway, not necessary.
The only issue I see in your proposed code is related to the clear_pending_note_rest_aux_objs() method. If the dynamics mark cannot be attached to a note, instead of deleting it, it should be attached to the ImoDirection. But. how to do it? One possibility is to initially attach the AuxObj to the parent ImoDirection, and later, if it is decided to attach it to a note, find its current parent, remove the AuxObj from it and attach it to the note. Also it would be nice to delete the ImoDirection if it doesn't have more attached objects. And if the AUxObj is finally not attached to a note, it will be already properly attached to an ImoDirection in the right place.
In conclusion, it would be necessary to:

always attach the AuxObj to the parent (DynamicsMxlAnalyser , line 2805)

    pSO->add_attachment(pDoc, pImo);
    if (!pSO->is_note_rest())
        m_pAnalyser->add_pending_note_rest_aux_obj(pImo);

In MxlAnalyser::add_to_pending_aux_objs(): before attaching the AuxObj to the note, find its current parent, remove the AuxObj from it and attach it to the note. And remove from the model and delete the ImoDirection if it doesn't have more attached objects.

In clear_pending_note_rest_aux_objs() just clear the vector, but do not delete the AuxObjs.

Finally, I would suggest change some names:

vector<ImoAuxObj*>  m_pendingNoteRestAuxObjs;  -->  vector<ImoDynamicsMark*>  m_pendingDynamicsMarks;
add_pending_note_rest_aux_obj() --> add_pending_dynamics_mark()
add_to_pending_aux_objs() --> attach_pending_dynamics_marks()
clear_pending_note_rest_aux_objs() --> clear_pending_dynamics_marks(), or better remove the method and just do m_pendingDynamicsMarks.clear();

Hope I have not missed anything!
By the way,  I see that you are working to improve the scores layout, so to not overlap work just to inform you that  I'm currently studying better approaches to layout slurs to improve its appearance.

Thanks for your comments! I updated the pull request with the proposed changes, except that I haven't yet implemented removing empty ImoDirection objects. If I understand it correctly, <direction> tag (represented by ImoDirection object) may have several children, and it may theoretically happen that it has both dynamics mark and some spanner endpoint as its children. In this case it would be dangerous to delete the ImoDirection object as the spanner would only get added to it after its second endpoint is encountered. I wasn't able to find examples with dynamics, but there are cases when this happens for <words> and (not currently imported by Lomse) <dashes> elements, for example in this test score. A possible solution may be to store a list of such potentially empty ImoDirection objects in MxlAnalyzer and check presence of attached objects for them after parsing the entire MusicXML file. If this is fine, I can add this logic to this pull request as well.

Yes, your understanding of ImoDirection is correct. It can have several AuxObjs and RelObj attached.
My explanation was not clear enough because when I was saying "it doesn't have more attached objects" I was referring to both AuxObjs and RelObjs. So, as you correctly guessed the ImoDirection parent must be deleted only if the dynamics mark auxobj is the only attachment.
The internal model is not very well designed and has some nuisances. I should work on cleaning it a little but I always have other things to do! All attached ImoAuxObjs are not direct children. Instead the parent has a child ImoAttachments and the AuxObjs are attached there as children. As to RelObjs, it is similar, and they are attached to a child ImoRelations object, but in this case the attached RelObjs instead of being children of ImoRelations, they are included in an internal std::list and are not part of the tree.
You should deal with this as follows:
void MxlAnalyser::attach_pending_dynamics_marks(ImoNoteRest* pNR)
{
    for (ImoDynamicsMark* pDynamics : m_pendingDynamicsMarks)
    {
        ImoObj* pOldParent = pDynamics->get_parent_imo();       //this is the ImoAttachments child in the parent ImoContentObj (the ImoDirection obj)
        pOldParent = pOldParent->get_parent_imo();     //this is the ImoContentObj (ImoDirection)

        if (pOldParent)     //Must exist! Otherwise big big bug or memory corruption! Probably no need to check this
        {
            pOldParent->remove_attachement(pDynamics);

            ImoStaffObj* pSO = dynamic_cast<ImoStaffObj*>(pOldParent);
            if (pSO && pSO->get_num_attachments()==0 && !pSO->has_relations())   //is empty?
            {
                ImoObj* pMusicData = pSO->get_parent_imo();     //this is the ImoMusicData parent
                pMusicData->remove_child_imo(pSO);
                delete pSO;
            }
        }

        pNR->add_attachment(m_pDoc, pDynamics);
    }
}

I have not tested this code but I think it is correct. If you would like to try, it would be nice if you could prepare two minimal MusicXML scores, one with the <dynamics> followed by a <note> and the other one with the <dynamics> followed by the final barline, to add them to the unit tests (in lomse_test_mxl_analyser.cpp after line 1714) and check both behaviors. But if you don't feel sure or other, don't worry I'll do it later as part of the PR test.
Thank for contributing!

My explanation was not clear enough because when I was saying "it doesn't have more attached objects" I was referring to both AuxObjs and RelObjs.

Yes, I see, but my point is that on reading spanners only *Dto objects are created, and real ImoRelObjs may be created and attached to ImoDirections (or any other objects) later than the next note is encountered in the document. Therefore it is not possible to reliably check at that point whether ImoDirection really has no other attachments or it is just waiting for some RelObj to be attached. If so, this check can possibly be postponed to the end of reading MusicXML document, in this case it should not cause such issues.

Sorry! You are right. You have to postpone the checking and deletion or, better, ignore this. And empty ImoDirection doesn't cause any problem; it was just optimization. In any case, if desired, in future  they can be filtered out and deleted when the score is finished, when building the ColStaffObjs.

Don't worry about the unit tests. I'll do it after testing and merging the PR.

I think that now your PR is ready to be merged. I will do some tests and, if nothing detected, I will merge it.
Thank you!
By the way, I am really impressed by your ability to navigate the code and quickly learn its structure without needing any help. Congratulations! Nevertheless, if at any moment you would like to comment anything or would like clarifications on something, please feel free to ask or to send me a PM. I'll be glad to help you!

I've tested this PR and although it works as expected and really improves the positioning of dynamics marks, one of the regression tests (test score 50046) produced a result that I didn't expected. This is was was rendered before this PR:

And this after merging the PR:

And the reference (original pdf score) is:

As expected, dynamics marks 'sfp' and 'pp' are now centered on the notes. But the unexpected result is the position change of 'pp' dynamics mark. To understand the reason, first let's analyze the MusicXML code. Ignoring fermatas and other not relevant elements the definition order is:
    Part 2, Measure 1:
    - The grace note is defined in voice 1 but in staff 2 (!)
    - A direction to start a wedge, below staff 1
    - A direction in staff 1, positioned below staff 1, with the 'sfp' dynamics mark --> [1] See below
    - Note G4 half dotted, in staff 1
    - A direction to finish the wedge at end of measure
    - A backup to start of measure
    - the rest

    Part 2, Measure 2:
    - attributes: new clef G2
    - note chord G3 D4 A4 eighth voice=2 staff=2
    - direction in staff 2, positioned above staff 2, dynamics 'pp'  ---> [2] See below
    - note chord G4 D5 A5 in staff 1

[1] 'sfp' dynamics mark:

before PR: direction in staff 1, positioned below staff 1 ==> placed below staff 1. OK
after PR: transferred to note G4 in staff 1 and placed bellow it ==>  placed below staff 1. OK

[2] 'pp' dynamics mark:

before PR: direction in staff 2, positioned above staff 2 ==> INCORRECTLY placed below staff 2. Should be above staff 2
after PR: transferred to G4 note in staff 1 and thus, placed above it ==> INCORRECTLY placed below staff 1. Should be above staff 1 (notice that the transfer changes the expected position! )

My preliminary conclusions:

There is a bug in MusicXML importer in line 2818 that causes that all directions will be placed in the default position. I didn't have time today to investigate if the direction position is transferred to its content. But it seems that all directions are rendered bellow the staff. Don't worry about this, I will fix this bug and apply it after merging your PR.

Your PR does not take into account that the direction is defined in one staff and the note that receives the attachment can be in a different staff. Therefore, during the transfer, the position of the dynamics mark should be adjusted.

The  'sfp' dynamics mark is defined at the same time position than the wedge; therefore, they are vertically stacked. The only way of getting the original layout (the 'sfp' before the wedge) is by accepting user defined positions (default-x' and default-y' attributes). But this is something that I'm reluctant to import.

I have to think a little more about all this, but I would like to share with you my current thoughts. Let's think a little about this findings and then decide what to do.

Your PR does not take into account that the direction is defined in one staff and the note that receives the attachment can be in a different staff. Therefore, during the transfer, the position of the dynamics mark should be adjusted.

Indeed, that should probably be fixed. It should be easy to correct this by checking staff number like it is already done for octave shifts. However doing so will attach the "pp" dynamics mark in this example to the second chord in the second staff which seems to be even more wrong in the context of that score. Perhaps we should just leave such dynamics attached to their original ImoDirections if they cannot be attached directly to the next note encountered in the score? Not sure whether this makes sense in a general case, but at least for this example it will work better (although this MusicXML does not seem to fully correspond to the initial score anyway).

The 'sfp' dynamics mark is defined at the same time position than the wedge; therefore, they are vertically stacked. The only way of getting the original layout (the 'sfp' before the wedge) is by accepting user defined positions (default-x' and default-y' attributes). But this is something that I'm reluctant to import.

From my point of view a good option here would be to automatically align a wedge if it starts or ends with a dynamics mark, so in this example the wedge would be shortened from its left side to make a room for "sfp" mark to appear below the note. This is exactly what the reference picture shows, and this is something that MuseScore does by default in such situations (I was even implementing some parts of this logic there :) ).
Correct default-x values will likely not be provided in MusicXML documents in most cases (and in this example the relevant elements don't have them too) so importing user-defined position will probably not resolve this issue for such scores.

Perhaps we should just leave such dynamics attached to their original ImoDirections ...

No, I think it is better to attach it to the notes/rests unless some ad hoc layout rule, such as the one suggested for the spf and wedge case, applies. The normal procedure could be to attach to next note without considering the staff, but to change dynamics placement to try to keep the position, when note staff != direction staff:
                                                     final
case            direction   note    placement       placement
  1   staff       1          2       above            ?        -> above 1
  2   staff       1          2       below           above     -> above 2 = below 2
  3   staff       2          1       above           below     -> below 1 = above 2
  4   staff       2          1       below            ?        -> below 2

As you can see there are some issues to solve:

new placement codes, for cases 1 and 4
instruments with more than 2 staves (organ?)

So, for now perhaps the best solution is to merge the PR and, in future, try to deal with this. There are more urgent things to do now.
As to the 'sfp' dynamics mark defined at the same time position than the wedge:

a good option here would be to automatically align a wedge if it starts or ends with a dynamics mark

I also thought about this solution and I thing it is the best approach. But in any case, this has nothing to do with this PR, it is not urgent, and can be solved later.

MuseScore does by default in such situations

I didn't know. I never look at the solutions in other projects code. I like to think and to find solutions by myself, to learn. That takes more time but I do not have deadlines for having the code ready  :-)

I was even implementing some parts of this logic there :)

That's great! when you send the first PR I noticed that you also contributes to MuseScore and I was surprised that you would like to contribute to Lomse. But tank you and welcome! MuseScore is a very nice project and I use it for creating scores. In 2012 I decided not to pay for web hosting for my project and Thomas Bonte contacted me and offered to host my project. We were taking about collaboration in MuseScore but our projects were so different that to do it I had to abandon mine. So, I decided to continue with my project. For you, having studied the internals of both projects will have given you a much better knowledge of this area of dealing with music notation! By the way, Lomse offers much more than it is required for my application, and thus I develop Lomse just for fun and to learn. I choose issues to solve without any criteria, just my personal taste at the moment. Therefore, if you would like that I give priority to some issues, please tell me.
Well, returning to the PR I think that it should be merged as it is. Agree? Then please rebase and I'll do it.

Great! I had a chance to meet Thomas in person, as well as the other MuseScore founders, Werner and Nicolas. I didn't know that you also know each other, the world is that small :)
As for Lomse, I use it for my personal project I have started recently, which is basically a score reader which tries to listen to what a human plays and track a current position in a score to always show the relevant pages. The music notation library from MuseScore would be less convenient to use in such project since it is heavily dependent on Qt and has a more restrictive license (the latter is not that relevant right now since I didn't publish my project anyway, but that may matter if I ever decide to). Therefore I am mostly dealing with issues which I see in the context of my project, but I will certainly be interested in making Lomse better in general. I don't also think that it currently makes sense to prioritize any issues relevant solely to my project: I think it would be much more useful for a project like Lomse to improve its different areas rather than focus on one particular way of using the library. Maybe it could be useful though if I report some of those issues I encounter: currently I somehow tend to report them only after figuring out a way to fix them.

Well, returning to the PR I think that it should be merged as it is. Agree? Then please rebase and I'll do it.

OK, I'll push a rebased version of the pull request now.

Thank you!
Yours is a very interesting project, and great to avoid turning pages! But audio analysis must be the toughest part, specially if not a single instrument!


49 application layout

Closes #49

I know this is nit picky, but @luigibesani before this PR leaves draft please choose a more descriptive title, rather than an auto generated one. Something like "Add basic application layout". Additionally its always good to describe what this PR does in the body so a reviewer will know more or less what to look for in the app


Add http://

Almost all urls in my database added without "http://" or "https://" at the beggining
The plugin should be able to handle it of course without any modification to the url entries in the database

Sure, I have thought about it when I was writing the plugin.
Do you think it is best to try https:// first, then http://?
Since we are moving to a "HTTPS" period, this maybe make more sense.
Just out of curiosity, why do you enter URLs without a schema?
Anyway, let me know.

HTTPS won't bring any advantages since we are just fetching some icons
I think going for HTTP directly is better:)
I don't really remember the reason :D

HTTPS won't bring any advantages since we are just fetching some icons
I think going for HTTP directly is better :)
I don't really remember the reason :D

Well, I'll take a look on this weekend.

Hey @Qwash , check this out...
https://github.com/navossoc/KeePass-Yet-Another-Favicon-Downloader/releases/tag/v<IP_ADDRESS>-pre
This should do the trick for now, right?
Let me know and I will release it as the next update.
Thanks.

I get "not found" whenever I try
I don't even see any DNS requests

Ops, you almost got me 😨 for a second.
I will give a few days, then release it as the main version.
Let me know if you find any issue.
Thanks!

Hey @Qwash, I have promoted that pre-release to a release.
Technically it's the same file. The only modification I did on the code was increment the version.
I hope this way, it will notify other users to update.

OK, thank you 👍

The current implementation adds http:// to all entries. I feel it would be better to simply handle urls with or without this portion added on to them

@matthewmcpartland have you tested the option yet?
I mean, maybe I am not understanding exactly what are you talking about or I did not make myself very clear about how it works.
It "adds" the prefix http:// on the fly (on memory online).
It will not change your password entry on the database.
For example, you have a entry with a URL saved like this:
github.com
It will turn it in:
http://github.com
This process is done only in memory, the password entry will not be affected.
After you perform the "download favicons" action, the URL you have saved in your KeePass database will remain exactly the same.
Is this what you are referring to or did I misunderstand?
About the https, I'll look into too...

I thought the option would edit all of the URLs in the database. With the option enabled it works beautifully.
Since I had though it would change the url, then it would be better to have the url be changed to https://. That said since it only loads it into memory I agree you should keep it as just http for legacy support.
Excellent work on this plugin btw, it really picks up where the other one left off

@matthewmcpartland No, it won't edit anything else besides the custom icon on the password entry.

Excellent work on this plugin btw, it really picks up where the other one left off

That was the plan 👍
I'll change the wiki later to make this behavior more clear.


refactor: sending max fees

Try out this version of the Hiro Wallet - download extension builds.

This PR fixes fees when sending max. Now, the user isn't prevented from selecting the highest fee, instead the fee is subtracted from the total balance and reduces the amount being sent. The same has been done for custom fees here.
I changed the initial send max calc to be based on the Standard fee, instead of Low, and I set it as the state default so that it is selected when the user moves to the choose fee screen. Hopefully this clarifies how the amount at the top has been calculated. I changed to Standard here bc it is what the custom input uses as a default, so I thought it made more sense for them to match.

Let me know if this doesn't seem correct. cc @mica000

cc @314159265359879 that this is going live

cc @314159265359879 that this is going live

This was merged after MV3, so it is sitting behind that. It wasn't included in the latest release.


session module is missing its secret parameter

Hi there,
using the sample from https://github.com/senchalabs/connect, the session module is missing its {secret: 'foo'} parameter.
Cheerio,
Golo

the new docs are for 2.x coming right away


ConfigFile allows spaces but removes them on load

Godot Master
x11
Steps:

Run the code

extends Node

var config = ConfigFile.new()
var config_path = "user://settings.cfg"

func _ready():

	if config.load(config_path) != OK:
		config.save(config_path)

	config.set_value("global","Test Test",false) # Comment this in step 2
	config.save(config_path) # Comment this in step 2

	print(config.get_section_keys("global"))

Outout: [Test Test]
settings.cfg
[global]

Test Test=false

Comment the 2 lines and run again
Output: [TestTest]

Add the 2 lines back in and run
Output: [TestTest, Test Test]

This is because the variant parser allows parameters in the tags, but ConfigFile does not use them.
I don't think this is a bug, it's just extra information that gets ignored when you save, just like comments.
Will document this and close it

Closed by 35b421b69.