Quotes from your book in a presentation/talk

Dear Steven and Mark,
I'm creating a presentation/talk where I wish to quote the "Dependency Injection Principles, Practices, and Patters" book. However, in the beginning of the book there's a paragraph stating:

No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher.

Does this include quotes? I will cite the book whenever I quote from it. The book is a heavy inspiration for the presentation/talk I'm creating, so there will be lots of quotes from it. Most of the presentation/talk will revolve around the issues discussed in the book.
Also, I'm planning to present this at work, and who knows elsewhere in the future, maybe even developer conferences.
Is this OK? Are there any limitations if I e.g. get paid to do a talk/presentation?
Also, I think I have the 2nd edition, but it doesn't explicitly state that in the book. Is there a way for me to verify which edition i have?

Hi Peter,
I forwarded your question to the legal department of Manning, our publisher. Hopefully they will respond soon.

Thank you, Steven :)

Also, I think I have the 2nd edition, but it doesn't explicitly state that in the book. Is there a way for me to verify which edition i have?

The book titled Dependency Injection Principles, Practices, and Patterns is the second edition of  Dependency Injection in .NET.

Peter,
This is the official response from Michael Stephens, Manning's Associate Publisher:

We encourage him to quote freely from the book provided he correctly attributes the work. Ideally, he’ll also offer a link to manning.com for people who want to purchase it.

I hope this answers your question.

That is excellent news Steven! Thank you very much.

Hi Peter,
Depending on your geographical location, different copyright rules might apply. Here are a couple links on (US) copyright law:

https://www.copyright.gov/fair-use/more-info.html
https://fairuse.stanford.edu/overview/fair-use/four-factors/

You might find them useful, but do note that these links can't be seen as an official endorsement from Manning, neither to how copyright is applied in other countries.
ps. I find the discussion interesting myself, because I use quotes from different books myself all the time in my own presentations.

Hi Steven,
I live in Norway. I've sort of figured that if I mark it as a quote, and include a good reference to what I am quoting, it should be OK. After a quick Google search, I found this, which I've quickly translated from Norwegain (this is probably specific to Norway):

The quote should have a child function,
The quote shouldn't freeload off of the rights of the author in a way that harms their economical interest in the quoted work,
The quote shouldn't be offensive (said another way; the quote should be loyal to the author), and
The scope of the quote should be possible to defend based on the purposes of the quote

Source: https://www.forfatterforeningen.no/artikkel/sitatregelen, the section with the title "7 Konklusjon".


Add experimental support for user-defined types in Inlet

Summary

This PR is a feature
It does the following:

Adds the ability for users to construct instances of their own types from inlet by defining specializations for a from_inlet function
Adds direct get calls to inlet that throw std::runtime_error on failure instead of using an out-param
Adds a new operator[] to Table that returns a proxy view to a subobject (Field or Table) with the provided name
Adds contains to Table to check for the existence of a subobject (Field or Table) with the provided name

One potentially confusing API change is that for any arbitrary type T, there are two overloads for get:

T get(std::string name) for RVO version
bool get(std::string name, T&) for out-param version and correctness checking

https://github.com/nlohmann/json, a popular library that has some analogous features (e.g. reading from structured data in a file into structs and other types), implements this as follows:

T get() for RVO version
void get_to(T&) for out-param version

bool get(std::string name, T&) is no longer needed (replaced with contains then get when failure to find something is acceptable), so it may make sense to switch to the get/get_to pair.
The addition of exceptions may also be worth discussing.  SLIC_ERROR does not guarantee termination, and in most cases where I've added exceptions, continuing would result in undefined behavior, so throwing an exception that either terminates the program or is handled some other way felt like the better option.  Of course, other suggestions are appreciated.
To see how this might be used, see https://github.com/LLNL/serac/compare/feature/essman/inlet_structs?expand=1.

We should discuss the exceptions part and which areas of the API use them.
Is all the exception-based functionality duplicated by call paths that do not have exceptions? In that case, would it make sense to add a config variable / compiler define to enable/disable this API?


Lightning not working!

On normally generating worlds no problem, everything is working, but in worlds made by MV there are no lightnings. I tried to summon lightning - "/summon LightningBolt", but it didn't worked. Tested on 2.5-b719 and 2.5-b717.

https://hub.spigotmc.org/jira/browse/SPIGOT-2025

Not an MV bug.


Cant send Appium args

Hi. I try to add --relax-security arg to start appium in android. I send env APPIUM_ARGS with no effect. I think the error is in android/entrypoint.sh. At line APPIUM_ARGS=""

@MadloptD oh, I did not expect that anybody needs to pass own Android args. Added respective support in https://github.com/aerokube/selenoid-images/commit/bf15b1c6429523328ff594ddf9bec491e4064703. You can rebuild images using ./automate_android.sh script. I will rebuild all images a bit later.

Hi. I try to use ./automate_android.sh but it has an error. Error is "break" in case/switch in validate_android_version(). We cant use break without loop.

Hmm, work in my Bash. What is your shell?

There is no problem now. I run script in webstrom terminal. In os terminal all ok.
Now i have another problem. I try to add "pixel" avd, but it wont work. How can i build it?

@MadloptD please describe what exactly you are doing.

This is bash log from container. https://pastebin.com/E2bhgbYL
I want pixel avd with 1080x1920 skin.

@MadloptD you need to have KVM support to run Android images - it is clearly stated in this section: https://aerokube.com/selenoid/latest/#_android
What you have is:
emulator: CPU Acceleration: DISABLED
emulator: CPU Acceleration status: /dev/kvm is not found: VT disabled in BIOS or KVM kernel module not loaded
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.

I have KVM support. Your prebuild image working fine now. I try to build new image with pixel device cause we have systemui crash in android at some tests. And we need appium logs too. Using /automate_android.sh i build image, but it is not working. If it is possible, we can speak at skype (russian). My email<EMAIL_ADDRESS>you can send me your skype-login

@MadloptD better contact me in Telegram @vaniaPooh or in our support channel: https://t.me/aerokube

Closing because of inactivity.


Enhancement

I've recently joined a team that has 13 members that either view the estimation poker match or participate in the poker match.
With the larger number of participants, I am unable to scroll horizontally to see all the votes. Could the PBI/Card selection area could be size-editable to allow for this?

Hi, It will be fixed in an upcoming release.


Fix #1178

This PR improves / fixes mbe :

Fixed a offest bug in SourceTreeWalker
Handle *+ matcher properly
Add missing separator in rhs macro expansion.
Fixed bug in single token with empty delimiter subtree case. It is because the current mbe_expander will create an delimiter subtree for each expansion. But in tt case, all puncts expansion will be incorrect because of it.
Fixed lifetime bug
Add more information on parse_macro fail
Add tests for above.

I think this looks reasonable, but, once macro expansion is generally in a working state, we really should do a thorough pass through all mbe code and refactor it. I bet we can reduce the amount hacks a lot!

Yeah, I just feel uncomfortable about the current state of the code quality of mbe.  But I would want to know all the "hidden" mbe feature by passing a fooddog test first. I already setup a method to allow me to find the macro parsing bugs very easy. (I just found that vis matcher is optional :( )

Yeah, I just feel uncomfortable about the current state of the code quality of mbe

I think it's OK, for know: for exploratory coding, it's really helpful to come with quick & dirty solution that handles most of the things and a basic test suite.
With tests, the second design/rewrite goes much more easily.
In contrast, if you have neither tests, no solid understanding how the thing should work, trying to do the right design from the first try usually brings sadness


icons as NegativeButton

Hi,
is is possible to have option to set NegativeButton as icons instead of buttons?

It's not.


Proposal: Allow validation library configuration a la theme/iconlibs/etc

Allow overriding validation by other libraries.
I wanted to use JJV validation (as it's validation customisation has more than the builtin and seems to be more compatible) and is a pure validation library ; though this required me to override (rewrite) the validation library.
I made a simple validation override for JJV. Though it is ugly (jquery et al (due to core-lib not exposing own utils within own classes)).
One major problem I encountered was translating the JJV schema validation errors to the json-editor expected validation error format. JJV returns validation errors according to the schema; json-editor as an array of errors (with schema path). This required me to "retrieve" and parse the form just to validate the fields.. Which is crap;-)
Yeah I know it is another validation library.. and not part of this project. Though support for other validation libraries would make this project, as a rendering library, pretty cool. This would entail returning validation errors by schema structure (as maybe expected?).
x

cool. can't wait to see the possibilities.


Use latest stable version of guzzle and robo

Hi brad,
I updated composer.json to be able to use recent versions of Robo, Guzzle and PHPUnit

Hey, just noticed this PR.
Has this really been sitting here since November last year...
I was away in .NET land for the last year or so.
Just started a new PHP project so I am going through all my old code and giving it a freshen up.
I think you will find your changes have now been taken care of.
Cheers for PR all the same, even if it take me 3 months to notice it lol

No worries :)


