Option for generate span tag instead of script tag

I'd like to use not script tag but span (or any other tag) in generating react_on_rails helpers.
Because AMP rules don't allow any script tag except for tag has special attributes of amp.
I saw the PR https://github.com/shakacode/react_on_rails/pull/660 , but I want to option in react_on_rails to change tag name to other.
Below code is my image of codes.
  # prepend the rails_context if not yet applied
  def prepend_render_rails_context(render_value)
    return render_value if @rendered_rails_context

    data = rails_context(server_side: false)

    @rendered_rails_context = true

    replace_tag = ReactOnRails.configuration.instread_of_script_tag
    rails_context_content = if replace_tag
                                   content_tag(replace_tag,
                                   json_safe_and_pretty(data).html_safe,
                                   hidden: true,
                                   id: "js-react-on-rails-context")
                                 else
                                   content_tag(:script,
                                   json_safe_and_pretty(data).html_safe,
                                   type: "application/json",
                                   id: "js-react-on-rails-context")

    "#{rails_context_content}\n#{render_value}".html_safe
  end

internal_react_component and render_redux_store_data methods have similar situations.

@bakunyo are you 100% sure there's no other way around this issue? We put a lot of work into making the script tag work for better parsing performance.

@justin808 Thanks for your comment.
<script type="application/ld+json"> tags are allowed from AMP. but it's not suitable to this content.
I'm not 100% sure, but I don't know any other way to render json for react_on_rails in AMP site.

@bakunyo we should figure this out. Any more ideas?
Here's a good article about AMP: https://stratechery.com/2018/the-aggregator-paradox/
CC: @alexfedoseev @robwise

Links on JSON/LD. Seems like a superset of JSON:

https://en.wikipedia.org/wiki/JSON-LD
http://www.seoskeptic.com/what-is-json-ld/

@justin808 Yes, I want to use option of old data format.
I agree with you about tag, we can use a hidden div.

@bakunyo can you help us with a PR?

All the old code is there...just needs good tests to be sure this works and we don't break it.

Airbnb does something like this:
<meta content="{"env":"production","client_id":"5ca541ad-47b9-4b16-8045-2f4c6e830450","client_key":"production_r29fkzj4_pfpfmbt48yh4ht8c"}" id="_bootstrap-amex_checkout">

Any more requests for AMP? I'll leave this one open for now.


Map Not showing on iOS Simulator

Trying to get the mapbox to show on iOS, tried looking in my package.JSON folder:
"tns-ios": {
"version": "4.1.1"
}
"nativescript-mapbox": "^4.1.1",
XML:

<StackLayout>
    <map:MapboxView
        latitude="52.3702160"
        longitude="4.8951680"
        zoomLevel="3"
        mapStyle="light"
        hideAttribution="true"
        showUserLocation="true"
        hideCompass="false"
        accessToken="sk.eyJ1IjoiZWRkeXZlcmJydWdnZW4iLCJhIjoia1JpRW82NCJ9.OgnvpsKzB3GJhzyofQNUBw">
    </map:MapboxView>

</StackLayout>

I'm declaring the mapbox in my XML using MapboxView, no error messages, just simply won't show. I get the prompt that asks for permissions for my app to use user location, but no response after that.

This raises a few questions:

Does the demo app in this repo work?
Does it work on a real device?

Regarding the Demo app working:
No it does not, I may be doing something wrong here but here's what I do to try to get the demo app up and running:
git clone this repo
cd into demo/
tns run ios --emulator
The app is successfully built, then the following error message appears
Project successfully built.
Installing...
Successfully installed on device with identifier '66335FDD-3BC5-4AC7-92C6-ABCD524FAA11'.
Successfully transferred all files.
Refreshing application...
Successfully synced application org.nativescript.mapbox on device 66335FDD-3BC5-4AC7-92C6-ABCD524FAA11.
[10:46:17 a.m.] File change detected. Starting incremental compilation...
[10:46:20 a.m.] File change detected. Starting incremental compilation...
[10:46:20 a.m.] File change detected. Starting incremental compilation...
[10:46:21 a.m.] File change detected. Starting incremental compilation...
***** Fatal JavaScript exception - application has been terminated. *****
Native stack trace:
1   0x1059ec649 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
2   0x105a14c5b NativeScript::FFICallbackNativeScript::ObjCMethodCallback::ffiClosureCallback(ffi_cif*, void*, void**, void*)
3   0x10630a5c1 ffi_closure_unix64_inner
4   0x10630af22 ffi_closure_unix64
5   0x10ad6ea65 _CFXRegistrationPost
6   0x10ad6e7a1 ___CFXNotificationPost_block_invoke
7   0x10ad30422 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
8   0x10ad2f5a1 _CFXNotificationPost
9   0x1069efe57 -[NSNotificationCenter postNotificationName:object:userInfo:]
10  0x10702c469 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:]
11  0x1070315cb -[UIApplication _runWithMainScene:transitionContext:completion:]
12  0x1073f3f7e __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke
13  0x1077c6a39 +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:]
14  0x1073f3bba -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]
15  0x1073f43db -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:]
16  0x107d65614 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke
17  0x107d654ae -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]
18  0x107a4975d __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke
19  0x107c444b7 _performActionsWithDelayForTransitionContext
20  0x107a49627 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]
21  0x1077c60e0 -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:]
22  0x10702feac -[UIApplication workspace:didCreateScene:withTransitionContext:completion:]
23  0x107602bcb -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:]
24  0x1118da2f3 -[FBSSceneImpl _didCreateWithTransitionContext:completion:]
25  0x1118e2cfa __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2
26  0x10cefa709 _dispatch_client_callout
27  0x10ceff8c1 _dispatch_block_invoke_direct
28  0x11190e470 FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK
29  0x11190e12e -[FBSSerialQueue _performNext]
30  0x11190e68e -[FBSSerialQueue _performNextFromRunLoopSource]
31  0x10ad75bb1 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION
JavaScript stack trace:
1   require@file:///app/main-view-model.js:7:36
2   anonymous@file:///app/main-view-model.js:7:36
3   evaluate@[native code]
4   moduleEvaluation@[native code]
5   @[native code]
6   promiseReactionJob@[native code]
7   require@[native code]
8   anonymous@file:///app/main-page.js:4:32
9   evaluate@[native code]
10  moduleEvaluation@[native code]
11  @[native code]
12  promiseReactionJob@[native code]
13  require@[native code]
14  _loop_1@file:///app/tns_modules/tns-core-modules/globals/globals.js:60:30
15  loadModule@file:///app/tns_modules/tns-core-modules/globals/globals.js:68:30
16  @file:///app/tns_modules/tns-core-modules/ui/builder/builder.js:65:37
17  @file:///app/tns_modules/tns-core-modules/ui/builder/builder.js:81:39
18  navigate@file:///app/tns_modules/tns-core-modules/ui/frame/frame-common.js:118:49
19  createRootView@file:///app/tns_modules/tns-core-modules/application/application.js:238:31
20  setWindowContent@file:///app/tns_modules/tns-core-modules/application/application.js:202:38
21  didFinishLaunchingWithOptions@file:///app/tns_modules/tns-core-modules/application/application.js:139:30
22  @[native code]
23  onReceive@file:///app/tns_modules/tns-core-modules/application/application.js:30:32
24  UIApplicationMain@[native code]
25  start@file:///app/tns_modules/tns-core-modules/application/application.js:264:26
26  anonymous@file:///app/app.js:4:18
27  evaluate@[native code]
28  moduleEvaluation@[native code]
29  @[native code]
30  promiseReactionJob@[native code]
JavaScript error:
file:///app/main-view-model.js:7:36: JS ERROR Error: Could not find module 'nativescript-mapbox'. Computed path '/Users/BMwanza/Library/Developer/CoreSimulator/Devices/66335FDD-3BC5-4AC7-92C6-ABCD524FAA11/data/Containers/Bundle/Application/BD89C6B9-248F-4E7E-B7E7-BD87E71AAA00/demo.app/app/tns_modules/nativescript-mapbox'.

Before you try running the demo again, check if it helps to set a height and width on the mapview.
##running the demo app
Throw away what you have, then:
git clone https://github.com/EddyVerbruggen/nativescript-mapbox
cd nativescript-mapbox
cd src
npm run demo.ios

Let it run for a while and this will be the result:

Did you try setting the height/width as I suggested? Also see the way the demo does it.

Yes adding a ContentView with width and height setting worked thanks I will close this now


minor update for remote cloud persistence of smi

Signed-off-by: kumarabd<EMAIL_ADDRESS>Description
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@leecalcote @mgfeller Im merging this because this literally has nothing but mesh kit version update


Feature Request: udp server with netty: create a channel for each remote address

see
http://stackoverflow.com/questions/10658215/feature-request-udp-server-with-netty-create-a-channel-for-each-remote-address

Hi,
Any news regarding this feature?
Thanks!

Didn't have time to finish it.

@igreenfield do you have any work completed that one of us can pick up and finish?

I wrote something almost like that. Not sure that i got how netty works internally right, but this code works, so you can use it to code something better.
https://github.com/Shevchik/UdpServerSocketChannel

