interpolate over nans of pld sensors

This will fix Issue #128
This is a first draft. If interpolate is set to True in raw_to_timeseries, nans from variables will be interpolated over as the sensors are aligned with the timestamps of the variable designated as the timebase.
This should be tested with some delayed mode data, as the interpolation has no effect on nrt data, as these typically have no nans. @hvdosser @jklymak, do you have a delayed mode dataset you would like to use to test this method?

We can make the interpolate kwarg True by default, or control this behavior from the yaml

Hi @callumrollo, I'd recommend testing on this delayed mode dataset: https://cproof.uvic.ca/gliderdata/deployments/dfo-bb046/dfo-bb046-20200908/delayed_raw/

Thanks @hvdosser. Can you send me a yaml file for the dataset you linked? I will then incorporate the nan interpolation with control from the yaml file.
Sorry for the delay on this, just back from vacation

Hi @callumrollo, no worries, thanks for figuring this out! Here's the link to the yaml: https://cproof.uvic.ca/gliderdata/deployments/dfo-bb046/dfo-bb046-20200908/deployment.yml

@hvdosser do these tests look sufficient? I've added some of the data you provided and tested it in default mode and with nan interpolation enabled. We're using GPCTD as the timebase.The nan interpolation adds non-nan values for the other sensors (oxygen and cdom) where they did not sample at the same time as the CTD.
Getting a nice increase isn test coverage from this too :)

Ping @hvdosser for a review on this

@hvdosser if you had a chance to make sure this works it would be appreciated...

@hvdosser do you have a timeframe for reviewing this? It's quite a substantial change, so I'd like to get it merged before addressing other Issues

Hi @callumrollo and @jklymak , sorry for the delay on this. I'll have time on Monday Feb 13th to review and merge.

I've merged in the latest changes from main. Is this good to go @hvdosser?

@callumrollo and @jklymak, I'll merge this pull request, but I do think we need to consider what happens when we have large gaps in the data and we interpolate over them. Particularly for sensors like the ECOpuck, which only samples a small portion of the water column. Am I correct in thinking that setting interpolate=True will result in new interpolated points everywhere the CTD has data? If that's the case, we'll need to figure something out to deal with these larger gaps before we can move forward.

OK, I think xarray provides this functionality:
https://docs.xarray.dev/en/stable/generated/xarray.DataArray.interpolate_na.html#xarray-dataarray-interpolate-na
note the max_gap parameter, which should be perfect for this.  Just set to some reasonable value (that probably changes depending on the sampling frequency) and big gaps would remain NaN...

Hi @hvdosser. The potential problem with slow sampling sensors was raised in the original discussion of Issue #128. Linear interpolation will result in an apparent measurement at every timestamp of the specified timebase. using keep_vars will ensure these measurements are retained. An alternative would be to implement a max_gap as Jody suggests, or to have the option of nearest neighbout interpolation of some kind. Either way, I feel this is best addressed in a separate PR, preferably with the use of a dataset which demonstrates the issue you want to solve as test data


[cognitive-language] Update @azure/ai-language-conversations to ESM/vitest

Packages impacted by this PR

@azure/ai-language-conversations

Issues associated with this PR

https://github.com/Azure/azure-sdk-for-js/issues/31338

Describe the problem that is addressed by this PR
Updates @azure/ai-language-conversations to ESM/vitest via automation.
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
API changes are not detected in this pull request.


Question about Crpyto Exchange Supports

It is a great project. Thanks to the authors.
Currently  I'm using both Binance and Upbit.
Are these acceptable to be PRed?
Thanks, again.

I have started implement BinanceExchange with ccxt in a scalable way to add another exchange.
and, I follow the interface of CoinbaseProExchange.
I expect it will be done soon if without the subscription support,
but there are some issues which are incompatible with current version of aat

Could I add ccxt and async_lru to setup.py ?
the Coinbase client is not using an async http library. I found some cases as following.

# Preferable Example
   async for o in client.orderBook((await client.instruments())):
       print(o)

# Current Example
    for o in client.orderBook(client.instruments()):
        print(o)

Not only Binance but other exchanges are NOT support full depth orderbook api. (They exist in their own way.)

Older versions of this library used ccxt but I'm avoiding it now due to their licensing structure which locks some stuff behind "pro". Other deps are fine.
The Coinbase client should use an async http library, it already does async websockets.
Exchanges need not implement a full client side order book, this is still relatively WIP even for Coinbase which does send level 3. It's likely we'll switch to level 2 and use the new order book lite that doesn't care about individual orders. The full limit order book implementation is really best suited for running an exchange (like the synthetic exchange you can run against).

Okay. I hadn't know the license issue of ccxt. I may use the implementation for own use.
I will contribute in other way.
Thank you for your answer.


GVRModelSceneObject as child with animations

Im using the gvr-controls example to build a button. But instead using textures I want to use a fbx model.
So what I did is
public GVRModelSceneObject mButton;
GVRContext context;