[SILOptimizer] Let visitTransitiveEndBorrows take SILValues.

Previously, visitTransitiveEndBorrows took BorrowedValues.  However,
there is at least one kind of borrow--namely,
unchecked_ownership_conversion insts--that is not currently permitted by
the BorrowedValue API.  The long term fix is to make BorrowedValue
handle such instructions.  For now, change visitTransitiveEndBorrows to
take SILValues so that unchecked_ownership_conversion can be passed to
the API.
rdar://87985420

@swift-ci please test

@swift-ci please test


Help text specific to answers is inaccessible

The help text available on hovering over answers to a question doesn't stay visible after moving away from the answer.

Sometimes you can get the popup text IF you have managed to highlight the question in the browser, e.g. by clicking on it.  (in Chrome.)

Fixed by #1125


Support for Contour Plots

Description
@Dooruk and I recently had a discussion about adding contour plot support to eva. I was wondering if anyone at EMC has been looking into this or has any thoughts about it before we begin development.
@CoryMartin-NOAA @ADCollard @kevindougherty-noaa @EdwardSafford-NOAA

I would like to create ocean vertical transect plots with EVA. I think I can mess with reducing dimensions for plotting with the EVA transform. However I'm not sure how complicated adding the contour plot would be. Would we have to include contour plot class from emcpy to here:
src/eva/plotting/batch/emcpy/diagnostics


pull request for e2e test at 12/22/2016 09:26:16

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Consume the Dead

text: Can be burned if there are no wraiths in play as targeting requirements cannot be met. [ANK20240609]
link: https://www.vekn.net/forum/rules-questions/81521-burn-option-wording-in-rulebook-v1-1?start=6#111646

The pointed ruling says the exact opposite


Loading hint

Sometimes the youtube or vimeo player takes some time in appear ( 4 to 7 secs depending the network, this is mostly in mobile) and the iframe background is covering the loading label so the user just see a black square. I tried append a custom loader but iframe removes the content. Is there a way the loading label can work properly and stays until the embed video is loaded?

The iframe must be hidden until it is loaded to make the loader visible and i've not found a reliable way to detect when an iframe is loaded. So, no, sorry.


CACHEDIR.TAG is not created if the target already exists

Problem
If a target directory already exists, even if empty, cargo will not create CACHEDIR.TAG in it.
This will break any tools that depend on CACHEDIR.TAG being in there.
This fails for both the default ./target dir as well as custom --target-dir.
EDIT:
Here's our specific case where this fails all the time:
When I don't have the target dir created and first open my project in VSCode it's setup to re-route all rust-analyzer target dirs to stop the RA builds & checks and regular builds constantly trampling on each other like so in settings.json:
"rust-analyzer.check.extraArgs": ["--target-dir=target/rust-analyzer"],
"rust-analyzer.cargo.buildScripts.overrideCommand": ["cargo", "check", "--quiet", "--workspace", "--message-format=json", "--all-targets", "--target-dir=target/rust-analyzer"],

So when RA runs, it creates the ./target/rust-analyzer dir, which means that the next time that cargo runs it doesn't create the CACHEDIR.TAG because /target already exists...
Steps

Pick any cargo project (just the default init crate should do)
Create the target dir manually, or delete it's contents after a build manually
Build
Observe lack of CACHEDIR.TAG

Possible Solution(s)
If there's no specific reason for this just make sure to create CACHEDIR.TAG if it doesn't exist already.
Notes
We currently use this to find the target directory of the root package when a subpackage is being built. We need to get some version info from there so that we can download the matching C libraries dependencies. Is there a better way to do this than scanning up the tree for a known file such as CACHEDIR.TAG?
Version
cargo 1.71.0 (cfd3bbd8f 2023-06-08)
release: 1.71.0
commit-hash: cfd3bbd8fe4fd92074dfad04b7eb9a923646839f
commit-date: 2023-06-08
host: aarch64-apple-darwin
libgit2: 1.6.4 (sys:0.17.1 vendored)
libcurl: 7.88.1 (sys:0.4.61+curl-8.0.1 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1t  7 Feb 2023
os: Mac OS 13.4.0 [64-bit]

From my understanding, for an existing target directory, Cargo doesn't know if it is safe to be excluded from backup. Hence avoid adding CACHEDIR.TAG.

We currently use this to find the target directory of the root package when a subpackage is being built. We need to get some version info from there so that we can download the matching C libraries dependencies. Is there a better way to do this than scanning up the tree for a known file such as CACHEDIR.TAG?

This looks like a misuse of CACHEDIR.TAG. It is not for marking target directory, nor Cargo guarantees that. If you just want to know the path of the target directory, perhaps cargo metadata is a better option. Something like cargo metadata | jq -r .target_directory.

From my understanding, for an existing target directory, Cargo doesn't know if it is safe to be excluded from backup. Hence avoid adding CACHEDIR.TAG.

It still seems a strange choice since it's very easy for an unsuspecting user to clear out the contents of the target directory, leaving the directory itself alive, then do another build, which doesn't produce the same set of file as the first build. It will also break any tools that depend on it (e.g. it may start getting backed up to the cloud etc). The intent of CACHEDIR.TAG was to make it work with those things in the first place :)

This looks like a misuse of CACHEDIR.TAG. It is not for marking a directory is target directory, nor Cargo guarantees that. If you just want to know the path of the target directory, perhaps cargo metadata is a better option. Something like cargo metadata | jq -r .target_directory.

I looked into this a bit and unfortunately it won't work. I need the path to the target directory that the user specified on the root package when they started the build - the child package that's being built is a rust library that also needs to download certain other non-rust dependencies into a specific folder in the target directory where the linker will pick them up.
There doesn't seem to be a good way of doing this... I've dump the environment and it doesn't contain anything useful. I scoured a bunch of gitlab and stack overflow posts and haven't found anything useful.
The (ugly) alternative is to go and move the non-rust dependency download code into the client application and require each client to run it as part of their build script even though they don't really need to be aware or care about those as they are required by our crate which they just depend on.... overally not very user-friendly and I'm trying to avoid it...

I need the path to the target directory that the user specified on the root package when they started the build

I am sorry cargo metadata didn't work. What did you mean by "user-specified"? Could we give more details about your use case?

it's very easy for an unsuspecting user to clear out the contents of the target directory, leaving the directory itself alive

