Tigress addback

Couple of things about the tigress addback.
Firstly, there was some confusion over this extra sumhit call and last position.
@pcbend what is the logic behind comparing new potential segment hits to only the last accepted segment hits? This seems a bit arbitrary to me, but if there is some logic or sorting I missed I would like to hear it and also have it commented in the code.
For get position the first segment is used, which is just whichever hit happened to be first during event construction, and if running cores-only you lose any information on the additional crystals following addback. It seems at the start of addback construction we should quickly energy sort TTigress::fTigressHits, or is this already done in the parser?
@jhenderson88  also suggests that during addback construction initial TTigressHits for individual crystals should be checked to see if they contain 2 forbidden segments, a sort of self-addback check.

The hits are sorted by core energy during detector construction.
Additionally the segments are also sorted by energy during the construction
of the hit.
The assumption made in the code and currently most segmented gamma arrays
is the segment with the highest energy is the first interaction point.
Thus after sorted, the first segment is considered the first hit in the
crystal.  If there are no segments, get position returns the core
position.  Additionally last position, is the segment with the smallest
energy - again an assumption but one that has been working.
When two hits are added together, there list of segments are also added but
not resorted, so an addback hits get position will still return the first
interaction of the gamma, last will still return the last interaction of
the gamma.
I am not sure what you  mean by 2 forbidden segments.
On Mon, Nov 28, 2016 at 5:23 PM, jsmallcombe<EMAIL_ADDRESS>wrote:

Couple of things about the tigress addback.
Firstly, there was some confusion over this extra sumhit call and last
position.
@pcbend https://github.com/pcbend what is the logic behind comparing
new potential segment hits to only the last accepted segment hits? This
seems a bit arbitrary to me, but if there is some logic or sorting I missed
I would like to hear it and also have it commented in the code.
For get position the first segment is used, which is just whichever hit
happened to be first during event construction, and if running cores-only
you lose any information on the additional crystals following addback. It
seems at the start of addback construction we should quickly energy sort
TTigress::fTigressHits, or is this already done in the parser?
@jhenderson88 https://github.com/jhenderson88 also suggests that during
addback construction initial TTigressHits for individual crystals should be
checked to see if they contain 2 forbidden segments, a sort of self-addback
check.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GRIFFINCollaboration/GRSISort/issues/849, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAacI_fh_He0wJZCt4HbfJjZCVX6ZgYlks5rC1RPgaJpZM4K-VSd
.

Thanks, confirming the sorting has been done clears up a lot. Certainly the highest energy being first hit is the assumption I was implying, so disagreement there.
The point of comparing the last hit to the next candidate for addback criterion. This distinction is clearly is only relevant when adding a 3rd or higher segments. And in that case comparing to the last one might be over simplified and something we can improve upon.
My general point, what we've been using has been working, but maybe there's no harm in having say a coop student try some more detailed schemes. I just wanted to discuss the current logic and know what had been tried previously before wasting the time. For instance has someone previously tried implementing the suppression and summing schemes from the NIM into GRSISort?
As for “2 forbidden segments”, I believe the suggestion was that certain front back combinations don't make any sense physically and we dont check the crystals them selves for that. Though on reflection I can imagine charge sharing makes that iffy.

Using the last segment is most certainly simplified however I am not sure
overly so.  It is relevant for all hits - the major assumption here is that
the gamma scatters within the crystal before scattering to a neighbor.
From what I know of the Klein-Nishina Compton scattering cross sections,
this assumption is pretty solid.
I would be careful wasting too much time with it, if you have a smart coup
student available, it would be way more beneficial to have them try to work
out sub-segment positions from the recorded wave form.  This will not only
help improve addback but also Doppler reconstruction.
We have some working code we use to do this on SeGA with pretty soild
results.  It would take some adapting - but if people are interested I can
work on putting it somewhere that is visible. to the outside world.
We actually do check for certain front back combinations in a quick way.
The distance I picked once upon a time for front-front, back-back and
front-back segment combinations tries to take this into account with making
things overly complicated.
On Tue, Nov 29, 2016 at 7:39 PM, jsmallcombe<EMAIL_ADDRESS>wrote:

Thanks, confirming the sorting has been done clears up a lot. Certainly
the highest energy being first hit is the assumption I was implying, so
disagreement there.
The point of comparing the last hit to the next candidate for addback
criterion. This distinction is clearly is only relevant when adding a 3rd
or higher segments. And in that case comparing to the last one might be
over simplified and something we can improve upon.
My general point, what we've been using has been working, but maybe
there's no harm in having say a coop student try some more detailed
schemes. I just wanted to discuss the current logic and know what had been
tried previously before wasting the time. For instance has someone
previously tried implementing the suppression and summing schemes from the
NIM into GRSISort?
As for “2 forbidden segments”, I believe the suggestion was that certain
front back combinations don't make any sense physically and we dont check
the crystals them selves for that. Though on reflection I can imagine
charge sharing makes that iffy.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GRIFFINCollaboration/GRSISort/issues/849#issuecomment-263747045,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAacI9EbKlvHWMK6XWaRayKrEvMbyp2fks5rDMW9gaJpZM4K-VSd
.

I should also note, that I am using the exact same crystal/segment sorting
and assumptions with gretina data here, and achieve as good or better
results than published addback schemes (as in the tigress nim)
On Tue, Nov 29, 2016 at 9:41 PM, Peter<EMAIL_ADDRESS>wrote:

Using the last segment is most certainly simplified however I am not sure
overly so.  It is relevant for all hits - the major assumption here is that
the gamma scatters within the crystal before scattering to a neighbor.
From what I know of the Klein-Nishina Compton scattering cross sections,
this assumption is pretty solid.
I would be careful wasting too much time with it, if you have a smart coup
student available, it would be way more beneficial to have them try to work
out sub-segment positions from the recorded wave form.  This will not only
help improve addback but also Doppler reconstruction.
We have some working code we use to do this on SeGA with pretty soild
results.  It would take some adapting - but if people are interested I can
work on putting it somewhere that is visible. to the outside world.
We actually do check for certain front back combinations in a quick way.
The distance I picked once upon a time for front-front, back-back and
front-back segment combinations tries to take this into account with making
things overly complicated.
On Tue, Nov 29, 2016 at 7:39 PM, jsmallcombe<EMAIL_ADDRESS>wrote:

Thanks, confirming the sorting has been done clears up a lot. Certainly
the highest energy being first hit is the assumption I was implying, so
disagreement there.
The point of comparing the last hit to the next candidate for addback
criterion. This distinction is clearly is only relevant when adding a 3rd
or higher segments. And in that case comparing to the last one might be
over simplified and something we can improve upon.
My general point, what we've been using has been working, but maybe
there's no harm in having say a coop student try some more detailed
schemes. I just wanted to discuss the current logic and know what had been
tried previously before wasting the time. For instance has someone
previously tried implementing the suppression and summing schemes from the
NIM into GRSISort?
As for “2 forbidden segments”, I believe the suggestion was that certain
front back combinations don't make any sense physically and we dont check
the crystals them selves for that. Though on reflection I can imagine
charge sharing makes that iffy.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GRIFFINCollaboration/GRSISort/issues/849#issuecomment-263747045,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAacI9EbKlvHWMK6XWaRayKrEvMbyp2fks5rDMW9gaJpZM4K-VSd
.

Thanks for your replies Peter. I'm certainly convinced to leave it for now, though I'll be popping some notes in the code.
Certainly as we move to the new DAQ, and using waveforms becomes less of a hindrance, someone should look at the sub-pixel work, but it might be beyond a coop.
One last clarification on your reply. I know there are some distance/front-back rules, but if I understand right these are between crystals. No validity checks are done on multiple hits within a single crystal?

The check is done on any two segments, whether in a single crystal or cross
crystal.
On Thu, Dec 1, 2016 at 8:37 PM, jsmallcombe<EMAIL_ADDRESS>wrote:

Thanks for your replies Peter. I'm certainly convinced to leave it for
now, though I'll be popping some notes in the code.
Certainly as we move to the new DAQ, and using waveforms becomes less of a
hindrance, someone should look at the sub-pixel work, but it might be
beyond a coop.
One last clarification on your reply. I know there are some
distance/front-back rules, but if I understand right these are between
crystals. No validity checks are done on multiple hits within a single
crystal?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GRIFFINCollaboration/GRSISort/issues/849#issuecomment-264349441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAacIwYVbaG2AXDanmOJn2krTeLIQ7gQks5rD3ZDgaJpZM4K-VSd
.

Sorry; I mis -spoke there ->  any two segments, that are in different
crystals. Independent of whether the are in the same detector or not.
Because we need to use the central contact energy anyway, it makes no sense
to compare segments with in the same crystal.
On Fri, Dec 2, 2016 at 10:40 AM, Peter<EMAIL_ADDRESS>wrote:

The check is done on any two segments, whether in a single crystal or
cross crystal.
On Thu, Dec 1, 2016 at 8:37 PM, jsmallcombe<EMAIL_ADDRESS>wrote:

Thanks for your replies Peter. I'm certainly convinced to leave it for
now, though I'll be popping some notes in the code.
Certainly as we move to the new DAQ, and using waveforms becomes less of
a hindrance, someone should look at the sub-pixel work, but it might be
beyond a coop.
One last clarification on your reply. I know there are some
distance/front-back rules, but if I understand right these are between
crystals. No validity checks are done on multiple hits within a single
crystal?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GRIFFINCollaboration/GRSISort/issues/849#issuecomment-264349441,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAacIwYVbaG2AXDanmOJn2krTeLIQ7gQks5rD3ZDgaJpZM4K-VSd
.


somehow I managed to lose this important change for 744.