public MenuButton(GVRContext gvrContext)  {
        super(gvrContext);

        context = gvrContext;

        try {

            GVRMesh sMesh = gvrContext.createQuad(4,2);

            attachRenderData(new GVRRenderData(gvrContext));
            getRenderData().setMaterial(new GVRMaterial(gvrContext));
            getRenderData().getMaterial().setOpacity(0f);
            getRenderData().setMesh(sMesh);

            mButton = gvrContext.getAssetLoader().loadModel("models/menu/MenuButton.fbx");
            mButton.getTransform().setPosition(0,0,0);
            mButton.getTransform().rotateByAxis(90,1,0,0);

            addChildObject(mButton);

            getRenderData().setRenderingOrder(10000);

            attachComponent(new GVRMeshCollider(gvrContext, false));

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

In the MainScene I add the button with
MenuButton menuButton = new MenuButton(gvrContext);

        menuButton.setTouchAndGesturelistener(new TouchAndGestureImpl() {
            @Override
            public void singleTap() {

                super.singleTap();

            }
        });

        menuButton.getTransform().setPosition(0,0,-7);
        gvrContext.getMainScene().addSceneObject(menuButton);

At first this works pretty well and I can see my button and also the gainedFocus(), lostFocus() and so on are working.
But if I start the an animation in the gainedFocus() focus for example, the mButton (the child of menuButton) is jumping to position 0,0,0 in the scene and animates.

So adding the GVRModelSceneObject as child to menuButton on position 0,0,0 is working.
Set the position for the menuButton to 0,0,-7 in the scene is working
Starting the animation will put the mButton to 0,0,0 in the scene, while the menuButton keeps his y: -7 position in the scene.

It looks like the animationEngine tooks the child position 0,0,0 as position to start the animation in the scene.
Is this a bug or how I can handle this?
Any help would be great.

What animation are you talking about? I do not see the animation so it is very difficult to tell why it starts at 0,0,0. If the animation has 0,0,0 as the position that could be the reason it starts there. The animation will change the position of your object.
If you want an animation to move an object relative to another object, you can parent the animated object to the other one. For example, you can put an object at 0,0,-7 and then put the button under that and the animation will be relative to 0,0,-7

@retterdesdialogs Did @NolaDonato 's suggestion work for you? We can be of more help if you could share a test app.

@apjagdale is reproducing the problem and is working on it.

@retterdesdialogs We have a workaround for this until we fix this issue. I have modified the gvr-meshanimation demo.
Links:
https://github.com/apjagdale/GearVRf-Demos/tree/animationIssue1556
https://github.com/apjagdale/GearVRf-Demos/blob/3e65e0f840585bc529bb61881cc9d46ae6695415/gvr-meshanimation/app/src/main/java/org/gearvrf/gvrmeshanimation/MeshAnimationMain.java
Following is the description:
-menuButton is the root which has a mesh of a quad to it. It also has a child at index 0 which is the FBX model(TRex). Whenever you want to make changes to the Trex model do menuButton.getChildByIndex(0) or have its reference in your class and use it.

I will work on fixing this in 4.1. I looked into it and it appears the animation code looks at the nodes above the animated character and putting in extra nodes can affect the animation. This is incorrect but will probably require rewriting some of the animation import code. Some of the operations it does at run time should really be done during asset import and should be independent of where you put the animated object in the scene.

@retterdesdialogs Planning to close the issue in few days.


Fix eslint rules violations

Codecov Report

Merging #1038 into master will decrease coverage by 0.31%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1038      +/-   ##
==========================================
- Coverage   93.28%   92.96%   -0.32%
==========================================
  Files          39       39
  Lines        4197     4264      +67
  Branches      464      737     +273
==========================================
+ Hits         3915     3964      +49
- Misses        282      284       +2
- Partials        0       16      +16

Impacted Files
Coverage Δ

browser/model/helpers/hash.js
85.29% <100%> (-2.59%)
:arrow_down:

browser/model/devstudio-autoinstall.js
97.29% <0%> (-2.71%)
:arrow_down:

browser/pages/install/controller.js
70.81% <0%> (-2.11%)
:arrow_down:

browser/main.js
95.58% <0%> (-1.39%)
:arrow_down:

browser/pages/account/controller.js
82.11% <0%> (-1.33%)
:arrow_down:

browser/pages/location/controller.js
92.5% <0%> (-1.25%)
:arrow_down:

browser/model/jbossfusekaraf.js
95.09% <0%> (-0.83%)
:arrow_down:

browser/model/installable-item.js
98.01% <0%> (-0.8%)
:arrow_down:

browser/model/jbossfuse.js
99.23% <0%> (-0.77%)
:arrow_down:

... and 18 more

Continue to review full report at Codecov.

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


progressobserveru

Coverage decreased (-0.9%) to 10.312% when pulling 2e3b5c449342fa512da6570e8f0697a779ce21df on observer into 41ce2441237858648ef365047518e2303faf5981 on master.


First menu item name is not proper app name

Etcher version: v1.3.1
Operating system and architecture: Linux, Windows

This was fixed by #1996 , right?

Yup, closing


Redundant =?= in elabTermEnsuringType

Not sure how relevant that is, but maybe there is a worthwhile performance improvement to be found here.
Consider
import Lean
set_option autoImplicit false

open Lean Meta Elab Term

syntax (name := asNat) "as_nat " term : term

@[term_elab asNat] def evalAsNat : TermElab := fun stx _expectedType? => do
  let `(as_nat $t) := stx | throwUnsupportedSyntax
  elabTermEnsuringType t (mkConst ``Nat)

def Foo := Nat
example (n : Foo) (P : Nat → Prop ):
  P (set_option trace.Meta.isDefEq true in
    set_option trace.Meta.isDefEq.cache true in
    (as_nat n))
  := sorry

This will show
[Meta.isDefEq] ✅ Nat =?= Foo ▼
  [] ✅ Nat =?= Nat
  [cache] cache true for Nat =?= Foo

[Meta.isDefEq] ✅ Foo =?= Nat ▼
  [] ✅ Nat =?= Nat
  [cache] cache true for Foo =?= Nat

so the expected type is unified with the actual type twice.
The first comes from this code in Lean/Elab/App.lean:
/-- This method executes after all application arguments have been processed. -/
private def finalize : M Expr := do
…
  if let some expectedType := s.expectedType? then
    trySynthesizeAppInstMVars
    -- Try to propagate expected type. Ignore if types are not definitionally equal, caller must handle it.
    trace[Elab.app.finalize] "expected type: {expectedType}"
    discard <| isDefEq expectedType eType
  synthesizeAppInstMVars
  return e

And the second comes from the ensureHasType in elabTermEnsuringType.
Both checks are certainly necessary, but it seems wasteful to do the same defeq twice here, so I wonder if it is a bug that we do not get a defeq cache here, or if that is unavoidable (different contexts or so)?
(NB: The DefEq cache is set up so that you get a cache hit independent of the orientation, so that is not the problem.)
Versions
1630d9b803164bb522f4a40fbc8fbf104cca425e
Impact
Add :+1: to issues you consider important. If others are impacted by this issue, please ask them to add :+1: to it.

Both checks are certainly necessary, but it seems wasteful to do the same defeq twice here, so I wonder if it is a bug that we do not get a defeq cache here, or if that is unavoidable (different contexts or so)?

Ah, yes, we simply do not cache across distinct calls to isExprDefEq:
/-- See `isDefEq`. -/
def isExprDefEq (t s : Expr) : MetaM Bool :=
  withReader (fun ctx => { ctx with defEqCtx? := some { lhs := t, rhs := s, lctx := ctx.lctx, localInstances := ctx.localInstances } }) do
    /-
    The following `resetDefEqPermCaches` is a workaround. Without it the test suite fails, and we probably cannot compile complex libraries such as Mathlib.
    TODO: investigate why we need this reset.
    Some conjectures:
    - It is not enough to check whether `t` and `s` do not contain metavariables. We would need to check the type
      of all local variables `t` and `s` depend on. If the local variables contain metavariables, the result of `isDefEq` may change if these
      variables are instantiated.
    - Related to the previous one: the operation
      ```lean
      _root_.Lean.MVarId.replaceLocalDeclDefEq (mvarId : MVarId) (fvarId : FVarId) (typeNew : Expr)
      ```
      is probably being misused. We are probably using it to replace a `type` with `typeNew` where these two types
      are definitionally equal IFF we can assign the metavariables in `type`.

    Possible fix: always generate new `FVarId`s when update the type of local variables.
    Drawback: this operation can be quite expensive, and we must evaluate whether it is worth doing to remove the following `reset`.

    Remark: the kernel does *not* update the type of variables in the local context.
    -/
    resetDefEqPermCaches
    checkpointDefEq (mayPostpone := true) <| Meta.isExprDefEqAux t s

Thanks for creating the issue, but I am planning to close it.
Reason:
The first call is performed to improve the effectiveness of synthesizeAppInstMVars. It will not handle failures or try to insert coercions.
The second call is responsible for error handling and coercion insertion. It is also used in contexts where the elaborated term is not an application.


Ignore certain result attributes in unit tests

https://issues.redhat.com/browse/HACBS-2374

I think ignoring these attributes is harmless, thus this PR. Let me know if you think this is not a good idea, and we can certainly drop this PR.

Codecov Report

Merging #553 (e908e45) into main (7919bd9) will not change coverage.
The diff coverage is 100.00%.

Additional details and impacted files

@@            Coverage Diff            @@
##              main      #553   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           73        73
  Lines         2203      2232   +29
=========================================
+ Hits          2203      2232   +29

Impacted Files
Coverage Δ

policy/build_task/labels_test.rego
100.00% <100.00%> (ø)

policy/lib/assertions.rego
100.00% <100.00%> (ø)

policy/lib/assertions_test.rego
100.00% <100.00%> (ø)

policy/pipeline/basic_test.rego
100.00% <100.00%> (ø)

policy/pipeline/required_tasks_test.rego
100.00% <100.00%> (ø)

policy/pipeline/task_bundle_test.rego
100.00% <100.00%> (ø)

policy/release/attestation_task_bundle_test.rego
100.00% <100.00%> (ø)

policy/release/attestation_type_test.rego
100.00% <100.00%> (ø)

policy/release/base_image_registries_test.rego
100.00% <100.00%> (ø)

policy/release/buildah_build_task_test.rego
100.00% <100.00%> (ø)

... and 15 more


[Android] Replaced play-services-vision with mlkit:barcode-scanning

Issue Being Resolved
#22850

Mobile Vision has moved to ML Kit

The Mobile Vision API is deprecated and no longer maintained. It is now a part of ML Kit which includes all new on-device ML capabilities. see: https://developers.google.com/vision

The previous scanning function cannot properly recognize the QR code on many mobile phone models.

Change overview

Replaced play-services-vision with mlkit:barcode-scanning components
Replaced CameraSourceView with androidx.camera.view.PreviewView
Upgrade compileSdkVersion to 31

@andy31415 One more person is needed to approve the PR, who can approve to the PR?

@panliming-tuya - this needs conflict resolution

@andy31415 The project path has changed, I can't fix it. I resubmit pr latter.


[BEAM-9756] [cherry-pick] Nexmark: only use --region in Dataflow.

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Run Seed Job

Run Dataflow Runner Nexmark Tests

Run Flink Runner Nexmark Tests


Dark Mode on Windows 10 isn't supported

Dark Mode on Windows 10 isn't supported
This makes the colour theme bad and the text unreadable. See the image below.

True

same on Windows 11, Microsoft Edge Version 105.0.1343.33 (Official build) (64-bit)

Someone has forked and taken over to newly maintain a previously abandoned and defunct project.
Github repository of Nicole's fork
Google chrome store listing

still waiting?

@callumlocke sorry for bothering, but seems like the version ahs been updated in chrome but not yet in the edge addon store. chrome version: 0.7.1, edge 0.6.0. Is the edge version something we just need to wait for (pending on ms side) or is there some other issue?
https://microsoftedge.microsoft.com/addons/detail/json-formatter-for-edge/njpoigijhgbionbfdbaopheedbpdoddi
https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=en


london11|saraamiri|module_user_focused_data|week1

Learners, PR Template
Self checklist

[ ] I have committed my files one by one, on purpose, and for a reason
[ ] I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
[ ] I have tested my changes
[ ] My changes follow the style guide
[ ] My changes meet the requirements of this task

Changelist
Briefly explain your PR.
Questions
Ask any questions you have for your reviewer.

fixing html tag

Hi @saraamiiri! You've successfully raised a pull request 😄 But there's a lot more to do for this backlog issue. Take a look at the README.md file here.

Reviewed changes from another branch. Worked with the participant in the in-person session.


BZ-1244654 add productized profile to exclude distros-cdi1.0 in order…

… to avoid old errai deps
This is for https://bugzilla.redhat.com/show_bug.cgi?id=1244654
Please have a look if this helps.
The product want to avoid have the old errai deps as a dependency.
If we could remove the old errai deps , that would be better and feel free to reject this PR.

Ryan, I think we can't do that. EAP 6.4 distro is CDI 1.0 based and we will need to support that.
From what I understood from @porcelli and @csadilek having the old Errai dependency is the best way to go for CDI 1.0 distros.

@ryanzhang @psiroky as far as i know the distros here are just community bits

@porcelli that is most probably true, but the same basically applies to kie-wb and kie-drools-wb (even though it is more hidden there as there is just one distribution-wars module).

Thanks Petr and Alexandre's comments.
I see what's going on here now.
I think we have no choice but deliver both 3.2.0.Final-redhat-x and 3.0.5.Final-redhat-x in the products.
Noticed that 3.0.5.Final-redhat-x is the latest support artifacts in errai 3.0.x branch.
If errai 3.0.4 is not compatible with 3.0.5.Final, please let me know.
I have updated this PR for two change:
1）put the version into dependencymanagement
2) upgrade the errai-weld-integration from 3.0.4.Final to 3.0.5.Final

Ryan, I think that the change you did will break the other (CDI 1.1) assemblies, because they will end up with the 3.0.5.Final version of errai-cdi. We only need to override the version for the CDI 1.0 ones. But as @porcelli mentioned, we could remove these distros from the productized build altogether?

Ah, my bad.
It ineed would override all errai-weld-integration jars. Need to fix that later.

After disucssion with Petr, we think  a better solution will be similar to what Petr do for kie-wb.
"have just one distribution-wars module" and "switch" the errai-weld jars using the assembly.
so close this PR and I will skip these dashbuidler-distros in product build for a short plan.


KafkaSource supports ceOverrides

Fixes #804

Proposed Changes

KafkaSource does not ignore ceOverrides anymore

Release Note

🎁 KafkaSource now supports ceOverrides.

Docs

/assign @matzew

gentle ping.

should I reassign to someone else @matzew ?


Update landscape.yml

Build failed because of:
Duplicate item: International Organization for Standardization C at path Programming Language / Programming Language
Duplicate item: Microsoft C at path Programming Language / Programming Language


reverse params to onData()?

Hi,
as a new user for react-komposer, I ran into a snag.  I called onData(props) with no error.  The error message was something about passing in an Error object, which was very confusing.  It took me 45 minutes to realize I needed to pass in null for an error object.
It seems to me, passing an error is much less likely to be as common as passing in props.  Why not reverse the order of parameters, so onData(props) is the default, and onData(props, error) is the way to do that?

Actually, the convention for node.js callbacks is sending an error as the first argument and the data as the second, so this pattern is familiar to many of the developers using node.
Here's a nice blog post about it.

closing as already answered.


Default using statements

What are the default using statements in a csx file?
Console.WriteLine("Hello World"); in a csx file on it's own works, so I figured using System is one. I was wondering if there are any others?

https://github.com/filipw/dotnet-script/blob/f562a6c87c545701df16fce1aee7e125f711d09d/src/Dotnet.Script.Core/ScriptCompiler.cs#L42

https://github.com/filipw/dotnet-script/blob/f562a6c87c545701df16fce1aee7e125f711d09d/src/Dotnet.Script.Core/ScriptCompiler.cs#L42

Thanks very much


Remove hard coded domain from mail.py

Overview
When a user uploads a list to be processed, they are informed via email when processing is complete. There is a function in mail.py that builds the URL back to the processed list, and adds it to the body of the email.
Previously, the domains for staging and production were hard-coded based on environment. This PR replaces that by passing the public external domain from terraform through to mail.py via an environment variable.
Connects #89 in the client repo
Testing Instructions
Once this branch is deployed to staging:

Upload a list for processing
When the email notification is received, confirm that the domain matches the currently configured r53_public_hosted_zone for staging, currently https://oshstaging.openapparel.org

Checklist

[ ] Temporarily push this PR branch to jenkins for deployment to staging
[ ] Drop commit that deploys this PR branch to staging
[ ] fixup! commits have been squashed
[ ] CI passes after rebase
[ ] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines
[ ] This PR is targeted at the correct branch (develop vs. ogr/develop)
[ ] If this PR applies to both OAR and OGR a companion PR has been created

I uploaded a list and received the completion email. The link contained in the email body sent me to the correct page in the staging site. This appears to be working correctly


Add array_remove spark function

Spark is the same as the array_remove function of Presto.
Spark array_remove doc: https://spark.apache.org/docs/latest/api/sql/index.html#array_remove
#9214

@rui-mo please review this PR if you have time, thanks

@rui-mo Build error is fixed. Please review this PR if have time :)

@mbasmanova Would you help review this PR? Thanks.

@dcoliversun Would you rebase onto latest main?

@dcoliversun Would you rebase onto latest main?

@mbasmanova rebase is ok

@rui-mo Rui, given the discussion above, should I merge this PR?

@mbasmanova This PR is taking use of the existing implementation for presto sql, but it has different semantics on NaN with Spark. As discussed in https://github.com/facebookincubator/velox/pull/7237, NaN == NaN should return true. I'm wondering if the community plans to change the semantics of these array functions in the future. If so, we can merge this PR firstly.
E.g. https://github.com/facebookincubator/velox/pull/7086 is to fix similar issue on NaN, but should not be needed if Velox plans to change the semantics.

@rui-mo Rui, yes, we have an agreement to change NaN semantics, but it is not clear when this will actually happen.
CC: @rschlussel @spershin @kgpai @kagamiori

@mbasmanova Understood. Maybe, we can merge this PR firstly, and work on the change of NaN semantics in a separate PR based on Velox's future plan. Thanks.

Thanks for your review! @rui-mo @mbasmanova @Yuhta

@dcoliversun Thank you for the contribution.

@rui-mo Rui, yes, we have an agreement to change NaN semantics, but it is not clear when this will actually happen.
CC: @rschlussel @spershin @kgpai @kagamiori

I hope to finish most of the work for the Presto/Java part of this effort next week. and then I can start to tackle velox after that.


1.10.0+1.20.4

Architectury is not out for 1.20.3 yet, but considering how little had to change theres a good chance these two versions could be grouped together

Looking like a pretty easy conversion

I actually pushed a 1.20.3-4 branch just a few hours ago. Came to p much the same conclusion. I've deleted it since because this one is more complete.

main should always follow the newest version so merging to main is fine

I managed to get this weird case on the default max gui scale and my framework 13 resolution, and idk if this exists in main either

Looks like everyone will be skipping 1.20.3 anyway.

The only obvious thing is the scaling issue on your framework. (I can't reproduce it no matter what resolution I set for my PC)


UX: can't create multiple bounding boxes on top of each other

Describe the bug
when creating bounding box annotations for images, you can't start a bounding box inside another bounding box, it would just drag the first box, instead it should be like LabelImg where it would create a new bounding box IFF the rectangle tool is selected
To Reproduce
Steps to reproduce the behavior:

create a new project using the Optical character recognition template
add some images ( I used the text file to upload the images)
press the rectangle tool (R)
label a bounding box, and then labeling another bounding box inside it
you can't label another bbox inside as it will just drag the first bbox

Expected behavior
I should only be able to drag when the rectangle tool isn't selected, and when the rectangle tool is selected I should be making rectangles even if it's on top of another rectangle
workaround
currently the only workaround is to hide all annotations so that they don't get in the way, but we shouldn't need to do that every time just to have overlapping bboxes
Screenshots

Environment (please complete the following information):

OS: windows 10
Label Studio Version [e.g. 0.8.0]

Label Studio version: 1.5.0post0

{
    "release": "1.5.0post0",
    "label-studio-os-package": {
        "version": "1.5.0post0",
        "short_version": "1.5",
        "latest_version_from_pypi": "1.5.0.post0",
        "latest_version_upload_time": "2022-07-13T16:52:40",
        "current_version_is_outdated": false
    },
    "label-studio-os-backend": {
        "message": "ci: Sync .github directory from develop (#
2655)",
        "commit": "8c657fce5928886f9da025ef271c96ececa6bbf4",
        "date": "2022-07-13 16:05:08 +0400",
        "branch": "HEAD",
        "version": "1.5.0post0+0.g8c657fc.dirty"
    },
    "label-studio-frontend": {
        "message": "fix: DEV-2777: remove lookbehind in regex
for Safari (#730)",
        "commit": "4331b56b6a7fb0ffaea2c8b010cb0b8cec6ad7dc",
        "branch": "ls-release/1.5.0",
        "date": "2022-07-01T16:44:40Z"
    },
    "dm2": {
        "message": "fix: DEV-2526: Don't crash because of unde
fined LSF (#75)",
        "commit": "5104ecf3227380649a7139b73a636c11b7a07ea9",
        "branch": "ls-release/1.5.0",
        "date": "2022-07-05T19:38:39Z"
    },
    "label-studio-converter": {
        "version": "0.0.40"
    }
}

@FarisHijazi Try to press CTRL button and click to create bounding box.

this works and I'm happy now
but I don't think new users will find it intuitive, is this at least written somewhere in the docs?
I find label studio to be an amazing tool but the UX is not intuitive, it needs some simplification especially for non-tech-savvy users (after all, labelers are usually non-technical)

Absolutely agree. We are working on documentation constantly, but product is so huge, so it is not easy to cover all questions..

I think an easier thing to do than documenting everything is to have more intuitive shortcuts, look at labelImg for example, no one had to lookup anything, everything just worked as expected out of the box
Is it at all possible to change the default bindings or behaviour?
For the rectangle for example, i think that it should create a new rectangle without ctrl if you selected the rectangle tool, and to move rectangles, you use the mouse tool
Each tool should do something, because most of the time we're creating rectangles, not creating rectangles and then moving them
It's small decisions like these that will make it much easier
Another thing you could do if you wanna avoid changing defaults, is just have a page with all hotkeys, the existing one isn't complete
Instead of manually making the hotkey table, wouldn't it be easier to automatically generate it from the code
Like wrapping the bindkey function with another that takes an extra argument description and that way every time you bind a key, you pass the description, and it will aggregate all the hotkeys for you
This way it scales


supported view types

Are 2-D orthogonal views supported?  all I could see was view(image) which produced a 3-D volumetric image....

@dgutman Yes, there is a button to display all three orthogonal views (it is small). See the arrow below:

Or, to view just one plane, there are there buttons:

Hah thanks! Yeah I definitely missed that little icon...
On Thu, Apr 26, 2018 at 2:38 PM Matt McCormick<EMAIL_ADDRESS>wrote:

@dgutman https://github.com/dgutman Yes, there is a button to display
all three orthogonal views (it is small). See the arrow below:
[image: selection_057]
https://user-images.githubusercontent.com/25432/39325071-463817c8-495f-11e8-842d-fea9a0495821.png
Or, to view just one plane, there are there buttons:
[image: selection_059]
https://user-images.githubusercontent.com/25432/39325159-7b991de0-495f-11e8-8b51-1861afd47836.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/InsightSoftwareConsortium/itk-jupyter-widgets/issues/28#issuecomment-384747511,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AArhzqxpSMMYDfCOiKcZ32YTK7xsRBEsks5tshQmgaJpZM4TcdBX
.

--
David A Gutman MD PhD
Assistant Professor of Neurology, Psychiatry & Biomedical Informatics
Emory University School of Medicine
Staff Physician, Mental Health Service Line
Atlanta VA Medical Center


Release 5.18.0

Summary of the Pull Request
What is this about?
Release 5.18.0
PR Checklist

[ ] Applies to work item: #xxx
[ ] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

Codecov Report

Merging #2581 (e07f793) into main (4b305d0) will decrease coverage by 5.09%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2581      +/-   ##
==========================================
- Coverage   29.89%   24.79%   -5.10%
==========================================
  Files         289      120     -169
  Lines       35767    12486   -23281
==========================================
- Hits        10692     3096    -7596
+ Misses      25075     9390   -15685

Impacted Files
Coverage Δ

...zz-task/src/tasks/generic/input_poller/callback.rs

src/agent/storage-queue/src/local_queue.rs

...c/agent/dynamic-library/src/bin/dynamic-library.rs

src/agent/win-util/src/com.rs

src/agent/onefuzz-agent/src/reboot.rs

src/agent/onefuzz-task/src/tasks/report/generic.rs

src/agent/debugger/src/lib.rs

src/agent/dynamic-library/src/linux/tests.rs

src/agent/debugger/src/module.rs

src/agent/debugger/src/stack.rs

... and 159 more

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


Remove unnecessary export

[ ] I added new tests for the issue I fixed/built
[x] I ran npm test for the package I'm modifying
[x] I used npm run commit instead of git commit

wow are you sure it is unnecessary??

Short answer: no I am not. It made good theoretical sense to me (and the tests passed!), but I may be stretching some assumptions. I have to run to an appt and then I'll double back on this, if it is still open. I'll read this and the referenced articles in the meantime.

Thanks for the urge to contribute, it's really appreciated.
About the change itself, sorry, but it doesn't make any sense. We need import Cycle from '@cycle/xstream-run' and also import {run} from '@cycle/xstream-run'`.
If you want to contribute we desperately need help in many issues, check these marked "help wanted": https://github.com/cyclejs/cyclejs/labels/help wanted

Hi @staltz. Thank you for your response and all your work! I apologize for the erroneous PR. To your comment: I am aware both are necessary. My faulty assumption, articulated in the referenced articles, was that default exported objects could be destructured in the import (It was intended thatrun would not need to be exported because it would be destructured from the default export Cycle which has it as a property).
As a friendly recommendation, I would avoid telling others their work doesn't make any sense :)


improved dustlimit computation

📝 Description

Improved calculation for BTC and altcoins Dust limit

❓ Context

Impacted projects: LLC
Linked resource(s): -

✅ Checklist

[ ] Test coverage
[ ] Atomic delivery
[ ] No breaking changes

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

this PR can't be merged at the moment because do not check the requirements.
also, you may want to run the bot against this PR to confirm all works as expected?

Followed the documentation here to run the bot locally but it failed with error got Invariant Violation: COINAPPS is not set
@gre

Bot run: https://github.com/LedgerHQ/ledger-live/actions/runs/3411140678


[JBPM-5544] Added basic text wrapping

Added basic text wrapping support for Text objects. By default, text will not wrap, and will behave as before. To enable text wrapping, call setWrapBoundaries(BoundingBox box,Layout layout), where box is the bounding box for the object where the text resides, and layout is the the text layout within the BoundingBox. This patch was made for the 2.0.287-RELEASE (since that the one KIE Workbench (https://github.com/kiegroup/kie-wb-common) uses). Feedback appreciated.

Hey @Christopher-Chianelli
That sound good for me, not sure if @SprocketNYC  had some previous idea for this. Just requested a few  changes for the concrete LayoutContainer/Layout, which are intended to just reside in wires, so what you think about moving that concrete code from the Text class to some other class in wires?
Thanks!

I might be able to remove the Layout component entirely and just use getTextAlign, since the code for TOP, CENTER and BOTTOM layout appear to be the same. I'll investigate if that the case when I go back to work tomorrow.

sure thanks @Christopher-Chianelli !

After some investigations (and learning how to make a wires lienzo project), I managed to fix the line vertical placement and remove Layout from text @romartin.

Hey @Christopher-Chianelli , just did a try to your stuff but still not sure how to make it work. Please, I have added a new test class for your stuff here, can you give it a try and figure out what I'm missing? Not sure if this does not work at 100% yet or I'm missing to do some another call... but if you run that test, will see that the text is not being wrap yet, any ideas? Thanks!

@romartin do you have spaces in your text? It only does word wrap currently. I could add an enum so the user could choose wrap style (wrap by word, wrap by word but cut if a word span more than a line, wrap by character, no wrap).

@Christopher-Chianelli well tested both Strings - with spaces and with no spaces. Were you able to run the example link I provided? You can reproduce it there, with and without spaces.

I see what you mean @romartin; the text position isn't getting updated. However, for some reason my demo doesn't have this issue despite having near identical code https://github.com/Christopher-Chianelli/LienzoDemo

Nvm, found the fix: remove the child, and add it with the layout @romartin.

(When updating the wrap boundaries)

Hey @Christopher-Chianelli
Yeah tested your proposed solution and it works fine. It sounds good for me! Good job :)
On the other hand, I would say we should try to use another approach rather than adding/removing text instances on each resize event handler, because it sounds quite expensive... Would you mind trying to make this work in wires and without adding/removing the text instance? This way we'll have the complete picture for Stunner. So once merging this we have to be sure that text wrapping works just when using the primitive Text type (as you already has done), and works as well with all wires shapes and the wires resize stuff.
What I would suggest, as this feature is cool and will be hardly used, is to update the current Lienzo Kitchen Sink, for example just updating the "Wires Resize" example, by adding some text that gets wrapped while resizing, even when clicking on the top buttons  for changing the layout. This way will give visibility to that feature and we can always go to the KS page and check whatever we need :), and finally use same/similar code in Stunner as for the KS :) WDYT?
Thanks!!!

Hey @romartin!
I think the issue is the text shape is changing, and wires probably assume all children shapes don't change on resize. I'll see what I can do.

Thanks @Christopher-Chianelli , lemme know if  I can help :)