It doesn't look easy to me, since a user is encouraged to use cargo clean but manual delete. I believe it could go either way (intentionally deleted CACHEDIR.TAG but Cargo added it back v.s. unintentionally), so your example also makes sense.
However, before diving into the solution space, maybe we can focus on problem space more, so that we can fix the actual problem you have :)
(or focus on CACHEDIR.TAG usage discussion, but that's not a Cargo guarantees your infra can rely on)

See also https://github.com/rust-lang/cargo/issues/14125, which separates intermediate and final artifacts directories. Therefore we might always create CACHEDIR.TAG for intermediate artifact caches.

Another case where the ./target exists was pointed out in #14281 : there, rust-analyzer is configured to use a separate target directory (./target/analyzer) to reduce contention (Rationale, VSCode snippet)
If you open your VSCode on a clean checkout, chances are rust-analyzer will run before the first cargo build, hence rust-analyzer will create the ./target/ and ./target/analyzer directories. Subsequent cargo build will find the ./target dir to already exist and not create the ./target/CACHEDIR.TAG file.


Watch Provider project for changes and rebuild and restart if detected

need to find cmd / work it out again. need to look at syncing it across various modules, because can't have multiple modules building at the same time


add swate tutorial videos

This is not "public", yet - out-commented in sidebar. Just to showcase embedding YouTube videos.
Can be reached here: https://nfdi4plants.org/content/docs/swate_videos.html

I know, that's why I didn't publish. Was more for us internally. But no need to merge.

@CMR248 ?

Dominik and I talked yesterday about embedding youtube videos to the tutorial/training section in the sitebar, currently hidden. We also noticed that the videos for SWATE (and other tools) need to be (re)done.
I think Dominik just wanted to showcase and try it out for future material :+1:

Then let's merge it 👍


LLSM.ParseFileNames can't handle dataset names that include keywords used for parsing

If a user names a dataset using any of the parsing keywords (i.e. ch1, stack,nm,msec,or msecAbs), LLSM.ParseFileNames will break. We may need to refactor the parser to be more robust.

LLSM.ParseFileName has been deprecated in favor of the llsm-pipeline version


Add support for Rails 5.2

This pull request allows the gem to be installed on Rails 5.2.
Closes #84

Looking forward to approval of this PR!

ASAP, release a new version of gem, with the support of Rails 5.2.x. Thanks!


Enable simultaneous output of imgs and graph

Previously, when using update_graphs() and show_imgs() at the same time, only the last one called is shown in jupyter. This pull request enables that graphs and imgs can be shown at the same time.
For this, self.out2, self.fig and self.axs was made specific to imgs and graph

Let's try this, thanks a lot for the PR!


windows stdcall

the windows dll is compiled with the cdecl convention. As i'm linking openblas into excel, and VBA understands only stdcall convention, i'm forced to create an interface stcall dll (at this moment, in visual fortran) just to pass the call parameters to the cdecl routine.
As you can imagine, given the number of routines this is a very long and error prone procedure (i'm doing it manually).
So, the issue is: is it possible to have the windows binary compiled with stdcall, as the unique one or as an alternative to current one?

Seeing that this issue is now over ten years old, 32bit Windows has become the exception rather than the norm IMHO, building from source has gotten a lot simpler in the meantime, and (at least according to my limited understanding) it would be sufficient to use /Gz in the compiler flags to get a build that both uses and assumes stdcall by default for any unqualified interface, I'm going to close this.
(I notice libgit2 had a similar proposal rejected around the same time, https://github.com/libgit2/libgit2/pull/749 from which a patch could be derived if need be, and dropped all support for stdcall sometime in 2019)


Enable OPKG packages

This is not the best idea as the tg799 only has ~20mb of free space

Thanks @bluee for your PR!
I agree with @kevdagoat that there's some caveats here with device space (plus for anyone running a bridged modem this won't work) but it's helpful to have the main repo feeds for small packages or someone using a USB stick with extroot.
So, I've taken part of the PR and implemented at https://github.com/davidjb/technicolor-tg799vac-hacks/commit/10b818457f7fffe41adad2c3db67a35bfc867e7d.  Making changes to /etc/opkg/conf doesn't appear necessary since the same config is present by default (at least for me).
Thanks 👍


Transparent background

Is it possible to support a transparent background that way we can place these adds on cards / have more control over how they look?

@emmett-deen Please update to latest version. No more BannerStyle, instead using BannerOptions for better styling native ad.
Happy coding!!!


compiling issues

I would love to compile the ADAA plugin for Mac M1 platform, would that be feasible?
By now, I am stuck with a number of errors I do not know how to solve:
% cmake -Bbuild
-- The C compiler identification is AppleClang <IP_ADDRESS>00029
-- The CXX compiler identification is AppleClang <IP_ADDRESS>00029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring juceaide
-- Building juceaide
CMake Error at modules/JUCE/extras/Build/juceaide/CMakeLists.txt:86 (message):
Failed to build juceaide
[ 12%] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:239:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/memory/juce_LeakedObjectDetector.h:92:17:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
              jassertfalse;
              ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:239:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/memory/juce_LeakedObjectDetector.h:68:13:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
          jassertfalse;
          ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:58:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/utils/juce_ProjectType.h:141:17:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
              jassertfalse;
              ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:288:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (! bundleIdSegments.isEmpty());
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:222:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/maths/juce_MathsFunctions.h:288:5:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
  jassert (upperLimit >= 0); // makes no sense to call this if the upper limit is itself below zero..
  ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:141:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (elements != nullptr);
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:142:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (isPositiveAndBelow (index, numUsed));
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:360:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (indexToRemoveAt >= 0);
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:361:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (numElementsToRemove >= 0);
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:362:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (indexToRemoveAt + numElementsToRemove <= numUsed);
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juceaide/Main.cpp:26:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/extras/Build/juce_build_tools/juce_build_tools.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_gui_basics/juce_gui_basics.h:56:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_graphics/juce_graphics.h:57:
In file included from
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/juce_core.h:255:
/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/containers/juce_ArrayBase.h:212:9:
error: unrecognized instruction mnemonic, did you mean: bit, cnt, hint,
ins, not?
      jassert (numElements >= numUsed);
      ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:160:91:
note: expanded from macro 'jassert'
#define jassert(expression)       JUCE_BLOCK_WITH_FORCED_SEMICOLON (if (! (expression)) jassertfalse;)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:150:140:
note: expanded from macro 'jassertfalse'
#define jassertfalse              JUCE_BLOCK_WITH_FORCED_SEMICOLON (JUCE_LOG_CURRENT_ASSERTION; if (juce::juce_isRunningUnderDebugger()) JUCE_BREAK_IN_DEBUGGER; JUCE_ANALYZER_NORETURN)
                                                                                ^

/Users/jcm/Downloads/ADAA-master/ADAA/modules/JUCE/modules/juce_core/system/juce_PlatformDefs.h:78:48:
note: expanded from macro 'JUCE_BREAK_IN_DEBUGGER'
 #define JUCE_BREAK_IN_DEBUGGER       { asm ("int $3"); }
                                             ^

:1:2: note: instantiated into assembly here
      int $3
      ^

11 errors generated.
make[2]: *** [extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o]
Error 1
make[1]: *** [extras/Build/juceaide/CMakeFiles/juceaide.dir/all] Error 2
make: *** [all] Error 2
-- Configuring incomplete, errors occurred!

My apple silicon mac met the same errors. It seemed to be solved after i updated the version of modules/JUCE to 6.0.3.


Unauthorized error when using .historical()

Bug Report
Describe the bug
Sometimes when using the function for retreiving the history I get an 401 error that I'm not authorized. The same error appears when using thr browser.
Minimal Reproduction
const query = "TSLA";
const queryOptions = { period1: "2021-01-01" };
yahooFinance.historical(query, queryOptions).then((history) => {
  console.log(history);
});

Result:
https://query1.finance.yahoo.com/v7/finance/download/TSLA?interval=1d&events=history&includeAdjustedClose=true&period1=0&period2=1638637015
HTTPError: Unauthorized
    at Object.<anonymous> (/Users/.../node_modules/yahoo-finance2/dist/cjs/src/lib/yahooFinanceFetch.js:74:27)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/.../node_modules/yahoo-finance2/dist/cjs/src/lib/yahooFinanceFetch.js:5:58)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 401
}

Environment
Browser or Node: both
Node version (if applicable): 16.13.0
Browser verion (if applicable): Firefox 94
Additional Context

Hey @maxbauer , thanks for your patience.
Unfortunately as we know from experience, Yahoo's servers aren't always so reliable, and these occasional errors happen sometimes (as you saw, in the browser too).
I suggest to try { } catch (e) { } the yahooFinance call and handle errors appropriately.  Maybe in the future we could add a feature automatically retry for these kind of errors, it's not a bad idea, but I don't see any of us having the time to work on something like that for a while, unfortunately.

This problem is present again since a few hours.

Mmm, on the Yahoo page for this, e.g. https://finance.yahoo.com/quote/TSLA/history/, I'm pretty sure there used to be a "download" link that would let us retrieve this data as CSV.  I don't see that link anymore.  Maybe it still appears if you're logged in?  I didn't try as I don't have a Yahoo account.
In any event, all the data on the page itself (vs from a "download" link), seems to come from the chart API now.  So, I guess our options are:

See if this is temporary and will fix itself again
See if it's possible if you're logged in, adapt the library to support Yahoo credentials
Probably best option, move over to the chart API (although, it would be nice if we adapted historical() to do this for the user with no code changes - I think we should do that but I can't commit to a time yet, maybe someone else will have a chance to do a PR before I get it).

Reopening the issue for now...

https://github.com/gadicc/node-yahoo-finance2/blob/devel/docs/modules/chart.md

Actually, let's track this in https://github.com/gadicc/node-yahoo-finance2/issues/795 which is more easily discoverable as a recent issue.


ISPN-9183 Replace  with  in 2LC configs

https://issues.jboss.org/browse/ISPN-9183

Merged, thanks


Feature request: bind address support

Dear:
Please add bind feature to specify the IP which is used to select the out-going packet router if there are many ethernets
Thanks.

It's already supported by 'listen-address' in the config file.
For IPv4:
main:
  listen-address: ''::ffff:<IP_ADDRESS>'

For IPv4:
main:
  listen-address: ''2600:111:2222:3333::123'

Thanks, but it doest not work, it just listen-address, not the client connect reply address.
Main configuration for hev-socks5-server
main:
Worker threads
workers: 2
Listen port
port: 13884
Listen address (ipv4|ipv6)
listen-address: '::ffff:<IP_ADDRESS>'
auth:
username: "rack02"
password: "rack02.20210829"
misc:
task stack size (bytes)
task-stack-size: 262144
connect timeout (ms)
connect-timeout: 5000
read-write timeout (ms)
read-write-timeout: 60000
stdout, stderr or file-path
log-file: stderr
debug, info, warn or error
log-level: warn
If present, run as a daemon with this pid file
pid-file: /run/hev-socks5-server-rack02-01.pid
If present, set rlimit nofile; else use default value
limit-nofile: 2048
~

curl --socks5 rack02:rack02.20210829@<IP_ADDRESS>:13884 https://ifconfig.me
I will not get the ip: <IP_ADDRESS>, but my main ethernet IP such as 104.148.x.y
please check the following project for explictly bind-address usage by "-b bindaddress " options
https://github.com/rofl0r/microsocks
microsocks -1 -i listenip -p port -u user -P password -b bindaddr

Hm, OK. Bind is used to select a source address to access the upstream server.

Hm, OK. Bind is used to select a source address to access the upstream server.

YES, this feature is missing.
the default mode should we the listen address to access upstream server.


Trigger character always force a new completion session

from https://github.com/eclipse/eclipse.jdt.ls/issues/166#issuecomment-282667530

have a completion item provider that is triggered on *
have another completion item provider that return completions like foo.bar
trigger completion from the latter, type to filter until the . 💥

Sample providers:
    vscode.languages.registerCompletionItemProvider('*', {
        provideCompletionItems(doc, pos) {
            return [new vscode.CompletionItem('foo.bar')];
        }
    });

    vscode.languages.registerCompletionItemProvider('*', {
        provideCompletionItems(doc, pos) {
            return [new vscode.CompletionItem('boom')];
        }
    }, '.');

Awesome, thanks for fixing, much appreciated !!!


Suggestion to add a new source of Chords and Tabs

Dear sirs,
I would like you to consider adding the website https://www.songbook.fun/ to your list of compatible Import places.
This is my main source of chords, the one that I am using to learn how to play ukelele.
Thank you.

Hi! Even though the site is not particularly big, I don't have many requests to add some other sites, so I can definitely take a look at it and if it won't be a big issue, add the support for it.
I'll reply here once I find a free while how it went.

So! I finally found a while and the support for importing from https://songbook.fun should be there :tada:
If you don't mind @jdmasa trying it out, I'd be happy to hear if it works for you :)


[meta] Document Kubernetes Story

Desired feature or idea: What would you like to see happen?
I would like to see a Kubernetes focused section of the docs site.
Kubernetes has become a big enough industry tool that the OpenTelemetry community as built many, many tools to facilitate monitoring k8s and things running on k8s.  Tools such as:

[ ] OTel Operator
[ ] TargetAllocator
[x] Helm Charts

[x] Collector
[x] Operator
[x] Demo

[ ] Collector components

[x] filelogrecevier
[x] k8sclusterreceviever
[x] k8sobjectsreceiver
[x] kubletstatsreceiver
[ ] hostmetricsreceiver
[x] k8sattributesprocessor
[ ] prometheusreceiver

Documentation for all these different tools exists, but there is no central location where a user interested in k8s and otel can go to learn.  I would like to add a large section to the site where were can document the k8s journey with OTel.  This section would contain stuff like:

Otel Operator docs
List of collector components useful in k8s
helm chart documentation
getting started journey
troubleshooting guide

If the community likes this idea I would like to start working on it.

yes, let's do this. See @cartermp's comment on slack as well (highlights are mine):

I am emphatically in favor of it, replacing the top-level “k8s operator” node with “kuberneters” and all the things that are relevant are underneath

Wondering if there should also be a link/document around otel in k8s itself https://kubernetes.io/docs/concepts/cluster-administration/system-traces/ ?

cc @pavolloffay @kristinapathak @frzifus @yuriolisa FYI as well, maybe some of our KubeCon tutorial can be re-used here as well: https://github.com/pavolloffay/kubecon-eu-2023-opentelemetry-kubernetes-tutorial

I will start working on this, please assign me

@TylerHelmuth do you want to keep this ticket open for tracking further progress on the list above? We can turn this into a meta issue if so

Yes

OK, I updated your initial comment to track the tasks, double check what is done already and then we can close the other ones via follow up.
Thanks again for taking care of this, this is making a huge difference!

I going to start work on the Collector pieces next.  I want to document all the important components, but I also want to document the 3 important deployment patters: sidecar, daemonset, and deployment.  There will likely be some overlap with https://opentelemetry.io/docs/collector/deployment/, but I want a hyper-specific kubernetes doc where we can talk about the specific components that a need specific deployment in k8s to function properly.
Once that is done I think we'll have all the supporting documentation for an initial Getting Started, which will focus on getting users started with the collector in k8s.
At the moment I think I'll position the Getting Started flow with a focus on the helm chart since it has the concept of the presets to help get you started.  I want this section to focus on:

getting a collector daemonset installed to collect application traces/metrics/logs, kubeletstats, and host metrics.
getting a collector deployment installed to collector cluster metrics and events.

In a collector world in order to get all the data you need both installations so I want to focus on that.

That all sounds very good.

There will likely be some overlap with opentelemetry.io/docs/collector/deployment, but I want a hyper-specific kubernetes doc where we can talk about the specific components that a need specific deployment in k8s to function properly.

We can cross-link again or review the existing docs if some of that is k8s specific already and should be moved.
@mhausenblas FYI

We can cross-link again or review the existing docs if some of that is k8s specific already and should be moved.

Thanks and makes sense, yes @svrnm

thanks for all this good progress here @TylerHelmuth
Question: Do you think there is a place to link out to Traces for Kubernetes System Components ?

Yes we should. Probably in the top level docs somewhere.

I am going to improve the target allocator doc and then call this issue closed.  I know there were some other ideas called out, but I think those can be handled in separate issues - this issue's goal was to outline all the most important otel-specific pieces of k8s monitoring that needed documented.  Any improvements such as reorganizing or documenting native k8s-tracing can be added in the future.


detect breaking changes

Implement https://github.com/apache/iceberg-python/issues/334