Coverage remained the same at 86.747% when pulling e8213b6f37adbd9cc1d906faa6f79c6c0bc95ab3 on mhines-usgs:master into 20f4b36ad810fa1c3f6ee27ea9ad23d0547b3118 on USGS-R:master.


feat: impl From<[(K, V); N]> for Map and Value

This PR implements From<[(K, V); N]> for Map and Value, enabling things like:
let map = Map::from([("lorem", 40), ("ipsum", 2)]);

or
let v = [("lorem", 40), ("ipsum", 2)];
let x: Value = v.into();

Relevant PRs:

https://github.com/rust-lang/rust/pull/84111 implemented it for the collections in std
https://github.com/bluss/indexmap/pull/205 implemented it for IndexMap

I'm new to writing tests in Rust so I apologize if the answer is obvious:
From what I could find, it seems like this crate doesn't have any existing unit tests, but only integration tests and documentation tests.
The example I added to From<[(K, V); N]> for Value is already checked as a doc test, and I could add a doc test to the impl for Map too. Is there any advantage to writing unit tests instead (especially when all other From impls are only checked via doctests)?


don't crash when checking if a property is empty if it is a string pr…

…operty that does not contain a string, or an array property that is not even an object

Change makes sense to me, merging.


tox.ini rework: regroup things in the testenv section

This is a proposal to tidy up the tox configuration.
The rationale I followed was following: to avoid duplication of statements, regroup everything that can be regrouped in the testenv section. I hope this is also increasing readability of the tox.ini file.
I also moved the call to a second requirement file inside of the test-requiremenst.txt file.
I am not sure if this approach is consensual among tox users, so please tell me if this is going in the right direction, or absolutely not.
Signed-off-by: Fabrice Flore-Thebault<EMAIL_ADDRESS>PR Type

Feature Pull Request

Hmmm, not sure. I find the separate testenvs more readable? Not willing to stop initiative here if the others find this to be more useful though. Let's see and thanks for the efforts to improve this!

@decentral1se that is exactly my point: have a discussion on the right direction to take. Experimenting here with "regrouping everything in testenv, tox.ini  now under 100 loc".

I'm going to attempt to sum up what's been discussed so far, please correct me if I missed something.

The preference appears to be to have explicit [testenv:*] blocks.
For consistency, existing one-command envs should probably be broken out into testenv blocks.
The default envlist should probably be format-check, lint, and py{27,35,36,37}-ansible{25,26,27}-{functional,unit}, based on the discussion in https://github.com/ansible/molecule/pull/1887#discussion_r270032776. This effectively means leaving out doc by default and running the relatively inexpensive format-check before unit/functional tests.
Adding -r requirements.txt to test_requirements.txt is not preferred, specifying that explicitly via deps in the tox config is preferred.
Running functional testing is a pain right now, but @decentral1se's PR #1870 addresses those concerns and makes functional testing properly skip unsupported providers in local testing. Leaving functional testing in is good, in anticipation of #1870 being merged.
While bumping the tox minversion is not something to be afraid of, nothing in this PR requires tox 3.8 features (that I can see, at least), so it is left alone.

After applying all of those bullets to the current master tox.ini, here's the diff:
diff --git a/tox.ini b/tox.ini
index 3e1a5580..c8ac1c58 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,9 +2,8 @@
 minversion = 3.7.0
 envlist =
     lint
-    py{27,35,36,37}-ansible{25,26,27}-{functional,unit}
     format-check
-    doc
+    py{27,35,36,37}-ansible{25,26,27}-{functional,unit}
 skipdist = True
 skip_missing_interpreters = True

@@ -34,11 +33,6 @@ extras =
     windows
 commands_pre =
     find {toxinidir} -type f -not -path '{toxinidir}/.tox/*' -path '*/__pycache__/*' -name '*.py[c|o]' -delete
-commands =
-    unit: pytest test/unit/ --cov={toxinidir}/molecule/ --no-cov-on-fail {posargs}
-    functional: pytest test/functional/ {posargs}
-    lint: flake8
-    lint: yamllint -s test/ molecule/
 whitelist_externals =
     find
 # Enabling sitepackages is needed in order to avoid encountering exceptions
@@ -50,6 +44,9 @@ sitepackages = true
 [testenv:lint]
 deps =
     -rlint-requirements.txt
+commands =
+    flake8
+    yamllint -s test/ molecule/
 extras =
 skip_install = true
 usedevelop = false
@@ -72,7 +69,7 @@ usedevelop = false

 [testenv:doc]
 # doc requires py3 due to use of f'' strings and using only python3 as
-# basepython risks using python3.4 which is not supported.
+# basepython risks using python3.5, which does not support them.
 basepython = python3.7
 passenv = *
 commands =
@@ -119,3 +116,9 @@ commands =
     '
 whitelist_externals =
     sh
+
+[testenv:unit]
+commands = pytest test/unit/ --cov={toxinidir}/molecule/ --no-cov-on-fail {posargs}
+
+[testenv:functional]
+commands = pytest test/functional/ {posargs}

This results in a more focused diff that I think addresses the points discussed here.
I did throw in a quick comment change to the doc testenv basepython requirement to better reflect the current situation as I understand it.

@seandst you've perfectly summarized it. I just want to add that I've got #1895 to merge first which will address some of the concerns like the very existence of requirements.txt.

Running functional testing is a pain right now, but @decentral1se's PR #1870 addresses those concerns and makes functional testing properly skip unsupported providers in local testing. Leaving functional testing in is good, in anticipation of #1870 being merged.

Merged!

I guess it's better to close this PR and do a new one with the changes proposed in the wrapup https://github.com/ansible/molecule/pull/1887#issuecomment-478728006

@seandst are you ready to propose a new PR based on your wrapup, or how should we proceed?

#1870 was a major step in the right direction, so I'll keep an eye on #1895 and put up a new PR once those changes get settled.


compiler crash: Invalid type parameter in getReducedType()

crashes on DEVELOPMENT-SNAPSHOT-2022-09-29-a:
struct S<T> where T
{
}
protocol Q:Collection<S<A>>
{
    associatedtype A

    subscript(index:Int) -> S<A>
    {
        get
    }
}

$ swiftc test10.swift
error: compile command failed due to signal 6 (use -v to see invocation)
test10.swift:2:1: error: expected ':' or '==' to indicate a conformance or same-type requirement
{
^
test10.swift:4:25: error: cannot find type 'A' in scope
protocol Q:Collection<S<A>>
                        ^
Invalid type parameter in getReducedType()
Original type: (τ_0_0.Index) -> τ_0_0.Element
Simplified term: τ_0_0.[Collection:Index]
Longest valid prefix: τ_0_0
Prefix type: τ_0_0

Requirement machine for <τ_0_0 where τ_0_0 : Q>
Rewrite system: {
- [Q].[Q] => [Q] [permanent]
- [Q].A => [Q:A] [permanent]
- [Q].Element => [Q:Element] [permanent]
- [Q].Index => [Q:Index] [permanent]
- [Q].Iterator => [Q:Iterator] [permanent]
- [Q].SubSequence => [Q:SubSequence] [permanent]
- [Q].Indices => [Q:Indices] [permanent]
- [Q].[Q:A] => [Q:A]
- [Q].[Q:Element] => [Q:Element]
- [Q].[Q:Index] => [Q:Index]
- [Q].[Q:Iterator] => [Q:Iterator]
- [Q].[Q:SubSequence] => [Q:SubSequence]
- [Q].[Q:Indices] => [Q:Indices]
- τ_0_0.[Q] => τ_0_0 [explicit]
- τ_0_0.A => τ_0_0.[Q:A]
- τ_0_0.Element => τ_0_0.[Q:Element]
- τ_0_0.Index => τ_0_0.[Q:Index]
- τ_0_0.Iterator => τ_0_0.[Q:Iterator]
- τ_0_0.SubSequence => τ_0_0.[Q:SubSequence]
- τ_0_0.Indices => τ_0_0.[Q:Indices]
}
}
Property map: {
  [Q] => { conforms_to: [Q] }
  τ_0_0 => { conforms_to: [Q] }
}
Conformance paths: {
}
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project and the crash backtrace.
Stack dump:
0.      Program arguments: /home/ec2-user/.swiftenv/versions/DEVELOPMENT-SNAPSHOT-2022-09-29-a/usr/bin/swift-frontend -frontend -c -primary-file test10.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -color-diagnostics -new-driver-path /home/ec2-user/.swiftenv/versions/DEVELOPMENT-SNAPSHOT-2022-09-29-a/usr/bin/swift-driver -empty-abi-descriptor -resource-dir /home/ec2-user/.swiftenv/versions/DEVELOPMENT-SNAPSHOT-2022-09-29-a/usr/lib/swift -module-name test10 -o /tmp/TemporaryDirectory.h3zcuH/test10-1.o
1.      Swift version 5.8-dev (LLVM 338153f292479fa, Swift b752d7883c26cea)
2.      Compiling with the current language version
3.      While evaluating request TypeCheckSourceFileRequest(source_file "test10.swift")
4.      While type-checking 'Q' (at test10.swift:4:1)
5.      While type-checking 'subscript(_:)' (at test10.swift:8:5)

Reduced:
struct S<T> {}
protocol P: Collection<S<A>> {
  subscript(index: Int) -> Any { get }
}

Self-contained:
protocol Collection<Element> {
  associatedtype Element

  subscript(_: Int) -> Element { get }
}

protocol P: Collection<Undefined> {
  subscript(_: Int) -> Any { get }
}

Duplicate of https://github.com/apple/swift/issues/61020.


Comments have same color as foreground for light theme

Both appear to use base5 for the light theme which makes it hard to distinguish comments from surrounding code