@romartin, I managed to make it work without removing/readding the child. Needed to modify WiresLayoutContainer to listen to changes to its children BoundingBox's attributes (call refresh() on change). Couldn't get Lienzo Kitchen Sink working; it compiles fine, but exposes no web pages for some reason (despite there being an index.html in war). I tested on your demo.

Hey @Christopher-Chianelli , thanks great job! Let's try to finish it with the example on the KS ,that would be great!
Here are my clues for using the KS:

Update the repositories configuration in build.gradle and add mavenCentral() - in order to use your local maven repository, which contains your updates.
2.- Run the command gradle war - it generates the war artifact in the path ./build/libs/lienzo-ks.war
3.- Finally just deploy that war in a tomcat7

Lemme know if that works!

@Christopher-Chianelli  just tested and the latest KS works for me

@romartin It worked! But correction, you add mavenLocal() to use local maven repositories. Unfortunately, I cannot get it to run inside my IDE.

@romartin  Added text wrap demo to WiresResizeViewComponent. https://github.com/Christopher-Chianelli/lienzo-ks/tree/text-wrap-demo. Need to add mavenLocal() for it to compile until changes are merged.

great job @Christopher-Chianelli , will give this a try in a bit and let you know!!
BTW I cannot get KS working from the IDE too. Anyway the idea is that KS is gong to be replaced soon, so do not worry too much for now...
Thanks! :)