An issue I'm currently investigating is that 58 breaking changes are being reported between 0.5.1 and 0e273ae when the test is run in my local environment.
When test_api.py was first written, it detected just 1 breaking change related to the backward incompatible Daft change:
Example stack trace:
assert not [{'kind': <BreakageKind.ATTRIBUTE_CHANGED_VALUE: 'Attribute value was changed'>, 'new_value': ExprDict(keys=['1', '2'], values=[ExprCall(function=ExprName(name='StructType', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[ExprCall(function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[ExprKeyword(name='field_id', value='100', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='name', value="'file_path'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='field_type', value=ExprCall(function=ExprName(name='StringType', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[]), function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='required', value='True', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='doc', value="'Location URI with FS scheme'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))))]), ExprCall(function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[ExprKeyword(name='field_id', value='101', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='name', value="'file_format'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='field_type', value=ExprCall(function=ExprName(name='StringType', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[]), function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='required', value='True', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='doc', value="'File format name: avro, orc, or parquet'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))))]), ExprCall(function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[ExprKeyword(name='field_id', value='102', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='name', value="'partition'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='field_type', value=ExprCall(function=ExprName(name='StructType', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[]), function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='required', value='True', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='doc', value="'Partition data tuple, schema based on the partition spec'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))))]), ExprCall(function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py'))), arguments=[ExprKeyword(name='field_id', value='103', function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='name', value="'record_count'", function=ExprName(name='NestedField', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD/pyiceberg/manifest.py')))), ExprKeyword(name='field_type', value=ExprCall(function=ExprName(name='LongType', parent=Module(PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-1b_iv7st/griffe_HEAD

Which of these breaking change types we should include in our unit test?
I've currently removed ATTRIBUTE_CHANGED_VALUE type because it was creating a lot of noise in the output

Breakage Kind
Description
Ignore
Rationale

PARAMETER_MOVED
Positional parameter was moved

PARAMETER_REMOVED
Parameter was removed

PARAMETER_CHANGED_KIND
Parameter kind was changed

PARAMETER_CHANGED_DEFAULT
Parameter default was changed

PARAMETER_CHANGED_REQUIRED
Parameter is now required

PARAMETER_ADDED_REQUIRED
Parameter was added as required

RETURN_CHANGED_TYPE
Return types are incompatible

OBJECT_REMOVED
Public object was removed

OBJECT_CHANGED_KIND
Public object points to a different kind of object

ATTRIBUTE_CHANGED_TYPE
Attribute types are incompatible

ATTRIBUTE_CHANGED_VALUE
Attribute value was changed
Ignore
Too noisy, and in most cases not a serious breaking change (like changing a constant value for Table Property)

CLASS_REMOVED_BASE
Base class was removed

@syun64 I was on a merging spree, can you rebase once more? 😓

Looks like we broke something already 😸 Can we make a list to allow breaking changes? Similar to https://github.com/apache/parquet-mr/blob/d8396086b3e3fefc6829f8640917c3bbde0fa9c4/pom.xml#L581-L606

Looks like we broke something already 😸 Can we make a list to allow breaking changes? Similar to https://github.com/apache/parquet-mr/blob/d8396086b3e3fefc6829f8640917c3bbde0fa9c4/pom.xml#L581-L606

Sure! Thank you for the suggestion. I took a stab at implementing this with a YAML file - let me know what you think!

Hey @syun64 Thanks for adding the yaml, that looks neat. What's your gist of Griffe? It looks like there are already some false positives.

Hey @syun64 Thanks for adding the yaml, that looks neat. What's your gist of Griffe? It looks like there are already some false positives.

Thank you for all the feedback @Fokko ! My general impression with griffe is that it's working pretty well, and after carefully reviewing and adding even more breaking changes we've introduced since the last release, I feel convinced that we should include some implementation of this tool.
There are some edge cases that I thought were worth summarizing:

Cython Class interface inference isn't perfect. As I noted in this comment, either the .so or .pyi files are being used. And when .so file is used to interprete the interface, it returns None return types for all of its members:

>>> griffe.load("pyiceberg")['avro']['decoder_fast']['CythonBinaryDecoder'].relative_filepath
PosixPath('pyiceberg/avro/decoder_fast.cpython-38-x86_64-linux-gnu.so')
>>> griffe.load("pyiceberg")['avro']['decoder_fast']['CythonBinaryDecoder']['tell'].returns
>>> griffe.load_git("pyiceberg")['avro']['decoder_fast']['CythonBinaryDecoder'].relative_filepath
PosixPath('/tmp/griffe-worktree-iceberg-python-HEAD-nu9f66g2/griffe_HEAD/pyiceberg/avro/decoder_fast.pyi')
>>> griffe.load_git("pyiceberg")['avro']['decoder_fast']['CythonBinaryDecoder']['tell'].returns
ExprName(name='int', parent=Class('CythonBinaryDecoder', 20, 73))

Import removal is also considered as a breaking change because it's a public function/Class that was available on the module, that's been removed.

Outside of these two edge cases, I think all the exclusions listed are very accurate, and I think the test will require the contributors to think twice about making a breaking change, or to document an intended breaking change into the yaml file so we developers are able to trace down breaking changes a lot easier.

@jaychia 'suggestion -> reorganize modules to the top level


How many GPUs need to run this code ?

Works for me on a single GPU (A6000) and uses around 18GB of memory. You should be able to run it with a 3090 or 4090.


Fix fulcio config

currently panics because the config is not parseable

No issue with the change, but how was this not caught in CI?

@bobcallaway good question. I will take a look in the CI tomorrow and fix it

@bobcallaway checked and this file (and the directory) is not being used in CI and not being validated if the yaml manifest is correct. I will propose a PR to add some basic yamllint/k8s validation in those things.

this change was merged in #118
we can close this PR
that so much for your contribution!


Display list of all tags

Morph the PersonListPanel to display the list of all the tags

Halfway done - pushing to v1.3

Push to 1.4

didnt make use of personlistpanel. but completed.


Closes: #1

Fixed validator
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


Flake8 rule 'E901' reported an invalid point

Flake8 reported an invalid point for the rule E901, with the messge IndentationError: expected an indented block.

Debug information:
Atom version: 1.15.0
Flake8 version: 2.5.0 (pep8: 1.5.7, pyflakes: 1.0.0, mccabe: 0.3.1) CPython 2.7.10 on Darwin

Please update your flake8 version (pip install -U flake8). This particular error should be fixed in flake8>=3.2.1.

Closing due to a lack of response, if you are still having issues after updating flake8 please provide code to reproduce this!


Back press not working on main activity.

Is the bug present in the demo Chat SDK project?

What modifications have you made to the Chat SDK?
I implement you code to my project.

Android Version:
8

Steps taken to reproduce the problem:
@Override
public void onBackPressed(){
Intent intent =new Intent ( MainActivity.this,HomeActivity.class);
startActivity(intent);
finish();
}

Expected result:
It will go to my appz homeactivity.

Actual result:
But it is not either showing an error or go to activity.It stay where it was.I was doing the same on your previous versiln 4. It was working. But now its an issue.
Thank you.

Comments:
@bensmiley I think you can help me. As you did before

Hi @RahatSaqib could you provide some more context. Are you subclassing the MainActivity? If so, have you tried adding a breakpoint on this line to see if it's actually hitting it?

I implement this code on MainActivity.becauseafter the splashscreenaxtivity the app redirect to mainactivity.  Thats why i add those.  As per my opinion it is not hitting the mainActivity.

Hi @RahatSaqib if you want the app to redirect to your main activity you can use:
ChatSDK.ui().setMainActivity(YourMainActivity.class);

Other than that, you would need to add a breakpoint to the main activity onCreate method and onBackButtonPressed. You are saying that the activity is not launched, but first, you need to confirm that your code is actually executed.

Actually ben I am not tryting to make any difference to your app. I am just trying when I click on a button it will go to your app from mine. and when I back press from your app it will back to my app.thats it.. if you can tell me where should I use onBackPressed method on your app.

@RahatSaqib you need to override the MainActivity and then override the onBackButtonPressed method. it is disabled by default. See here:
https://hackmd.io/@dyR2Vn0UTFaO8tZjyiJyHw/ByL0mWG0L

This is the code in the MainActivity that disables the back pressed.
    @Override
    public void onBackPressed() {
        // Fixes an issue where if we press back the whole app goes blank
        if (UIModule.config().allowBackPressFromMainActivity) {
            super.onBackPressed();
        }
    }

You can also set the setting:
UIModule.config().setAllowBackPressFromMainActivity(true);

I also tried this method also.. but it is not WORKING.But in the case of chat activity  I use ChatSdk.ui().setMainActivity to my homeaktivity which is working when backpressed it comes to my app activity.. But inside Main Activity of your app it is not working the backkpressed method.

But I want to say that is. When ever I tried to change any of this activity it changes but it is not taking effect on your app. After that I saw that in C:\Users\user.gradle\caches\modules-2\files-2.1\sdk.chat this directory all of you app's activity,fragments, stored here. That is only read only. It is not changing when i change it shows read only. It stays what you implement. I think my project call this files when runny not the imported module files. As I am thinking. I am not sure. You are professional you can ensure me If i am worong or write . @bensmiley

@RahatSaqib you shouldn't try to modify the files. Subclass and override them like this:
https://hackmd.io/@dyR2Vn0UTFaO8tZjyiJyHw/ByL0mWG0L
I also tested and onBackPressed is called.

If you could give me a clearer idea of what you're trying to do, I can try to advise further.

You say you've already overridden the main activity. So where do you exactly want to go back to when back is pressed? This isn't really anything to do with Chat SDK, it's a standard Android issue. You can just launch the activity like this:
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);

I already did all of the thing you tell.. But it didn't happening in my case. I used Intent also.. But do not happening. As per my guess it should be done with this.

@RahatSaqib can you please describe your setup in more detail. Tell me how you are integrating Chat SDK. Where are you trying to click back from, where do you want it to go? Did you add a breakpoint? etc...

actually I told you before about it. I just want to launch your app by this button click

when i press the button it goes to your app mainActivity

this activity comes. and I want to back press from this interface. when i back press from this UI. i will back to my app. That's it

@RahatSaqib I think the problem is that you're launching the splash screen activity. Try launching the main activity instead:
        ChatSDK.ui().startMainActivity(this);

You will have to make sure that the user is already authenticated with Firebase

No brother. Its not working also

I already authanticated users in my homeactivity

@RahatSaqib yes, if you just launch the main activity it won't work, because the back button is disabled. You would need to override the main activity and enable the back button and then launch that.

Can you tell me how to override the main activity. I already eneable allowbackpressed variable to true. but how to override this. can you suggest me?

@RahatSaqib here is the link to the guide on how to override activities: https://hackmd.io/@dyR2Vn0UTFaO8tZjyiJyHw/ByL0mWG0L

Subclass the MainActivity
override the onBackPressed method
In onBackPressed launch your main app activity
Register your subclass with Chat SDK framework ChatSDK.ui().setMainActivity(MainActivitySubclass.class);

ChatSDKUI.setPostRegistrationActivity(HomeActivity.class);
should i use  this method?

Finally It works with your suggestion. But why this was not working on Mainappbar activity?

I don't know why it wasn't working, I expect because you were launching the splash screen activity which itself launches the main app bar activity. Even when you enabled back, it would just jump back to the splash screen and immediately back to the main activity. You can subclass MainAppBarAcrtivity too, I think that should also work.

I have a question to you. When I recieve msg from others it will give default notification ringtone..But in your app it only receive notification and vibrate no ringtone.I added these lines on NotificationDisplayHandler.java file. but it si not working. can you suggest me something?


On-demand stream playback starts corrupted

Which version are you using?
v0.19.2 (linux amd64)
Which operating system are you using?

[X] Linux amd64 standard

Describe the issue
I'm trying to use this to serve H.264/MP4 video files for testing purposes, stored inside a videos/ subfolder. It does work, but i'm getting decoding artifacts when starting playback, until it recovers; i'm suspecting that playback does not start with a keyframe. Playing back the video file locally works without any problem.
Describe how to replicate the issue

start the server with the following config modification

paths:
  all:
    runOnDemand: ffmpeg -re -stream_loop -1 -i videos/$RTSP_PATH -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH
    runOnDemandRestart: yes

Put an mp4/H264 video into a videos/ subfolder, e.g. generate it with gst-launch-1.0 videotestsrc num-buffers=60 ! timeoverlay ! x264enc ! mp4mux ! filesink location=videos/test.mp4

read with gst-play-1.0 rtsp://localhost:8554/test.mp4 -v <-- output is corrupted, until it recovers permanently

Client logs
LANG=C GST_DEBUG=3 gst-play-1.0 rtsp://<IP_ADDRESS>:8554/test.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing rtsp://<IP_ADDRESS>:8554/test.mp4
Pipeline is live.
0:00:00.052547618 26426 0x55df2f9706a0 WARN                  udpsrc gstudpsrc.c:1637:gst_udpsrc_open:<udpsrc0> warning: Could not create a buffer of requested 524288 bytes (Operation not permitted). Need net.admin privilege?
0:00:00.052569222 26426 0x55df2f9706a0 WARN                  udpsrc gstudpsrc.c:1647:gst_udpsrc_open:<udpsrc0> have udp buffer of 212992 bytes while 524288 were requested
Redistribute latency...
0:00:01.063769265 26426 0x7f675802a0c0 FIXME                default gstutils.c:4025:gst_pad_create_stream_id_internal:<fakesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Redistribute latency...
Redistribute latency...
0:00:01.121374287 26426 0x7f675802a1e0 WARN         rtpjitterbuffer rtpjitterbuffer.c:768:rtp_jitter_buffer_calculate_pts: backward timestamps at server, schedule resync
Redistribute latency...
0:00:01.151851974 26426 0x7f673801b520 ERROR                  libav :0:: Missing reference picture, default is 2
0:00:01.151864031 26426 0x7f673801b520 ERROR                  libav :0:: co located POCs unavailable
0:00:01.152782893 26426 0x7f673801b520 ERROR                  libav :0:: mmco: unref short failure
0:00:01.153839466 26426 0x7f673801b520 ERROR                  libav :0:: co located POCs unavailable
Redistribute latency...
Redistribute latency...
0:00:01.192200826 26426 0x7f673801b520 ERROR                  libav :0:: reference picture missing during reorder
0:00:01.192217116 26426 0x7f673801b520 ERROR                  libav :0:: Missing reference picture, default is 65540
0:00:01.193241665 26426 0x7f673801b520 WARN            videodecoder gstvideodecoder.c:3159:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:01.075322987 < 0:00:01.105504799)
0:00:01.224290908 26426 0x7f673801b520 ERROR                  libav :0:: mmco: unref short failure
0:00:01.224601634 26426 0x7f673801b520 WARN            videodecoder gstvideodecoder.c:3159:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:01.075322987 < 0:00:01.105504799)
Redistribute latency...
0:00:03.565082615 26426 0x7f673801b520 WARN            videodecoder gstvideodecoder.c:3159:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:01.565388850 < 0:00:01.576377358)
0:00:03.676656153 26426 0x7f673801b520 WARN            videodecoder gstvideodecoder.c:3159:gst_video_decoder_prepare_finish_frame:<avdec_h264-0> decreasing timestamp (0:00:01.662211421 < 0:00:01.680505065)