Thank you for reporting it!


Provide option to deploy kas-fleetshard from git reference

kas-fleetshard is currently deployed from a set of static files in this repository. A possible enhancement would be to support deploying fleetshard from a git branch/reference. This would require running a build of fleetshard during the installation process to generate the necessary YAML artifacts and images.
cc: @k-wall , @racheljpg

Done in #178


Add: Motori TV

Channel Name
Motori TV
Alternative Names (optional)
No response
Network (optional)
No response
Owners (optional)
Gruppo Primantenna
Country
Italy
Subdivision (optional)
No response
City (optional)
Piemonte
Broadcast Area
Piedmont
Languages
Italian
Categories (optional)
Auto
NSFW
FALSE
Launched (optional)
No response
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
https://motori.tv/
Logo
https://motori.tv/wp-content/uploads/2023/05/LOGO-MTV-PER-SITO-1400x373.png
Notes
The streaming link I got from this channel's website was https://5f22d76e220e1.streamlock.net:443/primantenna/primantenna/playlist.m3u8

Please update your request:

country code is incorrect
language code is incorrect
category name should be in lowercase
the size of the logo should not exceed 512x512px

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels

Please update your request:

country code must be in uppercase
broadcast area code is incorrect
language code is incorrect
the link to the logo is required

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels

Please update your request:

language code must be in lowercase
the size of the logo should not exceed 512x512px

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels


[Compression] huggingface transformers extension

Description

add ViT attention layer detection

TODO:

speedup extension for prune heads

Test Options

[ ] fast test
[ ] full test - HPO
[ ] full test - NAS
[ ] full test - compression

Checklist

[ ] test case
[ ] doc

How to test

Low priority


folder_branch_ops: when journaling, only archive merged revisions

Issue: KBFS-1500

lgtm after comments and CI


Performance Test Inference

Initialization benchmarks are introduced in https://github.com/outlines-dev/outlines/pull/542
We should extend these benchmarks to measure the performance of inference.
Goal
Outlines shouldn't be a bottleneck for most inference. A reasonable goal can be set based on

1,200 output tok/s on H100 w/ Llama 2 70B on Optimum-Nvidia

Benchmarks will help us achieve and maintain that goal.
What must be benchmarked

End-to-end CFG and Regex guided generation
Guided generation with Ray IPC logits processing with vLLM (related https://github.com/outlines-dev/outlines/issues/524)

Proposed method
It's annoying to need a GPU to run tests. We shouldn't do actual inference in performance benchmarks.

Create a mock inference engine

Simple benchmark to ensure unguided mock inference engine takes infinitesimally small time

Guided benchmarks that show true throughput of outlines

At this point I think that it would only make sense to benchmark the CFG-guided generation. Regex-guided generation is only a dictionary call at each step, so there really isn't anything we could do that would move the needle.


[roles/docker+weave] opt. set graph and tmp dirs

this is optional and defaults are only  over-ridden if the following
env vars are defined:
- APOLLO_docker_graph_dir
- APOLLO_docker_tmp_dir
needed because for many ec2 instances, the large ephemeral volume is
mounted under /mnt and the boot volume is very small
rework the lineinfile calls to be idempotent
rework the lineinfile call in docker and weave so
DOCKER_OPTS directive is accumulative


Event service models endpoints

Create model for Events
Create GET and POST routes for Events

Looks good to me!


[Bug] Edge Arrows Do Not scale on zoom in/out

Version
5.4.1
Link to Minimal Reproduction
https://codesandbox.io/s/echart-graph-arrow-head-scale-issue-k9pkcs?file=/src/index.js
Steps to Reproduce

Create a graph with nodes and directed edges.
Implement zoom functionality on the graph.
Observe the relative sizes of nodes and edge arrows as the zoom level changes.

Current Behavior
When zooming in and out on a graph, the nodes scale properly, but the arrows on the edges do not. This results in a visual imbalance where the arrows appear disproportionately large or small compared to the nodes at different zoom levels, leading to a degradation in the readability and aesthetic appeal of the graph.
Expected Behavior
The expectation is for the arrows on the edges to scale in proportion with the nodes, maintaining a consistent and relative size at all zoom levels. This would ensure a balanced and visually coherent graph representation, irrespective of the zoom.
Environment
- OS:Widnows 10
- Browser:Chrome Version 119.0.6045.159 (Official Build) (64-bit)
- Framework:React

Any additional comments?
I encountered this issue while working on a data visualization project that requires detailed graph representations. The lack of proportional scaling for edge arrows in zoomed views poses a significant challenge in maintaining the quality and effectiveness of the visualizations.

https://github.com/apache/echarts/assets/82098467/c0861aeb-c4c8-4758-9e19-8941c7a6083c
fixed in #19384


Fixed logic for cpuinfo

This fixes the error we encountered, so I'll merge it. However, on UEK5, with the CTF debuginfo, the error did not occur, because "cr4_read_shadow" is not found in prog with CTF debuginfo, while it is found with DWARF debuginfo. I think the issue here is that there's no symbol named cr4_read_shadow, there's just a DWARF function entry for it.
Can we find a different detection method for that? We can keep it separate from this PR.


[Planning] @carbon/spec v0.1

Using this as an umbrella issue to launch discussions for a design system specification for Carbon.

These seem like straightforward items to test for:

is the final HTML correct?
are the classNames all included and in the right place?
if given content XYZ does the component return HTML that conforms to that content (ie - are a components conditionals all working as expected?)

So this sounds like using a testing framework to make sure the right HTML is output?

correct. We'll also want to have functional tests to make sure any associated user-interactions work as expected. We might also consider visual regression tests.

@seejamescode the output will be a testing utility, most likely, but I think we can use this to also discuss the work that would go into that.
I think the goal for the testing utility would be to give someone a scenario, and potentially a series a user actions, and then run those and validate that the output from the framework/library matches what we believe the markup should be (as @scottnath described).
I think another part of this is figuring out the semantic markup for the components, and potentially using this as a place to consolidate the shared UX, content model, etc that derives from these components.
For example, a definition list in HTML is often represented as a "Property Sheet", or something similarly named. This property sheet could be rendered in a variety of platforms, and also requires a different kind of spacing mode (e.g. condensed) so that components nested inside of it adhere to its spacing model.
I think this stuff can be very dense, and very challenging, but would be worthwhile to start putting some of these hard earned lessons from all of our teams somewhere so that it's documented.


ConditionalAssignment corner cases

Hello!
I'm trying out the unreleased version of RuboCop from the latest master<PHONE_NUMBER>9dfe2e07834097e27d6bae2adcc476) and wanted to offer some feedback.
The new cop Style/ConditionalAssignment is pretty cool, but it's making a lot of suggestions that I'm not sure it should. I'll give a few examples. Apologies if any of these ideas have already been discussed.
1) same receiver, different method
class DogWalker
  def initialize(*dogs)
    @dogs = dogs
  end

  def add_dog(dog, index = nil)
    if index.nil?
      dogs << dog
    else
      dogs[index] = dog
    end
  end

  private

  attr_reader :dogs
end

walker = DogWalker.new("Milo", "Lola")
walker.add_dog("Bean")
walker.add_dog("Chewie", 0)
p walker

How would I rewrite the add_dog method to make use of conditional assignment? Would it be an improvement?
Suggested change: verify that the assignment is calling the same method on the same receiver in each branch of the conditional; in this case, the receiver is the same, but the method is different (<< vs []=) so it's not necessarily possible to cleanly change the code.
Kind of related note: this cop isn't strictly checking assignment, it's also checking mutating operators like <<, so maybe the name will confuse people. I suggest amending the message to acknowledge this or maybe even splitting the cop into multiple cops with more accurate names.
2) multiple assignments in each branch of conditional
Or consider this example:
class SftpServer
  def initialize
    if Rails.env.production?
      @ip = ENV['SFTP_IP']
      @user = ENV['SFTP_USER']
      @enabled = true
    else
      @ip = '<IP_ADDRESS>'
      @user = 'milo'
      @enabled = false
    end
  end
end

We have a few places where in one branch of the conditional, we set a few variables, and in the other branch of the conditional, we set a few other variables. We could change these to multiple conditionals, I guess?
Suggested change: if there are multiple assignments in either branch of the conditional, don't add an offense.

Suggested change: if there are multiple assignments in either branch of the conditional, don't add an offense.

I agree with this.

For 1, I see that @rrosenblum specifically wrote this cop so it could enforce things like:
array << if something
           1
         else
           2
         end

I've found a fix for 1.

Pushed a fix for 1 to my open PR.
You suggested that if there are multiple assignments in each branch, the conditional should not be flagged. What if there are method calls, etc? What if there are multiple assignments in just one branch?
Your opinion will be appreciated.

Speaking from the perspective of someone following the recommendations of the cop, the only ones that felt right were the ones where the body of each branch of the conditional was one line (assigning a variable or shoveling an object into an array) -- which was most of them. so I would think if there are multiple assignments or other logic, it should ignore those