@romartin @Christopher-Chianelli Looks good to me!

Is it necessary for Text wrap boundaries to be a BoundingBox ??? You only ever use width and set the width attribute, just setting width would be easier
comments????

yeah @SprocketNYC good point, probably not, not really sure, will let @Christopher-Chianelli answer to this :)

That way it'll be a real "property" and JSON serialized

it's kind of straddling a limbo zone between state and property

oh sure, good point!! absolutely agree @SprocketNYC . well you just merged this, up to you! I would vote for refactoring this using just a couple of double attributes too :) @Christopher-Chianelli WDYT?
Thanks

Good point @SprocketNYC! However, I can imagine adding a feature where height is used - auto-sizing text to fit box - but that is a feature not in this pull request. I used BoundingBox since the majority of lienzo shapes provides a getBoundingBox method, not a getWidth method. Perhaps we can make Text use doubles internally, but allow you to set them either with setWrapBoundaries(double) or setWrapBoundaries(BoundingBox). WDYT?


Object Not Found Matching Id:6, MethodName:update, ParamCount:4

Raygun report https://app.raygun.com/crashreporting/258s6a2/errors/226118532239 has more details about the error

Stack trace:
{
    "Error": {
        "Message": "Object Not Found Matching Id:6, MethodName:update, ParamCount:4",
        "StackTrace": [
            {
                "LineNumber": null,
                "ColumnNumber": null,
                "ClassName": "line null, column null",
                "FileName": null,
                "MethodName": "re"
            }
        ]
    }
}

This error report happens regularly and comes in batches of hundreds at a time. Best bet is that Outlook's SafeSearch is triggering this when it scans a CTS URL embedded in one of our notification emails.
See this blog post for more info: Object Not Found Matching Id:1, MethodName:update, ParamCount:4 - TrackJS

These can easily be filtered using Raygun's inbound filters.


navbar: Fix transparency issue.

See
https://chat.zulip.org/#narrow/stream/design/subject/style.20button/near/336132

Merged, thanks @tommyip!  @brockwhittaker FYI.


updated js sample

Motivation
Resolving https://kontent-ai.atlassian.net/browse/KST-227 based on changes here https://github.com/kontent-ai/management-sdk-js/pull/93
Context
Add the following information:
This PR is complete and ready for review, just a minor change to the putVariant.js example to reflect changes made to Management SDK.

@jancerman Requesting review, I was told to assign you as reviewer but I'm unable to assign anyone. Thank you.

@jancerman the updated package is live so you can merge this PR ;)

Thanks for the PR, @Nickm615! Helps a lot. Merging and closing.


Line sdk returns wrong token

Android line sdk returns token and if you validate it via https://api.line.me/oauth2/v2.1/verify, it returns {"message":"failed to parse"}
What is wrong? also if you check token here https://jwt.io/#debugger-io, it says:
Looks like your JWT payload is not a valid JSON object. JWT payloads must be top level JSON objects as per https://tools.ietf.org/html/rfc7519#section-7.2
example of returned token by sdk:
eyJhbGciOiJIUzI1NiJ9.eGkRSBen6bnfAUut4hMlgMktS7uzo_q4VL3i0YD0jEleS2oiSpZUSnplrcUSJQ3wSfvv6B1B9dpwXoXRfDprUpI4_RTR_KSLuDvrrfLTsfqNAIxrBw4bvsM3uoNlNl1ea8wVCHuKxgvgRMv1i-4vRdmPhjjQL5acfYkWnqmJT_E.mDbbYdWz0BWz_2NsgtU-cdJq4SQz_UJ4p4wlNoljKV0

Hi, @contrudar
Please follow the issue template for describing the issue. And if possible, attach a sample app that can reproduce your issues, so that we can investigate more on it. Thanks.

close due to no further information is provided.


Are there pre-existing libraries that could be used to make things easier?

E.g. is something like
https://wiki.ugfx.io/index.php/Font_rendering
https://ugfx.io/overview
worth testing?
Are there better or other options?
What's the main language of the project?
Is it C, micropython, something else? It seems like it might be C or C++, though most stuff seems to be html, which isn't really a programming language per se.
It may be good to collect information about libraries available in different programming languages for the project and then decide on one to use, preferably one with the fastest speed.
Is it possible to use something like koreader directly?
https://github.com/koreader/koreader
I think that would be ideal, assuming it has acceptable speed, though it seems to be written in LUA.
Doing a quick search, I found a few rust projects that may also be relevant:
General epub library (though it seems to use the standard lib)
https://github.com/danigm/epub-rs
Terminal epub reader:
https://github.com/aeosynth/bk
Are there C (or maybe Zig?) libraries  that could be used directly?

Found this project:
https://gitlab.com/guyjeangilles/piereader

https://github.com/Kobo-InkBox/inkbox

https://github.com/baskerville/plato

Even if the libraries cant be used directly, there are probably some functions that could be copied.

https://github.com/PetteriAimonen/ED060SC4_driver
Might reduce hardware requirements

This pico based eink screen comes with an eBook reader and pseudoOS
https://github.com/pimoroni/badger2040/blob/main/badger_os/examples/ebook.py

Commenting on this late, I know:
I think it's worthwhile to check for these options. If the reader can handle one of these libraries, then plaintext is just sorted immediately.
I am bookmarking this to see the potential with an esp32.