Server logs
./rtsp-simple-server loop-server.yml
2022/07/07 14:30:30 INF rtsp-simple-server v0.19.2
2022/07/07 14:30:30 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2022/07/07 14:30:30 INF [RTMP] listener opened on :1935
2022/07/07 14:30:30 INF [HLS] listener opened on :8888

[START PLAYBACK]

2022/07/07 14:30:33 INF [RTSP] [conn <IP_ADDRESS>:35620] opened
2022/07/07 14:30:33 INF [path test.mp4] runOnDemand command started
ffmpeg version n5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videos/test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomiso2
    creation_time   : 2022-07-07T12:29:14.000000Z
    encoder         : x264
  Duration: 00:00:02.00, start: 0.000000, bitrate: 1530 kb/s
  Stream #0:0[0x1](und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p10le(tv, smpte170m, progressive), 320x240 [SAR 1:1 DAR 4:3], 1524 kb/s, 30 fps, 30 tbr, 3k tbn (default)
    Metadata:
      creation_time   : 2022-07-07T12:29:14.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
2022/07/07 14:30:33 INF [RTSP] [conn [::1]:33418] opened
2022/07/07 14:30:33 INF [RTSP] [session 820800834] created by [::1]:33418
2022/07/07 14:30:33 INF [RTSP] [session 820800834] is publishing to path 'test.mp4', 1 track with UDP
Output #0, rtsp, to 'rtsp://localhost:8554/test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomiso2
    encoder         : Lavf59.16.100
  Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p10le(tv, smpte170m, progressive), 320x240 [SAR 1:1 DAR 4:3], q=2-31, 1524 kb/s, 30 fps, 30 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2022-07-07T12:29:14.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
2022/07/07 14:30:33 INF [RTSP] [session 206944300] created by <IP_ADDRESS>:35620
2022/07/07 14:30:34 INF [RTSP] [session 206944300] is reading from path 'test.mp4', 1 track with UDP
2022/07/07 14:30:46 INF [RTSP] [conn <IP_ADDRESS>:35620] closed (EOF)peed=   1x
^C2022/07/07 14:30:55 INF shutting down gracefully90 bitrate=N/A speed=   1x
2022/07/07 14:30:55 INF [path test.mp4] runOnDemand command stopped
2022/07/07 14:30:55 INF [RTSP] [session 206944300] destroyed (terminated)
2022/07/07 14:30:55 INF [RTSP] [session 820800834] destroyed (terminated)
2022/07/07 14:30:55 INF [RTSP] [conn [::1]:33418] closed (terminated)
2022/07/07 14:30:55 INF [RTSP] listener is closing
2022/07/07 14:30:55 INF [HLS] listener is closing
2022/07/07 14:30:55 INF [RTMP] listener is closing
2022/07/07 14:30:55 INF waiting for external commands
frame=  635 fps= 30 q=-1.0 Lsize=N/A time=00:00:21.06 bitrate=N/A speed=   1x

Hi
Can anyone confirm reproduction of the issue ?

I have many artifacts when playing rtsp streams since 0.19.2 too.

I notice some glitching when I open a RTSP stream using tinycam, I thought maybe it was my device's decoder but maybe not.