I have a system written as well but its tied to a TCP server. Its to case specific to be ready here. Basically the TCP Client connects and on success starts a UDP server. The TCP Server starts a UDP Server when the TCP Server starts. When the server receives a client connection it sets up a Nio or Epoll DatagramChannel and attaches it to the same event loop of the servers TCP Connection. The client sends a session id in the udp packet, I use a variant length compression on the ID, this way the server can identity which session to use for handling the data. When the server writes UDP it does not send an ID because it writes to the Clients unique DatagramChannel.
The following code is in the works. The first three classes are the UDP Channel stuff, the last two are implementations of a session and the extension of that session which also has the UDP channel in it. Its a incomplete class missing methods and correct modifiers. I use a multiple connection system for my game. Secure TCP, Unsecure TCP, UDP with security as an option through my implementations. This was all to give an idea of how I have implemented a UDP Channel system for the below question.
[http://hastebin.com/veqovinejo.java](Generic Wrapped Channel)
[http://hastebin.com/utuwifeqal.java](Datagram Wrapped Channel)
[http://hastebin.com/ogowenunop.java](Client NioDatagram Wrapped Channel)
http://hastebin.com/amicaqefay.java
[http://hastebin.com/afoyimocaz.avrasm](Actual Session which extends the above class and uses the NioDatagramChannel)
Question/Though:

I do not see a reason UDP only would really have an application to have a channel per UDP client without a TCP connection? Do we think it’s easy and worth it to decouple TCP from UDP?

There are many protocols that work using udp, but has transmission control and network connect/disconnect packets, such as RakNet for example.
In such case using only 1 channel for all connections becomes pain in the ass.

@trustin @normanmaurer I think this issue would be best resolved by adding a simple UDP Channel Factory that you would pair with a existing TCP server. UDP Factory will take a new tcp channel and return a UDP channel using the same resources. This would allow persons to be able to seamlessly use UDP or TCP with their own further implementation. They would still have to have a UDP server on the other end. If warranted perhaps I could also create a TCP Client/UDP server  and TCP Client/UDP Server container later.

Something like this?
package com.freeuniversegames.general.general_eight.netty.channels;

import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.epoll.EpollDatagramChannel;
import io.netty.channel.epoll.EpollSocketChannel;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.nio.NioDatagramChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.channel.socket.oio.OioDatagramChannel;
import io.netty.channel.socket.oio.OioSocketChannel;

import java.lang.reflect.InvocationTargetException;
import java.net.InetSocketAddress;

/**
 * This Factory will take an existing Channel or ChannelHandlerContext and build a UDP channel and allow
 * a person to have a UDP channel per TCP channel.
 *
 * These UDP channels can be written to similar to TCP channels with handlers or not. Once the buffer
 * reaches the end of the channel the ByteBuf will be written to a Datagram Packet.
 *
 * These channels are compatible with Channel Group use, but need to be closed specially since they are
 * disconnected from normal TCP handling. In this class we add the option of auto closing the UDP channel
 * based on the TCP channel.
 *
 * A UDP server must exist on the other end and it is up to the implementer on how to sort packets written.
 *
 */
public class UdpChannelFactory {

    private Class<? extends DatagramChannel> getChannelType(Channel channel) throws UnsupportedChannel {
        if(channel instanceof NioSocketChannel){
            return NioDatagramChannel.class;
        } else if (channel instanceof EpollSocketChannel) {
            return EpollDatagramChannel.class;
        } else if (channel instanceof OioSocketChannel){
            return OioDatagramChannel.class;
        } else {
            throw new UnsupportedChannel(String.valueOf(channel.getClass()));
        }
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, int port) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), port, true);
    }

    public ChannelFuture getAndConnect(Channel channel, int port) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(channel, port, true);
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, Class<?>[] parameterTypes, Object[] args, int port) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), parameterTypes, args, port, true);
    }

    public ChannelFuture getAndConnect(Channel channel, Class<?>[] parameterTypes, Object[] args, int port) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(channel, parameterTypes, args, port, true);
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), true);
    }

    public ChannelFuture getAndConnect(Channel channel) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(channel, true);
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, Class<?>[] parameterTypes, Object[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), parameterTypes, args, true);
    }

    public ChannelFuture getAndConnect(Channel channel, Class<?>[] parameterTypes, Object[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(channel, parameterTypes, args, true);
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, int port, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
         return getAndConnect(ctx.channel(), port, autoClose);
    }

    public ChannelFuture getAndConnect(Channel channel, int port, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        ChannelFuture connect = get(channel).channel().connect(new InetSocketAddress(((InetSocketAddress) channel.remoteAddress()).getAddress(), port));
        if(autoClose) channel.closeFuture().addListeners((ChannelFutureListener) future -> connect.channel().close());
        return connect;
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, Class<?>[] parameterTypes, Object[] args, int port, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), parameterTypes, args, port, autoClose);
    }

    public ChannelFuture getAndConnect(Channel channel, Class<?>[] parameterTypes, Object[] args, int port, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        ChannelFuture connect = get(channel, parameterTypes, args).channel().connect((new InetSocketAddress(((InetSocketAddress) channel.remoteAddress()).getAddress(), port)));
        if(autoClose) channel.closeFuture().addListeners((ChannelFutureListener) future -> connect.channel().close());
        return connect;
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), autoClose);
    }

    public ChannelFuture getAndConnect(Channel channel, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        ChannelFuture connect = get(channel).channel().connect(channel.remoteAddress());
        if(autoClose) channel.closeFuture().addListeners((ChannelFutureListener) future -> connect.channel().close());
        return connect;
    }

    public ChannelFuture getAndConnect(ChannelHandlerContext ctx, Class<?>[] parameterTypes, Object[] args, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return getAndConnect(ctx.channel(), parameterTypes, args, autoClose);
    }

    public ChannelFuture getAndConnect(Channel channel, Class<?>[] parameterTypes, Object[] args, boolean autoClose) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        ChannelFuture connect = get(channel, parameterTypes, args).channel().connect(channel.remoteAddress());
        if(autoClose) channel.closeFuture().addListeners((ChannelFutureListener) future -> connect.channel().close());
        return connect;
    }

    public ChannelFuture get(ChannelHandlerContext ctx) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return get(ctx.channel());
    }

    public ChannelFuture get(Channel channel) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return channel.eventLoop().register(getChannelType(channel).getDeclaredConstructor().newInstance());
    }

    public ChannelFuture get(ChannelHandlerContext ctx, Class<?>[] parameterTypes, Object[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return get(ctx.channel(), parameterTypes, args);
    }

    public ChannelFuture get(Channel channel, Class<?>[] parameterTypes, Object[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, UnsupportedChannel {
        return channel.eventLoop().register(getChannelType(channel).getDeclaredConstructor(parameterTypes).newInstance(args));
    }

    public ChannelFuture dispose(Channel channel){
        return channel.deregister().channel().close();
    }
}

Hi, all
Any updates regarding this feature in Netty 4.1.x?
@Mr00Anderson's approach is great,  so Please @Mr00Anderson keep moving on. (BTW, the links provided by him are out of date.)

@bglmmz Yes they are very old links. I should have made a github gist. Was newer to using github at the time. I am not working on this feature for netty. I do not have the time to implement it in such a way that it would be usable as a standard case. I updated though my channel factory to simplify it and just made some gist for you to take a look at if you need a sample for a way to do it.  I use a UDP negotiation protocol I wrote so I provide a port that is different from the remote address of the tcp channel in the UdpFactory; you could however use the remote address port instead.
CachedEventLoopGroup.java gist
UdpChannelFactory.java gist

For those needing object encoding and decoding over udp running into this issue of needing a channel per client, using the code posted above for the server (https://github.com/Shevchik/UdpServerSocketChannel) coupled with
https://github.com/apache/camel/blob/master/components/camel-netty/src/main/java/org/apache/camel/component/netty/codec/DatagramPacketObjectDecoder.java
on the client for the decoder works.

Hi, any news regarding this feature?

Hi, any news regarding this feature?

No .... I also don't think this is something we will do in the future. Let me close this as "won't fix"


Export image from geemap show no image in Google Drive folder

Hi Dr Wu,
I exported an image using geemap to my Google drive account, however no image was created in the folder.
The export line:
geemap.ee_export_image_to_drive(water_phongdien, description='s1_water', folder='export_s1_gee', region=roi, scale=10)
Do I need to configure anything or authorize my Gdrive account? And how can I do it?
Best regards,
Thang

Check the Task Tab in the Earth Engine JavaScript Code Editor.


update object photoz notebook

This PR addresses issue #131 on updating the object_gcr_4_photoz.ipynb notebook.  The notebook currently runs on desc-python-dev kernel due to a name change in a photo-z variable that happens in gcr-catalogs v0.18.0, but should work fine on desc-python in a few days.  I updated some of the descriptions to include a few new variables that were not included in run1.2i, and added a couple of extra plots and some explanatory text.  The notebook should only take ~10-20 seconds to run.

Thank you @sschmidt23 --- I'll find someone to review this notebook!


Minor: Fix path in format command in CONTRIBUTING.md

Which issue does this PR close?
N/A
Rationale for this change
The instructions for running cargo fmt on the parquet crate will scan too many files.
What changes are included in this PR?
Change instructions so only the parquet directory will be traversed.
Are there any user-facing changes?
No, documentation change only.

I double checked that the corresponding CI job doesn't need to be changed too
https://github.com/apache/arrow-rs/blob/25e196977fd4f2fdd9ad25b3d3936d355ce27d46/.github/workflows/rust.yml#L108-L109
I believe it does not need a change as it already has a working-directory set to parquet


Breakout polypolish read mapping to its own rule.

One more thought: if we wanted, we could separate the read mapping step for polypolish from polypolish itself. The read mapping step can be highly parallelized, whereas I think polypolish only runs with a single thread. This doesn't have to be done now, but it could be a nice optimization.
Originally posted by @jmtsuji in https://github.com/rotary-genomics/rotary/issues/122#issuecomment-1940404380

Addressed in #125


GISRUK submission

GISRUK will be a good place to present this work, just need to put together a short abstract, possibly after main paper has been submitted.
Details: https://2024.gisruk.org/cfp/

@anisotropi4 and @JosiahParry can you eyeball this and provide general :+1: ?
gisruk.pdf
Comments and changes welcome in #98


[@azure-tools/azure-http-specs] - Azure Specific Spec Scenarios to test Typespec

This is a spin-off of PR https://github.com/Azure/cadl-ranch/pull/741. A new package @azure-tools/azure-http-specs has been created to handle only the azure specific scenarios and the scenarios that are not included in the @typespec/http-specs package.
Please review and approve the PR.
Note:

The test:e2e script is working fine.
I have not deleted the cadl-ranch-specs folder under e2e-tests folder and not modified the e2e-tests.mjs script.

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@azure-tools/azure-http-specs

Show changes

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs


Upgrade to System.Reactive 4.0

Upgrading to 4.0 will allow your API to be consumed in other packages without the need of the System.Reactive.Compatibility package.
I will submit a PR soon.

Fixed by https://github.com/RolandPheasant/DynamicData/pull/138

Is there a way to get a notification when this gets released on nuget?

I personally use https://coderelease.io


Node browser resolution strategy

I'd like to propose a new resolution strategy that builds upon node resolution to support https://github.com/defunctzombie/package-browser-field-spec - node+browser. The core differences is that it reads package.json/browser to select the entry point or module "aliases". For example, browser can point to a string that is used in place of main when resolving or specific a map of keys to values - where the key is a relative path or a module name and the value is a boolean, relative path or module name.
This module resolution is used in Browserify by default, and can be enabled in Webpack using https://webpack.github.io/docs/configuration.html#resolve-packagealias. It's the primary way to develop and distribute universal packages that work on node and in browsers.
Edit: It would also be amazing to have the compiler handle this when developing packages so that the aliases are type-checked to be compatible in both environments. For example, it could catch https://github.com/blakeembrey/popsicle/pull/47.

Wouldn't it be common that the node and browser version have the same types? Some implementations might differ, but API should behave the same.

Ideally, yes. That's the best way to implement universal packages. There's still enough difference if you need to do browser that there's probably some API differences.

+1
We need this for Universal Angular 2. Universal provides a ton of helpers for node in order to connect the two worlds (server/browser) in a seamless way. This involves writing similar types that have different dependencies depending on which environment you're currently in. Right now, if you use the browser version of universal you're presented with types that do not exist yet TypeScript is suggesting that it's valid

Starting to see it in some other universal projects (aside from my own), most notably the AWS SDK (https://github.com/aws/aws-sdk-js/pull/1228).

This is also a problem for Angular's use of Ahead of Time compiler which uses TypeScript's future feature on extending TypeScript. When splitting code per platform there must be two paths created
angular2-universal/browser
angular2-universal/node
https://github.com/angular/universal-starter/blob/master/src/app/app.browser.module.ts#L3

Nothing new here? I'm trying to make AoT working with package.json main/browser split and it's almost imposible.
I'm feeling tempted to write my own hack around here or even contribute if the team is willing to accept a PR
Maybe a tsconfig with the array of fields to lookup in order would be nice, if not provided TS can always use the defaults.

sadly you have to create 3 code paths
import 'your-package' <-- universal interface
import 'your-package/browser' <-- browser interface
import 'your-package/server' <-- server interface

We just ran into this again with TypeDoc. We're using the Handlebars type definitions which relies on DOM typings, but none of the package works in the browser at all.

:+1: for this.

I would also like to see this. I'm writing a library that has a slightly lighter API for the browser than for Node, and while the Node typings of my library are a strict superset of the browser typings in my specific case, I'm still concerned that consumers targeting browsers may infer an incorrect API based on being presented with Node types. (This would be a much bigger concern for libraries where the browser API is larger than the Node API, since browser consumers would be missing types for supported API features unless they manually remapped the library types themselves.)
Supporting the browser field would mean Typescript could automatically present the same view of a package's API that common bundlers use:

Browserify uses the browser field by default
Webpack uses the browser field when resolving modules by default
Rollup's plugin for Node module resolution, @rollup/plugin-node-resolve, supports the browser field through an option (though it's off by default, Rollup is used to bundle for Node.js targets more frequently than the others, so it makes sense to manually have to opt into browser resolution)

I can barely make sense of things written in the module landscape of 2016 anymore, but I think this effectively solved with us supporting custom conditions in package.json


onSelected() Not reliably called on Android Nougat

Hello,
First off thanks for the library, it looks great! I think I have found an issue affecting only Android 7.X Nougat devices.
Scenario

The first Fragment in my stepper has an EditText field that needs focus and to display a soft keyboard when user navigates to it.

My code to accomplish this looks like:
@Override
public void onSelected() {
    templateNameEditText.post(new Runnable() {
        @Override
        public void run() {
            templateNameEditText.requestFocus();
            InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.showSoftInput(templateNameEditText, InputMethodManager.SHOW_IMPLICIT);
        }
    });
}

This is working wonderfully on every android device down to Android 4.4 KitKat but inconsistently on Android 7.X.
Suspected Cause

Line 774 in onUpdate(...) of StepperLayout.java has Step step = mStepAdapter.findStep(newStepPosition); and I have seen only on Nougat devices that this method is sometimes returning null

Steps to Reproduce

Add a Fragment that implements Step
Add a Log statement or line of code to attach debugger in @Override   public void onSelected() {}
Verify onSelected is not called on every navigation to Fragment

Expected Result

mStepAdapter.findStep(newStepPosition); should not be null and onSelected should be called each time user navigates to Fragment on Android Nougat devices

Hi @ahclipse,
Thanks for reporting this and the detailed description.
Could you confirm that you're using the latest library version i.e. 3.3.0?
This was fixed in 3.2.3 (issue #127) but it's possible that for some reason this does not work on Nougat: https://github.com/stepstone-tech/android-material-stepper/releases/tag/v3.2.3


[No Ticket] Add get_object to interpret JSON settings

Ticket
N/A
Purpose
Allow JSON objects and arrays to be passed into as environment variable settings, needed for Storage Internationalization project.
Changes
Adds get_object to the base Settings class, in the correct alphabetical order.
Side effects
None
QA Notes
N/A
Deployment Notes
N/A

Coverage increased (+0.02%) to 71.29% when pulling 879c9cfd61557b022b3821710d5c41497b874170 on icereval:feature/settings-get-object into f4a5cd22a319de430f84a02c6b77562c4246c5a8 on CenterForOpenScience:develop.


Issue with DuplicateField on integer arrays. (Marten 2.7.0)

When trying to insert into a class with an int array as duplicate field, insert fails with the following error:
      Inner Exception 1:       PostgresException: 42883: function public.mt_upsert_user(arg_carriers => integer[], arg_creator_id =>       integer, arg_customers => integer[], arg_email => text, arg_first_name => text, arg_is_active => boolean, arg_last_name => text, arg_partners => integer[], arg_sites => integer[], doc => jsonb, docdotnettype => character varying, docid => integer, docversion => uuid) does not exist
`
Marten.MartenCommandException
HResult=0x80131500
Message=Marten Command Failure:
select public.mt_upsert_user(arg_carriers := :arg0, arg_creator_id := :arg1, arg_customers := :arg2, arg_email := :arg3, arg_first_name := :arg4, arg_is_active := :arg5, arg_last_name := :arg6, arg_partners := :arg7, arg_sites := :arg8, doc := :arg9, docDotNetType := :arg10, docId := :arg11, docVersion := :arg12);select public.mt_upsert_user(arg_carriers := :arg13, arg_creator_id := :arg14, arg_customers := :arg15, arg_email := :arg16, arg_first_name := :arg17, arg_is_active := :arg18, arg_last_name := :arg19, arg_partners := :arg20, arg_sites := :arg21, doc := :arg22, docDotNetType := :arg23, docId := :arg24, docVersion := :arg25);select public.mt_upsert_user(arg_carriers := :arg26, arg_creator_id := :arg27, arg_customers := :arg28, arg_email := :arg29, arg_first_name := :arg30, arg_is_active := :arg31, arg_last_name := :arg32, arg_partners := :arg33, arg_sites := :arg34, doc := :arg35, docDotNetType := :arg36, docId := :arg37, docVersion := :arg38);select public.mt_upsert_user(arg_carriers := :arg39, arg_creator_id := :arg40, arg_customers := :arg41, arg_email := :arg42, arg_first_name := :arg43, arg_is_active := :arg44, arg_last_name := :arg45, arg_partners := :arg46, arg_sites := :arg47, doc := :arg48, docDotNetType := :arg49, docId := :arg50, docVersion := :arg51);select public.mt_upsert_user(arg_carriers := :arg52, arg_creator_id := :arg53, arg_customers := :arg54, arg_email := :arg55, arg_first_name := :arg56, arg_is_active := :arg57, arg_last_name := :arg58, arg_partners := :arg59, arg_sites := :arg60, doc := :arg61, docDotNetType := :arg62, docId := :arg63, docVersion := :arg64);select public.mt_upsert_user(arg_carriers := :arg65, arg_creator_id := :arg66, arg_customers := :arg67, arg_email := :arg68, arg_first_name := :arg69, arg_is_active := :arg70, arg_last_name := :arg71, arg_partners := :arg72, arg_sites := :arg73, doc := :arg74, docDotNetType := :arg75, docId := :arg76, docVersion := :arg77);select public.mt_upsert_user(arg_carriers := :arg78, arg_creator_id := :arg79, arg_customers := :arg80, arg_email := :arg81, arg_first_name := :arg82, arg_is_active := :arg83, arg_last_name := :arg84, arg_partners := :arg85, arg_sites := :arg86, doc := :arg87, docDotNetType := :arg88, docId := :arg89, docVersion := :arg90);select public.mt_upsert_user(arg_carriers := :arg91, arg_creator_id := :arg92, arg_customers := :arg93, arg_email := :arg94, arg_first_name := :arg95, arg_is_active := :arg96, arg_last_name := :arg97, arg_partners := :arg98, arg_sites := :arg99, doc := :arg100, docDotNetType := :arg101, docId := :arg102, docVersion := :arg103);select public.mt_upsert_user(arg_carriers := :arg104, arg_creator_id := :arg105, arg_customers := :arg106, arg_email := :arg107, arg_first_name := :arg108, arg_is_active := :arg109, arg_last_name := :arg110, arg_partners := :arg111, arg_sites := :arg112, doc := :arg113, docDotNetType := :arg114, docId := :arg115, docVersion := :arg116);select public.mt_upsert_user(arg_carriers := :arg117, arg_creator_id := :arg118, arg_customers := :arg119, arg_email := :arg120, arg_first_name := :arg121, arg_is_active := :arg122, arg_last_name := :arg123, arg_partners := :arg124, arg_sites := :arg125, doc := :arg126, docDotNetType := :arg127, docId := :arg128, docVersion := :arg129);select public.mt_upsert_user(arg_carriers := :arg130, arg_creator_id := :arg131, arg_customers := :arg132, arg_email := :arg133, arg_first_name := :arg134, arg_is_active := :arg135, arg_last_name := :arg136, arg_partners := :arg137, arg_sites := :arg138, doc := :arg139, docDotNetType := :arg140, docId := :arg141, docVersion := :arg142)
42883: function public.mt_upsert_user(arg_carriers => integer[], arg_creator_id => integer, arg_customers => integer[], arg_email => text, arg_first_name => text, arg_is_active => boolean, arg_last_name => text, arg_partners => integer[], arg_sites => integer[], doc => jsonb, docdotnettype => character varying, docid => integer, docversion => uuid) does not exist
Source=Marten
StackTrace:
at Marten.Services.ManagedConnection.handleCommandException(NpgsqlCommand cmd, Exception e)
at Marten.Services.ManagedConnection.Execute(NpgsqlCommand cmd, Action1 action)    at Marten.Services.UpdateBatch.Execute()    at Marten.Services.UnitOfWork.ApplyChanges(UpdateBatch batch)    at Marten.DocumentSession.SaveChanges()
Here's the class:
  public class User
  {
    /// <summary>
    /// Gets or sets the id of the user.
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// Gets or sets the first name.
    /// </summary>
    public string FirstName { get; set; }

    /// <summary>
    /// Gets or sets the last name.
    /// </summary>
    public string LastName { get; set; }

    /// <summary>
    /// Gets or sets the email
    /// </summary>
    public string Email { get; set; }

    /// <summary>
    /// Gets or sets the hashed and salted password for the user.
    /// </summary>
    public string Password { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether the user is active
    /// </summary>
    public bool IsActive { get; set; }

    /// <summary>
    /// Gets or sets a value indicating whether the user is locked.
    /// </summary>
    public bool IsLocked { get; set; }

    /// <summary>
    /// Gets or sets the date and time of entity creation
    /// </summary>
    public DateTimeOffset CreatedOnUtc { get; set; }

    /// <summary>
    /// Gets or sets the id of the user that created this user.
    /// </summary>
    public int CreatorId { get; set; }

    /// <summary>
    /// Gets or sets the type of the user.
    /// </summary>
    public UserType Type { get; set; }

    /// <summary>
    /// Gets or sets the carrier to which the user has access.
    /// </summary>
    public int[] Carriers { get; set; }

    /// <summary>
    /// Gets or sets the partner to which the user has access.
    /// </summary>
    public int[] Partners { get; set; }

    /// <summary>
    /// Gets or sets the customers to which the user has access.
    /// </summary>
    public int[] Customers { get; set; }

    /// <summary>
    /// Gets or sets the sites to which the user has access.
    /// </summary>
    public int[] Sites { get; set; }

    /// <summary>
    /// Gets or sets the postgres id for the object.
    /// </summary>
    public int PgId { get; set; }

    /// <summary>
    /// Gets or sets the service type for the object.
    /// </summary>
    public List<string> Permissions { get; set; }
}

`
Here's the registry definition for the class:
                this.For<User>()                 .Duplicate(x => x.FirstName)                 .Duplicate(x => x.LastName)                 .Duplicate(x => x.Email)                 .Duplicate(x => x.IsActive)                 .Duplicate(x => x.CreatorId)                 .Duplicate(x => x.Carriers)                 .Duplicate(x => x.Partners)                 .Duplicate(x => x.Customers)                 .Duplicate(x => x.Sites);

@pereiraarun At that point, is it even worth it to be using Marten if you're going to duplicate all those things? You might be better off going to Dapper at this point. Dunno if it handles int[] any better than Marten does here.
How are you managing schema objects? Does the function actually exist, and Marten doesn't quite match up between the arg types it thinks the db should have, or is the function completely missing?

@jeremydmiller To be honest, marten's worked out amazingly well. Significantly better than my experience with RavenDb. The reason I duplicate those fields is that I gathered from the documentation that it provides better performance for queries involving searches.
The function exists. Inserts fail. From a cursory inspection, it looks like a type mismatch. Currently, I've removed the duplication of those array types. I've provided the bug report merely to document the issue. I've used MatchesSql to work with the data so moving to dapper isn't necessary. In fact, MatchesSql worked out better since I was able to use subselects to avoid having to round-trip values to the API.
    users = users.Where(
                x => x.MatchesSql($" TRANSLATE(data->>'Customers', '[]', '{{}}')::int[] && '{{{joinedCustomers}}}'")

The only thing that duplicate provides, in this case, is saving the call to TRANSLATE and making it a bit easier to read.

Ah, gotcha. We definitely still have a bug w/ int[] duplicated fields. For indexing, calculated indexes are probably more efficient overall. The biggest reason to use them really is exactly what you're doingl

Easy money, but we'll need to watch the schema validation logic

This will be in Marten 2.8.0 next week-ish maybe.


Add some more details to Hypriot OS

Provided the Github link to the main repo, where you can get the SD card image.
Signed-off-by: Dieter Reuter<EMAIL_ADDRESS>

3q


Will we be able to use this with Automatic1111?

Will we be able to use this with Automatic1111?

Automatic1111 is username, not product name.
Automatic1111 is not associated with Apple, so asking about it will be meaningless.

See AUTOMATIC1111/stable-diffusion-webui#5309

There is another tool that provides a pythonic interface for Stable Diffusion that could also benefit from some guidance from Apple developers if possible: https://github.com/brycedrennan/imaginAIry/issues/132

please.


Feat/llm/Implement and harmonise tracking for the entry point of each staking flow

📝 Description
Implement and harmonise tracking for the entry point of each staking flow (delegation) LLM
Harmonise algorand claim rewards with other currencies. LLD
❓ Context

Impacted projects: LLM LLD
Linked resource(s):  https://ledgerhq.atlassian.net/browse/LIVE-7836

✅ Checklist

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

📸 Demo

🚀 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.

Perhaps it may be better to use the getAccountCurrency helper along with account selector to get the currency id for cosmos.

I am going to retest the type, but if it is CosmosAccount, I think we must improve the type, not change the method.

@kallen-ledger , you are totally right. Your suggested changes have been applied.


Tooltip doesn't work on Safari

This issue is imported from pivotal
The tooltip (shown on the IdP, after the \'Other sign-in options\' sentence) doesn\'t show on Safari. It disappears after 1 ms.

I've seen this fixed, but the current production version + the 'new' version (5.0.3) still has this problem. What happened? (Arnout Terpstra - Mar 11, 2021)

@arnoutt It works for me. Did you try a hard reload? (Okke Harsta - Mar 11, 2021)

Pff damn you're right. ****ing Safari ;) Will be more thorough next time. (Arnout Terpstra - Mar 11, 2021)


[wct] avoid download of drivers

same for wct local
Using these tools (as triggered by using polymer-cli) I want to provide the drivers in a local location and hand in this information with an environment variable. Following things nneed to be done

check for availability of env variable on install

if present use local files

if local check file and versionnumber against sha*x hash
*if check passed: use local file.

By maintaining a small list of releases and hashes, the setup will be able tu RE-use drivers for multiple installs. Why do this? in german "4g" networks, sitting in one of the biggest cities in germany, the network is so bad, the extra step takes about 15 minutes. ;) Especially since those drivers are fetched twice (postinstall wct and wct-local).

Something like this would be great indeed.

lol. The polymer way of handling feature requests.


Adding pre commit

added config files for pre-commit hooks
excluding bandit checks and test dir
added pre-commit to github CI checks
running pre-commit hooks for all the code

The error seems to be about a test expectation unrelated to your changes, but it would be nice to fix it before merging this, be it in this PR or in a separate one.

The error seems to be about a test expectation unrelated to your changes, but it would be nice to fix it before merging this, be it in this PR or in a separate one.

Ok, no problem.. I will fix it in this PR


Dashboard is super chatty when it is running under a debugger

Repro steps

Open Aspire solution
Set TestShop AppHost project as startup project
F5
When dashboard shows up, open aspire-dashboard logs

Expected
Only see errors and warnings, unless verbose logging is somehow enabled.
Actual
Many, fairly large JSON-formatted log entries are emitted every second, even if the developer is not doing anything.
Additional comments
Looks like verbose logging is enabled by default. Even if a developer is not looking at the dashboard logs, they are being captured in the background, slowing everything down a bit.

Is this issue just restricted to TestShop or does this apply to other scenarios / apps running under a debugger?  Also, would this issue impact end users at all?

@leslierichardson95 this issue impacts people who work in the Aspire main repo, when running projects from the "playground" folder. Regular Aspire developers should not be affected. So this issue is of "engineering infra" kind


Combine textbox and chipset together

Feature request type
Enhance component
Component name
MudChipSet
Is your feature request related to a problem?
In many cases, the requirement would be to allow users to enter any text and hit some kind of trigger key to turn it into a chip/tag and display in something like the current MudChipSet.
Describe the solution you'd like
Combine an <input> and the current chip/chipset component together to allow users to manually type in text.
Have you seen this feature anywhere else?
Like the tagging feature StackOverFlow is using:

Describe alternatives you've considered
No response
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hi,
there is a MudChipField in the MudExtensions package, you should take a look if it is, what you'd like to achieve:
https://codebeam-mudextensions.pages.dev/mudchipfield

Hi, there is a MudChipField in the MudExtensions package, you should take a look if it is, what you'd like to achieve: https://codebeam-mudextensions.pages.dev/mudchipfield

wow, that's quite a few extensions. thanks a lot.


Add back fallback to the entry assembly for application name

Original issue: #1137

We should fallback to Assembly.GetEntryAssembly().FullName

Seems GetEntryAssembly() returns null when run inside a net461 test launched by xunit

Not planning to take this in the patch. The provided workaround in the original bug seems to be sufficient. If we see more people hitting this we will reconsider.


Library not work with laravel 11

Library not work with laravel 11, because require illuminate/support 10 and laravel 11 work illuminate support 11 version
Problem 1
- Root composer.json requires pulkitjalan/geoip ^6.0 -> satisfiable by pulkitjalan/geoip[6.0.0].
- pulkitjalan/geoip 6.0.0 requires illuminate/support ^9|^10.0 -> found illuminate/support[v9.0.0, ..., v9.52.16, v10.0.0, ..., v10.48.2] but these were not loaded, likely because it conflicts with another require.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require pulkitjalan/geoip:*" to figure out if any version is installable, or "composer require pulkitjalan/geoip:^2.1" if you know which you need.

Added a PR here: https://github.com/pulkitjalan/geoip/pull/60

Merged


how to change session path

router
Route.post('/admin/login', 'AdminController.login');
code
  *login(request, response) {
    const method = request.request.method;
      const postData = request.post()
      if (postData.account ==<EMAIL_ADDRESS>&& postData.password == "123456") {
        yield request.session.put(postData)
      } else {
        return "用户名或密码错误"
      }
  }

the path is /admin,so how can i change it to /?

I have updated docs and code to support options for cookies http://adonisjs.com/docs/1.0/request#session-management

Also make sure to update adonis-framework to version 1.2.0

thx


Error when getting subsequence inside blockquote

Narrowed it down to this line:
https://github.com/noties/Markwon/blob/b844f4db6c5404fd34bc2e078a584f14eb44fa00/markwon-core/src/main/java/io/noties/markwon/SpannableBuilder.java#L190
I'm pretty sure it should be Math.min there, can you take a look?

Hello @Adonai !
Yes, it has caught my attention also, I had fixed that already in latest 4.2.1 snapshot

Thank you


Configurable physics object semantics

Motivation and Context
When adding arbitrary objects to the scene, users may want to configure the semantic ID as in issue #320.
With the current implementation we enable integer setting of the semanticId in the configuration file. This requires the user to know the mapping between semantic label and integer id. This should be improved in the future to allow specifying new or existing object classes instead of integer ids only.
This also changes SceneNode::id_ assignment in addComponent to occur for all SceneNode's associated with an object (even those not containing meshes).
How Has This Been Tested
Added a C++ test.
Local testing in Replica apartment_0 with <object>.phys_properties.json updated to specify:

cheezit

"semantic id": 10

banana

"semantic id": 5

chefcan

"semantic id": 2

rgb_scene:

before object semantics:

after object semantics:

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have completed my CLA (see CONTRIBUTING)
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #341 into master will increase coverage by 7.4%.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #341     +/-   ##
=======================================
+ Coverage   56.59%    64%   +7.4%
=======================================
  Files         175     64    -111
  Lines        8151   2953   -5198
  Branches       84     84
=======================================
- Hits         4613   1890   -2723
+ Misses       3538   1063   -2475

Flag
Coverage Δ

#CPP
?

#JavaScript
10% <ø> (ø)
:arrow_up:

#Python
78.06% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

src/esp/nav/GreedyFollower.cpp

src/esp/gfx/PTexMeshShader.h

src/esp/geo/OBB.h

src/esp/gfx/Renderer.cpp

src/esp/assets/Attributes.cpp

src/esp/assets/GltfMeshData.cpp

src/esp/gfx/PrimitiveIDDrawable.h

src/esp/scene/test/GibsonSceneTest.cpp

src/esp/physics/PhysicsManager.cpp

src/esp/sensor/Sensor.cpp

... and 98 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 ee89945...5877795. Read the comment docs.

https://github.com/facebookresearch/habitat-sim/pull/413#discussion_r362987043
@msavva, @dhruvbatra, @mosra
This discussion seems very relevant to this PR. 😄
🤔 My understanding was that the SceneNode::id_ is the semantic type identifier of the object. Therefore when a mesh is rendered with no vertex level semantic identifier, it is used to flat shade the mesh stored at the node.
I arrived at this conclusion from this issue discussion: https://github.com/facebookresearch/habitat-sim/issues/336#issuecomment-549017586.
This PR is about exposing that value for modification and configuration.
Big distinction here is that the PhysicsManager::existingObjects_ is a map of individual object instances to integer ids (e.g., could be 10 of the same asset, but each would have a unique id here. When referring to these locally in the code, I usually call them objectId. However, all of these objects may have the same SceneNode::id_. If we want scene nodes to somehow refer back to their id in PhysicsManager::existingObjects_, then we should create a new id for this purpose and rename the existing SceneNode::id_ used for semantic rendering to something more obvious unless there is another purpose for this value in the current implementation.
Open to thoughts! 😀

continue the discussion (#413) here:

I don't know that it changes the guaranteed relationship between a rigid object and a SceneNode or the need to id them.
The 1:1 correspondence between a rigid object and a SceneNode is guaranteed. And each rigid object certainly needs an id.
My opinion is that you can put this 'id' in the RigidObject, not in the 'SceneNode'. physics-specific properties should not be added to the base class "SceneNode'.

Clarify: my reply is based on my current understanding:

Only the physics-enabled objects have object ids. The other objects (e.g., the scene, the cameras) do not have ids.
We give ids to objects, not scene graph nodes. So each scene graph node does not have an id. (the existing id_ in SceneNode is used to store semantic info.)

Has there been any additional work on this PR or others to get object semantics for physics objects merged? This is a blocking issue for our work so we're willing to devote engineering resources to getting this feature added.

Has there been any additional work on this PR or others to get object semantics for physics objects merged?

Hey @kylevedder, thanks for checking in on this. 👍
We have recently picked back up on this feature as other users are also blocked here. We plan to complete this in the next week or two. Stay tuned.

Purpose of this PR filled with #668. Closing.


Can we store strings in an HDF5 file and add that to hepfile?

Not just attributes, but like a list of names?

Done!


CoreFoundation: explicitly cast to the proper fptr types

With the latest rebranch, the mismatched function pointer types raise an error rather than a warning.  Explicitly cast to the expected function pointer type rather than ignoring the warning.

CC: @etcwilde @bnbarham @shahmishal @parkera

@swift-ci please test

@swift-ci please test

@swift-ci please test

@shahmishal Any idea what this error is about?
 dyld: Library not loaded: @rpath/libSwiftOperators.dylib
      Referenced from: /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch-main/build/Ninja-ReleaseAssert/toolchain-macosx-x86_64/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
      Reason: image not found
    /bin/sh: line 1: 48371 Abort trap: 6           /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch

dyld: Library not loaded: @rpath/libSwiftOperators.dylib
Referenced from: /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch-main/build/Ninja-ReleaseAssert/toolchain-macosx-x86_64/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
Reason: image not found
/bin/sh: line 1: 48371 Abort trap: 6           /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch

That suggests there's an out-of-date swift-syntax checkout.

dyld: Library not loaded: @rpath/libSwiftOperators.dylib
Referenced from: /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch-main/build/Ninja-ReleaseAssert/toolchain-macosx-x86_64/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
Reason: image not found
/bin/sh: line 1: 48371 Abort trap: 6           /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch

That suggests there's an out-of-date swift-syntax checkout.

update-checkout-config.json out of date on rebranch?

@swift-ci please test macOS platform

@swift-ci please test macOS platform

@swift-ci please test macOS platform

@swift-ci please test macOS platform

@swift-ci please clean test macOS platform

@swift-ci please test macOS platform

@shahmishal Any idea what this error is about?
 dyld: Library not loaded: @rpath/libSwiftOperators.dylib
      Referenced from: /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch-main/build/Ninja-ReleaseAssert/toolchain-macosx-x86_64/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
      Reason: image not found
    /bin/sh: line 1: 48371 Abort trap: 6           /Users/ec2-user/jenkins/workspace/swift-corelibs-foundation-PR-macOS/branch

This should be fixed now, updated the job with required flag.

Merging this to aid in making forward progress on the rebranch.


How to read data from multiple locations while using Flight SQL JDBC driver

Describe the usage question you have. Please include as many useful details as  possible.
Hello folks,
I am connecting to my flight server using Arrow Flight JDBC driver(12.0.0). As per the sequence diagram for executing a prepared statement, the DoGET method is invoked for each endpoint in the FlightInfo. However, I am unable to get this working if I provide multiple locations in the FlightInfo response. The client iterates on the endpoints but always connects to the host & port configured as part of the JDBC connect string and does not switch to the location(s) passed in the FlightInfo.
JDBC URL:

jdbc:arrow-flight-sql://primaryendpoint:50051

Below is a sample FlightInfo object. For this, I expect the client to connect to secondaryendpoint:50051 for streaming data but the DoGet calls are executed on the primaryendpoint:50051 location which is part of the initial JDBC connect string.

[<pyarrow.flight.FlightEndpoint ticket=<pyarrow.flight.Ticket ticket=b'GET-DATA'> locations=[<pyarrow.flight.Location b'grpc+tcp://secondaryendpoint:50051'>]>]

Any insights on this behavior and how can I get the client to switch to the locations for the DoGet operation? Is my understanding of the FlightRPC patterns correct?
Component(s)
FlightRPC, Java

This is not currently implemented in the JDBC driver, correct :/ contributions would be welcome. (I think there was an earlier issue about it, too.)

Duplicate of https://github.com/apache/arrow/issues/34532.
There's a partial PR listed in that issue - if you're interested in taking it across the finish line I'd be happy to review and/or answer any questions.


OnNotificationOpened runs more than once

Hello, I receive notifications well, but I have noticed that, for example, if I install the application for the first time on the device, the method: OnNotificationOpened is executed 2 times, and when the application is already installed and I only update, it executes more than 3 times, this is annoying because I give it parameters so that through this method it can go to the view that I want, does it mean that this method makes it go to a view 3 times, has this happened to someone?
`
CrossFirebasePushNotification.Current.OnNotificationOpened += async (s, p) =>
{
if (data.Key=="moredata") {
tag = (string)data.Value;
}
........here I recover the parameters......................
await Navigation.PushAsync(new ListRequest(), false);
}
`

I can confirm I have this same issue. OnNotificationOpened gets executed twice

OnNotificationOpen is executed the number of times per notification, it increases each time by 1, I have a splashscreen and I use the sample example.

Subscribe to the events in the OnStart() event of App.xaml.cs instead of the constructor.
I was doing it in the constructor and after moving it to OnStart it worked.

@Tarekka @jpolocosme
But do you have a splashscreen? it also runs me several times, can you put the sample code?

This does not work for me.
OnStart() still getting triggered after tapping on the notification box so I have to unregister and register on the events

This does not work for me.
OnStart() still getting triggered after tapping on the notification box so I have to unregister and register on the events

I ended up making a separate class and putting all the plugin events there and then checking if my class is null or not
 private static FirebaseConfService firebaseConfService;

        public static void InitFirebaseConf()
        {
            if (firebaseConfService is null)
            {
                firebaseConfService = new FirebaseConfService();
            }
        }

I ended up making a separate class and putting all the plugin events there and then checking if my class is null or not
 private static FirebaseConfService firebaseConfService;

        public static void InitFirebaseConf()
        {
            if (firebaseConfService is null)
            {
                firebaseConfService = new FirebaseConfService();
            }
        }

I just add this:
        static bool firebaseInitialized = false;

            if (firebaseInitialized )
                return;

            firebaseInitialized = true;

            CrossFirebasePushNotification.Current.OnNotificationReceived += (s, p) =>

            ...


Confused about advisory CVE-2022-41064 as it seems out-of-date, but is brand new

I just came across advisory CVE-2022-41064, which alerts about a vulnerability in Microsoft.Data.SqlClient.
It advises that we upgrade this package to the latest version, ie 2.1.2.
However, I have a project where the reference to Microsoft.EntityFrameworkCore.SqlServer (which includes a transitive reference to Microsoft.Data.SqlClient) hasn't been touched since June, and it shows that it uses Microsoft.Data.SqlClient v2.1.4, two versions later than the supposedly new patch.
Can anyone explain this? Do I need to anything?
Thanks

No, you do not need to do anything as the version you use is outside the vulnerable version range.

@ErikEJ Thanks. Is it me, or is the advisory confusing? For a 5-day old report, shouldn't it show the latest version, not one that was out some time ago?

Why? Maybe the vulnerability was only discovered recently.

Yup, then I would expect the latest version to fix it, not an older version.
The article implies that the vulnerability was discovered recently, but the fix was implemented some time ago. Unless it was fixed by accident, then it sounds like the Microsoft engineers have developed some sort of prescience!

But showing the latest version in the patched version column would quickly become invalid.

Unless it was fixed by accident, then it sounds like the Microsoft engineers have developed some sort of prescience!

You are theorising a lot.

Unless it was fixed by accident, then it sounds like the Microsoft engineers have developed some sort of prescience!

You are theorising a lot.

It was meant to be a joke 🙂

The issue was fixed a while ago in M.D.SqlClient but was only recently identified as a vulnerability, thus the "new" announcement. It was also recently fixed in the old System.Data.SqlClient libraries since it was identified as a vulnerability.
The wording about "latest version" may be confusing since the fixed version for M.D.SqlClient is no longer the "latest version".


feat(devcontainer): enable dev environments in GH Codespaces and VS Code remote containers

This project is marked as open to contribution for Hacktoberfest, and as such I figured it would be desirable for contributors to have a simplified means of getting up and running with the developer setup. With the addition of the devcontainer configuration, this project is now compatible with GitHub Codespaces as well as VS Code Remote Containers. Contributors who use one of these options now get all of the dev setup steps completed for them, and you get peace of mind that contributions will come from setups with the correct usage of eslint, prettier, etc.
EDIT:
Demo
https://vimeo.com/757666222

@MrRobz  yes, it's incredibly cool - I have already recorded a video, but it's 25Mb and apparently GH will only let you attach videos of up to 10Mb - I'm in the process of re-encoding it so it's only 10Mb :sweat:  (i'll attach once that's done).

@MrRobz I've attached a link to vimeo which is a long demonstration of how this works - the video is being transcoded still, but should be watchable in a few minutes :+1:

@MrRobz I've attached a link to vimeo (https://vimeo.com/757666222) which is a long demonstration of how this works - the video is being transcoded still, but should be watchable in a few minutes 👍

That was pretty amazing. One small suggestion. If there were some sample svg icons is a folder already present in the code-space it would make developing and testing the app lot more easier.
I'm thinking if we could have these icons in these links downloaded and present in a folder when opening the code space.
https://github.com/tailwindlabs/heroicons/tree/master/src/20/solid
https://github.com/Remix-Design/RemixIcon/tree/master/icons

@MrRobz I just looked into this, and I think it's probably a little out of scope for the purpose of this PR due to the fact that collection names are stored in IndexDB so there's no way for me to, during the container build, establish a new icon collection and add files to it.
I think you could modify the application code to do an initial scan of the icon-library directory and automatically create some collections based on any directories present there, and that would be the way you support pre-seeding the application state with some libraries.
Basically, I think it would be super helpful if the application could be defaulted to have some collections, but I think that's probably a bit further than this PR is meant to go. If you were able to merge this PR in, perhaps it could be a good first issue item for someone else in Hacktoberfest to make the required application code changes to support seeding the collection database and then dropping some svgs into the file system at container launch :+1:

@MrRobz I just looked into this, and I think it's probably a little out of scope for the purpose of this PR due to the fact that collection names are stored in IndexDB so there's no way for me to, during the container build, establish a new icon collection and add files to it.
I think you could modify the application code to do an initial scan of the icon-library directory and automatically create some collections based on any directories present there, and that would be the way you support pre-seeding the application state with some libraries.
Basically, I think it would be super helpful if the application could be defaulted to have some collections, but I think that's probably a bit further than this PR is meant to go. If you were able to merge this PR in, perhaps it could be a good first issue item for someone else in Hacktoberfest to make the required application code changes to support seeding the collection database and then dropping some svgs into the file system at container launch 👍

I understand. Lets do something simple. Clone 2 other repos with icons in it to a folder in say home or desktop in the code-space machine.
I tried adding these steps to the dockerfile but these folders aren't showing.
Could you help with this pls.
RUN cd /home && git clone https://github.com/Remix-Design/RemixIcon.git
RUN cd /home && git clone https://github.com/tailwindlabs/heroicons.git

@MrRobz Sounds like a great way to get most of the way there! I believe your changes should actually be fine, but you've cloned to the /home directory, and not /home/node, which is where your file explorer is open to - I think you should probably be cloning to /home/node.
Also, I believe the -C flag to git clone will let you skip having to cd into the clone directory 👍

@MrRobz Sounds like a great way to get most of the way there! I believe your changes should actually be fine, but you've cloned to the /home directory, and not /home/node, which is where your file explorer is open to - I think you should probably be cloning to /home/node.
Also, I believe the -C flag to git clone will let you skip having to cd into the clone directory 👍

That made it work. Thank you


[Question] Bring the selected node on top?

Hi. Is it possible to bring the selected node on top? Currently the last added node comes on top of all other nodes and if you select others they are behind the last added one.

Hi! Yes, it is possible. Here's an example:
<nodify:NodifyEditor.ItemContainerStyle>
    <Style TargetType="{x:Type nodify:ItemContainer}"
           BasedOn="{StaticResource {x:Type nodify:ItemContainer}}">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Panel.ZIndex" Value="1" />
            </Trigger>
        </Style.Triggers>
    </Style>
</nodify:NodifyEditor.ItemContainerStyle>

I'll also add this to be the default for the Playground app.

Thanks for the quick answer. I tired the code, and it worked.


Change button colour background to the Draft PR label

It's nice to have "labels" on our pull requests, though with a Draft pull request this isn't always practical, though when you view a list of PRs the Draft PR label/status is easily missed, adding a light grey background colour to the Draft text would help make these stand out a little clearer IMHO.
Example URL: https://github.com/WordPress/gutenberg/pulls

Like this?
/* demo */
span[aria-label="Open draft pull request"] {
    background: #e8e8e8 !important;
    width: 1.6em;
    display: inline-flex;
    height: 1.6em;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: -1em;
    margin-left: -0.4em;
    margin-right: -0.2em;
}
span[aria-label="Open draft pull request"] svg {
	color: white !important;
}

Yeah, something like that would be great:)

I would make the actual icon slightly darker gray than white, as now, the icon it almost not visible.

Do you mean the regular icon but darker? Or my circle + dark gray icon instead of white?

I'd do the circle darker gray. It seems from the screenshots that the circle is lighter than the original icon?

This should be an easy CSS-only solution. PR and design suggestion/mockups welcome

I've made the badge color a little darker.

I’m not sure I like it this dark. I preferred it to be less visible, not more

I agree. WIP-PR's feel more visible and stressed than a normal, ready for review or waiting for merge PR now.

I name this feature emphasize-draft-pr-label , aimed at making that label stand out. Felt that level of gray - IMHO the color 'gray' itself says "Oh oh don't pay too much attention to me"- is fine to me.
But yes, reviews and PRs are welcome.

the color 'gray' itself says "Oh oh don't pay too much attention to me"

The gray does that, but the size doesn't; the visual weight is higher. I don't draft PRs should stand out, but the opposite: "I'm here but don't ignore me"
I'd go as far as dimming the whole line instead.
Regular

Now

Suggested
Opacity 0.7

@fregante thanks for taking care.
Now that I use it, I realize that - unlike your suggestion here - you only changed the PR icon and did not use grey text on the PR titel as well.
Was that on purpose? I liked that a lot, to emphasize the titel of draft pr's less too.


Added needed call of google-github-actions/auth with credentials and changed version of google-github-actions calls

Why:
Based on my own following the tutorial and usage of .github/workflows/main.yml, I found out, that there is needed to call the auth from google-github-actions for the workflow to work properly. Also the noted versions of google-github-actions were not readable, resp. their meaning was not explained and was not obvious.
When I was solving my problem, I started a discussion at community forum here: could not load the default credentials error in deploy action to GKE, where can be seen and explained the problematic part, that leads me to this little modification.

@dundejan Thanks so much for opening a PR! I'll get this triaged for review ✨

@dundejan Thank you for your patience while our team reviewed! ✨  Before we make these changes to the docs, have you
by chance reached out to our support team regarding the behavior you saw with the workflow?
Ideally, we would want them to have a chance to dive into this issue before we make any modifications to the docs 💛

FYI there's a similar update from Google Cloud staff last month, adding the auth in the starter workflow too: https://github.com/actions/starter-workflows/pull/2478/files#diff-92b5bbe29dbd8d2c6ae67ce2e24b44e8a82f6c5b00702b05e78cdaaf4f269662
It may however need a more systematic approach updating all the google-cloud-* examples throughout the site, though:/


chore: build ic-ref with nix

Hans closed it in https://github.com/dfinity-lab/agent-rust/pull/38 but I want to at least get it to work to know that we can do it this way, if need be. (E.g. if buliding the BLS C library and its bindings in ic-ref becomes too tricky for plain cabal.)

Looks like I can no longer push to my branch

Are you using a cache for Nix? 1h to build but I expect this will ONLY be the first time, right?

Are you using a cache for Nix? 1h to build but I expect this will ONLY be the first time, right?

I hope so, but Github Actions don’t write to the cache from failed builds (and I couldn't find out how to change that), so it needs to succeed once before we see if the cache works.
In my own projects I use https://cachix.org/ for caching; that creates a per-project nix cache that even my contributors can use, but that is not a viable option here as long as we pull in internals.

Look, it’s green! So it’s possible at least :-)

Hmm, there might be a way to nix-store --gc at the end in a way that keeps all build dependencies alive, but I’d have to dig deeper.
We don’t have to merge this now as long as the other way works fine.


Updated README

Previously the README directed readers to look inside of main.go in
order to see the various flags. I found this to be unacceptable and I
have updated the README with flags from both main.go and
systemd.go I could not find any further flags however I could be
missing something.
Updated the description in the README to be less verbose.

Thanks for the PR!


The process of generating the trajectory is much slower than cotracker. How to accelerate the process?

Is it able to perform the tracking process in an online mode (similar to Cotracker2)?

hi @yuanpengtu,
DINO-Tracker is an optimization-based method. Meaning, each input video requires its own training. Once trained, DINO-Tracker generates trajectories pretty fast (we'll update the supplementary for reporting numbers soon)


Added Tilelink (TL-UL)

This PR includes the Tilelink (TL-UL) implementation added alongside Wishbone in the caravan family, following the Adapter Template and Tilelink Protocols Strictly.
It is enriched with meaningful, self-explantory comments for better understanding (FOR OPEN SOURCE).
I have also globalized the MemoryDumpFileHelper trait ny creating a common package in src/tests/scala/ and imported the traits in all the test files, where it was used.

Changes made ✅
Issues resolved ✅
Shifted DummyMemController to common folder and used it within TL-Ul and Wishbone as well.
Due to use of Masked  Memory 1 Test of Wishbone's Switch Harness was creating issues so I commented it for the time being :)

DummyMemContoller updated w/ detailed conditions and fire() construct ✅
Read/Write Operations of DummyMemController updated w/ Neater Logic ✅
ProgramFile disabled everywhere ✅

@shahzaibk23 did you re-run the tests to verify everything is working correctly?

All tests passed :)


Look at and fix or mark wontfix bugs reported by SonarCloud

https://sonarcloud.io/summary/overall?id=FelixBaensch_MORTAR

On Friday?

Solved in https://github.com/FelixBaensch/MORTAR/pull/49
not merged yet.


Make radio_props camelCase

Is there a particular reason why radio_props should be snake_case instead of camelCase?

Thanks, I put it on here https://github.com/moschan/react-native-simple-radio-button/issues/130


Programmatically changing tabs

So I have the beginnings of 3 tabs etc like this:
  {{#bs-tab customTabs=true activeId=initialActiveTab fade=false as |activeId select|}}

initialActiveTab is a computed, and it starts properly on tab 1, 2 or 3.
Is there a 'correct' way, to trigger the tabs to change from say, 2 to 3, based on a property on the controller or programmatically  (versus I guess using jquery to find the right tab and clicking it)
Thanks!

This is ember-bootstrap 0.x or 1.0-alpha?
By setting initialActiveTab (and thus activeId) the tab content should be updated. As you are using a custom tab navigation, you are responsible of setting its active state accordingly, as described in the "Custom Tabs" example: http://kaliber5.github.io/ember-bootstrap/api/classes/Components.Tab.html
If this is still not working for you, then please post a complete code example!

Maybe i'm just having a glimmer2 problem then.
I have this code in my alerts/index.js controller:
  selectedAlert<EMAIL_ADDRESS>function() {
    let alerts = this.get('model');
    let selectedAlert = alerts.find((m) => {
      return m.get('isSelectedInAlertListView') == true; // m.get is not a function
    });
    return selectedAlert;
  }),
  initialActiveTab: computed('selectedAlert', function() {
    if (this.get('selectedAlert.isHighPlus')) {
      return 'highPlusTab';
    }
    if (this.get('selectedAlert.isMedium')) {
      return 'mediumTab';
    }
    if (this.get('selectedAlert.isLow')) {
      return 'lowTab';
    }
  })

So on initial rendering of the page, initialActiveTab gets a value and activeId uses that value and we're golden.
But, if I put a console.log statement in the selectedAlert computed, I can see that sucker change all day, but then initialActiveTab never changes again (odd) and thus activeId=initialActiveTab never does anything.

Hm, seems to be really not related to the tab component, if your CP is not updated as expected. Don't think it's related to Glimmer2, as rendering is not involved there.
Do you set the initialActiveTab property somewhere? If you set it and is has not a setter method, then it looses its "observing" functionality.
http://emberjs.com/api/classes/Ember.ComputedProperty.html

You can overwrite computed property with normal property (no longer computed), that won't change if dependencies change, if you set computed property and it won't have setter accessor function defined

I definitely don't set it anywhere/that is the only place.. so for some odd reason it just isn't "bothering" to note when selectedAlert updates.  Hrmph.
Thanks for the help.

Addendum, if I make the computed property:
  initialActiveTab: computed('selectedAlert', function() {
    if (this.get('selectedAlert.isHighPlus')) {
      return 'highPlusTab';
    }
    if (this.get('selectedAlert.isMedium')) {
      return 'mediumTab';
    }
    if (this.get('selectedAlert.isLow')) {
      return 'lowTab';
    }
  }).readOnly()

and then click on a tab... I get this error

There are no lines of code doing something.set('initialActiveTab') in the codebase.

Bidirectional binding? What if instead of a readOnly property, you implement get and set with the no-op set pattern.

Hrm. So clicking on a tab, which changes activeId changes initialTab.
I guess I didn't suspect that would happen.
Thanks for the info.
On Dec 31, 2016 10:41 AM, "Stephen Vance"<EMAIL_ADDRESS>wrote:

Bidirectional binding? What if instead of a readOnly property, you
implement get and set with the no-op set pattern.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kaliber5/ember-bootstrap/issues/194#issuecomment-269870248,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAM0MmHXAtAe_BoLRZ88TCBdDRSvSFmKks5rNneagaJpZM4LYfGw
.

Glad that this has been resolved.
Yes, ember-bootstrap 0.x will set the property when changing tabs, because (somewhat unfortunately) all component bindings in Ember are still always two-way. ember-bootstrap 1.0 will follow the DDAU (Data down actions up) best practices by taking care that the public properties you can bind to are never modified.

If you are using ember-bootstrap 2.7.x
https://github.com/kaliber5/ember-bootstrap/blob/afee843d74306d9fed14683d0499cf4939f2ecfe/addon/components/base/bs-tab/pane.js#L40
It compares activeId against elementId. Just pass-in your own activeId and keep track of it.
You could refer my PR https://github.com/screwdriver-cd/ui/pull/469/files#diff-ac346895cac69e986fe48f3fe9a3e76dL6
Just want to give an example, and hope it helps.


Changing access of indexed resources from private to public (and vice versa)

It seems that public and private type indexes, instead of just indexing resources partition them.
I will describe it based on Type Registration using solid:instanceContainer predicate.
Let's take snippets from the current draft, I will exchange Bookmark with Photo to work with something more straight forward.
first the public type index https://solid.github.io/type-indexes/#public-type-index
 @prefix solid: <http://www.w3.org/ns/solid/terms#>.
                    @prefix vcard: <http://www.w3.org/2006/vcard/ns#>.
                    @prefix ex: <http://ns.example/#>.

                    <>
                      a solid:TypeIndex ;
                      a solid:ListedDocument.

                    <#ab09fd> a solid:TypeRegistration;
                      solid:forClass vcard:AddressBook;
                      solid:instance </public/contacts/myPublicAddressBook.ttl>.

                    <#bq1r5e> a solid:TypeRegistration;
                      solid:forClass ex:Photo;
                      solid:instanceContainer </public/myPhotos/>.

second the Private Type Index https://solid.github.io/type-indexes/#private-type-index
@prefix solid: <http://www.w3.org/ns/solid/terms#>.
                      @prefix vcard: <http://www.w3.org/2006/vcard/ns#>.
                      @prefix ex: <http://ns.example/#>.

                      <>
                        a solid:TypeIndex ;
                        a solid:UnlistedDocument.

                      <#ab09fd> a solid:TypeRegistration;
                        solid:forClass vcard:AddressBook;
                        solid:instance </private/contacts/myPrivateAddressBook.ttl>.

                      <#bq1r5e> a solid:TypeRegistration;
                        solid:forClass ex:Photo;
                        solid:instanceContainer </private/myPhotos/>.

Let's imagine adding a cat photo into the private type index (partition). We could get something like /private/myPhotos/garfield
At some point, the resource owner wants to make a public post and just that photo in it, so they decide to change ACL/ACR controlling access to that specific photo and make it public read.
Since type indexes effectively partition, not just index the resources. We would end up with Private Type Index leading to / indexing / containing a public read photo.
Exactly the same situation can happen the other way if the photo was initially made public and created at /public/myPhotos/garfield. Once the resource owner changes that access policy to that photo, we end up with a mismatch where a Public Type Index leads to / indexes/ contains a private photo.
To avoid those mismatches, the resource owner would have to delete the original resource and create it under a different IRI, which goes against the permanence of IRIs. It also doesn't fit well with access control, which allows simply changing access to any given resource.

Putting an instanceConatiner pointer to /foo/photos/  in the privateTypeIndex does not make an assertion that the container or resources in it are private.  It asserts, that apps/users with access to the privateTypeIndex can learn about where the container  is located and the type of things it contains.
If the access of /foo/photos/garfield.png changes, that would not necessitate any change to the typeIndexes.  People with access to the privateTypeIndex can still learn that there are photos in /foo/photos/.

My general point is that type indexes take a very brittle approach and don't align very well with access control which allows for changing access to the given resource at any time.

If the access of /foo/photos/garfield.png changes, that would not necessitate any change to the typeIndexes. People with access to the privateTypeIndex can still learn that there are photos in /foo/photos/.

I agree that in cases where resource access changes from public to private it is easier to find a workaround. The app which has access to both private and public indexes, could:

find both public/private instance containers
ignore public/private partitioning and check access for every resource individually

Above sounds to me like bending backward just to use type indexes.
There is still the potential of using a potentially embarrassing filename as part of the resource URI. Later changing access to the resource itself from public to private just to have the embarrassing filename still listed in the public type index.
When it comes to changing access from private to public. Even bending backward wouldn't help, since the app only having access to the public type index will not be able to find a photo that was made public if it was originally listed in the public type index.

It seems to me that this issue could be handled in a non-normative consideration, something along the lines of ;
Triples using the solid:instanceContainer predicate in the publicTypeIndex should be used with caution and may result in exposing the names and sizes of resources you later make private.  Instead, in cases where this might be an issue, you may wish to use only  solid:instance predicates which can be added and dropped individually or instead point to an index page (e.g. point to an ex:PublicPhotoAlbum rather than to an ex:Photo).

I'm afraid that recommending using solid:instance instead of solid:instanceContainer doesn't sound like an actual solution. Since Solid uses resource-level access control, describing everything in one big resource takes away the potential of granular access control which is available when a container is used with one resource describing each thing.
If using solid:instance is such a great approach, why the spec even introduces solid:instanceContainer which comes with the problem I intended to capture in this issue?
I believe we all agree that the spec readers (hopefully implementers) deserve to be informed about all known issues and the consequences they should anticipate. My intention here is to clarify the problem and find the best way to clearly communicate it in the spec.

I didn't understand type indexes like that, is there some part of the current draft suggesting that? I understand the private/public distinction of the type indexes to apply only to the type index itself (after all it's called "public type index" not "type index of public resources").
So for example, I could have a single container with all my pictures, both private and public, and I would advertise it in the public type index. Then, when a client is reading that container they would get all the resources or only the private ones depending on their permissions.

So for example, I could have a single container with all my pictures, both private and public, and I would advertise it in the public type index.

In that case, what is the purpose of a private type index?

Then, when a client is reading that container they would get all the resources or only the private ones depending on their permissions.

To stay clear, they would get all the ldp:contains statements, no matter how many of the contained resources they can access. That includes mentioned private contained resources with potentially embarrassing filenames used as part of their URIs.
The problem I'm trying to pinpoint is related to the type index linking to type registrations, which in turn with their associated solid:instanceContainer partition contained resources.
I don't think I'm the only one who finds it confusing to have:

private resources contained in the container linked from type registration in the public type index
public resources contained in the container linked from type registration in the private type index

In the matter of fact, no resource is public or private in some fundamental way. Any resource at any time can have its access control set to public and at any other time set to private. Indexing them by creating them in a public or private container is destined to fail.
I guess this approach might be some iteration on http://www.w3.org/ns/pim/space

ws:PublicWorkspace     :comment "Aceess is open to the public. Anything in a public workspace can be accesed by anyone.";

ws:PrivateWorkspace     :comment "Access only by the you, the user.";

Both sound to me like "workspace with public resources" and "workspace with private resources".

In that case, what is the purpose of a private type index?

My idea was that the purpose is to advertise publicly or privately where things are stored, I'm not making any assumptions on why apps would decide to do one or the other.
I can come up with an example, though. I could have a container with both private and public documents, but I don't want all the documents in that container to be discoverable. Still, the ones that are public should be readable by anyone with the link.
That's actually a real use-case with my app Umai. You can share "unlisted" recipes; which are public for anyone who has the link, but not discoverable otherwise. Similar to unlisted videos in Youtube. That's why my app only declares a private type index, not a public one.
Even having said that, I don't think we can always come up with use-cases and examples for everything. There will always be someone using a technology in a way that we didn't anticipate. That's why I think it's important to clarify in the spec what type indexes are actually supposed to be. And so far, my understanding is that the private/public distinction only applies to the indexes themselves, not to anything they are indexing.

To stay clear, they would get all the ldp:contains statements, no matter how many of the contained resources they can access. That includes mentioned private contained resources with potentially embarrassing filenames used as part of their URIs.

I'm not sure if this has been discussed elsewhere, maybe https://github.com/solid/specification/issues/227?
But my opinion in that case is that a container should not advertise the private documents, for the reasons you just mentioned. I don't think that issue is related with the type index.

In the matter of fact, no resource is public or private in some fundamental way. Any resource at any time can have its access control set to public and at any other time set to private. "Indexing" them by creating them in a public or private container is destined to fail.

I agree, that's why I'm saying that when we say "public" or "private", we are only talking about the type index, not about the indexed documents/containers. If we were, they should be called "type index of private resources" instead of "private type index".

By the way, I have to say I agree with many of the concerns and limitations of type indexes, I don't think they are perfect by a long shot. But as I said a while ago "I’d much rather have a something that works in practice, than being caught up in theoretical discussions that never become a reality".

Thank you @NoelDeMartin, I find your examples very helpful! I would like to ask you about one more scenario from your use case.

That's actually a real use-case with my app Umai. You can share "unlisted" recipes; which are public for anyone who has the link, but not discoverable otherwise. Similar to unlisted videos in Youtube. That's why my app only declares a private type index, not a public one.

Let's say that the user with such "unlisted" recipes or videos would like to make one/some of them listed. Could they do it with private & public type indexes without the need to change the URIs of those recipes/videos going from "unlisted" to "listed"?

The app can do complicated things like giving access to a Card as function of which groups it is in and whoo has access to those groups. In general, the app deals with the complexities of sharing things in different ways.

Can I find it documented somewhere in detail? I mostly want to understand how the app can do it, especially since each user can choose to use a different app so the actual access policies need to be record independent of any app.
In SAI, there is an Authorization Agent which deals with all the complexities of sharing (setting access policies) which later are captured as Access Authorization and Access Grant for the agent acting as a grantee. Since currently, solid authorization doesn't support those Access Grants directly, they can be translated to ACP and reflected in ACRs of corresponding resources.

Let's say that the user with such "unlisted" recipes or videos would like to make one/some of them listed. Could they do it with private & public type indexes without the need to change the URIs of those recipes/videos going from "unlisted" to "listed"?

No, they couldn't :(. And this is one of the limitations I agree with.
The way I've solved it in my app, is that what I'm listing on the public type index is not a container, but a link to a list of recipes (a link to a schema:ItemList to be more precise). Which has the drawback that the list is indexed as a generic "item list", there is no way from the type index to know if it's a list of recipes or something else.
I could also have listed the individual recipes, but my I decided to do it like this because that way I can also add some metadata to the list itself, not just the invidual recipes (such as the title, the author, a description, etc.)

I see #26 which might be at least partially in response to this discussion.

See a clarification https://github.com/solid/type-indexes/pull/26 about how type indexes are used in practice. A RecipeManger could be the main thing including lists and recipes in the stuff it manages. And could be in s type index. And could RecipeList subclass if List. So @NoelDeMartin you could flag the list as being a Recipe List to drive handlers and icons in list of stuff.

Interesting conversation. It makes me think of a use case document additional to the spec.


UP-4802: Add alt text to Background Preference portlet thumbnails

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines

Description of change
https://issues.jasig.org/browse/UP-4802
Images in the Background Preference portlet currently have no alt text, which isn't ADA compliant. This can be fixed by adding a new portlet-preference containing an alt-text string for each image.

Coverage decreased (-0.006%) to 23.038% when pulling 80fd07710c1e19a418e28dde3162d7336cc190c2 on CR96:UP-4802 into f6289512ff696980a02ad3855d88cd9f39ab2563 on Jasig:master.

Just updated the actual alt attribute to an empty string since these are decorative images. The caption attribute still shows the description string.

Coverage decreased (-0.003%) to 23.041% when pulling 45024f6984f0efe792cb717c30997df7ff51c459 on CR96:UP-4802 into f6289512ff696980a02ad3855d88cd9f39ab2563 on Jasig:master.

Coverage decreased (-0.01%) to 23.034% when pulling 1182bcec345b9913b42bb6ba0b831af68237d65f on CR96:UP-4802 into f6289512ff696980a02ad3855d88cd9f39ab2563 on Jasig:master.

Coverage decreased (-0.003%) to 23.041% when pulling bfa56fe46570dacf436eafb3f4cfe573107c0723 on CR96:UP-4802 into e662a9d303b0255880ad7c5c0c3da82a7fdd41d5 on Jasig:master.

Coverage decreased (-0.003%) to 23.041% when pulling bfa56fe46570dacf436eafb3f4cfe573107c0723 on CR96:UP-4802 into e662a9d303b0255880ad7c5c0c3da82a7fdd41d5 on Jasig:master.

Coverage decreased (-0.01%) to 23.031% when pulling da5bee5dd07e1f17127a4862869e885db238e39d on CR96:UP-4802 into e662a9d303b0255880ad7c5c0c3da82a7fdd41d5 on Jasig:master.

This PR looks pretty solid -- thanks @CR96!

This solution was merged into master and hand-applied to rel-4-3-patches.


⚠ Bofrost.be has degraded performance

In 8e46974, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1236 ms

Resolved: Bofrost.be performance has improved in 0e1ec7a after 6 minutes.


added contact us page

i added a contact us page  issue #140

please add gssoc-ext and level3 before merge @rishicds

please review @rishicds

hello, sorry for the late, merged! good job!


[Request] card-preview-cafe

https://dribbble.com/shots/20541219-Cafe-Finder-App

I'd love to tackle on this. PR submitted (#33).


Persist payments on coordinator

We are still using InMemoryStorage on the coordinator and should safe the payments in the database.

Note: I am doing this in preparation for https://github.com/get10101/meta/issues/169


add yubico/u2flib-server to min version 1.0.0

If this works I don't see a problem with replacing the current 0.1.0 with 1.0.0. Did you test it?

yes, I have tested with a private copy.

@darookee anything else needed for a merge?