https://github.com/rhaleblian/dslibris/tree/main
Potentially interesting as NDS has <16MB of ram


Refactored IntrotoKubernetes Ch 10 Networking

This is a significant rewrite of Ch10 Networking

First, I added "DNS and Ingress" to the title, as this is the bulk of the challenge (even more so than networking)
Second, I removed all references to the 'http-routing-addon'.  Given that the official guidance regarding the http-routing-addon (direct quote) '...not currently designed for use in a production environment and is not recommended for production use', I don't think it should be part of any hack designed to teach customers how to operate their production environment.
Third, I refactored the flow of the hack to first cover DNS, then to cover the ingress controller.  I used a not-well-known feature to enable a custom DNS label to be assigned to a service and/or ingress.

You will see that the DNS integration techniques I use work well, but they are unfortunately poorly documented (at the time of this writing).  I added links in the 'Learning Resources' section which students can use to find out about this feature.

PR refactored to make it more 'challenge' oriented


GEOMESA-1208 Log Converter/SFT SPI loading

Signed-off-by: Andrew Hulbert<EMAIL_ADDRESS>

Looks good to me.

merging


Programming Exercises: The personal clone URL starts with undefined

Describe the bug
After the student started the exercise, cloning was not possible as the clone URL started with undefined: undefinedgit/IOS24INTROS6E1/ios24intros6e1-xx11xxx.git
Reloading the page did not help. Only after opening the exercise in another browser, the correct URL for cloning was displayed.
To Reproduce
Occurred for multiple students during the intro course, not sure how to exactly reproduce this.
Expected behavior
The client should show a valid clone URL for all students.
Screenshots
No response
Which version of Artemis are you seeing the problem on?
6.9.5
What browsers are you seeing the problem on?
Chrome
Additional context
No response
Relevant log output
No response

See #8162, seems like a browser cache issue.

It's still unclear how the issue can happen due to browser caches. I think we should still try to fix it


refactor(LinearAlgebra/Matrix/GeneralLinearGroup): Redefine Matrix.SpecialLinearGroup.toGLand remove duplicate toLinear

This PR redefines Matrix.SpecialLinearGroup.toGL, as the multiplicative map from the matrix group $$\mathrm{SL}_n(R)$$ to the matrix group $$\mathrm{GL}_n(R)$$, following a Zulip discussion. It also removes a duplicate of Matrix.GeneralLinearGroup.toLin.

LGTM! Maintainer delegate?

bors r+


Questions on install

How do you install this as a mod? After unzipping the file I can't seem to find any .jar file. Is there a guide on how to install this?

How did you figure this out on installing it if you did, and could you share how you did so?


🧑💻: Improve the turtle code

Following improvement can be done in the turtle code in the beginners projects

User specific angle for the turtle to turn
If color not specified using default color
Could you please assign me this issue I would like to work on it, do add the labels of gssoc-ext, hacktoberfest and hacktoberfest-accepted

I want to make these right Could you please assign this to me with the labels of gssoc-ext, hacktoberfest and hacktoberfest-accepted

@Chin-may02 please use dedicated templates to raise an issue. It will help maintainers to look and assigning. I am closing this issue. All the best.


[web app] Quant file upload error

There is an issue when running FBMN-STATS on the web app.
For example, I upload a quant file (.csv) and metadata (.tsv) and conduct several statistics without an issue.
Next, if I upload another set of files, there is no issue when uploading but the newly uploaded file is not used for conducting statistics such as random forest. Instead, the first set of files I uploaded remains on the random forest page.
I tried to shut down the window, delete the cookies, and restart the computer, but the problem remains.
I hope this issue can be solved for the web app users.
Thank you.

Hi. thanks for bringing this up. We will look into this. 👍

Hi. The issue with cache data has been resolved and now a clear cache button is made available :)


Add docs: GetxService, GetView and GetWidget

This is just a temporary roadmap about the documentation, which I checked now and there are some undocumented points that I think are essential for productivity with Getx.

GetxService (And the respective difference between Get.lazyPut's fenix mode, and Get.put's permanent mode).
GetView (StatelessWidget with easy controller acess);
GetWidget (StatelessWidget with easy controller acess and cache, perfect for use with Get.create());

Hi Jonny
can you please tell me how i can use GetxService with Auth as long you recommended to for doing so?
i had a lot of problems with Auth handling with GetxController and new firebaseauth package.


Layout.anchors now can added to its sublayouts[ViewLayout]