What i noticed is that VLC is much slower to start but does not show the artifacts; my best guess is that it waits for the first keyframe to start decoding.

I have many artifacts when playing rtsp streams since 0.19.2 too.

Are you saying it used to work better before (i'm a new user) ?

Again, tests shown that blocking the stream on the server-side until a keyframe causes most players to trigger a timeout, including VLC, ffmpeg and Gstreamer. Of course this depends on the keyframe interval, but since this server doesn't perform re-encoding, we can't make assumptions on the keyframe interval.
We won't change a feature to make one user happy and cause problems to the other 100.000.

For the record, my usecase is to simulate IP cameras from video samples, so i purposedly configured 25 / 30 gop sizes.
Thanks for clarifying anyway, and for your project which is really simple to use and deploy ; i don't mean to offend anyone.


How do I cancel fetch when using takeLatest?

takeLatest cancels the previous generator when called a second time, but what happens to the promise currently yielded?
So I have:
try {
    const result = yield call(fetch, 'getresult');
} finally {
    if(cancelled())
        //how do I cancel fetch?
}

When used with takeLatest, i can get to the cancelled branch, but then I don't know how to send a cancel to my fetch call. I don't want all those ajax requests to return and be handled by fetch, unnecessarily, and I want them to show as cancelled on the dev tools.
A more general question is, how do I access the promise I yielded?

A more general question is, how do I access the promise I yielded?

If you yield a promise, you are passing concern of creating it and its resolution to the redux-saga. Whats your use case? Why do you want to access it?
As of fetch cancellation - it is not possible and not because of the redux-saga. fetch API is based on promised and those are not cancellable by design (at least not yet, there are ongoing discussions about making cancellation spec)

Couldn't you reject a promise?
The use case is cancelling fetch calls when the generator caller has been cancelled.
Basically if I spam a button that makes an ajax call, I want to cancel all but the last ajax call.

And how would you reject a promise? It has only then and catch methods.
No promise can be rejected from the outside. If you want this ability fetch API is not suitable for your use case. I've heard lately that this lib https://github.com/mzabriskie/axios is geting much praise from the community and it supports cancelation.
Keep in mind that even if you cannot cancel a request it doesnt mean that you will get some duplicate data back into your app. takeLatest in your scenario will use automatically only the newest response and all previous ones will be disarded for you.

Ok I see, the cancel token I'd give to call() could be used to cancel in the finally if(cancelled()) branch.
Cool beans. Thanks!

or even better - you could write your custom fetchAPI, which would look something like this
import axios, { CancelToken } from 'axios'
import { CANCEL } from 'redux-saga'

export default function fetchAPI(url) {
  const source = CancelToken.source()
  const request = axios.get(url, { cancelToken: source.token })
  request[CANCEL] = () => source.cancel()
  return request
}

...and have process of cancelation builtin into your helper, instead of handling this manually in your sagas.

woah, clever idea... have you tested this out yet? I'll try it out and let you know how it goes.

Didnt test it, I knew there is a possibility to attach CANCEL callback to the promise so saga can handle it, so I just looked into axios docs and wrote this snippet based on them.
There might be some issues with it, I never have used axios and you probably would need to make this fetchAPI more configurable as its capable now only for making GET requests as a demonstration but overall I think this should work without need of changing it too much.

@Andarist  thanks for your sample, it's useful to me :)
regards.

I can confirm that using the code shared above does cancel mid-flight requests when raceing or canceling, which is nice.

Can anyone please explain how this part works as I am not able to get this to work:
request[CANCEL] = () => source.cancel()
From what I can understand with axios, calling source.cancel() will cancel the request. And from my saga understanding, cancelling a saga will call this method:
function cancel(task) {
  (0, _utils.check)(task, _utils.is.notUndef, 'cancel(task): argument task is undefined');
  if (!isForkedTask(task)) {
    throw new Error('cancel(task): argument ' + task + ' is not a valid Task object \n(HINT: if you are getting this errors in tests, consider using createMockTask from redux-saga/utils)');
  }

  return effect(CANCEL, task);
}

And this returns that CANCEL effect that we are referring in our helper. But I can't understand how this all is connected. How does a request know that CANCEL is returned from sagas and it should now call source.cancel()

@vivekdwivedi
You have confused 2 things. cancel effect returns an object description for the redux-saga which is later interpreted by the saga and it cancels the task contained in that created effect object.
What you attach to the request is not an effect, its just a special symbol which can be recognized by redux-saga later on to perform cancellation.
When you yield cancel effect to the redux-saga it calls task.cancel() and the cancellation process begins - it propagates this signal downwards through each child task, their childs etc. When a task gets cancelled it simply checks on what effect it is currently paused and tries to call its cancellation function. By attaching previously a CANCEL symbol to your promise you had attached a cancellation function to it, so the redux-saga gets to know what to call when its needed - otherwise there is no automatic way for it to know HOW it should be cancelled.
For some other effects like i.e. fork redux-saga knows exactly how it should be cancelled so it attaches the cancel method to it automatically.

That makes sense now. Thanks a lot :)

Well, promises are unfortunately not cancellable, can't do much about it. You can always wrap your promise chain in a function that would have custom [CANCEL] raising internal flag for your wrapper that could "cancel" the chain or something.

I'm embarrassed by the monkey-patching in @spaceemotion and @Andarist solution. I don't see why the helper couldn't/shouldn't make the request and cancel it by itself:
export function request(config = {}) {
  return call(function*() {
    const source = CancelToken.source();
    try {
      return yield call(axios.request, {...config, cancelToken: source.token});
    } finally {
      if (yield cancelled()) {
        source.cancel();
      }
    }
  });
}

// and then defining verbs

export function get(url, config = {}) {
  return request({method: 'get', url, ...config});
}

export function post(url, data, config = {}) {
  return request({method: 'post', url, data, ...config});
}

// … and so on

It can be used like so:
takeLatest(SOME_ACTION, function*() {
  yield get('https://httpstat.us/200');
});

I can still be forked or raced, just like any other effect.

I am using axios for ajax / xhr request cancellation.
const CancelToken = axios.CancelToken;

export function* getAsynResult(action) {
  const source = CancelToken.source();
  const reqData = Object.assign({}, action.data, { cancelToken: source.token });
  try {
    yield call(apiCall, reqData);
  } finally {
    if (yield cancelled()) {
      source.cancel('cancelled');
    }
  }
}


(feat) added argument for karma configuration file

Shuts #183

I signed it!