(Dude, you're a machine! :sunglasses:)

the only ones that felt right were the ones where the body of each branch of the conditional was one line

@rrosenblum, what do you think about this (as the author)?
@maxjacobson Thanks for the compliment!

@maxjacobson thank you for the feedback. As for 1, I am very surprised to hear that it registered an offense. It should not be registering an offense because the assignment types are different (= and <<). For number 2, PR #2433 is adding a configuration setting for that. The way I have the configuration set up is that by default it will not register an offense for multiple assignment in a conditional. I took a bit of a looser stance on this than some may normally go for. By default, it will register an offense for multiple assignment in conditionals when the last assignment is to the same variable and an assignment to another variable doesn't span into any other branch
This will not register an offense unless the configuration is set to true because @ip and @user appear in both branches.
if Rails.env.production?
  @ip = ENV['SFTP_IP']
  @user = ENV['SFTP_USER']
  @enabled = true
else
  @ip = '<IP_ADDRESS>'
  @user = 'milo'
  @enabled = false
end

This will register an offense by default because @ip and @user only appear in one branch.
if Rails.env.production?
  @ip = ENV['SFTP_IP']
  @enabled = true
else
  @user = 'milo'
  @enabled = false
end

My thought to this was that earlier assignments aren't that important if they are local to a single branch.
The cop is also designed to register an offense if there are method calls in the branch. I felt that this would help to show what the conditional is actually doing.
if Rails.env.production?
  some_method
  another_method
  foo = important_value
else
  more_methods
  even_more_methods
  foo = more_important_values
end

foo = if Rails.env.production?
          some_method
          another_method
          important_value
       else
          more_methods
          even_more_methods
          another_important_value
       end

I am very surprised to hear that it registered an offense. It should not be registering an offense

@rrosenblum Have a look at c850c04.

ah, didn't realize you already had an open pull about this! I think that last example looks nice.
The penultimate example I think is ambiguous. When I see the assignment condition pattern, it kind of implies to me that the job of the conditional is to generate this value. If it's assigning multiple variables, I don't think that's the case, it's more like it has a few disparate jobs incidentally grouped together, and then the last one gets promoted and the earlier ones kind of hidden.
Either way, I'm happy to reserve judgment and try it out with the updated version. Thanks!


chore: Upgrade to latest turbine-go

The following commands were run to generate changes: go get -u github.com/meroxa/turbine-go@latest and make gomod

nop change


Scan server file references stored in the metadata table can cause hotspots and empty metadata tablets

Is your feature request related to a problem? Please describe.
Scan server references stored in the metadata table use a fully qualified file path in the row.  This can lead to the same problems as described in #1043 that gc candidates stored in the metadata table used to have. The code that write scan server refs can be found here
Describe the solution you'd like
The solution to #1043 was to store a hash of the file path in front of the file path in the metadata table.  Something similar could be done for these refs, or the uuid for the scan server that is currently stored in the qualifier could be moved in front of the file.

The work for 2.1 was completed for this issue. Moved this to 3.1 milestone.


Support libvirt provider

This PR adds the right hooks for libvirt provider.

@strzibny What version of vagrant-libvirt did you test against? This is failing for me using v0.30 and the latest from master.
jdetiber@jdetiber:~/git/github/vagrant-minimal-openshift/container-based git:(master)➤ vagrant up
Bringing machine 'default' up with 'libvirt' provider...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              container-based_default
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              2
==> default:  -- Memory:            1024M
==> default:  -- Loader:
==> default:  -- Base box:          centos/7
==> default:  -- Storage pool:      default
==> default:  -- Image:             /var/lib/libvirt/images/container-based_default.img (11G)
==> default:  -- Volume Cache:      default
==> default:  -- Kernel:
==> default:  -- Initrd:
==> default:  -- Graphics Type:     vnc
==> default:  -- Graphics Port:     5900
==> default:  -- Graphics IP:       <IP_ADDRESS>
==> default:  -- Graphics Password: Not defined
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        9216
==> default:  -- Keymap:            en-us
==> default:  -- INPUT : type=mouse, bus=ps2
==> default:  -- Command line :
==> default: Creating shared folders metadata...
==> default: [landrush] Host DNS resolver config looks good.
==> default: [landrush] starting dns server
[landrush] Starting daemon...
Daemon in unknown state! Will clear previous state and continue.
[landrush] Daemon status: unknown
[landrush] Waiting for daemon to start...
/home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/util/network_util.rb:69:in `list_networks': Call to virConnectNumOfNetworks failed: Cannot write data: Broken pipe (Libvirt::RetrieveError)
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/util/network_util.rb:69:in `libvirt_networks'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_networks.rb:48:in `block (2 levels) in call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_networks.rb:36:in `each'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_networks.rb:36:in `block in call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_networks.rb:33:in `synchronize'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_networks.rb:33:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/landrush-0.18.0/lib/landrush/action/common.rb:25:in `handle_action_stack'
	from /home/jdetiber/.vagrant.d/gems/gems/landrush-0.18.0/lib/landrush/action/setup.rb:7:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/share_folders.rb:20:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/prepare_nfs_settings.rb:18:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/synced_folders.rb:86:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/synced_folders/nfs/action_cleanup.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/prepare_nfs_valid_ids.rb:12:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-cachier-1.2.1/lib/vagrant-cachier/action/install_buckets.rb:14:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-hostmanager-1.6.1/lib/vagrant-hostmanager/action/update_all.rb:24:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/provision.rb:80:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-cachier-1.2.1/lib/vagrant-cachier/action/configure_bucket_root.rb:20:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_domain.rb:195:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/create_domain_volume.rb:51:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/handle_box_image.rb:109:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/handle_storage_pool.rb:50:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /home/jdetiber/.vagrant.d/gems/gems/vagrant-libvirt-0.0.30/lib/vagrant-libvirt/action/set_name_of_domain.rb:35:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:214:in `action_raw'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:191:in `block in action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:516:in `lock'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

I used my packaged version of vagrant and vagrant-libvirt:
$ rpm -q vagrant
vagrant-1.7.2-10.fc22.noarch
$ rpm -q vagrant-libvirt
vagrant-libvirt-0.0.26-3.fc22.noarch

I tried that today with the updated packages:
$ rpm -q vagrant
vagrant-1.7.4-1.fc23.noarch
$ rpm -q vagrant-libvirt
vagrant-libvirt-0.0.30-5.fc23.noarch
$ rpm -q rubygem-fog-libvirt
rubygem-fog-libvirt-0.0.2-2.fc23.noarch

and I can confirm your error although so far I have no clue what caused it.

So I've checked journal and it's full of:
Sep 25 08:28:57 localhost libvirtd[12499]: Failed to acquire pid file '/run/user/1001/libvirt/libvirtd.pid': Resource temporarily unavailable

which means it tries to access libvirtd.pid file at /run/user/1001/libvirt/libvirtd.pid, but file at that location does not exist (libvirtd has normally pid file at /run/libvirtd.pid.

Simple reproducer:
$ irb
irb(main):001:0> require 'libvirt'
=> true
irb(main):002:0> conn = Libvirt::open("qemu:///system")
=> #<Libvirt::Connect:0x0055d52f7b31f8>
irb(main):003:0> fork do
irb(main):004:1* conn.list_networks
irb(main):005:1> end
=> 7510
irb(main):006:0> conn.list_networks
Libvirt::RetrieveError: Call to virConnectNumOfNetworks failed: Cannot write data: Broken pipe
	from (irb):6:in `list_networks'
	from (irb):6
	from /usr/bin/irb:11:in `<main>'

So it seems this problem happens for me only in a virtualized environment (using libvirt from running libvirt image). In this case forking somehow makes libvirtd look for /run/user/1001/libvirt/libvirtd.pid (according to journal). @detiber can you confirm it happened for you only in a virtualized env?
I think this can be merge as for normal users this will work, but at the same time we should include a note somewhere. And probably report it to libvirt as this is probably a bug (or?).

I updated the hook actions in the way they should not conflict with vagrant-libvirt talking to libvirt daemon.
@detiber can you confirm and merge if that works for you too?

Any news on this one? It would be amazing if we could get support for libvirt in landrush!

@strzibny sorry about the delay, just saw this notification. I'm not a maintainer of this repo, but I'll be happy to test this out on Monday.


Running examples without sudo

Hi,
Is it somehow possible to do memory locking without sudo? Basically, I would like to run the examples without requiring sudo,
Thanks a lot in advance!
Antonio

adding the following lines to /etc/security/limits.confg might allow you to run the SDK without sudo.
<username> soft memlock unlimited
<username> hard memlock unlimited
<username> soft nice eip
<username> hard nice eip

Thanks @yxyang
Reference link https://github.com/yxyang/locomotion_simulation

thanks! For me it was also necessary to add the following two lines.
username soft rtprio 99
username hard rtprio 99


Streaming to rtmp

I'm not so experienced. how can i modify python example to stream webcam caprured from browser to RTMP?
Thanks
S

The issue tracker is not a support forum.  Please direct any support questions to the GStreamer mailing list or to IRC.


Volume slider.

Hey, great work on the rework. I just wanted to point out that there isn't any volume slider.

Hi, we did not have time to implement that and given that the user can control the volume through their hardware, this is something we may revisit in the near future.


Update build to go1.11

I saw some issues trying to pull in the linter in CircleCI - it may be simplest for us to create a base image to use in CircleCI that includes the linter, since we need it in many repos.

Hmmm interesting, after a deeper look, the build is ok, but it is only a linter failure.

Yeah the only problem is one of the linters fails with go1.11 modules. I'm working out which linter it is causing issues and seeing if we can disable for now.


Add support for srgb texture creation in sokol_app.

Currently it supports Direct3D11 and Metal, not sure how it would work on OpenGL/GLES.

Sorry, sRGB was left intentionally out of sokol_gfx.h because it has all sorts of problems on OpenGL (mostly GLES2 and GLES3). Doing it only in sokol_app.h alone also isn't enough, sokol_gfx.h also needs support for sRGB textures and render passes.
It's trivial to do the sRGB/linear decoding/encoding in the pixel shader as needed, and it's much more "localized" to do it there (not leaking out into the C code and asset pipeline).


Option to pass Org and Space as parameter while creating service instance

Is there an option to pass Org and Space dynamically as parameters while creating Service Instance?
Given I have a service and plan, I want to create service instance in different org/space to deploy the backing application.

At the moment @buddyavis, there is not a default strategy implemented to handle custom org and spaces.
We have, however a couple of strategies that work out of the box:
https://docs.spring.io/spring-cloud-app-broker/docs/current/reference/html5/#_backing_application_target
The main one our teams have been using is  SpacePerServiceInstance

The SpacePerServiceInstance Target
If you use the SpacePerServiceInstance target, App Broker will deploy backing applications to a unique target location that is named using the service instance GUID provided by the platform at service instance create time. For Cloud Foundry, this target location will be the org named by spring.cloud.appbroker.deployer.cloudfoundry.default-org and a new space created using the service instance GUID as the space name.

That said, you could implement your own logic as a TargetService, the same way we do in the example before https://github.com/spring-cloud/spring-cloud-app-broker/blob/master/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/targets/SpacePerServiceInstance.java although, I never tried that myself.
However, we only support to choose the space and not the org by doing the following inside a TargetService:
properties.put(DeploymentProperties.TARGET_PROPERTY_KEY, customSpace);

Do you think that having SpacePerServiceInstance is enough?
Should we document how create your own TargetService to deploy in a custom space?
Is just deploying into a custom space enough? If not, what is the use case?

Thank you @Albertoimpl for detailing the options.
SpacePerServiceInstance Will not be right option for our use cases, since it creates a unique space for the given service. Moreover we do not want app broker to create new space.
To start with, deploying into custom space will make the consuming business teams to choose the space as per their preference.
Would be great if you could document TargetService in detail. Thanks again.

Thanks a lot for the feedback @buddyavis.
We just improved our docs and added a section on how to customise your target: https://docs.spring.io/spring-cloud-app-broker/docs/1.1.0.BUILD-SNAPSHOT/reference/#creating-a-custom-target
Also, we added a fully functional example to our sample apps: https://github.com/spring-cloud-samples/spring-cloud-app-broker-samples#backing-application-targets
Let us know what you think and if this is what you needed!

Thank you @Albertoimpl. The given sample implementation is working as documented. However I have noticed an issue or limitation
When I delete the service instance created using service with custom target, app broker is attempting to delete the space as well, space that is configured in the CustomSpaceService.
Expectation is app broker should not delete the space, since the given custom space is created outside of app broker.
Also would like to know, is there any option available to configure the custom target on app level?
Will it be feasible to configure custom space for individual apps configured in the plan?

@buddyavis would you mind opening a new issue for optionally not deleting the space if it was already present? Basically, it's the same issue as #316 but for existing spaces. Thanks for the feedback!

Thank you! @royclarkson. Opened a separate issue #340.

Thanks for opening #340 and for the feedback. Closing this one in favour of the other one.


Updating and uninstalling

Maybe add in README or in wiki the proper ways of updating Zim and uninstalling it?
Since Zim uses submodules, I suppose git pull --recurse-submodules is the proper way to update it?

It should be added in both places. But what do you think of a .zim/scripts or .zim/tools with functions that accomplish this, ex: zim_update, zim_reset, zim_remove? Additional things like zim_clean_cache, zim_build_cache, zim_debug, zim_info, etc could also be added and optionally enabled.

Sounds useful, sure.

Any additional functionality worth exposing?

Not what I can think of.

Okay. I've opened https://github.com/Eriner/zim/issues/51, but I'm also keeping this open to note that update/removal functionality should be in the README.md.

I'm not sure if this is a separate issue, but it'd be great to also add information on adding and updating custom submodules. (e.g. zshmarks). I just cloned it into ~/.zim/modules/. I'm not sure if that is correct, but zim seems to source it fine.

@protist that is the correct way to handle it! I've started to do some work in the management branch regarding user framework-management tools.

The out-of-the-box experience of zim could be better:

An install script, I really don't like the way it is done now (just having exactly the same lines in a script would be enough)
An update script, oh-my-zsh does this quite well
An uninstall script, nobody seems to be interested in this (I mean oh-my, prezto etc)
And then maybe a firstboot-hook to give the user some info where to look next, what to change

@aplatest: see: https://github.com/Eriner/zim/issues/51

I've now added notes to the main README.md about updating and removing zim. Additionally, this requires the meta module be enabled, which is now a default module in templates/zimrc.

I'm using ZIM bit not able to update it
command not found: zmanage

@jitendravyas are you using an old commit, or have you not enabled the zmanage module?

What do you mean by old commit? I guess I installed ZIM 5-6 months ago. What do I need to do now to have latest version?

Have you updated Zim since then? Try running the command that's inside the zim_update script, inside your zim installation folder.

ok ran all these commands and updated https://github.com/Eriner/zim/blob/master/tools/zim_update
How to enable meta module?

You could compare your .zimrc file with the default one, and edit it accordingly. Notice that in the zmodules=() there is meta included, which is probably not included in your file.

81 vs 241 lines of code.

What are you asking? Look at the zmodules line.

Replaced default file with my existing file. Restarted terminal. zmanage command is working now.

I didn't get how to install modules? I think I lost my modules settings with previous replacing. https://github.com/Eriner/zim/blob/master/modules/completion/README.md

You edit the zmodules line. The default one is:
zmodules=(directory environment git history input utility meta custom \
          syntax-highlighting history-substring-search prompt completion)

Mine is this:
zmodules=(directory environment git history input utility meta custom \
          syntax-highlighting history-substring-search prompt completion spectrum archive ssh pacman)

Notice how I've just added spectrum archive ssh pacman after the default ones.

Does it mean that Bold ones on this page are already installed https://github.com/Eriner/zim/wiki/Modules
Are these pre-installed/activated module?
zmodules=(directory environment git history input utility meta custom \
          syntax-highlighting history-substring-search prompt completion)

It sais the bold ones are highly recommended modules.
Yes, all those are the activates modules, but not all available modules are activated.


Create a landing page

Create  a responsive landing  page with cool UI .

Please assign me this issue. I will make sure that all of your points are fulfilled .
Thank you, looking forward for great response .

Yes You can Start working and make sure you are onboarded to community is not please join with the link given in readme.md


Configuration option to disable static inline on functions

Would it be possible to replace the static inlines with a configurable attribute that can be disabled if necessary?
Background
We are using a Rust library to implement the main logic. The lib defines a pub extern "C" fn rust_entry() which gets called from the C main function and then takes over control and calls back into the Pico-SDK where necessary (e.g. for malloc/free, GPIO etc.)
This concept works amazingly well – except for one problem: Since a lot of the SDK's functions are static, we cannot link against them. Our current workaround is to implement a 1:1 C-wrapper for all the static functions we need – however this gets quite cumbersome over time.
A possible naive solution could be sth. like
#ifndef PICO_DISABLE_STATIC_INLINE
    #define __pico_static_inline static inline
#else
    #define __pico_static_inline
#endif

and then using __pico_static_inline on all functions (if it is not crucial that they are inlined of course).
I know that our setup is probably a little bit exotic and I'm completely fine if this issue gets closed 😅
However IMO this could ease the burden to write an application in language-of-your-choice, because if you can link back against the SDK, you suddenly don't need an entire native toolchain/SDK in language-of-your-choice anymore to get stuff running.

I've never written any Rust myself, and I don't know enough about the C SDK to answer your question, but have you had a look at https://github.com/rp-rs ? ping @thejpster

Yes, I know about rp-rs; nevertheless tyvm for the suggestion :D
There are a few reasons why we decided to stick with the official SDK if possible (e.g. pretty stable, quick bugfixes for breaking issues, has a lot of built-in features etc. – we found that even if another toolchain suits the needs we have now there is a significant risk that we well run into problems/missing features in the future).

I ran into a similar problem providing access to the SDK routines from BBC BASIC. My solution was to write some Python code which reads through the SDK header files and automatically generates code such as:
#include "pico/types.h"

uint64_t stub_to_us_since_boot (absolute_time_t t)
    {
    return to_us_since_boot (t);
    }

void stub_update_us_since_boot (absolute_time_t *t, uint64_t us_since_boot)
    {
    update_us_since_boot (t, us_since_boot);
    }

@Memotech-Bill Uhh, this looks pretty nice – I'll definitively take a closer look at it, this could be a good workaround!

This is potentially useful for people who want to make a static lib of the SDK (although #882 also helps)

@Memotech-Bill , really nice idea, I am fighting the same issue with my freepascal port of the pico headers, I ended up re-implementing lots of the static inlines with pascal code.

Yeah this is just referring to public API functions which happen to implemented inline for code size/speed reasons.
And now i give it more than a moments thought, having something to generate is better, because either
a) you remove the static as well as the inline, in which case you'll get multiple-definitions
b) you leave the static, and you get duplicate code, but also no public callable version

I'm a little bit torn between both options...
On one side, generating something is much easier and faster; on the other side – @thejpster has a point: Using static inline within headers for public APIs is non-idiomatic C and breaks FFI compatibility.
Furthermore I'm wondering if static inline is necessary? Doing LTO is probably a much better approach and has the additional advantage that it can be tweaked for either performance or code size, whereas static inline always optimizes for performance.
For those interested: As a stopgap I've created a tiny helper to generate no-static no-inline bindings for the static inline functions. It's a bit cursed because it uses regex to parse the headers, but it works surprisingly well 😅
There are also pregenerated bindings in generated/.


MemPostings.AddBatch per Appender

Instead of indexing each series separately, we can delay that until the commit (or rollback) phase of the append, in an attempt to reduce the lock contention on MemPostings.

Some tests failed with data races, which aren't related to this, afaik we're already aware of them

Failed tests
WARNING: DATA RACE
Read at 0x00c0007d8210 by goroutine 2026:
  github.com/prometheus/prometheus/tsdb.(*headAppender).Append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:365 +0x1bd
  github.com/prometheus/prometheus/tsdb.(*dbAppender).Append()
      <autogenerated>:1 +0x93
  github.com/prometheus/prometheus/scrape.(*timeLimitAppender).Append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/target.go:351 +0xa8
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).append.func3()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1868 +0xeb
  github.com/prometheus/prometheus/scrape.(*scrapeCache).forEachStale()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1069 +0x194
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1865 +0x3004
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).endOfRunStaleness()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1523 +0x5a4
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1342 +0x852
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1277 +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1280 +0x1dc

Previous write at 0x00c0007d8210 by goroutine 2051:
  github.com/prometheus/prometheus/tsdb.(*memSeries).append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1538 +0x14c
  github.com/prometheus/prometheus/tsdb.(*headAppender).commitSamples()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1193 +0xa25
  github.com/prometheus/prometheus/tsdb.(*headAppender).Commit()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1464 +0xf84
  github.com/prometheus/prometheus/tsdb.dbAppender.Commit()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/db.go:1278 +0x49
  github.com/prometheus/prometheus/tsdb.(*dbAppender).Commit()
      <autogenerated>:1 +0x4e
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).scrapeAndReport.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1370 +0x88
  runtime.deferreturn()
      /opt/hostedtoolcache/go/1.23.2/x64/src/runtime/panic.go:605 +0x5d
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1327 +0x60f
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1277 +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2.1.1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1285 +0xd6

Goroutine 2026 (running) created at:
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1279 +0x464
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 2051 (running) created at:
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2.1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1284 +0x244
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1.2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1[272](https://github.com/grafana/mimir-prometheus/actions/runs/11776959255/job/32800387865?pr=745#step:4:273) +0xa2
  github.com/prometheus/prometheus/scrape.(*testScraper).readResponse()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:2838 +0x89
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).scrapeAndReport()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1407 +0xd8f
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1327 +0x60f
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1[277](https://github.com/grafana/mimir-prometheus/actions/runs/11776959255/job/32800387865?pr=745#step:4:278) +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1280 +0x1dc
==================
==================
WARNING: DATA RACE
Read at 0x00c0007d8218 by goroutine 2026:
  github.com/prometheus/prometheus/tsdb.(*headAppender).Append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:367 +0x30b
  github.com/prometheus/prometheus/tsdb.(*dbAppender).Append()
      <autogenerated>:1 +0x93
  github.com/prometheus/prometheus/scrape.(*timeLimitAppender).Append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/target.go:351 +0xa8
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).append.func3()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1868 +0xeb
  github.com/prometheus/prometheus/scrape.(*scrapeCache).forEachStale()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1069 +0x194
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1865 +0x3004
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).endOfRunStaleness()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1523 +0x5a4
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1342 +0x852
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1277 +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1280 +0x1dc

Previous write at 0x00c0007d8218 by goroutine 2051:
  github.com/prometheus/prometheus/tsdb.(*memSeries).append()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1539 +0x192
  github.com/prometheus/prometheus/tsdb.(*headAppender).commitSamples()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1193 +0xa25
  github.com/prometheus/prometheus/tsdb.(*headAppender).Commit()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/head_append.go:1464 +0xf84
  github.com/prometheus/prometheus/tsdb.dbAppender.Commit()
      /home/runner/work/mimir-prometheus/mimir-prometheus/tsdb/db.go:1[278](https://github.com/grafana/mimir-prometheus/actions/runs/11776959255/job/32800387865?pr=745#step:4:279) +0x49
  github.com/prometheus/prometheus/tsdb.(*dbAppender).Commit()
      <autogenerated>:1 +0x4e
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).scrapeAndReport.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1370 +0x88
  runtime.deferreturn()
      /opt/hostedtoolcache/go/1.23.2/x64/src/runtime/panic.go:605 +0x5d
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1327 +0x60f
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1277 +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2.1.1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1285 +0xd6

Goroutine 2026 (running) created at:
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1[279](https://github.com/grafana/mimir-prometheus/actions/runs/11776959255/job/32800387865?pr=745#step:4:280) +0x464
  testing.tRunner()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1690 +0x226
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.23.2/x64/src/testing/testing.go:1743 +0x44

Goroutine 2051 (running) created at:
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2.1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1284 +0x244
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1.2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1272 +0xa2
  github.com/prometheus/prometheus/scrape.(*testScraper).readResponse()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:2838 +0x89
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).scrapeAndReport()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1407 +0xd8f
  github.com/prometheus/prometheus/scrape.(*scrapeLoop).run()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape.go:1327 +0x60f
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func1()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1277 +0x2cf
  github.com/prometheus/prometheus/scrape.TestSetOptionsHandlingStaleness.func2()
      /home/runner/work/mimir-prometheus/mimir-prometheus/scrape/scrape_test.go:1[280](https://github.com/grafana/mimir-prometheus/actions/runs/11776959255/job/32800387865?pr=745#step:4:281) +0x1dc
==================
--- FAIL: TestSetOptionsHandlingStaleness (0.17s)
    testing.go:1399: race detected during execution of test

I think this can't be done if isolation is enabled.
Even if it's not enabled, there could also be a bad scenario where:

First appender creates series, but takes a while to commit
Second appender appends to existing series, since it didn't create them, it won't add them to the index.
A query arrives, but it doesn't see the series because first appender didn't commit yet.

I created this as a fix for that: MemPostings.Commit() before using them


404 in negotiate if useSpa is before signalr

i dont know if this is signalr issue or spa services so @SteveSandersonMS may also have a look.
i just tried out signalr preview1 final.
if I have this in startup everything works as expected:
            app.UseSignalR(routes =>
            {
                routes.MapHub<TestHub>("/hubs/test");
            });

            app.UseSpa((o) =>
            {
                if (env.IsDevelopment())
                {
                    o.UseProxyToSpaDevelopmentServer("http://localhost:4200");
                }
            });

but if I do this i get 404 in client:
            app.UseSpa((o) =>
            {
                if (env.IsDevelopment())
                {
                    o.UseProxyToSpaDevelopmentServer("http://localhost:4200");
                }
            });

            app.UseSignalR(routes =>
            {
                routes.MapHub<TestHub>("/hubs/test");
            });

This is not an issue the spa middleware redirects everything to index.html if the previous middlewares do not handle the request.

That is how deep linking to your SPA routes occurs....

As @buvinghausen indicates, it sounds like UseSpa is what we call a "terminal middleware" in that requests never pass beyond it. If it makes sense to make the Spa middleware non-terminal, that would be a discussion that would have to happen in the repo for that middleware.
I'm closing this issue as there isn't a SignalR issue here. Feel free to comment further if you need clarification, we can always re-open the issue if there is something for SignalR to fix :)

@anurse I do think there should be some discussion on ways to configure the UseSpa middleware to ignore certain route prefixes (things like /api, /hubs, /swagger, etc.) but this is definitely not the place for that discussion :)


VSTS Publish Error -TS2339: Property 'onError' does not exist on type '{}'.

With the Angular template I'm now receiving the following error when publishing to Azure via VSTS. This same build was working about 4-6 weeks ago. Nothing has changed on my end. Publishing via VS (Publish Profile) works fine.
I'm wondering if something in my template (webpack/certain package) needs to be upgraded to support VSTS? Not sure what else it could be unless something on VSTS changed.
2017-09-07T14:03:02.7388712Z       ERROR in [at-loader] ./ClientApp/boot-server.ts:23:18
2017-09-07T14:03:02.7388712Z           TS2339: Property 'onError' does not exist on type '{}'.
2017-09-07T14:03:02.7428715Z d:\a\1\s\App.csproj(64,5): error MSB3073: The command "node node_modules/webpack/bin/webpack.js" exited with code 2.
2017-09-07T14:03:02.7858728Z ##[error]Error: C:\Program Files\dotnet\dotnet.exe failed with return code: 1
2017-09-07T14:03:02.7858728Z ##[error]Dotnet command failed with non-zero exit code on the following projects : d:\a\1\s\App.csproj

Below: package.json, webpack.config.js, webpack.config.vendor.js
config.zip

Are you using NPM shrinkwrap? e.g., do you have an npm-shrinkwrap.json file in your project?
The current templates do, because it ensures you don't end up getting incompatible updates during deployment, which would cause errors like you're seeing.
If you're not using NPM shrinkwrap yet, I recommend that you do so. See NPM docs for details.

Hey Steve thanks for the reply. I do not have this file (it is from an older template version)
Going to take a look at getting this. Thanks!

Boom that did it! Just another thing to have to know but appreciate it :)


Failed to resolve component: vue-awesome-paginate

We're getting a warning in the logs running Nuxt 3:
[Vue warn]: Failed to resolve component: vue-awesome-paginate
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.

The component works, but it would be nice to eliminate the warning to avoid the extra noise in the logs. Any ideas?

This really looks like you have not registered the component, or maybe you have registered it with a different name, can you please share a sandbox or the part of your codebase where you have registered your component?

We followed your instructions for Nuxt and put this in the plugins folder:
import VueAwesomePaginate from "vue-awesome-paginate";

import "vue-awesome-paginate/dist/style.css";

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(VueAwesomePaginate);
});

We're getting a warning in the logs running Nuxt 3:
[Vue warn]: Failed to resolve component: vue-awesome-paginate
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.

The component works, but it would be nice to eliminate the warning to avoid the extra noise in the logs. Any ideas?

Hi, what is your version of nuxt, I have no problem using it on my side, my version is 3.13.0

We're running Nuxt 3.13, but I'm not seeing the warning any longer. It must have been a problem specific to my local system. Maybe my Node version? I haven't been able to nail it down but it's not happening now.


Sending unified emoji via apn

Hello again Argon,
Thanks for your work on the reliability issue with bobrik. Another issue came up... I'm not sure if it's an issue on the node-apn side or on the Apple gateway side. Basically, alerts with the emoji unified standard unicode are dropped. Everything on the node side seems to work normally, but the message never arrives on the phone. If I use the old emoji softbank unicode char, for example '\ue415' for a smiley face, it works fine. If I use the new unified unicode standard, which the iPhone emoji keyboard outputs, for example '\uD83D\uDE04', it fails. Given your knowledge of apn on the node side and apple side, perhaps you might have some insight. It's possible that Apple's APN service hasn't caught up with the unified standard or doesn't accept the extended character set. Thank you for any help!
Dave

It looks like the issue is using utf8 encoding on the payload doesn't handle the extended unicode characters (or doesn't play well with APNS). Changing the encoding to usc2 fixes the issue, but I'm not sure if it breaks anything else at this point. Will let you know.

Oh that's absolutely the case, I'm pretty sure that emoji falls under UTF-16. Let me know how the encoding change goes, I'll investigate unicode support in javascript/node and see what I can find out.
Unicode is crazy.

The change is very simple and shouldn't break anything since UCS2 is the predecessor to UTF-16. The disadvantage is it halves the number of characters you can fit in the 256 byte payload. So, probably makes sense to give people the option. The change is in sendNotification:
var messageLength = Buffer.byteLength(message, encodingMethod);
...
pos += data.write(message, pos, encodingMethod);
where encodingMethod is 'ucs2' or 'utf8' - default is utf8 for these functions.

I will add an option for this and update the readme soon. I think I will add this on a per message basis, I am going to refrain from making it a global setting because of the detrimental nature of halving the message length. Thanks for figuring this out.

Could you please share java code for sending Advance Emoji or images?

This library is for JavaScript, not Java. Please checkout https://github.com/notnoop/java-apns for a Java version.
―A

On 15 Jun 2015, at 15:19, pashtika<EMAIL_ADDRESS>wrote:
Could you please share java code for sending Advance Emoji or images?
―
Reply to this email directly or view it on GitHub.


boards: kconfig: Fix enabling USE_SEGGER_RTT for various boards

boards: kconfig: Fix enabling USE_SEGGER_RTT for various boards
HAS_SEGGER_RTT is assigned by various Nordic boards, but assignments
have no effect on promptless symbols. This symbol is enabled through
being select'ed by SOC_SERIES_NRF52X.
Holyiot, nRF52833-PCA10100, nRF52840-PCA10056, and nRF52-PCA10040 only
assign HAS_SEGGER_RTT without assigning USE_SEGGER_RTT. They probably
meant to enable USE_SEGGER_RTT, so do that instead.
Also add a help text to HAS_SEGGER_RTT and a warning re. HAS_SEGGER_RTT
vs. USE_SEGGER_RTT to the documentation.
Flagged by https://github.com/zephyrproject-rtos/zephyr/pull/20742.

Yeah... I wasn't sure HAS_SEGGER_RTT was even being enabled properly for these boards, so I got a bit lazy while batch-fixing.
Turns out it is, because these are all SOC_SERIES_NRF52X, which has select HAS_SEGGER_RTT.
Did a proper fix that switches the boards that only assigned HAS_SEGGER_RTT to assign USE_SEGGER_RTT instead. Added a help text and a warning too.
See updated commit message.

One thing is to clean up the assignment of HAS_SEGGER_RTT, another is to change that assignment to USE_SEGGER_RTT; that will change the default board configuration, right?

One thing is to clean up the assignment of HAS_SEGGER_RTT, another is to change that assignment to USE_SEGGER_RTT; that will change the default board configuration, right? I just built a sample for nrf52840_pca10056 and USE_SEGGER_RTT is n, this patch would change that to y afaics?

Yup... we're assuming people wanted to enable it, but assigned the wrong symbol. Could be wrong.

Yup... we're assuming people wanted to enable it, but assigned the wrong symbol. Could be wrong.

Personally, I'd leave the default setting.
Plus I agree with what @carlescufi said, HAS_SEGGER_RTT is a board capability. For example the nrf52840 SoC is present on two boards pca10056 and pca10059 the former has Segger the latter doesn't.

I am fine with any solution you pick, I would only like to see us having 2 Kconfig options - one _HAS_RTT to signify RTT capabilities (at SoC or Board level), and a user option (depending on that) for enabling the feature.

Yup... we're assuming people wanted to enable it, but assigned the wrong symbol. Could be wrong.

Personally, I'd leave the default setting.
Plus I agree with what @carlescufi said, HAS_SEGGER_RTT is a board capability. For example the nrf52840 SoC is present on two boards pca10056 and pca10059 the former has Segger the latter doesn't. We should have HAS_SEGGER_RTT in the board defconfig files.

So do you think HAS_SEGGER_RTT should be user-configurable?
Note that assigning it is currently a no-op, because it isn't user-configurable (since it has no prompt).
One icky thing about having it user-configurable is that you could go into the menuconfig and turn it off, even though it's a fixed hardware thing (afaik).

I am not quite convinced by this, because Segger RTT support is determined at the board level, not at the SoC level, since RTT is a mechanism that is implemented in the debugger chip that sits on the board, not in the SoC itself. The original idea with this was to set HAS_SEGGER_RTT at the board level to indicate which boards support this, but it might now have gone out of date. Perhaps @anangl or @nordic-krch could comment as well.

Could select HAS_SEGGER_RTT from the board symbols instead, if that'd make more sense. Not sure if I'm the most qualified guy here though.
Maybe we could just go with something that works as intended here.


Intercept flask-dance redirects and point back to HTTP referer

Closes #205
Would be nice to make a login modal to replace the current direct link to /login/github that could link to the appropriate OAuth provider endpoints, e.g., "Sign in with Github" and "Sign in with ORCID"

This is the best I can do re: redirects for now @jdbocarsly -- think we should merge and revisit at a later date.


[WIP] Remove the add-source goal in spark module

Motivation
Test for CI.
The CI always failed by downloading the add-source related file. Trying to remove
it in the spark which is unused to improve the CI.

/pulsarbot run-failure-checks


i'm dumb dumb; any idea how to work this out

Hi first, thanks in advance
So, I don't have any experience with coding, python or any similar to understand what is that I'm doing wrong and the thing is that, I really want this Automatic editing tool since it will be and immense improve in the time when I'm editing videos.
I don't know how to use the Powershell but this is where I am.
I follow the steps attached below until the last one, where my problem is.
Thanks again.
/
/
/
Picture 1. The steps mentioned above.
Picture 2. The problem the Powershell is telling me.

pd: the video in matter, "hola.mp4" and the jumpcutter.py are in the same folder as the python.exe (C:\Users\Dario\AppData\Local\Programs\Python\Python37) since I didn't know how to refer to it if it wasn't in the same folder.
pd2: i saw carykh commenting about creating a .exe to make this easier to non-coding people like me; any news in that respect?
/

python the language does not have cary's program
can you tell what exactly you downloaded and where did you put it.

try doing "pip install pytube3"

try doing "pip install pytube3"

If pip install pytube3 doesn't work, you can also try python.exe -m pip install pytube3.

Everything is working fine now! Thanks a lot for the help :)
I'll be replying to the issues I had here to make easier finding a solution for some non-tech people with the same problems as me.

@WyattBlue I installed Python 3.7.3 and then put the .py file from carykh (jumpcutter.py) in the same folder as the Python.exe, as you can see in the picture below.
Then, I downloaded the ffmpeg's files from here and put the ffmpeg.exe in the jumpcutter master's folder. After this, I had the issues remarked above. Now, this issues are solved.

@shanlemon @zPaw This is where my solution was. After trying pip install pytube3 and python.exe -m pip install pytube3 the problem was fixed, in nearly a second. I tried the same video as before "hola.mp4", and it worked. That's it!
However, a new problem happened where some TEMP folder in the python directory (C:\Users\Dario\AppData\Local\Programs\Python\Python37\TEMP) appeared,  and, after this first test I couldn't test again. I don't have a screenshot, but in the Powershell was a message in the lines of Cannot create a file when that file already exists 'TEMP' winerror183. So, by common sense, I understood that deleting this folder was going to make the code work again. And it worked again.

/
/
/
Picture. Where I put the jumpcutter.py and the ffmpeg.exe to work.

At this point I've made five more test and everything runs smoothly. Thx again.
I hope this threat may be helpful ;)
/


refactor: RealBitcoinTest locking

Please https://github.com/fedimint/fedimint/pull/1599 first.
Instead of having bunch of ad-hoc xyz_no_lock, make them a separate lowest-level (locking-oblivious) struct, and let the higher level structs wrap it.

Is there now some reasoning we can use to determine when a test needs to acquire a lock?

So far it's been: "we need to test the lack of pending epochs, so we can't tolerate other tests changing the blockchain height".

Codecov Report
Base: 64.92% // Head: 64.95% // Increases project coverage by +0.03% :tada:

Coverage data is based on head (302cd31) compared to base (f38119b).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1637      +/-   ##
==========================================
+ Coverage   64.92%   64.95%   +0.03%
==========================================
  Files         130      130
  Lines       23307    23307
==========================================
+ Hits        15131    15138       +7
+ Misses       8176     8169       -7

Impacted Files
Coverage Δ

fedimint-core/src/api.rs
78.81% <0.00%> (-0.62%)
:arrow_down:

fedimint-server/src/net/peers.rs
91.61% <0.00%> (-0.30%)
:arrow_down:

fedimint-server/src/net/connect.rs
94.39% <0.00%> (-0.25%)
:arrow_down:

modules/fedimint-wallet/src/lib.rs
77.46% <0.00%> (+0.15%)
:arrow_up:

fedimint-server/src/multiplexed.rs
91.25% <0.00%> (+2.50%)
:arrow_up:

gateway/ln-gateway/src/utils.rs
92.30% <0.00%> (+30.76%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Example for named function with parameters

Looked at the examples, and reading the php docs about call_user_func_array i was missing the example, how it can be used with a pre-defined function, including parameters.
I would suggest a rather extensive example:
// Define function that handling routes, and has a default value for the variable
function my_func($my_var = 'default value') {
  return 'This is a working pre-defined function. Parameter: '.$my_var;
}

// Add your index route
Route::add('/', function() {
  return my_func();
});

// Add your first route
Route::add('/browse/(.*)', function($var) {
  return my_func($var);
});

Sorry for this late answer. Holidays.
Try to use func_get_args() inside your predefined function. So you can have a variable number of arguments: https://www.php.net/manual/en/function.func-get-args.php
Not tested code:
function my_func() {
  // Get all the function args without defining them inside the function head
  $arg_list = func_get_args();

  // Print all function args
  print_r($arg_list);

  // Return your content
  if(count($arg_list)){
    return 'This is a working pre-defined function. Parameter: '.$arg_list[0];
  } else {
   return 'This is a working pre-defined function. Parameter: Nor args given';
  }

}

Route::add('/', 'my_func');

Route::add('/browse/(.*)', 'my_func');


Add gate in intro to html course for actual list items

This pull request adds a gate that checks for li within the step where users are asked to write a list. This closes #7.
I'm going to test this myself, and will reach out when it's ready for review.

I've tested this, and it works! 🎉 https://github.com/brianamarie/intro-html/pull/6
I'm going to go ahead and merge this.


使用for循环 - 求出班级里同学们平均年龄[15, 19, 21, 33, 18, 24]

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Yes I prevented a corrupt software from harvesting and stealing peoples PII information, I clearly published it, here is the malicious code https://www.microsoft.com/en-us/msrc/pgp-key-msrc?rtc=1. Attached is the solution http://aka.ms/devtools-for-code.
What solution I want is in this link https://www.microsoft.com/en-us/msrc/bounty


Handle possessives and plurals better

"Parkinson's" returns hits, but "Parkinsons" does not.   Other punctuation like commas or hyphens appear to be ignored by solr.  Can we also ignore apostrophes?
Also see Alzheimer.  Searching for "Alzheimer's" or "Alzheimer" returns over 20 hits, including things from CHEBI as well as MONDO.  "Alzheimers" returns 1.  Things like this will be handled inconsistently across naming schemes, so we should probably do some work here to make sure it doesn't matter.

I like our current "solution" to this problem, which is that we now have so many synonyms that we're likely to get both "Parkinson disease" and "Parkinson's disease" as exact synonyms, so we don't need to either (1) remove the quotes during synonym loading and querying, or (2) make the search a little bit fuzzy so that single character insertions are ignored. In theory this would allow us to better support terms where single quotes should not show up, but I don't think there's a lot of those.
On the other hand, reducing the number of synonyms would help make the Solr database smaller, which would be nice.


which eval metric should I use to decide stop train?

Thx for you brilliant idea, I have a question about that which eval metric should I refer to know model is over fitting or not fitting?
Here is the eval metrics change during I set img size 960*544 and batchsize 1 train  on coco train dataset, eval is on HPatch and img size is 320*240:

It seems that after epoch 3, M Score and Repeatability is all the way down not up...
If I train on my own image dataset ,which eval metric should I refer to stop train?

As you train for longer Loc_error should be going down, and corr_1 should be going up. As for stopping training, I think corr1 could be a good metric as it's quite strict. But it also depends on potential downstream applications, for example pose estimation, that you could use to check the performance of the network.


HOTPOT-892: new search design for people tab

Changes the way the TeamBuilder component works on the People tab so it looks like this:

It also allows starting chats and other actions from search results.
cc @keybase/design

Took a quick glance at it:

On desktop, could we not spread the tabs and give them a width? Maybe the same width as in the new convo (I think 90px?). Right now it makes you move a long way to click between them.
The first row stays highlighted always
With the exception of the Keybase tab on mobile (we don't want to bring the keyboard up by default on mobile), clicking a tab should bring the focus to the search at the top so you can just select a tab and start typing. This needs to be fixed in the New convo too.
This text should change a bit in the context of searching. Maybe just "Search" instead of "Start a chat with"?

@cecileboucheron Addressed all of those except the keyboard popping up - since that's a pre-existing separate issue, I'll make another ticket for that.

looks like it didn't need to change anything on the service, so there is not much for me to comment on. thanks for the tag!


Not dialog appeared, return none

I have installed both gnome and i3 on my endeavours os, and rfd works well on gnome, but there was no dialog appears when I am using i3

In i3 you probably have a broken XDG Portal setup, either fix it, or install zenity and it should act as a fallback

@PolyMeilex solved now, I don't know why, but after I replaced nautilus with thunar as the default file manager , it worked well


Move to call for code NLU account

Change NLU credentials in Code Engine secret to the NLU service hosted on Call for Code account.
Related to #89

Thanks @upkarlidder  - Let me know via a @ mention when this is complete.  I'll delete the NLU service instance over in my org (which has a monthly charge)

@johnwalicki I forgot to close out the issue. Thank you for your patience.

@upkarlidder  Can I delete the NLU instance that is incurring charges against my dept?

Yes, this app now uses NLU in CfC account.

Thanks  I've cleaned up my account.


Image.Resampling.LANCZOS instead of Image.ANTIALIAS deprecated in Pillow 10

Pillow's release notes
PR  also done in your other project videohash.

I have fixed this in my fork of this package called "imagedominantcolour":
https://github.com/Demmenie/imagedominantcolour
https://pypi.org/project/imagedominantcolour/

I think having a package with a slightly different name in pypi is a bit confusing and also does not help with requirements.

That's understandable, I named it that way mostly because I thought it was funny.


If local storage file exists, then use it rather then defau…

…lts.
Currently we always force overlay if it exists even though a user might want
vfs.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

/approve

hm.. doesn't ReloadConfigurationFile override the setting in storageOpts?
AFAICS, if the storage driver is specified in the local configration then it is used.  overlay is used only when the driver is not specified and fuse-overlayfs is present.

@giuseppe the issues is the storage options continue to be used.
 ./bin/podman info | grep overlay
  GraphDriverName: overlay
  - overlay.mount_program=/bin/fuse-overlayfs
  - overlay.mount_program=/bin/fuse-overlayfs

Notice it has fuse-overlay twice.
Now I want to change my storage to vfs.
 $ cat ~/.config/containers/storage.conf
[storage]
  driver = "vfs"
  runroot = "/run/user/3267"
  graphroot = "/home/dwalsh/.local/share/containers/storage"
 $ ./bin/podman info | grep overlay
  GraphDriverName: overlay
  - overlay.mount_program=/bin/fuse-overlayfs

So it ignores my local storage.conf

I removed ~/.local/share/containers ~/.config/containers
podman info shows
  ContainerStore:
    number: 0
  GraphDriverName: overlay
  GraphOptions:
  - overlay.mount_program=/bin/fuse-overlayfs
  - overlay.mount_program=/bin/fuse-overlayfs
  GraphRoot: /home/dwalsh/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
  ImageStore:
    number: 0
  RunRoot: /run/user/3267

I change
 cat ~/.config/containers/storage.conf
[storage]
  driver = "vfs"
  runroot = "/run/user/3267"
  graphroot = "/home/dwalsh/.local/share/containers/storage"

podman info shows
  ContainerStore:
    number: 0
  GraphDriverName: overlay
  GraphOptions:
  - overlay.mount_program=/bin/fuse-overlayfs
  GraphRoot: /home/dwalsh/.local/share/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
  ImageStore:
    number: 0
  RunRoot: /run/user/3267


Update zio-schema, zio-schema-derivation to 1.3.0

About this PR
📦 Updates

dev.zio:zio-schema
dev.zio:zio-schema-derivation

from 1.1.1 to 1.3.0
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "dev.zio" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #63.


Log reflection errors from looper introspection

[ x] This is a small change
[ ] This change has been discussed in issue #<?> and the solution has been agreed upon with maintainers.

Description:
If you are trying to set-up Detox in your app and there is a proguard misconfiguration then this usage of reflection may fail and it will be silent. If this log were here, it would have been a huge clue that would have saved me from having to manually debug Detox to find this thrown exception.

@rodrigos-facebook , why not Log.e ?

Makes sense, updated

@rotemmiz @d4vidi @noomorph  Looks like a small change. Can you pls review?


metadata image url

Hi ! i got this when i create the metadata for the image url --> 'https://gateway.pinata.cloud/ipfs/.../0'
But I want a .png like this --> 'https://gateway.pinata.cloud/ipfs/.../0.png'
I try to change the index.js, ligne 376 'image: imageUrl + id,' to -> 'image: imageUrl + id + '.png','
But nothing change u can help me ?

That should work. Try deleting the output folder if you haven't already and re run the script. Also how did you install the script and where did you change the line of code?

I try again and not working, i export ur folder and i run 'npm install -g nft-art-generator', i change the file index.js in bin folder

Alright!
The problem is that you don't actually modify the code that you are using.
What you wanna do is first of all uninstall the old package you installed by using npm remove nft-art-generator.
Then you wanna go into the folder where you changed the code and open a terminal there.
In there you need to type npm install -g . this will install your local edited version of the package.
Then everything should work fine.