```swift
root {
    GroupLayout {    // GroupLayout is a layout so it will work with new features
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

vs
root {
    group {    // group is a view property, in this case how it work?
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

I think this syntax is easy to misunderstand.
And this feature is for GroupLayout.
However, there are changes in the Layout protocol to implement this feature.
I think this is not a very good implementation direction.

yeah good good 💯

```swift
root {
    GroupLayout {    // GroupLayout is a layout so it will work with new features
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

vs
root {
    group {    // group is a view property, in this case how it work?
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

I think this syntax is easy to misunderstand.
And this feature is for GroupLayout.
However, there are changes in the Layout protocol to implement this feature.
I think this is not a very good implementation direction.

sorry I can't understand why you misleading GroupLayout and group view property.

```swift
root {
    GroupLayout {    // GroupLayout is a layout so it will work with new features
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

vs
root {
    group {    // group is a view property, in this case how it work?
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

I think this syntax is easy to misunderstand.
And this feature is for GroupLayout.
However, there are changes in the Layout protocol to implement this feature.
I think this is not a very good implementation direction.

```swift
root {
    GroupLayout {    // GroupLayout is a layout so it will work with new features
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

vs
root {
    group {    // group is a view property, in this case how it work?
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

I think this syntax is easy to misunderstand.
And this feature is for GroupLayout.
However, there are changes in the Layout protocol to implement this feature.
I think this is not a very good implementation direction.

oh, I understand. you point is user can misunderstand diff of anchors in view and layout. am i right?
so, how about renaming like this for clearness?
root {
  red
  blue
}.anchorsForLayouts {
  Anchors.size()
}

@oozoofrog
root {
    GroupLayout {    // GroupLayout is a layout so it will work with new features
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

In this case, by new feature, Anchors.size() will apply to red and blue
root {
    group {    // group is a view property, in this case how it work?
        red
        blue
    }.anchors {
        Anchors.size()
    }
}.finalActive()

On the other hand, in this case Anchors.size() will be applied to the group.
The user may have expected Anchors.size() to be applied to red and blue like in the case above.
The difference between the two syntaxes is just whether it is a GroupLayout or a group.
And, not recommended, but what if you have a view property called GroupLayout?


Lock Screen Dismissal Doesn't Focus Workspace When Hidden

Cool plugin! The only issue I have with it is after putting in the password and dismissing the lock screen I have to click on the workspace in order to start using key commands. Perhaps the hideLockScreen() function could focus the workspace or something along those lines? Thanks!

Done! Released in v1.3.0.

Awesome, thanks! FYI, though, when I try to update/install I get the following error:
Failed to load resource: the server responded with a status of 404 () for https://github.com/ericbiewener/obsidian-lock-screen-plugin/releases/download/1.3.0/manifest.json

Sorry, try again now. Obsidian's plugin release process is still very manual, so there's plenty of opportunity for human error :)

Hell yeah, works perfectly now! Thanks a ton.


Added check for valid keep_best_iv amount

Short Description:
Some folks have accidentally released high IV pokemon due to invalid "keep best IV" amount in their config file
Fixes:

I imagine you meant to check & complain about "less than 1", not greater than 1.


unknown import: env::extism_input_length has not been defined

Attempt:
I git clone'd this repo and built the solution with no changes on my side, including the SampleCSharpPlugin. Then tried to run it.
Problem:
\bin\Debug\net8.0\wasi-wasm\AppBundle>wasmtime run SampleCSharpPlugin.wasm
Error: failed to run main module `SampleCSharpPlugin.wasm`

Caused by:
    0: failed to instantiate "SampleCSharpPlugin.wasm"
    1: unknown import: `env::extism_input_length` has not been defined

I also had to put <WASI_SDK_PATH>C:/wasi-sdk</WASI_SDK_PATH> into the project file after downloading the mingw wasi-sdk there to make it build at all, it wouldnt pick it up from the windows environment variables for some reason.

Oh I see, it's meant as a pure plugin mechanism so I have to execute the SampleHost.exe which then runs the SampleCSharpPlugin.wasm


[Integration] facebook ShareKit with react native

Given react native doesn't allow one to use UIViewController for custom UI component ... how would one call the sharekit dialog from a custom UI component (extending RTView)

[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:nil];

The method requires a view controller :)

Actually I managed to solve it by using the rootViewController as the value of the showFromViewController argument (accessed through the appdelegate shared instance). Pretty obvious when you think about it ...


Remove SortedSet implementations

It required RBTree to perform decently and the external dependency was not suitable for a standard library.  The pure ruby fallback implementation was originally meant to be a demonstration of how to write a subclass of Set, and its poor performance was not suitable for use in production.
I decided it should be distributed as an external library instead of bundling it with Set.

Just pushed sorted_set 1.0.0: https://rubygems.org/gems/sorted_set


Precisions about Integer/struct/mapping storage

@enitrat  tell me what you think about these modifications :)

btw, i might have one question about storage :
starknet documentation says there are 2^251 slots in storage. Nevertheless, sn_keccak returns 250 bits and can therefore generate 2^250 different values, which is 2x less than the actual total slots. why?

btw, i might have one question about storage :
starknet documentation says there are 2^251 slots in storage. Nevertheless, sn_keccak returns 250 bits and can therefore generate 2^250 different values, which is 2x less than the actual total slots. why?

good Q, idk

@enitrat  i think everything is fixed !

PR updated!


Consumable/food items

Add a consumables structure.

food added to materials, since they are used for upgrading


Weird capitlization: Point2d -> Point2D

Unsure how this is happening, but I have a type, Point2d, that is getting some generated code from prost-wkt referring to it as Point2D with the capital D. Point2D does not appear anywhere in my idl files or in my code. I'm unsure where this is coming from.
# [allow (dead_code)] const IMPL_MESSAGE_SERDE_FOR_POINT_2_D : () = { use :: prost_wkt :: typetag ; # [typetag :: serde (name = "type.googleapis.com/atp.pb.Point2d")] impl :: prost_wkt :: MessageSerde for Point2D { fn package_name (& self) -> & 'static str { "atp.pb" } fn message_name (& self) -> & 'static str { "Point2d" } fn type_url (& self) -> & 'static str { "type.googleapis.com/atp.pb.Point2d" } fn new_instance (& self , data : Vec < u8 >) -> Result < Box < dyn :: prost_wkt :: MessageSerde > , :: prost :: DecodeError > { let mut target = Self :: default () ; :: prost :: Message :: merge (& mut target , data . as_slice ()) ? ; let erased : Box < dyn :: prost_wkt :: MessageSerde > = Box :: new (target) ; Ok (erased) } fn encoded (& self) -> Vec < u8 > { let mut buf = Vec :: new () ; buf . reserve (:: prost :: Message :: encoded_len (self)) ; :: prost :: Message :: encode (self , & mut buf) . expect ("Failed to encode message") ; buf } fn try_encoded (& self) -> Result < Vec < u8 > , :: prost :: EncodeError > { let mut buf = Vec :: new () ; buf . reserve (:: prost :: Message :: encoded_len (self)) ; :: prost :: Message :: encode (self , & mut buf) ? ; Ok (buf) } } } ;

It appears to come from this line which is taking Point2d and converting it to Point2D.

This should now have been addressed by commit 4dc9f0e. This commit makes prost-wkt make use of the same package name capitalization as Prost.

Hmm... I've updated to the latest version (0.3.2) and I'm still hitting this snag. If it helps at all, I'm using tonic-build (which uses prost under the hood/same API)

Here's my build script:
use prost_wkt_build::*;
use std::{env, path::PathBuf};

fn main() {
    let out = PathBuf::from("./compiled");
    let descriptor_file = out.join("descriptors.bin");

    tonic_build::configure()
        .type_attribute(
            ".",
            "#[derive(serde::Serialize,serde::Deserialize)]"
        )
        .out_dir("./compiled")
        .extern_path(
            ".google.protobuf.Any",
            "::prost_wkt_types::Any"
        )
        .extern_path(
            ".google.protobuf.Timestamp",
            "::prost_wkt_types::Timestamp"
        )
        .extern_path(
            ".google.protobuf.Value",
            "::prost_wkt_types::Value"
        )
        .extern_path(
            ".google.protobuf.Duration",
            "::prost_wkt_types::Duration"
        )
        .file_descriptor_set_path(&descriptor_file)
        .compile(
            &[
                "../idl/grpc/aero.joby/atp/marketplace/marketplace.proto",
                "../idl/grpc/aero.joby/atp/core.proto",
            ],
            &["../idl/grpc/aero.joby"],
        )
        .unwrap();

    // TODO - https://github.com/fdeantoni/prost-wkt/issues/19
    let descriptor_bytes = std::fs::read(descriptor_file).unwrap();
    let descriptor = FileDescriptorSet::decode(&descriptor_bytes[..]).unwrap();
    prost_wkt_build::add_serde(out, descriptor);
}

The path doing the conversion I referenced above is still explicitly mentioning CamelCase.


[Suggestion] Execute Command Ritual Type

Is your feature request related to a problem? Please describe.
For my modpack, I was planning on adding custom rituals that do things other than just craft or summon entities, but the only way currently to really do that is to summon an invisible armor stand and run commands at it.
Describe the solution you'd like
It'd be much simpler if there were a ritual type that executes a command at the sacrificial bowl, which could then run a command/function/whatever. In addition, being able to specify the text in jei with a translatable string would make this a much more elegant solution as opposed to summoning an invisible armor stand.
Additional context
Mock syntax concept:
{
    "type": "occultism:ritual",
    "ritual_type": "occultism:execute_command",
    "activation_item": {...},
    "pentacle_id": "namespace:my_pentacle",
    "duration": 100,
    "command": "execute at @e[type=minecraft:player,distance=0..10] run tp ~ ~5 ~",
    "display_result": "ritual.namespace.teleport_command",
    "ritual_dummy": {...},
    "ingredients": [...],
    "result": {
        "item": "occultism:jei_dummy/none"
    }
}

Note: the intended way to display what a ritual does is via the creation of ritual dummy item (e.g. via kubejs).
this had the advantage that a) the jei display does not get too cluttered and does not need to worry about scaling long texts and b) the item can be used in creative mode to test the ritual without ingredients


feat(nuxt): Support nuxt layers in a better way

When using the pinia nuxt module with nuxt layers, there were some things that don't appear to work correctly.
I am trying to solve for a nuxt layer workflow, which adds the pinia module and registers some stores in the base layer. I want those stores to be available to my containing app, as well as stores that the containing app defines.
The issues I found with the current state of the module include:

The pinia module tries to resolve pinia/dist/pinia.mjs from the containing app. This is problematic, because the layer is the one bringing the pinia dependency in. It should be using the distributable that the layer depends on.
The stores directory in the layer gets lost when the containing app tries to register its own stores.
Extending the layer should bring in the stores from the layer, and allow adding stores from the containing app.

I believe this PR solves those three problems. We remove some use of a deprecated API as well.
To add tests to this, I think I'd need to create a new "playground-layer" directory and extend from that in a new nuxt spec pertaining to layer functionality. If you agree with these changes, we can discuss if you'd like that as part of this.
Note: This may break nuxt 2 compatibility. I can try to add back support if this is a decent enough approach to fixing layer support.

@posva is this still something you might consider?

Yes! I will check it in my next pass

Thank you! If you are trying to reproduce the error you can follow these steps. Its also reproducible using a layer but you can also do it using a module like so:
npx nuxi create my-module -t module
// tweak package.json to add overrides: { vue: “latest” } — super annoying!!
npm install pinia @pinia/nuxt
// edit src/module.ts and simply `installModule(‘@pinia/nuxt’)` within the setup function
npm pack

// now to reproduce the error you can create a new nuxt project
npx nuxi init my-app
cd my-app
npm install ../my-module/my-module-1.0.0.tgz
// add `my-module` to the `modules` array in your app's nuxt.config.ts file.
npx nuxi prepare

 — see error below:

$ npx nuxi prepare

 ERROR  [unhandledRejection] Cannot find module 'pinia/dist/pinia.mjs'                                                                                1:52:52 PM
Require stack:
- /Path/to/my/index.js

  Require stack:
  - index.js
  at Module._resolveFilename (node:internal/modules/cjs/loader:1248:15)
  at Function.resolve (node:internal/modules/helpers:145:19)
  at Function._resolve [as resolve] (node_modules/jiti/dist/jiti.js:1:241814)
  at resolveModule (node_modules/@nuxt/kit/dist/index.mjs:2234:29)
  at setup (node_modules/@pinia/nuxt/dist/module.mjs:23:5)
  at normalizedModule (node_modules/@nuxt/kit/dist/index.mjs:2136:37)
  at async installModule (node_modules/@nuxt/kit/dist/index.mjs:2478:95)

✔ Types generated in .nuxt

The line that was problematic for layers has been removed. Could you confirm there is no need for something now?


MSI: Use ENV['TD_AGENT_TOPDIR'] to specify install directory

On windows, /var/... may creates C:/var, so it should be
ENV['TD_AGENT_TOPDIR'] (typically c:/opt/td-agent) prepended.

After starting service, /var is created under C:/opt/td-agent/var.

On buster: no ENV['TD_AGENT_TOPDIR'].
% cat /etc/td-agent/td-agent.conf | head -n 30
####
## Output descriptions:
##

# Treasure Data (http://www.treasure-data.com/) provides cloud based data
# analytics platform, which easily stores and processes data from td-agent.
# FREE plan is also provided.
# @see http://docs.fluentd.org/articles/http-to-td
#
# This section matches events whose tag is td.DATABASE.TABLE
<match td.*.*>
  @type tdlog
  @id output_td
  apikey YOUR_API_KEY

  auto_create_table
  <buffer>
    @type file
    path /var/log/td-agent/buffer/td
  </buffer>

  <secondary>
    @type file
    path /var/log/td-agent/failed_records
  </secondary>
</match>

## match tag=debug.** and dump to console
<match debug.**>
  @type stdout


LoadError on chef/resource/scm in Chef 16

Cookbook version
1.0.2
Chef-client version
16.0.257
Platform Details
Ubuntu 16.04
Scenario:
Cannot converge a cookbook using the deploy_revision resource after upgrading to Chef 16. I am using Test Kitchen to test my cookbook locally after experiencing this problem in a production system.
================================================================================
Recipe Compile Error in /opt/kitchen/cache/cookbooks/deploy_resource/libraries/resource_deploy.rb
================================================================================

LoadError
---------
cannot load such file -- chef/resource/scm

Cookbook Trace:
---------------
  /opt/kitchen/cache/cookbooks/deploy_resource/libraries/resource_deploy.rb:39:in `<top (required)>'

Relevant File Content:
----------------------
/opt/kitchen/cache/cookbooks/deploy_resource/libraries/resource_deploy.rb:

 32:  #   restart_command "touch tmp/restart.txt"
 33:  #   git_ssh_wrapper "wrap-ssh4git.sh"
 34:  #   scm_provider Chef::Provider::Git # is the default, for svn: Chef::Provider::Subversion
 35:  #   svn_username "whoami"
 36:  #   svn_password "supersecret"
 37:  # end
 38:
 39>> require "chef/resource/scm"
 40:
 41:  class Chef
 42:    class Resource
 43:
 44:      # Deploy: Deploy apps from a source control repository.
 45:      #
 46:      # Callbacks:
 47:      # Callbacks can be a block or a string. If given a block, the code
 48:      # is evaluated as an embedded recipe, and run at the specified

System Info:
------------
chef_version=16.0.257
platform=ubuntu
platform_version=16.04
ruby=ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
program_name=/opt/chef/embedded/bin/chef-client
executable=/opt/chef/embedded/bin/chef-client

It appears that in Chef 16, lib/chef/resource/scm.rb was .... moved to lib/chef/resource/scm/_scm.rb?

Tl;dr, Don't use this cookbook with Chef 16+.

@jtimberman - sorry to piggyback on this ticket, but I am encountering this issue. Is there any documentation on what cookbook we should be using with Chef 16+? What should we use instead? Thanks!

I don't know. I don't work at Chef anymore.


Make test environment variables work as advertised

FOO=${FOO:-value} sets FOO to 'value' if it is null (empty) or unset,
whereas FOO=${FOO-value} (without the colon) sets FOO only when FOO is
unset.
FOO= hack/test-go.sh is equivalent to FOO="" hack/test-go.sh, so
prefer to mention the shorter form.
Let the go tool pick the default cover mode.
Since -coverprofile implies -cover, we don't need to test S2I_COVER when
OUTPUT_COVERAGE is given.

@bparees @jim-minter seems that 1a0ef1eb7e04e72618c2f9c8abbf644e956d29f4 introduced a regression in how one can use S2I_RACE and S2I_COVER to control how tests are run, so fixing it here. PTAL.

yes, looks good to me, thanks @rhcarvalho

FOO= hack/test-go.sh is equivalent to FOO="" hack/test-go.sh, so
prefer to mention the shorter form.

it may be equivalent but i don't think it's as obvious, particularly to people who may know less about bash.. is the two character savings worth the cost in readability?

it may be equivalent but i don't think it's as obvious, particularly to people who may know less about bash.. is the two character savings worth the cost in readability?

If you find FOO="" better I'm okay with that, this is just a copy-pasteable example, it doesn't have to be the shortest thing, as long as it works.
Having to write S2I_RACE=' ' hack/test-integration.sh was the problem for me (regression).
When the value is non-empty, I guess most people write FOO=bar some-command in the shell, without the quotes?

When the value is non-empty, I guess most people write FOO=bar some-command in the shell, without the quotes?

that's certainly what i do.

If you find FOO="" better I'm okay with that, this is just a copy-pasteable example, it doesn't have to be the shortest thing, as long as it works.

that's my preference, yeah.  "FOO= " looks like a typo to me.  (maybe just to me though).

@bparees updated

thanks @rhcarvalho
[merge]


send_boards function in ldeploy boards not finding existing dashboards in one client instance, but works on other instances

Typing the following in CLT:
(looker_deployment) brigitte % ldeploy boards --source dev --target clientname --allow-partial --board INPATIENT
Gets:
{"levelname": "WARNING", "module": "deploy_boards", "funcName": "send_boards", "message": "Missing content warning.", "missing_dashboards": [{"dash_id": 279, "dash_title": "Achieving Healthcare Potential for All"}, {"dash_id": 220, "dash_title": "Impact Analysis for QBRs"},
^ Yet both of these dashboards exist, and this works on other clients. I've tried removing and redploying the dashboards that aren't working, but got no luck.
Any ideas what could be happening here, @JCPistell ? It seems like the slug for a specific dashboard is not getting picked up at one client only.
Thx in advance for your help!
Brigitte

I am experiencing this as well when running the following:
17:50:45 docker-compose run --rm ldeploy boards --source nonprod --target prod --board 'My Board' --debug
...
17:50:52  {"levelname": "ERROR", "module": "deploy_boards", "funcName": "send_boards", "message": "Missing Content. Make sure it's deployed or rerun with allow-partial flag.", "missing_dashboards": [{"dash_id": 123, "dash_title": "My Dash"}], "missing_looks": [], "timestamp": "2021-11-17T01:50:52.651502Z"}
17:50:52  Traceback (most recent call last):
17:50:52    File "/usr/local/bin/ldeploy", line 8, in <module>
17:50:52      sys.exit(main())
17:50:52    File "/usr/local/lib/python3.7/site-packages/looker_deployer/cli.py", line 25, in main
17:50:52      args.func(args)
17:50:52    File "/usr/local/lib/python3.7/site-packages/looker_deployer/commands/deploy_boards.py", line 251, in main
17:50:52      send_boards(args.board, source_sdk, target_sdk, args.title_change, args.allow_partial)
17:50:52    File "/usr/local/lib/python3.7/site-packages/looker_deployer/commands/deploy_boards.py", line 216, in send_boards
17:50:52      raise TargetContentNotFound(missing_dashes, missing_looks)
17:50:52  looker_deployer.commands.deploy_boards.TargetContentNotFound: Content not found in target instance. -> dashes: [{'dash_id': 123, 'dash_title': 'My Dash'}], looks: []

I've verified that the dash exists, so not sure why ldeploy isn't finding it:
gzr space ls "This Space" --host mydomain.looker.com
+---------+---+---------------+--------+--------------------------------------------+-------------+-------------------------+
|parent_id| id|name           |looks.id|looks.title                                 |dashboards.id|dashboards.title         |
+---------+---+---------------+--------+--------------------------------------------+-------------+-------------------------+
|      100|101|This Space     |        |                                            |             |                         |
|         |   |               |        |                                            |          123|My Dash                  |
+---------+---+---------------+--------+--------------------------------------------+-------------+-------------------------+


Keybindings.json is opened in broken editor

Version: 1.40.2
Commit: f359dd69833dd8800b54d458f6d37ab7c78df520
Date: 2019-11-25T14:54:40.719Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Linux x64 4.15.0-70-generic
When I open the keybindings, it gives me an option to open the keybindings.json file.
When this file is opened in the editor, the editor is opened in read only mode, even for the user keybindings.json.
When I try to edit the default keybindings.json, it shows a tooltip saying the file is in read-only mode. When I try to edit the user keybindings.json, it also acts as in read-only mode, but it gives no tool-tip.
In addition, in the user keybindings.json, even moving the caret does not move. Where as in the default keybindings.json, I can at least move the caret.
In the bottom right of the editor it permanently says "defining keybinding (ctrl+k, ctrl +k).
I assume the user keybindings.json is intended to be editable. I have checked that there are no odd permissions on the user keybindings.json

/confirmationPending I wasn't able to reproduce this (I only tested on Windows though).
@safield does it still happen for you if you run with all extensions disabled, e.g. by adding the --disable-extensions argument?

/needsMoreInfo


No update in sources to work with 3 and 4 drivers

There are no updates in sources to work with new drivers.

While real RTs and the turpitude, could combine to thier tools easily, whether existing src or not, myzxcg already try hard to consider both technology sharing and prevention of abuse.


Obstacles

“Traditional collision response” between predicted position and nearest point on obstacle
C(xi, xj) = ||xi - xj|| - (ri + rj) >= 0
Where x_i is predicted position and x_j is nearest obstacle pt (remove r_j)
Collision point has infinite mass

TODO:

Improve obstacle behavior
Add lambertian shading for obstacles
Maybe add cylinder obstacles?


Demobranch

Fix connection string

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: gsuttie sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@jasonhand @dnblankedelman can you validate if any changes are required?


Does not support Negative Lookahead when using REGEX pattern validation

Negative lookahead does not appear to be supported in the "pattern" key.
(?!...)

Looks like this is an issue with the golang regexp package and not necessarily an issue with this library.


getFromHref returns 'Unknown NSError The data from Spotify could not be decoded into the expected format.' for some albums

Some album responses cannot be decoded as 'Album' when using the getFromHref method. Response type is set to Album.self.
Not working: https://api.spotify.com/v1/albums/2zffBP6FVUDZ3dsKodfQi6
Working: https://api.spotify.com/v1/albums/6o2MlLAGbWE61paiQzGZYH
Looks like that the non-working one doesn't have anything returned in the  available_markets array.

Attached the debug output.
Album 2024-06-04 1-28-50.2480 PM.zip

The JSON data could not be decoded into Album because the values for Album.tracks.items[n].linked_from.id are null:
"linked_from": {
  "external_urls": {
    "spotify": "https://open.spotify.com/track/6QmTnPIet8kjuJI15bNPOA"
  },
  "href": "https://api.spotify.com/v1/tracks/6QmTnPIet8kjuJI15bNPOA",
  // why is the id null if the uri is not???
  "id": null,
  "type": "track",
  "uri": "spotify:track:6QmTnPIet8kjuJI15bNPOA"
}

This JSON object is decoded into TrackLink, and the decoding fails because TrackLink.id cannot be nil.

Is it something that you plan to fix in an upcoming commit or is there a workaround on my end I can apply?

Just pushed 3.0.3 with a fix.

Issue is resolved. Thanks very much!


vlb loss

Thanks for your excellent work! After reading the code, I can't find how to implement vlb loss in Eq 7. Could you please give me a hint? Thanks a lot!

The author implemented their vlb loss in here. This part seems adopted from 2102.05379

@r8li Thanks for your kind remind! Have a nice day!

Hey @ZhouCX117 @ZeWang95
I have a dataset comprising text prompts paired with corresponding images, and I would like to use your implementation to train a model. However, I am a bit uncertain about how to begin the training process. Could you kindly guide me on the recommended workflow?
Specifically: Should I first run the binary autoencoder script, followed by the Bernoulli diffusion code?Are there any additional steps or best practices that I should follow to ensure effective training?
Your insights and guidance would be helpful in my work.


select and sort lead to malformmatted data?

Hi there,
I tried to select reads by cmph5tools.py, but got an error for stats after sorting the selected reads. Here are the commands and error message. Could anyone help? Thanks!
cmph5tools.py select --outFile selected000000F_left.cmp.h5 --where "Reference == '000000F:1-190000'" --outDir . 000000F_combo.sorted.cmp.h5
cmph5tools.py sort --tmpDir /tmp --outFile selected000000F_left.sorted.cmp.h5 selected000000F_left.cmp.h5
cmph5tools.py stats --what "Reference" selected000000F_left.sorted.cmp.h5

error
Traceback (most recent call last):
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/analysis/bin/cmph5tools.py", line 240, in <module>
    sys.exit(CmpH5ToolsRunner().start())
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/redist/python2.7/lib/python2.7/site-packages/pbcore/util/ToolRunner.py", line 105, in start
    return self.run()
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/analysis/bin/cmph5tools.py", line 204, in run
    outFile =  self.args.outCsv)
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/redist/python2.7/lib/python2.7/site-packages/pbh5tools/CmpH5Stats.py", line 65, in cmpH5Stats
    reader     = CmpH5Reader(cmpH5Filename)
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/redist/python2.7/lib/python2.7/site-packages/pbcore/io/CmpH5IO.py", line 859, in __init__
    self._readLocatorById[refId] = makeReadLocator(self, refId)
  File "/share/apps/smrtanalysis/install/smrtanalysis_<IP_ADDRESS>936/redist/python2.7/lib/python2.7/site-packages/pbcore/io/rangeQueries.py", line 132, in makeReadLocator
    offStart, offEnd = offsets[offsets[:,0] == refSeq, 1:3].ravel()
ValueError: need more than 0 values to unpack

I checked the file after selection step. It seems RefGroup is not changed after selection, i.e. there were two ref IDs even if I explicitly selected reads aligned to first one.


Token validation fails when security is enabled.

I configured abacus security by setting the following properties and tried to submit usage passing oauth token (with abacus.usage.write authority)
export TOKEN_SECRET=
export TOKEN_ALGORITHM=
export TOKEN_ENDPOINT=
 export CLIENT_ID=
export CLIENT_SECRET=
export SECURED=true

The logs show the following
  abacus-oauth 60955 Validating OAuth bearer access token +0ms
  abacus-oauth 60955 Token validation failed { message: 'invalid signature',
  name: 'JsonWebTokenError',
  constructor: [Function] } - JsonWebTokenError: invalid signature
    at Object.JWT.verify (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/node_modules/jsonwebtoken/index.js:195:17)
    at validate (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/lib/index.js:100:23)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/lib/index.js:122:7
    at Layer.handle [as handle_request] (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:312:13)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:271:10)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-vcapenv/lib/index.js:62:5
    at Layer.handle [as handle_request] (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:312:13)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:271:10)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/lib/index.js:284:5
    at Layer.handle [as handle_request] (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:312:13)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:271:10)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/lib/index.js:61:5
    at Layer.handle [as handle_request] (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:312:13)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:330:12)
    at next (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:271:10)
    at responseTime (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/response-time/index.js:59:5)
    at Layer.handle [as handle_request] (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:312:13)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-express/node_modules/express/lib/router/index.js:280:7 +0ms
  abacus-oauth 60955 OAuth bearer access token validation failed, invalid signature +1ms

However when I plug in the same token into modified test of the cfoauth module (with the same properties passed - secret and algorithm), the token is validated and the decoded form is returned.
describe.only('Valiate token', () => {

  it('Valid token', (done) => {

    const token = '...';
    // Test the validation
    oauth.validate(token, '...', '...',
      (err, val) => {
        console.log(err);
        console.log(JSON.stringify(val, null, '\t'));
        expect(err).to.equal(null);
        done();
      });
  });
});

Environment variables needed to configure a secured Abacus are [Refer to manifest file at 1 as an example]:

SECURED -        'true' / 'false' -    Use 'true' to enable the security checks
AUTHSERVER -  Authorization Server URL  used to get access token endpoint in the format of "https://hostname:port" or just "https://hostname".
CLIENTID -  Client identifier registered with the specified authorization server.
CLIENTSECRET - Client secret used to authenticate the client identifier with the authorization server.
JWTKEY - Key used to sign the JWT- JWS
JWTALGO - Cryptographic algorithm used to sign and secure JWT-JWS

[1] https://github.com/cloudfoundry-incubator/cf-abacus/blob/master/lib/metering/collector/manifest.yml#L12-L17

With the variables above, I got the following error
  abacus-oauth 62042 Error getting OAuth bearer access token, { message: 'Invalid URI "undefined/oauth/token?grant_type=client_credentials&scope=abacus.usage.write%20abacus.usage.read"' } - Error: Invalid URI "undefined/oauth/token?grant_type=client_credentials&scope=abacus.usage.write%20abacus.usage.read"
    at Request.init (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/request.js:280:31)
    at new Request (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/request.js:140:8)
    at request (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/index.js:55:10)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/index.js:101:12
    at send (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/lib/index.js:148:5)
    at xrequest (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/lib/index.js:177:10)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/lib/index.js:186:12
    at RetryOperation._fn (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-retry/lib/index.js:68:11)
    at RetryOperation.attempt (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-retry/node_modules/retry/lib/retry_operation.js:56:8)
    at wrapper (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-retry/lib/index.js:64:8)
    at newToken (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/lib/index.js:51:3)
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/lib/index.js:238:9
    at /Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-cfoauth/lib/index.js:42:5
    at Object.callback (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-retry/lib/index.js:84:9)
    at Request._callback (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/lib/index.js:165:16)
    at Request.self.callback (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/request.js:198:22)
    at Request.emit (events.js:110:17)
    at Request.<anonymous> (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/request.js:1082:10)
    at Request.emit (events.js:129:20)
    at IncomingMessage.<anonymous> (/Users/piotrp/dev/oct/cf-abacus/node_modules/abacus-request/node_modules/request/request.js:1009:12)
    at IncomingMessage.emit (events.js:129:20)
    at _stream_readable.js:908:16
    at process._tickDomainCallback (node.js:381:11) +0ms

{ message: 'Invalid URI "undefined/oauth/token?grant_type=client_credentials&scope=abacus.usage.write%20abacus.usage.read"' }

Possible reason could be that AUTHSERVER is not defined.

It seems to be set correctly when this error happens. Could you please point me to the code where its used - grep only shows it in manifest files.

Some references say: authserver in lowercase but the abacus-urienv module will resolve them using the AUTHSERVER env variable is set.
find . -name "*.js" | grep -v "node_modules" | grep "src" | xargs grep -il "AUTHSERVER"
./lib/aggregation/accumulator/src/index.js
./lib/aggregation/aggregator/src/index.js
./lib/aggregation/rate/src/index.js
./lib/aggregation/reporting/src/index.js
./lib/metering/collector/src/index.js
./lib/metering/meter/src/index.js
./lib/stubs/authserver/src/index.js
./lib/stubs/authserver/src/test/test.js
./lib/utils/cfoauth/src/index.js

I believe I know what the problem was - the value set in the property AUTHSERVER should be the host name which will be able to respond to  GET /v2/info and return, among other values, 'token_endpoint'. If the host set in the AUTHSERVER property is the actual token endpoint, GET /v2/info returns 302 and token endpoint remains undefined. Once I set the property to point to api host, it is working.
I think the unit test was passing since cfoauth can use a different env property API_HOST_NAME which was set to the right value (api host).
Unless there is a component which assumes AUTHSERVER is actual token_endpoint, I don't think there is a problem with the code, perhaps the name is a little misleading.

Tried with AUTHSERVER=https://uaa.ng.bluemix.net and got HTTP response code 200 - with a different response body. Did you get 302 or 200? could you check it out and confirm?
  abacus-oauth 63158 Getting OAuth bearer access token +2m
  abacus-oauth 63158 Retrieving token endpoint information from authorization server, 'https://uaa.ng.bluemix.net' +0ms

200  - { timestamp: '2015-06-12T17:38:10-0400',
  app: { version: '2.3.0' },
  idpDefinitions: [],
  fieldUsernameShow: true,
  zone_name: 'uaa',
  commit_id: 'git-metadata-not-found',
  prompts:
   { username: [ 'text', 'Email' ],
     password: [ 'password', 'Password' ],
     passcode:
      [ 'password',
        'One Time Code (Get one at https://uaa.ng.bluemix.net/passcode)' ] },
  forgotPasswordLink: 'https://console.run.pivotal.io/password_resets/new',
  createAccountLink: 'https://console.run.pivotal.io/register',
  links:
   { register: 'https://console.run.pivotal.io/register',
     passwd: 'https://console.run.pivotal.io/password_resets/new',
     login: 'https://login.ng.bluemix.net',
     uaa: 'https://uaa.ng.bluemix.net' },
  entityID: 'login.ng.bluemix.net' } { 'x-backside-transport': 'OK OK',
  connection: 'Keep-Alive',
  'transfer-encoding': 'chunked',
  'access-control-allow-origin': '*',
  'cache-control': 'no-cache, no-store, max-age=0, must-revalidate,no-cache, no-store, max-age=0',
  'content-language': 'en-US',
  'content-type': 'application/json;charset=UTF-8',
  date: 'Thu, 22 Oct 2015 03:39:07 GMT',
  expires: '0,Thu, 01 Jan 1970 00:00:00 GMT',
  pragma: 'no-cache,no-cache',
  server: 'Apache-Coyote/1.1',
  'x-cf-requestid': '140c0aa2-13a8-4e56-5b03-8d05e6cd21c0',
  'x-content-type-options': 'nosniff',
  'x-frame-options': 'DENY',
  'x-xss-protection': '1; mode=block',
  'x-client-ip': '<IP_ADDRESS>',
  'x-global-transaction-id': '368704557' }
  abacus-oauth 63158 Retrieved undefined +287ms
  abacus-oauth 63158 Retrieving token from access token endpoint, undefined +0ms
  e-abacus-request 63158 Request error { message: 'Invalid URI "undefined/oauth/token?grant_type=client_credentials&scope=abacus.usage.write%20abacus.usage.read"' } - Error: Invalid URI "undefined/oauth/token?grant_type=client_credentials&scope=abacus.usage.write%20abacus.usage.read"

@piotrprzybylski, @sasrin, is that issue resolved?

I've fixed the variable names: CLIENT_SECRET, CLIENT_ID and AUTH_SERVER (all with underscores, like @piotrprzybylski originally had in the cfoauth module). See issue #119 for more details.

@sasrin is also going to add a check to return a clearer error if the auth server is not returning a token endpoint.

So to clarify - the value set in the AUTH_SERVER variable must point to the host which will return token_endpoint from the GET /v2/info

Correct


Documentation on "sharename" component for shared subscriptions

On the shared subscription doc page, it is said that a shared subscription is on topics in the form of $share/sharename/topic and the corresponding publishing topic is topic.

What is the use of the sharename part in the subscription topic?
Are subscriptions on $share/onename/topic and $share/othername/topic effectively the same?

Thank you!

Hi, thanks for the question - we'll see if we can improve the text there.
For your questions. The share name is the identifier of the share. So for two subscribers to share a subscription the sharename and the topic has to be the same. Having different sharenames makes it possible to have multiple distinct groups sharing a subscription. So for your second question the answer is: no.
Hope this helps

Thank you for the response. It really helps and made me realize this is actually part of MQTT 5.0 standard.


UPM packaging, part 2

This change is part 2 (of 3) that enables MRTK packaging and distribution via the Unity Package Manager. The changes included are:

createupmpackages.ps1 - main script that creates / publishes the MRTK packages
examplesfolderpreupm.ps1 - script that performs setup tasks to prepare the examples folder for packaging
examplesfolderpostupm.ps1 - script that performs cleanup tasks in the examples folder after packaging
.npmrc-test - .npmrc file used for publishing to the test server
.npmrc-official - .npmrc file used for publishing to the official distribution server (note: this file is not fully configured in this PR)
add package.json* files for examples and oculus provider
changes to the package.json files to enable setting the version as appropriate during CI
moved the Examples\Inspectors folder to Examples\Editor\Inspectors for better categorization

The following image illustrates the Examples package in the UPM UI

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run