Heya @ruffiem, thanks for adding this. Can you add a test to confirm it works?
You should add it here:
https://github.com/angular/angular-cli/blob/master/tests/e2e/tests/test/test.ts
The easiest way is to move the original config file and your your flag, like here:
https://github.com/filipesilva/angular-cli/blob/6120c0f60cfef8a6f3062408a7f98b4757c4ee5a/tests/e2e/tests/test/e2e.ts#L29-L30
(this file isn't in the repo yet, it's part of https://github.com/angular/angular-cli/pull/4527)

Testing went ok!

Just waiting on CI to merge.

Thanks for this! It closes one of the oldest Angular CLI issues.

How do I specify a different karma.conf.js for CI?


ExportSecretKey() is always 0?

Dear OQS team,
I have the following code:
	signer := oqs.Signature{}
	defer signer.Clean()
	if err := signer.Init(sigName, nil); err != nil {
		log.Fatal(err)
	}
	publicKey, err := signer.GenerateKeyPair()
	if err != nil {
		log.Fatal(err)
	}
	secretKey := signer.ExportSecretKey()

	fmt.Printf("\nSecret key:\n% X ... % X\n", secretKey[0:8], secretKey[len(secretKey)-8:])
	fmt.Printf("\nPublic key:\n% X ... % X\n", publicKey[0:8], publicKey[len(publicKey)-8:])

I am confused as to why the output the value of secretKey is always 00 00 00 ... whereas the publicKey variable is always randomly generated, e.g. 09 19 5D ... It seems that providing a []byte to signer.Init() as the second argument makes no difference in this case.
I thought that GenerateKeyPair() would generate both a private key and a public key. Am I wrong about this? Sorry if this is an obvious mistake, I am new to Go and cryptography in general.
Using Windows 10 64-bit and 1.15.2 64-bit.

Taimoor

Closing this issue - later in my program I called signer.Clean() unnecessarily (in a different object, nonetheless!), which would wipe the secret key from memory. Relevant code from oqs.go:
// Clean zeroes-in the stored secret key and resets the sig receiver. One can
// reuse the signature by re-initializing it with the Signature.Init method.
func (sig *Signature) Clean() {
	if len(sig.secretKey) > 0 {
		MemCleanse(sig.secretKey)
	}
	C.OQS_SIG_free(sig.sig)
	*sig = Signature{}
}


[Deliver] Fix uses idfa limits tracking

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context

This is the continuation of the problem born by the PR #10653 where it seems I introduced a bug in the issue I was trying to fix.
Description
I've deleted the :add_id_info_limits_tracking from the attr_mapping method and added a further check the presence and value of the :add_id_info_uses_idfa property in the complete! method. When is present and its value is true, I manually add the required keys and values to the resulting raw_data_clone hash.
I've added also a test case that checks the presence of the required key and its value in the resulting raw_data of the submission when the :add_id_info_uses_idfa was set to true.

It doesn't work unfortunately.
From what I gathered with the logs, factory was called before add_id_info_uses_idfa had a chance to be set.
You should be able to test your code without having a testing app, if you just check what is the out-going JSON. It should have a value for the key limitsTracking.
I edited tunes_client.rb and added puts data.to_json in send_app_submission(), I guess you can return early to avoid making the network call to iTunes Connect.

I think I'll be needing help for this... I have not enough knowledge of the whole project behavior to solve this. Either help with why param_mapping does not behave as expected in this case or how can I modify the built JASON before being submitted.

Got it! I think it just needs your approval @mmenu-mantano and the approval of the Fastlane team! 🚀

Seems to be working, any idea when this fix will be pushed to prod?

@mpirri was the reviewer of the last PR I made, maybe he can help us getting this on production as soon as possible!

I can't test anymore since my app got approved, fastlane stops at an earlier stage. But it seems to be working apparently :)

With 2.63.0 I'm still getting error that seem related to this:
 [!] Something wrong with your Ad ID information: ["ITC.apps.idfa.errorMessage.agreeoptout", "ITC.apps.idfa.errorMessage.binaryviolatesterms"].
Higher up was:
[16:27:10]: Setting 'add_id_info_serves_ads' to 'false'...
[16:27:10]: Setting 'add_id_info_tracks_install' to 'true'...
[16:27:10]: Setting 'add_id_info_tracks_action' to 'true'...
[16:27:10]: Setting 'add_id_info_limits_tracking' to 'true'...```

This is still not added in the latest release. Your issue seems to be related with the problem this PR tries to solve.

i occurred the same issue on xcode9.0 which fastlane 2.63.0. Any progress?

@wenjuan1982 these changes are not included in 2.63.0... https://github.com/fastlane/fastlane/releases/tag/2.63.0

:+1:

It doesn't work for me or something goes wrong.
Using fastlane 2.64.1.
My submission information:
submission_information: {
   add_id_info_limits_tracking: true
   add_id_info_serves_ads: false
   add_id_info_tracks_action: false
   add_id_info_tracks_install: true
   add_id_info_uses_idfa: true
   content_rights_has_rights: true,
   content_rights_contains_third_party_content: false,
   export_compliance_platform: 'ios',
   export_compliance_compliance_required: false,
   export_compliance_encryption_updated: false,
   export_compliance_uses_encryption: true,
   export_compliance_is_exempt: false,
   export_compliance_contains_third_party_cryptography: false,
   export_compliance_contains_proprietary_cryptography: false,
   export_compliance_available_on_french_store: true
}

Logs:
[12:33:52]: Setting 'add_id_info_limits_tracking' to 'true'...
[12:33:52]: Setting 'add_id_info_serves_ads' to 'false'...
[12:33:52]: Setting 'add_id_info_tracks_action' to 'false'...
[12:33:52]: Setting 'add_id_info_tracks_install' to 'true'...
[12:33:52]: Setting 'add_id_info_uses_idfa' to 'true'...
[12:33:52]: Setting 'content_rights_has_rights' to 'true'...
[12:33:52]: Setting 'content_rights_contains_third_party_content' to 'false'...
[12:33:52]: Setting 'export_compliance_platform' to 'ios'...
[12:33:52]: Setting 'export_compliance_compliance_required' to 'false'...
[12:33:52]: Setting 'export_compliance_encryption_updated' to 'false'...
[12:33:52]: Setting 'export_compliance_uses_encryption' to 'true'...
[12:33:52]: Setting 'export_compliance_is_exempt' to 'false'...
[12:33:52]: Setting 'export_compliance_contains_third_party_cryptography' to 'false'...
[12:33:52]: Setting 'export_compliance_contains_proprietary_cryptography' to 'false'...
[12:33:52]: Setting 'export_compliance_available_on_french_store' to 'true'...

Error:
Something wrong with your Ad ID information: ["ITC.apps.idfa.errorMessage.agreeoptout"]

Can you tell me what's wrong and what to do to find a fix?

Hey @SAVeselovskiy thanks for reporting this. It would help to submit new issues instead of commenting, as this way it's easier for us to manage notifications, and have a publicly visible discussion 👍

🤔 ... I don't know how this can be failing... the tests show that the required key is actually being created in the final request as far as I can know...


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_5f1mdg1aiz/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_5f1mdg1aiz/clone/recipe/meta.yaml:32: missing_pip_check: For pypi packages, pip check should be present in the test commands
INFO: /tmp/abs_5f1mdg1aiz/clone/recipe/meta.yaml:40: invalid_url: https://docs.microsoft.com/python/api/overview/azure/activedirectory : URL domain redirect docs.microsoft.com ->  learn.microsoft.com
WARNING: /tmp/abs_5f1mdg1aiz/clone/recipe/meta.yaml:41: missing_description: The recipe is missing a description
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_ffiwz2a5mf/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_ffiwz2a5mf/clone/recipe/meta.yaml:32: missing_pip_check: For pypi packages, pip check should be present in the test commands
INFO: /tmp/abs_ffiwz2a5mf/clone/recipe/meta.yaml:40: invalid_url: https://docs.microsoft.com/python/api/overview/azure/activedirectory : URL domain redirect docs.microsoft.com ->  learn.microsoft.com
WARNING: /tmp/abs_ffiwz2a5mf/clone/recipe/meta.yaml:41: missing_description: The recipe is missing a description
Errors were found


Leetcode Question Number 989

Leetcode Question Number 989 soultion needs to be added in the repo .
The link for the question is this.
Accepted Languages C++ / JAVA .
You Only need to add the  class Solution in the file.
Make Sure you have read the contributions guidelines before creating an PR.

@amanv8060  I would like to work on this issue. Kindly assign me.


Update dependencies for nuxt v3.7.0

I've updated Nuxt version and TRPC version

Thank you for your module and your work

Thanks @ArthurDanjou! Appreciate


Mergeup 5.5.x to master

Screwed up the resolution of one of the conflicts. Closing for now. Will open a new PR once the conflict is correctly resolved.

CLA signed by all contributors.


Allow all hosts in dev mode to simplify cross-browser testing

This is needed to test with the demo site on mobile devices / Browserstack. In the past I’ve added this in my local.py, but it’s annoying to have to re-add this when resetting my environment, and I assume it doesn’t hurt to have this directly in the project’s settings.

I see no danger in this, I always do the same in my local environments, as long as they dont slip up to production.

Thank you both!


add metadata handler

add metadata handler that populates all data that goes out today.   Configuring which data we want is not part of this issue.

complete


Add a built-in keyboard shortcuts manager

Would it be possible to add a built-in keyboard shortcuts manager?
I need to assign/overwrite some one-key shortcuts, like:
F1 focus URL bar
F2 open new tab
F3 search
F4 search next
F6 reload without cache
F10 dev tools
F12 close tab
No regular Chrome extension can handle this, insufficient privileges.
It would be also nice to add a built-in mouse gestures editor.

It does sound feasible; Chromium has an internal API for adding keyboard accelerators. I will certainly work on it.

When could we expect this feature? Maybe in v. 124?


Added Github Parser, Updated Bitbucket Parser, and General Cleanup

Hey,
I've added a parser for Github payloads, and made a few changes to the Bitbucket parser to align with those changes (adding a clone_url method, and revising author to return a hash with name, email, and username). Also some changes to align with the Ruby Style Guide, and simplify the code in a few places, cutting down the number of rubocop offenses from 99 to 19.
Hope this helps!

For all future contributors: be sure to make tests pass before you request a pull. Thanks!

Derp. Tests are there for a reason!