behaviour of publish + refCount !== share?

Problem
My understanding is that share meant to be a shorthand equivalent to publish().refCount() - is my understanding correct?
If so then, I have noticed that there are cases where this is not so.
Example
Note: for the running example open codepen
Take for example:
let fakeUrlPrefixFetch$ = Rx.Observable.interval(2000).take(1);
let fakeMovieListFetch$ = Rx.Observable.interval(3000).take(1).map(x => [x]);
let fakeQueuedMoviesFetch$ = Rx.Observable.interval(2500).take(1).map(x => [x])

// let urlPrefixFetched$ = urlPrefixFetch$.share();
let urlPrefixFetched$ = fakeUrlPrefixFetch$.publish().refCount();

let movieListFetched$ = urlPrefixFetched$.flatMap(url => fakeMovieListFetch$);
let queuedMoviesFetched$ = urlPrefixFetched$.flatMap(url => fakeQueuedMoviesFetch$);
let allMoviesFetched$ = Rx.Observable.concat(movieListFetched$, queuedMoviesFetched$);

printTime("subz1 created");
let subz1 = allMoviesFetched$.subscribe(
  x => printTime(`subz1 ${JSON.stringify(x)}`),
  null,
  _ => printTime("subz1 completed"));

The subscribed observer receives items emitted from movieListFetched$ but NOT from  queuedMoviesFetched$.
Whereas the if you replace the publish().refCount() with:
let urlPrefixFetched$ = fakeUrlPrefixFetch$.share();

... the subscriber end up receiving items from BOTH movieListFetched$ and queuedMoviesFetched$.
My guess at an explanation
My guess is that with publish().refCount(), the observable produced (urlPrefixFetched$) is not being disconnected when the concat operator switches from emitting items from the second observable.
As a consequence fakeUrlPrefixFetch$ is already completed.
On the other hand with share, at the point of concat moving between observables, urlPrefixFetched$'s ref count drops to 0. It is then reconnected to causing the cold observable (urlPrefixFetch$) to emit a new set of (1) items.

I don't know the specifics, but from the source it looks like .share() is a shorthand for .multicast(() => new Subject()).refCount() whereas .publish() is a shorthand for .multicast(new Subject()). That factory function makes a difference according to the test cases:
https://github.com/ReactiveX/RxJS/blob/master/spec/operators/multicast-spec.js
https://github.com/ReactiveX/RxJS/blob/master/spec/operators/publish-spec.js
https://github.com/ReactiveX/RxJS/blob/master/spec/operators/refCount-spec.js
https://github.com/ReactiveX/RxJS/blob/master/spec/operators/share-spec.js

@christianacca @plievone yes, we finally decided to fix a long-standing backwards-incompatible bug with multicast in v5. We've kept the old behavior in the publish operators (reusing the Subject), but opted for the fixed behavior in the share operators (recreating the Subject). More context is available here https://github.com/ReactiveX/RxJS/issues/453#issuecomment-145165630 https://github.com/ReactiveX/RxJS/issues/453#issuecomment-152276434

OK, I see that was a hard decision to make.
Of course expect this to trip quite a number of devs up simply because there are a lot of existing historical mentions (eg) that share is equivalent.

Related issue: https://github.com/ReactiveX/rxjs/issues/1914
It would be good to fix the docs here to avoid further confusion.


Add a save method for the APIDataSet

Description
We sometimes want to save some data with a REST Api (say with Django Rest Framework), most of the time issuing a POST request. So far, the APIDataSet is read only, with the _save method raising a DataSetError, we'd want to extend it to make a request.
Context
I have successfully subclassed the APIDataSet to overwrite this method, but it could be useful to have this natively here.
Possible Implementation
One option would be to use the same args as the APIDataSet, and to only define it as a saved dataset. One argument that I needed was a chunk_size which could be part of the save_args to limit the size of the payload when the data we try to save is too big and causes issues.
The data that we save is a list of dict, most of the time the result of a pandas.DataFrame.to_dict(orient="records").
Possible Alternatives
The accepted data could be a dataframe directly, but I feel like adding a node so that the users have to be explicit about their serialization would lead to less pain in the end ;).
We could hardcode the POST method, but I can image cases where a PUT method for a partial update could be useful as well.
cc @McDonnellJoseph

See pull request gh-180 🚀


Stop hardcoding ESR version

Part of the queries were using
https://wiki.mozilla.org/Template:ESR_VERSION while some others (and the
email text) hardcode 45.  Let's not.
Fixes #12

I think #12 was a bit more complex.
I think the issue was when we have two ESR in parallel (like currently with 45 and 52).
Your patch still makes sense but won't close #12

I amended the commit message yesterday to close #78  instead of #12

merci!


Intermittent lost connection on tls origination

Bug description
I'm using to TLS origination feature to connect external elasticsearch cluster, running in the same network, but on separate kubernetes cluster. Elasticsearch is running behind load balancer (if it matters). Every few minutes some requests never finish and leave connection hanged (happens with application as well as curl within mesh).
When I try to connect directly to load balancer hosting ES it always responds succesfully.
There is nothing after this in curl output:
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55ef1f44df90)
* Connected to elasticsearch-data-master.<domain> (<<IP_ADDRESS>>) port 80 (#0)
* Server auth using Basic with user '<user>'
> HEAD / HTTP/1.1
> Host: elasticsearch-data-master.<domain>
> Authorization: Basic <redacted>
> User-Agent: curl/7.64.0
> Accept: */*
>

After killing curl and retrying connection it works again.
This is my configuration:
VirtualService:
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: elasticsearch-data
  namespace: istio-system
spec:
  hosts:
  - elasticsearch-data-master.<domain>
  http:
  - match:
    - port: 80
    route:
    - destination:
        host: elasticsearch-data-master.<domain>
        port:
          number: 9200
        subset: tls-origination

ServiceEntry
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: elasticsearch-data
  namespace: istio-system
spec:
  hosts:
  - elasticsearch-data-master.<domain>
  ports:
  - name: https-port-for-tls-origination
    number: 9200
    protocol: HTTPS
  - name: http-port
    number: 80
    protocol: HTTP
  resolution: DNS

DestinationRule
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: originate-tls-for-elasticsearch-data
  namespace: istio-system
spec:
  host: elasticsearch-data-master.<domain>
  subsets:
  - name: tls-origination
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
      portLevelSettings:
      - port:
          number: 9200
        tls:
          mode: SIMPLE

[ ] Docs
[ ] Installation
[ x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior
Steps to reproduce the bug
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
istioctl version --remote
client version: 1.6.8
control plane version: 1.6.14
data plane version: 1.6.14 (64 proxies)
---
kubectl version --short
Client Version: v1.19.4
Server Version: v1.19.3

How was Istio installed?
istioctl
Environment where the bug was observed (cloud vendor, OS, etc)
Azure AKS

A little update from my side. The problem seems to be related to load balancer sending TCP_RESET for idling connections. After such event envoy doesn't remove tcp session right away, but makes 1 more attempt to reuse it. After it fails it's removed (every time I had failed connection, it was first attempt to use given session after RESET, so I presume that after such failure it is removed from pool).
This is basically how it looks in wireshark:

For the time being workaround that seems to be working for me is to add TCP keepalive in destination rule like this:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: originate-tls-for-elasticsearch-data
  namespace: istio-system
spec:
  host: elasticsearch-data-master.<domain>
  subsets:
  - name: tls-origination
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
      portLevelSettings:
      - connectionPool:
          tcp:
            tcpKeepalive:
              interval: 180s
              time: 180s
        port:
          number: 9200
        tls:
          mode: SIMPLE

A little update from my side. The problem seems to be related to load balancer sending TCP_RESET for idling connections. After such event envoy doesn't remove tcp session right away, but makes 1 more attempt to reuse it. After it fails it's removed (every time I had failed connection, it was first attempt to use given session after RESET, so I presume that after such failure it is removed from pool).
This is basically how it looks in wireshark:

For the time being workaround that seems to be working for me is to add TCP keepalive in destination rule like this:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: originate-tls-for-elasticsearch-data
  namespace: istio-system
spec:
  host: elasticsearch-data-master.<domain>
  subsets:
  - name: tls-origination
    trafficPolicy:
      loadBalancer:
        simple: ROUND_ROBIN
      portLevelSettings:
      - connectionPool:
          tcp:
            tcpKeepalive:
              interval: 180s
              time: 180s
        port:
          number: 9200
        tls:
          mode: SIMPLE


websocket not open?

I'm going to guess this is due to my mishandling players leaving and rejoining, but that's pure guesswork - is this any sort of known issue, or should I be going over the 'leaving and deleting scenes and groups' code with a fine toothcomb?
1/18/2019 2:25:38 PM|Fatal|WebSocket.b__179_2:0|WebSocketSharp.WebSocketException: The header of a frame cannot be read from the stream.
at WebSocketSharp.WebSocketFrame.processHeader (System.Byte[] header) [0x00000] in :0
at WebSocketSharp.WebSocketFrame+<>c__DisplayClass73_0.b__0 (System.Byte[] bytes) [0x00000] in :0
at WebSocketSharp.Ext+<>c__DisplayClass55_0.b__0 (IAsyncResult ar) [0x00000] in :0
InvalidOperationException: The current state of the connection is not Open.
at WebSocketSharp.WebSocket.Send (System.String data) [0x00000] in :0
at Microsoft.Mixer.InteractivityManager.SendJsonString (System.String jsonString) [0x00019] in E:\PGWeb\TwitchPlays\TwitchPlays\Assets\MixerInteractive\Source\Scripts\InteractivityManager.cs:3615
at Microsoft.Mixer.InteractivityManager.SendMessage (System.String message) [0x00003] in E:\PGWeb\TwitchPlays\TwitchPlays\Assets\MixerInteractive\Source\Scripts\InteractivityManager.cs:1183

Hello, so since you are talking about WebSocket, does this mean you are making a version for Unity WebGL? Im making a WebGL game and want to integrate mixer in there,  but mixer dont seem to have a WebGL version for  unity.

Thank you for your question. Unfortunately we do not have plans to have a WebGL version of the plugin.

Thanks for the response, would it be allowed for me to write my own WebGL mixer player?

You definitely can! Although, we usually don't take pull request for new features so it would need to be in it's own repo (kind of like the VR chat implementation). The reason being anything that ends up in this repo we need to maintain so we like to know what we're signing up for :)

Yeah! glad to know there is nothing in the mixer terms of service that prevents me from writing my own mixer live stream player for WebGL.
Basically i just need to get a hold of the steam URL for a particular streamer, can you start me off with the API for that? Thanks

Great! Happy coding!

So you work for mixer?

I do.

Do you know which API i can call to get the actual url for the HLS live stream for a particular streamer?

I don't. I don't know if there's a specific API since that logic would be handled within the Mixer player most likely.

So then its impossible to write a player for it since i cant get the HLS stream to send to the player.

I'd say it's more like not supported. Usually people will use an embed if they want video.
Sorry, I misread the thread. I thought you were talking about writing a Unity player for WebGL (player is another word we use for platform support, like we have platform support in this plugin for Win32, Window Store, etc). I didn't realize this was about video playback, not interactivity.

So then i cant write a custom player?

Unfortunately I'm not on the video side of Mixer. I wouldn't be able to say what the policy is for that. I don't believe we have public APIs for getting the HLS stream though.

always bad news, oh well


EFS volume mounts not applicable in Amazon Linux 2 AMIs

https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/instance-configuration/storage-efs-mountfilesystem.config#L54
The get-config command is no longer available in AL2 AMIs. It would be nice to have updated examples for these scripts that will work in those environments.

The script throws this error
mount: :/: can't find in /etc/fstab.
I opened an issue earlier but then closed it (https://github.com/awsdocs/elastic-beanstalk-samples/issues/119)

See: https://github.com/awsdocs/elastic-beanstalk-samples/issues/111
I think this is a bit of a show stopper at the moment and really needs to be fixed.
Being unable to get environment variables at all makes it almost impossible to do anything dynamically.

See: #111
I think this is a bit of a show stopper at the moment and really needs to be fixed.
Being unable to get environment variables at all makes it almost impossible to do anything dynamically.

Can't believe they closed the issue with "its great and post to aws forum", lol

Here's my workaround for now:
#!/usr/bin/env bash
# --------------------------------------------------
# GET ENVIRONMENT VARIABLES
# @filename .platform/hooks/predeploy/00-export-env-var.sh
# @see https://github.com/awsdocs/elastic-beanstalk-samples/issues/111
# --------------------------------------------------

# Where to output the env vars too
# Usage: source /var/app/envvars
ENV_VARS_FILE=/var/app/envvars

# Get the Region
ENV_REGION="$(</opt/elasticbeanstalk/config/ebenvinfo/region)"

# Get the Stack ID
ENV_STACK_ID="$(</opt/elasticbeanstalk/config/ebenvinfo/stackid)"

# Pass the variables to the CloudFormation Meta Data command.
# Pipe the data to JQ to reduce the environment variables array to an actual key value map
ENV_VARS_KWARGS="$(sudo /opt/aws/bin/cfn-get-metadata -s ${ENV_STACK_ID} -r AWSEBBeanstalkMetadata --region ${ENV_REGION} -k "AWS::ElasticBeanstalk::Ext.Parameters.EnvironmentVariables" | jq -c '. |= reduce (.[] | split("=")) as [$key, $value] ({}; .[$key] = $value)')"

# Access any environment variable like so
jq -r 'to_entries[] | [.key,.value] | join("=")' <<< ${ENV_VARS_KWARGS}>${ENV_VARS_FILE}

After this runs, you can then do: source /var/app/envvars and use the environment variables that way instead.

The environment variables are available as soon as the environment has been successfully deployed, e. g. as global environment variables in PHP. But if you need them during deployment process, for example in a hook, there seems to be no solution from AWS side yet.
Some people will run into the next problem, if they change an environment variable in a running instance. The hooks won't be executed. So if you have used a hook to replace something with an environment variable in your artifact, it will not be replaced with the new value after configuration update.

Hey Guys,
Here is an updated config file for EFS using the method from #111.
#!/bin/bash

# Get the environment variables
ENV_REGION="$(</opt/elasticbeanstalk/config/ebenvinfo/region)"
ENV_STACK_ID="$(</opt/elasticbeanstalk/config/ebenvinfo/stackid)"
ENV_VARS_KWARGS="$(sudo /opt/aws/bin/cfn-get-metadata -s $ENV_STACK_ID -r AWSEBBeanstalkMetadata --region $ENV_REGION -k "AWS::ElasticBeanstalk::Ext.Parameters.EnvironmentVariables" | jq -c '. |= reduce (.[] | split("=")) as [$key, $value] ({}; .[$key] = $value)')"

EFS_MOUNT_DIR=$(jq -r '.MOUNT_DIRECTORY' <<< $ENV_VARS_KWARGS)
EFS_FILE_SYSTEM_ID=$(jq -r '.FILE_SYSTEM_ID' <<< $ENV_VARS_KWARGS)

echo "Mounting EFS filesystem ${EFS_FILE_SYSTEM_ID} to directory ${EFS_MOUNT_DIR} ..."

echo 'Stopping NFS ID Mapper...'
service rpcidmapd status &> /dev/null
if [ $? -ne 0 ] ; then
    echo 'rpc.idmapd is already stopped!'
else
    service rpcidmapd stop
    if [ $? -ne 0 ] ; then
        echo 'ERROR: Failed to stop NFS ID Mapper!'
        exit 1
    fi
fi

echo 'Checking if EFS mount directory exists...'
if [ ! -d ${EFS_MOUNT_DIR} ]; then
    echo "Creating directory ${EFS_MOUNT_DIR} ..."
    mkdir -p ${EFS_MOUNT_DIR}
    if [ $? -ne 0 ]; then
        echo 'ERROR: Directory creation failed!'
        exit 1
    fi
else
    echo "Directory ${EFS_MOUNT_DIR} already exists!"
fi

mountpoint -q ${EFS_MOUNT_DIR}
if [ $? -ne 0 ]; then
    echo "mount -t efs -o tls ${EFS_FILE_SYSTEM_ID}:/ ${EFS_MOUNT_DIR}"
    mount -t efs -o tls ${EFS_FILE_SYSTEM_ID}:/ ${EFS_MOUNT_DIR}
    if [ $? -ne 0 ] ; then
        echo 'ERROR: Mount command failed!'
        exit 1
    fi
    chmod 777 ${EFS_MOUNT_DIR}
    runuser -l  ec2-user -c "touch ${EFS_MOUNT_DIR}/it_works"
    if [[ $? -ne 0 ]]; then
        echo 'ERROR: Permission Error!'
        exit 1
    else
        runuser -l  ec2-user -c "rm -f ${EFS_MOUNT_DIR}/it_works"
    fi
else
    echo "Directory ${EFS_MOUNT_DIR} is already a valid mountpoint!"
fi

echo 'EFS mount complete.'

All,
We appreciate the sentiment and acknowledge that this is a serious issue. The reason I closed #111 and will close this one isn't that this isn't important - it's because we're already aware of the problem and are tracking it internally. The Beanstalk team indicated that they're working on re-implementing get-config for the AL2 platforms.

Oh, I'm sorry.
I clearly didn't get the governance modal. AWS aren't tracking issues here "live" - instead more like what Google do with "open" Android and things are just tossed over the wall ?
I'm used to Apache where the issue tracker and code is the tracker and code :)
Do you have a timeline ? Otherwise I'm just going to write my own version of get-config today so we can continue our project without having to by hand update every single script...

@tomchiverton This is a repo of documented examples - not a tracking system for Elastic Beanstalk issues.
We do have a place where everyone can post suggestions and track progress - it's the Elastic Beanstalk roadmap, here.


Fix check for VIRTUAL_ENV_DISABLE_PROMPT with the agnoster theme

I had the problem using the agnoster theme and have Python virtualenv in place. I set the environment variable VIRTUAL_ENV_DISABLE_PROMPT and this should prevent the prompt to show the virtualenv Environment. The check was bad because with -n the variable is true if the variable is set. I fixed it to use -z and it works for me.

I see what you're getting at here. It would be nice to disable parts of the prompt in agnoster, but this check appears to be here on purpose. With your changes, the prompt will show up multiple times (once provided by virtualenv, which is disabled by this variable and once by the theme).

Ok. I can not reproduce the multiple prompts on my side. I don't think it's a feature of the theme, it's just the coloring, etc.? Is there a way to disable it in oh-my-zsh or the theme? I have a "default" virtualenv which will show up every time. ;)

Sorry for the confusion. I've just tested it to make sure I understood what was going on. With your change, the themed virtualenv part of the prompt never shows up at all (If you don't set VIRTUAL_ENV_DISABLE_PROMPT, the normal virtualenv display happens - you don't see the themed version... and if it is set, nothing shows up at all).
The idea behind using VIRTUAL_ENV_DISABLE_PROMPT in the theme was to only display the themed version when the normal virtualenv wouldn't display.

With your patch and VIRTUAL_ENV_DISABLE_PROMPT not set, it will display like this: https://www.dropbox.com/s/lcqc3jer598ien2/Screenshot 2017-03-03 00.36.56.png?dl=0

Maybe it's because I'm not using virtualenv outside of the "global environment". Do you use the zsh virtualenv plugin?
But I still don't get the logic of the check in the theme. If $VIRTUAL_ENV_DISABLE_PROMPT is set (without considering the value), go and show it? That was my motivation for the patch.
Maybe we need to add some more logic to avoid the prompt showing multiple times.

VIRTUAL_ENV_DISABLE_PROMPT is from virtualenv (https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.sh#L56), and the usage here is to prevent the double display, as I showed in the above screenshot. I agree that logically it doesn't make sense, but that's why it's currently there. :)

I close this issue for now, since I don't use virtualenv anymore and it seems to be a personal problem.


Blue_crab Integration

Reason.
Blue_crab integration is critical for using Thermochimica within the MOOSE framework for use with other reactor codes like Griffin & Pronghorn. Currently Thermochimica within MOOSE can't build with Blue_crab due to Griffin & Thermochimica having a same subroutine name without the use of namespace. This mean Thermochimica calls a Griffin subroutine whenever it is called via Blue_crab.
Proposed Solution
A pull request has been made resolving this issue by changing the PostProcess subroutine name (only 3 files) to PostProcessThermo.
Impact
No actual changes to Thermochimica, but allows Thermochimica to be called within Blue_crab successfully.

Resolved in #133


Using heroku stack images for local development

Hi,
I'd like to run heroku locally to ease development, i.e.: so as to have the same environment for dev as heroku provides for staging and prod.
I'd like to use the heroku Docker images for that. This way, I wouldn't have to install every requirement manually in OS X, and would be able to juggle between different versions with the same ease as on heroku.
It's not clear yet how I can use those images.
I was able to pull the image with docker pull heroku/heroku:16, then start it with docker run -i -t heroku/heroku:16 /bin/bash.
However, I'm a bit confused as to what to do next. Could you provide some guidelines? e.g.:
How do I (Can I?) configure heroku to deploy locally to the local Docker heroku container, instead of the staging or production environments?

Hello there,
When using Docker, you don't need to use the base image we provide (though you absolutely can). You can use any base image you wish.
Docker allows you to set a base image in your Dockerfile with the FROM instruction:
FROM heroku/heroku:16

You can look at our Alpine Hello World app for a very simple example of a Dockerfile.

How do I (Can I?) configure heroku to deploy locally to the local Docker heroku container, instead of the staging or production environments?

There might be a misunderstanding here. When you use your container locally, there is no Heroku involved. You just need to build the container and start it, like any other Docker one.
Only when you wish to push it to our registry will you need to start worrying about us, as the docker push needs to push to registry.heroku.com.
Our registry CLI plugin will handle that for you see the doc.
Note that the big difference between deploying with our container registry and the standard way of using GIT push, GitHub Sync or our API is that the later will allow us to upgrade base libraries such as OpenSSL without the need for a new deployment from you.
We cannot upgrade the base image of your docker container without you triggering a new deployment.
So while we update base packages when there are security issues, we can't do that for docker containers which means that works falls back to you.

Thank you, that clarifies it a bit.
So if I get that right that means that, even if I use the heroku/heroku:16 image, I still need to install the requirements myself? e.g.: PHP in the specific version I need, the webserver, etc.
Ideally, I wanted to use the exact same environment as heroku uses in production. e.g.: FPM/FastCGI rather than some other version of PHP; identify and enable the same PHP extensions; identify and install the same version of Apache or nginx…
Do I get that right, or is there a simpler way to reproduce the production environment locally?

Do I get that right,

That's correct.
What would be awesome would be a variant of heroku/heroku:16 that includes a buildpack loader that then clones/runs any listed buildpacks, to provide an environment that more closely matches production.

Though doing so would be hacky (or slow), since the Dockerfile would have no way of knowing which files the buildpacks required (eg runtimes.txt, post_compile, yarn.lock), so would either have to copy all of them in, or require the user to do so and keep the list in sync.

Ed is absolutely right.
When deploying your PHP app, we will execute the php buildpack, which will install all dependencies and make the app ready to be run (not as a docker container though. We use LXC).
Your local environment would need to mimick the execution of the buildpack, which would be tricky today.
This is definitely something on our mind though (not only for reproducing production environments locally, but also to make it easier to test buildpacks).

Thanks a lot, it's a lot clearer now.
There's gonna be a lot of variability of course, but I'll ask anyway: what do people usually go for in terms of local development workflow then? Would you recommend:

Using the heroku/heroku:16 Docker image and installing the dependencies I need.
Using a default Ubuntu Docker image and installing the dependencies I need.
To figure a way to execute the buildpack locally, maybe using LXC inside of Vagrant.
Taking it easy: merely installing in OS X the dependencies I need.

Sorry for the many questions. I was able to find a lot of doc in terms of deploying to Heroku, but not so much in terms of best practices for local development.

Some people run the buildpacks in the container (it's possible, the api is public).
Though I haven't seen many do so.
Even using docker will not be exactly the same thing as on our platform though. You will have the same versions, but we block sudo access and allow only storing files in /app at build time while docker allows storing files anywhere on the system.
Using LXC would bring you closer. But is it really worth the effort?
For most apps, the abstraction level allows them to run the app locally, with the development environment provided by their machine.
Then, review apps allow testing in an environment much similar to the one there is in production.
The other production similarity you won't be able to achieve easily and which reinforces that idea of not trying to mimick production at 100% locally is that our router will proxy requests to your app, while with docker you will call it directly.

So I've gotten pretty far by creating a dockerfile that looks like this:

FROM heroku/heroku:16

ENV APPLICATION /app
ENV RAILS_ENV development
ENV RACK_ENV development
ENV PORT 3002
ENV STACK heroku-16

WORKDIR $APPLICATION

COPY Gemfile $APPLICATION/
COPY Gemfile.lock $APPLICATION/

RUN wget -q -O /heroku-buildpack-ruby-master.zip https://github.com/heroku/heroku-buildpack-ruby/archive/master.zip
RUN unzip -q /heroku-buildpack-ruby-master.zip -d /
RUN /heroku-buildpack-ruby-master/bin/detect $APPLICATION && /heroku-buildpack-ruby-master/bin/compile $APPLICATION/ /tmp

EXPOSE $PORT

CMD ["bin/rails", "server", "puma", "--binding=<IP_ADDRESS>"]

One difficulty I've encountered is that nokogiri wants gcc. I figured heroku-16 would come with gcc?

I figured heroku-16 would come with gcc?

heroku/heroku:16-build does, but heroku/heroku:16 intentionally does not. See:
https://devcenter.heroku.com/articles/heroku-16-stack#heroku-16-docker-image
The list of packages in each are here:
https://github.com/heroku/stack-images/blob/afcf9ecfaaa37dadd02950bd18e6d3db16a275fe/heroku-16/bin/heroku-16.sh#L87-L127
https://github.com/heroku/stack-images/blob/afcf9ecfaaa37dadd02950bd18e6d3db16a275fe/heroku-16-build/bin/heroku-16-build.sh#L9-L68
(gcc comes along with the build-essential package)

Once I did that it worked!
Now my blocker is that once I create a container around this build none of the gems exist (including bundler).

If you take a look in $APPLICATION/.profile.d, you'll find a number of scripts created by the buildpack. You'll likely have to source these to initialize all environment variables.

So the only thing I have to figure out now is how to source right path changes.
Has anyone done this in an automated way?

Oh, and the other thing is that the current nodejs buildpack creates a $BUILD_DIR/.profile.d/nodejs.sh file that adds $HOME/node_modules/.bin to the path, but that directory doesn't exist since:

heroku-16 supposes the directory will be /app not /root (which is the $HOME)
The compile script can take a dynamic $BUILD_DIR as an argument.

I need to talk to @jmorrell and @hunterloftis about that - I'm not completely clear on why the Node buildpack uses $HOME there, and it's inconsistent with what our other buildpacks do.
It might be worth creating a user during docker build whose home is /app, and using that user. That's consistent with how Heroku dynos run - we don't run your app as root - so it will also help with reproducibility. Something like
RUN useradd --home-dir /app app
USER app

should do it. It may also be worth chowning /app to app: so that that user has permission to write to the dir.

I'm closing this issue due to inactivity and as it doesn't seem there's an action for us to take. Please reopen if I'm mistaken.

If it helps for anyone else who comes across this issue looking for how to replicate heroku's dual-image pattern using Docker multi-stage builds... the following is what languages:\n - ruby produces when using the new heroku.yml build manifest developer preview:
FROM heroku/heroku:16-build as build
COPY . /app
WORKDIR /app
RUN mkdir -p /tmp/buildpack/ruby /tmp/build_cache /tmp/env
RUN curl https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/ruby.tgz | tar --warning=none -xz -C /tmp/buildpack/ruby
RUN STACK=heroku-16 /tmp/buildpack/ruby/bin/compile /app /tmp/build_cache /tmp/env

FROM heroku/heroku:16
COPY --from=build /app /app
ENV HOME /app
WORKDIR /app
RUN useradd -m heroku
USER heroku
CMD bundle exec puma -C config/puma.rb

Anyone know how to get the above working with jruby? The download timeouts, but the link seems to work fine when I click it manually.

I grabbed the latest multi-stage build steps for ruby like this:
Generate a rails app
rails new rails-hello-world -T -d postgresql
cd rails-hello-world
git init

Add heroku.yml
build:
  languages:
    - ruby
run:
  web: puma

Commit changes
Create heroku app and deploy (watch output for commands)
heroku create --manifest
heroku stack:set container
git push heroku master

Output
FROM heroku/heroku:18-build as build
COPY . /app
WORKDIR /app
RUN mkdir -p /tmp/buildpack/ruby /tmp/build_cache /tmp/env
RUN curl https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/ruby.tgz | tar --warning=none -xz -C /tmp/buildpack/ruby
RUN STACK=heroku-18 /tmp/buildpack/ruby/bin/compile /app /tmp/build_cache /tmp/env

FROM heroku/heroku:18
COPY --from=build /app /app
ENV HOME /app
WORKDIR /app
RUN useradd -m heroku
USER heroku
ENTRYPOINT ["/bin/bash", "-l", "-c"]

As I'm finally becoming a decent software engineer, I'm able to contribute back to the community. I have made significant improvements to the performance of using Heroku's stacks locally.
Well almost. This is almost done, but I can't get the profile.d files to properly source.
First, make sure to set these in your shell config.
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1

Dockerfile
# syntax = docker/dockerfile:1.0-experimental
# https://github.com/heroku/stack-images/issues/56#issuecomment-529177989
FROM heroku/heroku:20-build as build
RUN mkdir -p /tmp/buildpack/ruby /tmp/build_cache /tmp/env
ADD https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/ruby.tgz ruby.tgz
RUN tar --warning=none -xzf ruby.tgz -C /tmp/buildpack/ruby
ENV  BUNDLE_WITHOUT=""
ENV  BUNDLE_DEPLOYMENT=0 # this doesn't overwrite the current position :(
WORKDIR /app
COPY Gemfile .
COPY Gemfile.lock .
RUN --mount=type=cache,target=/tmp/build_cache STACK=heroku-20 /tmp/buildpack/ruby/bin/compile /app /tmp/build_cache /tmp/env

FROM heroku/heroku:20

ENV HOME /app
WORKDIR /app
RUN useradd -m heroku
USER heroku
COPY --from=build /app /app
COPY . /app

SHELL ["/bin/bash", "-l", "-c", "source /app/.profile.d/ruby.sh"]


Unify shard rangeID column and field in Cass persistence

What changed?
Unify shard rangeID column and field in Cass persistence

Why?
When data stored in cass in corrupted, it's possible that value stored in shard rangeID column is different from the one stored in shardInfo struct, which will result in CAS operation failure when we try to acquire the shard.
This pr will always return the rangeID  stored in range_id column to prevent CAS failure. It will also perform a sanity check to detect in consistency between two rangeIDs and try to fixed the inconsistency.

How did you test it?
Tested locally.

Potential risks
In the worst case, we may failed to acquire a shard.

Coverage increased (+0.1%) to 68.913% when pulling d9e5c2367dbd16424631ef0dcdd8e75a78d063d6 on yycptt:unify-cass-shard-rangeID into<PHONE_NUMBER>c2838a12723f97a4c8e1dac99ebce9 on uber:master.


Recursively copying elements from one graph to another

One nifty feature to have in the codebase would be allowing recursive copying of Operation/Tensor/Variable instances from one graph to another. By recursive, I mean that copying the 'top' node (say the trainer for a basic NN) would automatically copy all the required Ops and tensors in the dataflow graph.
This could allow users to easily port common components of different frameworks from an 'origin' graph to a 'target' graph. To avoid naming conflicts, we could add the copied elements under a common namespace in the target graph.
I tried writing up some code for it, and since the project doesn't accept pull request as of now, wrote up a blog post about it. I would like the community's feed back on possible issues or applications. Thanks!
Heres a link to the post: https://codesachin.wordpress.com/2015/11/20/recursively-copying-elements-from-one-graph-to-another-in-tensorflow/

Thanks for the feature request!  We're also experimenting with support for defining "functions" in the graph that would basically allow re-usable components to achieve the same effect.

Thats great! If you guys do enable PRs, you could have a look at my code to see if it can do the job.

Looks like this fell through the cracks.  PRs have been enabled for a while.  @martinwicke: Does this seem appropriate for contrib?

@vrv, what's the status of graph functions? We probably should standardize to one way of doing things, although even in the presence of functions functionality like this seems valuable to extract things from an existing graph.

@zffchen78

I think we accepted this to contrib, closing.


Log terraform version

Component
The `cloud-foundation-toolkit` image used by Blueprint (GitHub repo) integration tests.

TL;DR

Cloud Build logs for Jump Start Solution (JSS) integration tests would ideally always include the version of terraform used by gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS.

Detailed design

Would it make sense to add a terraform version command here: https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/blob/044c3ca90693449fd05d1e7e58229cbf263db864/infra/build/developer-tools/build/scripts/task_helper_functions.sh#L577

Additional information

For now, we could just run (inside our cloudbuild.yaml files) something like:

- id: log-terraform-version
  name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
  args: ['/bin/bash', '-c', 'terraform version']

Logging the TF version would be useful. I would suggest we add to the blueprint-test defaultInit (or similar), which would have the advantage of not requiring an update to the repos/cloudbuild, and also benefit non-cloudbuild/cft cli use cases.

@NimJay TF version logging will be included in https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/pull/2334


How to find the entire response event received in case of negative response to SIP INVITE

Hello @emiago ,
currently, when I initiate the INVITE and then wait for response via dialog.WaitAnswer, I can analyze the response if I get 2xx response via dialog.InviteResponse
However, if the response is 403, we get the Error as "Invite failed with response: SIP/2.0 403 Forbidden".
In this case dialog.InviteResponse is set to "nil"
I would like to analyze the 403 response event as well to check the other headers involved.
Is there a way to achieve this part?
Do let me know if you need any more info from my side.
Thanks

Hi @p-akshay .
Cast to the error ErrDialogResponse . It has response inside

Hi @emiago ,
I tried to typecast the error. However, the compiler is throwing a "type assertion error" while compiling.
here is my relevant code:
errDlg := dialog.WaitAnswer(ctx, sipgo.AnswerOptions{}) if errDlg != nil {    fmt.Printf("%+v\n", sipgo.ErrDialogResponse(errDlg) }
I also tried to directly cast the err to ErrDialogResponse, however, the same compile error was there.
I guess, I am missing something really easy fix here.
Please let me know the changes that I need to add here.
Thanks

@p-akshay sorry not casting, I meant interface assertion.
You have errors.As . I think you can find some go example

@emiago ,
Thanks...It is working now


Are you tired of always losing at 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 because of bad luck with the dice? Well, get ready to have your world turned upside down with the revolutionary new 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice feature that is taking the gaming world by storm!
🔴📺📱👉 Click here FREE DICE Links
🔴📺📱👉 Click here FREE DICE Links
No longer will you have to rely on the luck of the roll to determine your fate in the game of 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢. With the 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice, you have the power to control your own destiny and dominate the board like never before.
But wait, it gets even better! Not only do you get to roll the dice for free, but you also have the option to customize your dice with special power-ups and bonuses that will give you the edge over your opponents. Imagine being able to roll a double six every time or skip ahead to Park Place with just the flick of a wrist – the possibilities are endless!
And that's not all – with the 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice, you can play with friends and family from all over the world in real-time multiplayer matches. Challenge players from across the globe to see who truly has what it takes to become the ultimate 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 master.
But don't just take our word for it – here are some testimonials from real players who have experienced the magic of the 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice for themselves:
"I used to dread playing 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 because I never seemed to get a good roll with the dice. But ever since I started using the 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice, I've been winning every game! It's like having a cheat code built right into the game – I love it!" - Sarah, 28
"I never thought I would be able to beat my older brother at 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢, but thanks to the 𝚖𝚘𝚗𝚘𝚙𝚘𝚕𝚢 Go Free Dice, I finally have the upper hand. He doesn't stand a chance now!" - Michael, 16
So what are you waiting for?


Apply to many framework

From #1

Spring
Grizzly
...etc.

It's too hard to recognize frameworks. Orz


Add back the key not found diagnostic code

Purpose
$title
Fixes #
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Closing this as we decided to use different error code in file for now


[Question] Is there a constant RR_BINARY like PHP_BINARY ?

Hi,
Just a silly question is there a way to get the roadrunner binary path ? using something like the existing PHP_BINARY constant for example ?
I know i can check if the "rr" or "rr.exe" file is present at the root dir, but i am looking for a more clean solution (in case the "--location" param is used in the "get-binary" command).
Keep up the good work.

Doable. May I ask for the use case? In an ideal world, the PHP should know nothing about RR binary and relay on RR_RPC address to communicate with the parent server.

In our use case it's to have the possibility to start the RR server using a console Command (and i don't want the user to manualy pass the binary path). I used the reference to PHP_BINARY because you can fire the build-in server using someting like exec(PHP_BINARY . '-S'). So I was searching for a similar way.

Unfortunately, it's not possible to define the ENV variable outside of RR binary process tree. Try to use an OS-specific ENV variable.

Say in truth it's possible, but not necessary :) @ncou I agree with @wolfy-j, If that solves your problem, you can define ENV variable with path to RR and download RR into that path (and then use that ENV var). Or you can provide a more relevant sample why do people need this :)

Thank you for your feedbacks, I will try to do a workaround. Have a good day.


Update navigation-from-an-app-outbound-navigation-d782acf.md

deleted double pointed bracket on line 275

Hello @ZwenAusZwota ,
Thanks for spotting this.
I've made the correction, which will be visible with the next release.
Merging the pull request now :-)


Delete Node doesn't Delete Tags

Kapacitor: 1.1.1
InfluxDB shell: 1.1.1
Installation Source: Pre-built package
OS: Linux Mint 18 Sarah 64-bit | Kernel Linux 4.4.0-57-generic x86_64
In the example below the fields get deleted but the tags don't.
Am I missing something or is this a bug?
var raw_event = stream
    |from()
        .measurement('raw_event')
    |delete()
        .tag('glocation')
        .field('rcount')
        ...
raw_event
    |influxDBOut()
        .database('test1')
        .measurement('test1')

Stats show....
"node-stats": {
    "delete2": {
        "avg_exec_time_ns": 11857,
        "collected": 1378,
        "emitted": 1378,
        "fields_deleted": 5512,
        "tags_deleted": 0
        }...

@rbinnun The stat counter only increments if a tag existed to be deleted. Can you confirm that the glocation tag exists on the raw data and has been deleted after the |delete()? Using |log() is a quick way to debug it.

@nathanielc The |delete() is working just fine. I was showing a fragment of the code above. Once I added the |log() it helped me spot the issue pretty quickly - thanks!


Add product content Schema to the Product level

Idea Description
Data Product consumers want to see the content schema and access it to validate stream from the product in case it is for example API driven.
The Schema could be inline, internal reference or as link. The example sketches below
Examples
As inline
  Schema
    type= "inline"
    value ="schema elements here inside string..."

As ref
The Schema would be defined separately in the spec. This option is not applicable as is now. This would require more changes is the specification.
  Schema
    type= "ref"
    value ="$stream"

As url
  Schema
    type= "url"
    value ="https://someurl.com/schema.json" (must either JSON or XML)

Schema is now part of the spec and is mandatory


update by justin on 20231006

Add here your WMS ID:11478
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[ ] All filenames are lower case (including folders, images, files, etc.)
[ ] Filenames are descriptive
[ ] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[ ] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[ ] Image references in markdown contain an alternate text

For the Lab1:Initialize the BDS Environment, I have Add the steps to Create Ingress Security Rules (and Open Ports) for Ambari.


anchore subscription show  returns incorrect current subscription value

When using a filter value in 'anchore subscription show' the result component for 'current subscriptions' is empty when it should contain results that match the filter.

root@ubuntu:/# anchore subscriptions show node
Available:
 - node
Current Subscription: []

root@ubuntu:/# anchore subscriptions show
Available:
- mongo
- redis
- node
- debian
- elasticsearch
- centos
- nginx
- ubuntu
- postgres
- mysql
- busybox
Current Subscription:
- redis:latest
- node:latest
- ubuntu:latest
- centos:latest
- mongo:latest

the 'subscriptions' command has been replaced in 1.0.X with 'feeds'


Bug 1962502: Create custom metrics to list unmanaged Routes and Ingresses without IngressClassName

This PR adds two custom metrics to count the number of ingresses without IngressClassName and the number of routes owned by ingresses no longer managed.

pkg/route/ingress/ingress.go: Registers metrics to the KubeRegistry. Moves the logic to determine which ingresses are managed to a separate ingressManaged function.
pkg/route/ingress/metrics.go: Implements Registrable interface so that the metrics can be registered to the KubeRegistry. Creates the metrics and implements the collector for the metrics.
pkg/route/ingress/metrics_test.go: Adds unit-test for the metrics.

/retest

/retest

/retest

/retest

/assign
/assign @rfredette

/retest

/retest

/retest

/approve

/lgtm


latin1 invalid encoding on node 4

@reconbot the new tests fail on node 4 because latin1 is not a supported encoding
i'll probably comment that section out

i removed lastIndexOf tests this is an important missing part

do you need this @reconbot ?


Add spring boot starters and some restructuring

I moved the existing code into a submodule. Most of the "changed" files are only moved with no actual changes.
Not sure if you want to officially support/maintain this, but I created starters for spring boot that take care of reading the configuration properties and creating the Recombee instance. Most people using Recombee for a Spring Boot Project will do the same steps of reading the configuration and creating a Recombee Bean most of the time. By providing the starter developers can skip these steps and instead only need to add the properties to their configurations and can start using the RecombeeClient immediately. Based on https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration, especially https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration.custom-starter .
The changes are an optional add-on. Existing user can keep using the client as before without needing to change their pom or code.
For this I also did some restructuring to make using the project easier. I separated it into multiple commits, so feel free to cherry-pick the parts that you are interested in, if you don't want to pull all changes.
f2adf4dfa9daee3b20ff8197e4dfb228c8b7264f adds a simple gitignore so you can simply git add . instead of having to select the files to commit manually.
0cd82ac6451a72f98f26e0730cb0a70f764963e2 moves the existing client to a submodule to allow adding further submodules for different specialized features, in the case of the full merge requests for the spring boot starters. The parent module is suffixed with -parent, allowing the api-client submodule to keep its original artifactId.
98fb2e92d06b7a08aa97e47a64412351dc64f1e3 moves the release steps to a maven profile instead of always executing them. This makes it easier to install snapshots etc. into the local maven repository (see https://central.sonatype.org/publish/publish-maven/#using-a-profile )
8965508eb7699e05a8819cbd49c8d955fbd03108 adds the autoconfiguration and starter for Spring Boot 2. While Spring Boot 2 already reached eol, there still are quite a few applications around using the old version. Also includes the documentation, so if you only include the starter for Spring Boot 3, you might still want to take the README from this commit.
c882bebc1bcd3fed039f78d023b7e5c6ce1c9db1 changes to junit's scope to test. You are currently including it as a compile dependency. It also refactors/improves the tests for the starter.
e3e6e0c82addde65f556d1f254317ea2014d98f9 adds the autoconfiguration and starter for Spring Boot 3.

Thank you @125m125  for the pull request! The functionality sounds like a great addition to our SDK.
We will review the proposed changes in the upcoming two weeks.


Can't mount grape-swagger into Rails engine

When using grape-swagger in an API which is defined in a rails engine, the swagger_doc is not generated, because the route is not found.
It should be possible to define the path of the API-engine to specify the right path for grape-swagger.

[Update]
The problem is not related to using grape-swagger in an engine. It seems to be just a problem in generating the swagger_doc.json.
Started GET "/s1_gac_api/swagger_doc" for <IP_ADDRESS> at 2015-09-30 14:05:34 +0200
  ActiveRecord::SchemaMigration Load (0.4ms)  SELECT "schema_migrations".* FROM "schema_migrations"

NoMethodError (undefined method `partition' for nil:NilClass):
  /Users/tim/.rvm/gems/ruby-2.1.5@s1_gac_api/bundler/gems/grape-swagger-9186d70b7ab4/lib/grape-swagger/endpoint.rb:154:in `partition_params'

And please remove this require "awesome_print" because this gem is not in the Gemfile or .gemspec.

https://github.com/LeFnord/grape-swagger/pull/2


<EMAIL_ADDRESS>hash check failed

Hi all,
I'm getting this error while upgrading neovim on windows
neovim-nightly: 0.10.0-dev-346-gd36dd2bae -> 0.10.0-dev-411-g9dd48f783
Updating one outdated app:
Updating 'neovim-nightly' (0.10.0-dev-346-gd36dd2bae -> 0.10.0-dev-411-g9dd48f783)
Downloading new version
nvim-win64.zip (40.8 MB) [====================================================================================] 100%
Checking hash of nvim-win64.zip ... ERROR Hash check failed!
App:         versions/neovim-nightly
URL:         https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.zip
First bytes: 50 4B 03 04 14 00 00 00
Expected:    a2b2f3e524ce6ddefdfeeec790e3b3523377a3d762292d82bc39d4e3f5235b4f
Actual:      1ab758470dffcf0625b17cb168190670f42c7f1b4ff94b7a8682152e0cad82c4

Please try again or create a new issue by using the following link and paste your console output:
https://github.com/ScoopInstaller/Versions/issues/new?title=neovim-nightly%400.10.0-dev-411-g9dd48f783%3a+hash+check+failed

If you need anything let me know, and thanks a lot for your help!!!

Indeed it works... It was failing with scoop update --all


Chapter 03 - demoapi and demoapp works independently, but with docker nothing shows up on browser

note: I have upgraded the dotnet framework to 8.0 and openapi to 8.0.6
instead of localhost also tried <IP_ADDRESS>. But same error
//localhost:5101
//localhost:5102

This is fixed after updating the port numbers from 80 to 8080 in docker-compose.yml for both demo-api and demoapp.


By mistake the default analyzer was used for query

At the same time i'm removing all of the fuzziness.
fixes #191
fixes #187

This change is

Thank you for the quick fix!


Review dependencies after napari-workflows 0.2.7

Given https://github.com/haesleinhuepf/napari-workflows/releases/tag/0.2.7, let's verify whether napari is a current dependency and whether we can drop it.

Napari is definitely a required dependencies, but we can avoid depending on specific QT bindings (e.g. pyqt5), especially after recent updates to napari-tools-menu and napari-skimage-regionprops. See:

#286
#288

Closing this.


Add to README details on expected usage of IReadableChannel and IWritableChannel

Fro example, is it how IReadableChannel  is to be used?
while (await rChannel.WaitToReadAsync())
{
    T value;
    if (rChannel.TryRead(out value))
    {
        // consume value
    }
}

It depends what you're trying to do.  What you write is a fine way to consume everything in the channel.  You could also do:
IAsyncEnumerator<T> e = rChannel.GetAsyncEnumerator();
while (await e.MoveNext())
{
    // use e.Current
}

or:
try
{
    while (true)
    {
        T value = await rChannel;
        // use value
    }
}
catch (InvalidOperationException) { /* channel closed */ }

Etc.

Already three ways to read. Why is that?
What are the slight justifying differences?

Different use cases.  The idea behind the IAsyncEnumerator approach is that that interface would become a general way of enumerating asynchronously through various sources, of which one would be channels; it'd be like asking why you can either index through each item in a collection or enumerate it with foreach.  The idea behind being able to await the channel directly (which is just shorthand for awaiting rChannel.ReadAsync) is that if you don't need to be concerned about the channel ever ending, you can simply read from it and not worry about having to separately wait for data to be available.  The approach of using WaitForReadAsync allows you to write code like you had, which will exit out when the channel has closed, but it's actually there as a building block for other higher-level operations, such as enabling the Case/SelectAsync functionality, which requires being able to asynchronously wait separate from reading.

Aaah.. Convenience vs efficiency..

And vs functionality and vs abstraction.  Implementing that Select/Case functionality would not be possible without the Wait* support.  Implementing arbitrary foreach'ing (eventually) over arbitrary sources (including channels) would not be possible without some general abstraction.

I got the answer.


Problems matching more complicated laws

Currently, all laws are of the form d/dx (Opr f [...]) where the ... only contains variables.
In this case, mustMatch makes sense, but its final cases, including mustMatch _ _, are problematic as it pretends to succesfully match something. It might be a better idea to turn mustMatch into something that returns a list of potential substitutions, so it can return the empty list for this final case.
In your function match', you are checking that your final substitution is not the empty substitution, which takes care of a lot of the problems for you, but this is problematic in itself: you now are unable to match a law like "-0.0 = 0.0"

I've included an example of the "-0.0 = 0.0" law in our most recent commit and you can test it in ghci with " map (calculate zlaws) [ex_z, ex_v]", with the relevant code in Lib.hs. I think we've had to make our types quite ugly to get it to work though.

I think the underlying problems is that the empty substitution should not be treated the same as no substitution. Why not change the type of functions like combine to return [Subst] or Maybe Subst instead of Subst?

Yes that makes sense, I'll add a TODO to change the type to a Maybe Subst so that we can do a less hacky check to see if the substitutions are being made.
Do you have any comments on how to improve our Equation / Transform type (Lib.hs)? and any comments on how our overall reasoning are looking?

To answer your cleanup question, your Transform does not belong into an expression because it is not an expression. As you only use it on the right hand side of a law, that should be easy to do. It means that you might want to change your law type and give that a couple of cases. It can be either an equation, or, to be perfectly general, something that does a rewrite step for you without matching, so a function Expr -> Maybe Expr for instance. Alternatively, you could add (Expr, Transform) as a case in Law or CLaw.
I'd also move common parts (like the lawname) into CLaw and have Law be one of its cases, so everything put together could be something like this:
data CLaw = CLaw Lawname Expr Replacement -- name, the expression to match on, and the replacement to be made
data Replacement = Conditional Condition Replacement
     | WithExpr Expr
     | BuiltIn ([(Variable, Expr)] -> Maybe Expr)

If you feel confident using very general abstract types, consider using this (no CLaw needed):
data Law = Law Lawname (Expr -> Maybe Expr)

Printing these laws will become impossible, and while parsing 'normal' laws you'll have to use functions like match.


Angular login

FINALLY finished client side login and sign up!! :100:
A few things to note:

Added new modules and one gem so need to run 'bundle install' and 'bower install' after merging
Sign Up and Login done
No logout button yet, that will be handled separately
Implemented JSON Web Token (JWT) authentication, so the app is no longer using sessions but rather authentication is done by passing encoded JWTs, which expire.

Some resources I used to figure this out:
https://github.com/auth0/angularjs-jwt-authentication-tutorial
http://adamalbrecht.com/2014/12/04/add-json-web-token-authentication-to-your-angular-rails-app/
http://angular-tips.com/blog/2014/05/json-web-tokens-examples/

whoops, forgot to merge.


TreeError [myTreeDataProvider] Data tree node not found when selecting and deleting last child element in tree item

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.64.1
OS Version: macOS 11.6

Steps to Reproduce:
Sample extension with steps 1 - 3 available at https://github.com/katsoohoo/treeview-extension

Build an extension with a tree view
In the tree view, create a collapsible root and one child to the root element
Create a VS Code command to delete the child element
When running the extension, select the child element and run the delete command
The root element becomes non-collapsible and the following error occurs in the console:rejected promise not handled within 1 second: Error: TreeError [myTreeDataProvider] Data tree node not found: [object Object]
/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:112
stack trace: Error: TreeError [myTreeDataProvider] Data tree node not found: [object Object]
    at se.getDataNode ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:19917]())
    at se.getNode ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:17566]())
    at fe ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:655:34927]())
    at [vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:67:4675]()
    at [vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:67:4808]()
    at Array.forEach (<anonymous>)
    at r.bufferEvents ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:67:4797]())
    at v.setCollapsible ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:82:10582]())
    at v.spliceSimple ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:82:9606]())
    at v.splice ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:82:7530]())
    at A._setChildren ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:82:17603]())
    at A.setChildren ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:82:17005]())
    at I.setChildren ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:6680]())
    at se.render ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:23336]())
    at se.refreshAndRenderNode ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:20057]())
    at processTicksAndRejections (internal[/process/task_queues.js:93:5]())
    at async se._updateChildren ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:17119]())
    at async se.updateChildren ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:201:16785]())
    at async Promise.all (index 0)
    at async pe.doRefresh ([vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2587:15187]())

Notes:

The error only occurs if there is only one child in an element and the child element is the current selection
When firing a change without specifying an element (this.onDidChangeTreeDataEmitter.fire()), the error does not occur

We have a temporarily workaround  where we focus on the parent node before removing the last child node. Specifically, we call TreeView.reveal() with focus: true. The select option doesn't matter in this case.

Thank you for the clear sample! I tried it out, and I can reproduce the issue in 1.64.*, but not in insiders. @katsoohoo would you be able to try out VS Code Insiders and see if you can reproduce the issue there?

Hi @alexr00, thanks for confirming. I cannot reproduce the error in 1.65.0-insider. Do you have an estimate on when the fix will be in the stable release?

We're about to start our endgame, so maybe next week: https://github.com/microsoft/vscode/issues/143606


⚠ ClamAV has degraded performance

In 176f430, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 586 ms

Resolved: ClamAV performance has improved in 1d36483.


Raw data (how clean and token)

Hi
I want to know how you clean and token data for USPTO_50k, USPTO_full, USPTO_480k, USPTO_STEREO
Since they are different from the origin data.

I'm trying to repartition the dataset, but I don't know how to get the same data form as you.

You can make use of canonicalize_smiles and tokenize_smiles in utils.data_utils. A sample code snippet is
import csv
import os
from tqdm import tqdm
from utils.data_utils import canonicalize_smiles, tokenize_smiles

def split_raw_csv(fn, ofn_src, ofn_tgt):
    print(f"Converting {fn} into {ofn_src} and {ofn_tgt}")
    with open(fn, "r") as csv_file, open(ofn_src, "w") as of_src, open(ofn_tgt, "w") as of_tgt:
        csv_reader = csv.DictReader(csv_file)
        for row in tqdm(csv_reader):
            smi = row["reactants>reagents>production"]
            smi_r, _, smi_p = smi.split(">")

            of_src.write(f"{tokenize_smiles(canonicalize_smiles(smi_p, remove_atom_number=True))}\n")
            of_tgt.write(f"{tokenize_smiles(canonicalize_smiles(smi_r, remove_atom_number=True))}\n")

I see.
Thank you very much.


robots.txt sitemap values are incorrect

SeoToolkit produces the following output in the robots.txt file:
Sitemap: /sitemap.xml
Sitemap: /en/sitemap.xml
etc.
It is not allowed to use relative paths in the robots.txt file. See here:
https://developer.chrome.com/docs/lighthouse/seo/invalid-robots-txt/?utm_source=lighthouse&utm_medium=lr
This makes pagespeed.web.dev produce an error.
Correct format should be:
sitemap: https:///sitemap.xml
sitemap: https:///en/sitemap.xml

Fixed by https://github.com/patrickdemooij9/SeoToolkit.Umbraco/issues/164. Will be released soon


Only serve human-written answers if they are live

The bot currently serves unpublished human-written answers if you click on them via related questions. For example, you can go to the bot, click on the question about warning shots, then click through to the followup about expecting warning shots before a catastrophe, and see an unpublished answer consisting of one bullet point. Only questions with the "live on site" status should be suggested as followups by the bot, similar to related questions on the main site.

See for instance point (3) here
https://docs.google.com/document/d/12JaEHNw96K4NsS0H9IfUHsxfot3KUiUGvdVq5bfYCw0/edit
and discussion here
https://discord.com/channels/677546901339504640/1125882946952384635/1286368200128204852


Bounty: Added coats to the Winterdrobe

About the PR
I added some coats to the winterdrobe.
Why / Balance
Technical details
Media
Requirements

[X] I have read and am following the Pull Request and Changelog Guidelines.
[X] I have added media to this PR or it does not require an ingame showcase.

Breaking changes
Changelog
:cl: soup123

tweak: You can now get the Gentle and Jensen coats from your local WinterDrobe.
tweak: Winterdrobes can now dispense the ultimate Space Asshole coat whenever it's emagged.

Sorry for the double push. Accidentally named the commit message "Initial Commit", and had to change it


Added the MSAL JS sample

Q
A

New sample?
yes

What's in this Pull Request?
New sample that makes use of the MSAL JS library in combination with the Microsoft Graph.

thx Elio, appreciated.


refactor(components): toggleGroup creation from useToggleGroup

closes AUTH-650
Overview
splits up the styling from useToggleGroup out into ToggleGroup into the components directory. Couldn't move useToggleGroup into components since it has the analytics hook embedded into it. When it is used in PD we can create our own hook.
Test Plan and Hands on Testing
look at ToggleGroup in storybook and see that it works as expected. also review the code
Changelog

move styling from useToggleGroup out into its own component and make a story

Risk assessment
low

Looks good, but one question— do we want to expose props for left/rightDisabled? I see styles for it, but no way to set disabled state.

@ncdiehl11 good question, i just copied and pasted the styling that existed and didn't realize that is in there, looks like it was added 2 years ago so maybe we have removed that functionality. I'll delete it!


Upgrade dependencies of cip30 package?

Failed to install the cip30 package.
yarn add @cardano-sdk/cip30
yarn add v1.22.17
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "^14". Got "17.4.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Or is it possible to use the types defined in this package without ogmois client?

Thanks for the report. That's actually a dangling dependency, so we can remove it altogether. FYI this package is being worked on now in #192, so best to wait for this before considering integration.


Improvements based on customer reported issues and internal findings

Descritpion:
This PR improves the MonitorExchangeAuthCertificate.ps1 script. It contains some logic adjustments and an improved output in evaluation mode (the output may vary based on the findings).
Resolve #1458
Resolve #1447
Validation:
Lab/Unit tests

Will add the email notification feature to this PR as well so moved the PR back to draft state until I’m ready to release it.

Will add the email notification feature to this PR as well so moved the PR back to draft state until I’m ready to release it.

Email notification? We probably shouldn't be doing that. Send-MailMessage is deprecated and not secure.

Will add the email notification feature to this PR as well so moved the PR back to draft state until I’m ready to release it.

Email notification? We probably shouldn't be doing that. Send-MailMessage is deprecated and not secure.

Yes as this was requested multiple times. We will use EWS to send emails.

Will add the email notification feature to this PR as well so moved the PR back to draft state until I’m ready to release it.

Email notification? We probably shouldn't be doing that. Send-MailMessage is deprecated and not secure.

Yes as this was requested multiple times. We will use EWS to send emails.

Maybe we should do that in a different PR then.

Will add the email notification feature to this PR as well so moved the PR back to draft state until I’m ready to release it.

Email notification? We probably shouldn't be doing that. Send-MailMessage is deprecated and not secure.

Yes as this was requested multiple times. We will use EWS to send emails.

Maybe we should do that in a different PR then.

Okay let’s use a new PR for the new feature.

Looks like everything is good. I will approve once a squash and rebase is done where it makes sense.

Looks like everything is good. I will approve once a squash and rebase is done where it makes sense.

@dpaulson45 done


Causes Ctrl+Space to change keyboard layout after a delay instead of instantly.

I have been using Karabiner for a while now on my MBP to replace § with `. Today I updated to macOS Sierra and migrated to Karabiner-Elements.
While fixing the § button works flawlessly, Karabiner-Elements seems to break my Ctrl+Space combination, which I use for changing keyboard layouts. While until now I used to press them briefly, now I have to keep them pressed and wait a second for the layouts toast to open to successfully change the keyboard layout.
MacBook Pro (Retina, 13-inch, Early 2015)

duplicate of #41

Thank you for feedback!
I've fixed this issue at v0.90.33.
Please upgrade to the latest version from "Misc > Check for updates" or
https://pqrs.org/latest/karabiner-elements-latest.dmg

Apologies for the dupe and thanks for the quick reply and fix! Updated to 0.90.38 and it works fine. Thanks again!


Sort authors by amount of posts

The authors page (http://swiftweekly.github.io/authors/) is now "sorted" by the list here. It might be nice if we can sort them by amount of posts.

Be honest @BasThomas, you just want to be closer to top😀

Obviously.
Sent with GitHawk

docs on sorting here: https://jekyllrb.com/docs/templates/ (search for "sort")

https://shopify.github.io/liquid/filters/sort/


tooltip() is too far away from the hovered edge

With syntax "edge key(From, To) opacity(Weight) tooltip(#all) ", the tooltip is displayed too far away from the hovered edge so it is hard to tell which edge the tooltip belongs when there are multiple edges. See attached screen shot.

fixed on develop


Link Aliucord to Discord

Fixes #334
Just links Aliucord to the Discord icon.
Note: Both entries are named Discord so they won't appear as duplicates in the app. I don't know if this is the correct way to do it, but it's the way I did it.

OK, fixed it.

Thanks, @Randomblock1!


Very slow tests in Julia 0.5.0-rc3 vs. Julia 0.4

Following test runs in 8.5 seconds in Julia 0.4.5 and some 135 seconds in Julia 0.5.0-rc3:
https://gist.github.com/ulfworsoe/3f8c34d2d1998e4e2adce09d42855f64
If I remove the @facts and run the tests outside of the facts(...) do environment, it is nearly instantaneous. If I make a loop inside the facts(...) do environment instead of repeating the lines, it is also nearly instantaneous.
I am not sure if this is a FactCheck issue or a Julia issue, but I could not come any closer to it.

Some more investigation seems to indicate that this is a Julia 0.5 problem, so I'll close this issue.


feat: asset account crypto balance

Description

feat: wire up crypto balance on account row
feat: add labels to accounts
fix: stop showing app updated locally

Notice
Before submitting a pull request, please make sure you have answered the following:

[x] Have you followed the guidelines in our Contributing guide?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] Do all new and existing tests pass? Does the linter pass?

Pull Request Type

[x] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[x] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)
closes #687
Testing

account rows should crypto balance and address or account type (see below)
app has updated notification won't appear during development

Screenshots (if applicable)

@reallybeard plz make it pretty :(


WIP: Pass bootstrap information through to etcd

Following the etcd static clustering guide, we provide the ETCD_INITIAL_CLUSTER environment variable to the container running the etcd Docker image. This is populated from a BootstrapPeers field on the EtcdPeer resource's spec.
Minor changes:

Assert on the etcd image name
Assert that only one replica is created

If this merges after #17 I'll refactor the test for the environment variables to be in the new, vanilla Go, testing style. The unit test for the clusterDiscoveryString function is already in the Vanilla style.

I'm going to rebase this entire branch onto of master and probably just manually recreate commits cleanly.


Build tweaks

Ensure Gulp tasks run sequentially
Lint JS files before running Gulp tasks
Removed unused background.js file

Is there a certain config that gulp needs to be able to run with ES6 functions/declarations?

@TSedlar Whoops, it's actually the version of Node. I've removed the newer features so it works in older versions too.

LGTM! :+1:


Change "export complete" notifications from email to in-app

I think the emails were more helpful when exports took a few hours to complete, but now most exports complete in a minute or two. In-app notifications seem like they should suffice!
Oh the good old days of 2+ hour Jackson exports. ;)

Good catch!


[AUTOPATCHER-CORE] Upgrade postgresql to 16.4 CVE-2024-7348

[AUTOPATCHER-CORE] Upgrade postgresql to 16.4 CVE-2024-7348
Upgrade pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=620337&view=results
buddy build -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=620342&view=results

https://www.postgresql.org/support/security/CVE-2024-7348/


CLA details/stats

Tracking bug for some details on the Google CLA issue.

96 authors (kinda cool):
% grep -v '^#' authors.git | wc -l
96
% grep -v '^#' authors.git | grep YES | wc -l
40

40 def. yes.
% grep -v '^#' authors.git | grep :NO | wc -l
2

2 NOs
% grep -v '^#' authors.git | grep :UNKNOWN | wc -l
51

Unknown, of those:
22 are willing to sign, but havent
28 no reply
1 unreachable email address

And some typos in data:
total tally:
96:
    40 yes
      2 no
    54 unknown
         23 willing, but haven't
         30 no response
         1 unreachable

I'm giving up on this effort.
a) this project is doing fine without a CLA, if upstream needs a better dns package they should create it and we'll see what happens
b) being in golang.org/x/ is being discussed and it seems to overwhelm core devs.
c) i hate this administrative work of chasing people down for something that shouldn't really matter.


context.Context should be the first parameter of a function

- What I did
Change the place of the  context.Context parameter.
- How I did it
Move the context.Context parameter to the first place.
- How to verify it
golint
Signed-off-by: yupeng<EMAIL_ADDRESS>

@AkihiroSuda , you mean the
“ENV GO_LINT_COMMIT 32a87160691b3c96046c0c678fe57c5bef761456”
of Dockerfiles is old?

Yes, recently golint came able to check the position of context arg, so I suggest updating golint (https://github.com/golang/lint/commit/3390df4df2787994aea98de825b964ac7944b817)
Perhaps you should use hack/dockerfile/install-binaries.sh for managing the version of golint.

OK.
Thanks @AkihiroSuda .

@YuPengZTE will you be doing a follow-up for bumping golint, or want one of the maintainers to take care of that?

@thaJeztah
I use the https://github.com/golang/lint/commit/3390df4df2787994aea98de825b964ac7944b817 to check the commit https://github.com/docker/docker/commit/bd78374618dd4282445cd3b7230a22ba0b2b237d
, and found some mistake
golint4docker.txt

Some mistakes are Caused by docker, but some mistakes are Caused by golint, for example

So, in my opinion, the
“ENV GO_LINT_COMMIT 32a87160691b3c96046c0c678fe57c5bef761456”
of Dockerfiles is no need to change now, I can fix the other typos, such as
"context.Context should be the first parameter of a function"
and so on.
What do you think?

OK, no need to change.
At least no need for 1.13.0.


CNEditor does not work on older Android devices

I have found when testing on some older devices that the keyboard will not open.
It appears that this is because the HTML/JS being loaded into the WebView component uses some ES6 javascript, e.g. arrow functions and const/let variables, which are not fully supported on older devices running older versions of webview.

Which version of editor do you use? Are you use our next branch?

Yes this is on the next branch / 2.0.0-rc2
I was able to recreate on Android simulator using by targeting Android 6.0 (does not work) and Android 7.1.1 (works).
My fork here https://github.com/sam-rr/react-native-cn-richtext-editor/commit/5a8ec15a7c5e24cddc737de39fbf2d383726bed4 contains the changes which seem to fix this.


first draft of vatican post

We will probably break this into multiple posts. The part about the strategic landscape for GLAM might fit better on my personal blog rather than the ipfs blog.

Re-reading this draft I feel the urge to rewrite almost every sentence and rearrange almost every paragraph. I think it's trying to be too many things. It will help a lot if we decide on a structure -- should this be broken up into multiple posts? Should it be rearranged? That will let us identify the core thesis and narrative (or rhetorical) arc.
Thanks @lgierth for the comments you've already added. I like all of your suggestions, regardless of how we rearrange the whole thing.

It will help a lot if we decide on a structure -- should this be broken up into multiple posts? Should it be rearranged? That will let us identify the core thesis and narrative (or rhetorical) arc.

The current draft tries to be both a debrief from the two IIIF demos, as well as a (great!) analysis and quasi-manifesto for why cultural institutions need a distributed web and IPFS. Maybe that's a line for a split? I feel like the latter depends on the demos to make the most of its point. So maybe publish the demos first, and then a few days later the analysis/manifesto?
I think the analysis part is really really good. Finally someone putting into good prose how centralizing vectors and decentralizing vectors work out in real world scenarios, and how a distributed web produces mostly decentralizing vectors, while the historic web produces mostly centralizing vectors.

Closing ancient posts that never got posted.


Fixes for Run on multiple Images

This notebook demonstrates how to prompt multiple images and obtain a summary for each image in JSON format using threading.
Fix : #201

Hello @manojssmk,
Thanks for the PR. I'll have a look in details this week and I'll likely add a couple of things, like a "what's next" section at the end (cf. template).
In the meantime, could you try to fix the lint issues? It's mainly changing all the "we"s into "you"s.
Thanks!

A couple of quick drive-by comments from me:

Please make sure you comply with the licenses when distributing third-party content (the images)
Run pyink & nbfmt on the notebook to keep the code style-consistent
I'm a little concerned that the code is "too smart" - does it need to demonstrate batching images into single prompts?

I would either put one image per request and a simple thread pool,
Or can you just put them all in one prompt? If performance is the point, then this is only 1 request, and it could show off the 2M context nicely.
Either way, it would help to understand what you are trying to demonstrate.


Add a --no-private-ipv4 CLI option

Fix https://github.com/paritytech/polkadot/issues/543
If passed, the --no-private-ipv4 CLI option will prevent the networking from trying to connect to the ranges <IP_ADDRESS>/8, <IP_ADDRESS>/12 and <IP_ADDRESS>/16.

Thinking about it, should we maybe do --only-global-ipv4 instead?
This would also cover <IP_ADDRESS>/8, <IP_ADDRESS>/16 (loopback), and so on.

Thinking about it, should we maybe do --only-global-ipv4 instead?
This would also cover <IP_ADDRESS>/8, <IP_ADDRESS>/16 (loopback), and so on.

Don't we filter these out in discovery already?

Would that prevent the peerset from connecting to already known private addresses when using --no-private-ipv4? It should be possible to switch this CLI option on and off without clearing the peerset file.

Don't we filter these out in discovery already?

No, as they might be legitimate.
Maybe we should filter them out of Kademlia, but I'm not sure if it's ok to do so.

Would that prevent the peerset from connecting to already known private addresses when using --no-private-ipv4? It should be possible to switch this CLI option on and off without clearing the peerset file.

We don't have a peerset file yet, but yes that would prevent all already-known addresses from being attempted.

cc @joepetrowski
Devops might want to enable this option.

@tomaka  Hello, there is an internal ip range missing: <IP_ADDRESS>/10  https://datatracker.ietf.org/doc/html/rfc6598.


Replace PRTB/CRTB UID with their name+ns for use as labels and annotations

The projectroletemplatebinding and clusterroletemplatebinding UIDs are used as label keys for
clusterrolebindings and rolebindings in the management cluster as follows
CRTB.UID is the label key for a CRB, CRTB.UID=memberhsip-binding-owner
CRTB.UID is label key for the RB, CRTB.UID=crtb-in-project-binding-owner
PRTB.UID is the label key for a CRB, PRTB.UID=memberhsip-binding-owner
PRTB.UID is the label key for RB, PRTB.UID=memberhsip-binding-owner
PRTB.UID is also the label key for RB, PRTB.UID=prtb-in-cluster-binding-owner
PRTB/CRTB are also used as label values for clusterrolebindings and rolebindings in downstream user clusters
CRTB.UID is label value for CRB, authz.cluster.cattle.io/rtb-owner=CRTB.UID
PRTB.UID is label key for CRB, PRTB.UID=owner-user
Starting 2.5, instead of using UID, use namespace+name(+gvk if needed) as the label.
This is needed when during backup/restore UID is changed we don't lose the relation between PRTB/CRTB and RB/CRB respectively

On 2.4.8 (single node install)

Add a user1 as the cluster owner of the cluster 1

Add user2 as project owner of cluster2

Labels set on clusterrolebindings :

kubectl get clusterrolebinding  -o yaml | grep -B7 -A33 "authz.cluster.cattle.io/rtb-owner: a16f26e7-206a-4840-8223-af45d807b43e"

labels:authz.cluster.cattle.io/rtb-owner: a16f26e7-206a-4840-8223-af45d807b43e

Add a user as a project owner --
kubectl get clusterrolebinding -o yaml | grep -B5 -A30 "00d2791f-d99a-4698-a73b-15d02a710200: owner-user"

labels:
      00d2791f-d99a-4698-a73b-15d02a710200: owner-user

Upgrade to master-head - commit id: 89dd0fe25
CTRB:
labels:
      authz.cluster.cattle.io/rtb-owner-updated: c-btcsr_crtb-rgf7w
      cattle.io/creator: norman

PRTB:

kubectl get clusterrolebindings -o yaml | grep -B5 -A30 "00d2791f-d99a-4698-a73b-15d02a710200: owner-user"

labels:
      00d2791f-d99a-4698-a73b-15d02a710200: owner-user
      authz.cluster.cattle.io/rtb-label-updated: "true"
      cattle.io/creator: norman
      p-qdxpv_prtb-gzp4p: owner-user

clusterrolebinding related to Cluster owner is missing the label with the uid of the CRTB
On deleting cluster owner role of user1 , user1 still has access to the cluster.

Along with granting/revoking permissions, these are the things I checked related to roletemplate changes

Clone the project-owner role
Assign this cloned role to a user
Login as this user, user can create namespaces and add new members to the project
Edit the cloned role to remove permissions to create ns and to create projectroletemplatebindings
Logged in user should not be able to create namespaces or add new members to the project

Same with cloning cluster-owner role. I checked that the user with this role can create projects in the cluster, and then edited the cloned role to remove permissions to create project. Then the user could no longer create projects

In 2.4.8:
Tested in a single node, using 2 custom clusters - 4 nodes each.

Add a user1 as the cluster owner of the cluster 1
Add user2 as project owner of project in cluster2
Clone roles - cluster owner and project owner
users3 -- cloned cluster owner role of the cluster 1
user 4 - cloned project owner role of project in cluster2
clusterRoleTemplateBinding of the cluster owner
kubectl get clusterrolebinding -o yaml | grep -B7 -A33 "authz.cluster.cattle.io/rtb-owner: de9423f8-d077-43ca-9681-24ea4922e696"

    labels:
      authz.cluster.cattle.io/rtb-owner: de9423f8-d077-43ca-9681-24ea4922e696
      cattle.io/creator: norman

clusterRoleTemplateBinding of Cloned cluster owner
kubectl get clusterrolebinding -o yaml | grep -B7 -A33 "authz.cluster.cattle.io/rtb-owner: 35edc158-10ee-4899-9914-2ec1a9d22bf3"

    labels:
      authz.cluster.cattle.io/rtb-owner: 35edc158-10ee-4899-9914-2ec1a9d22bf3
      cattle.io/creator: norman

projectRoleTemplateBinding of cloned project owner
kubectl get clusterrolebinding -o yaml | grep -B5 -A30 "09fa68f8-55cb-4ea6-a811-23f34cbaf05b: owner-user"

    labels:
      09fa68f8-55cb-4ea6-a811-23f34cbaf05b: owner-user
      cattle.io/creator: norman

projectRoleTemplateBinding of project owner
kubectl get clusterrolebinding -o yaml | grep -B5 -A30 "4d7c7fcd-2908-4ade-8033-11ba97161c0b: owner-user"

    labels:
      4d7c7fcd-2908-4ade-8033-11ba97161c0b: owner-user
      cattle.io/creator: norman

On upgrade to master-head commit id: 4ac3a87d7

ClusterOwner rolebinding

kubectl get clusterrolebinding -o yaml | grep -B7 -A33 "authz.cluster.cattle.io/rtb-owner-updated: c-xz9c2_crtb-97zql"

    labels:
      authz.cluster.cattle.io/rtb-owner-updated: c-xz9c2_crtb-97zql
      cattle.io/creator: norman

Cloned cluster owner rolebinding

labels:
      authz.cluster.cattle.io/rtb-label-updated: "true"
      authz.cluster.cattle.io/rtb-owner: 35edc158-10ee-4899-9914-2ec1a9d22bf3
      authz.cluster.cattle.io/rtb-owner-updated: c-xz9c2_crtb-9ncwl
      cattle.io/creator: norman

Cloned project owner rolebinding
kubectl get clusterrolebinding -o yaml | grep -B5 -A30 "p-xjfhx_prtb-ggn9m: owner-user"

    labels:
      09fa68f8-55cb-4ea6-a811-23f34cbaf05b: owner-user
      authz.cluster.cattle.io/rtb-label-updated: "true"
      cattle.io/creator: norman
      p-xjfhx_prtb-ggn9m: owner-user

Project owner rolebinding
kubectl get clusterrolebinding -o yaml | grep -B5 -A30 "p-xjfhx_prtb-ggn9m: owner-user"

    labels:
      09fa68f8-55cb-4ea6-a811-23f34cbaf05b: owner-user
      authz.cluster.cattle.io/rtb-label-updated: "true"
      cattle.io/creator: norman
      p-xjfhx_prtb-ggn9m: owner-user

Cluster Owner rolebinding did not have the the older label with the UID.
Other users had both the labels - new one and the old one with the UID (new is something like p-xjfhx_prtb-ggn9m: owner-user)
From cloned Cluster owner role -- remove all rules except for "Clusters" . User with this role was not able to edit cluster/add projects
From cloned project owner role - remove namespace create rule -- User with this role is not able to create namespace. And removed projectroletemplatebindings -- User with this role is not able to add members to the project
Deploy rancher - backup restore app
Take a backup b1
Delete all users' rolebindings from clusters and projects
Verified user1/2/3/4 --> Do not have access to the cluster/project
Take a backup b2
Restore from backup b1


VERILATOR_SRC

Where should VERILATOR_SRC point to ?
Thanks,
Raj

You must install Verilator 4.038 for simulate this core. This can currently be achieved directly through "sudo apt install verilator." (you can check the version by "apt info verilator"). If you do so, you won't need to modify the VERILATOR_SRC in the makefile. Otherwise, you will need to set VERILATOR_SRC as /your/verilator/install/dir/verilator/include.


Add a simple test and set up GitHub action to run it one every push

I am running the 2022 December CI Challenge and this PR was sent as the project for the first day. I've writte abut it here


Fix updating a workspace due to cascade bug

Resolves #3263
What is being addressed
The cascade disable condition was malformed and when a workspace had a workspace service it tried to do a cascade update with malformed values.

/test-extended

/test-destroy-env

/test-extended

/test-extended


GEOMESA-2882 Fix maven central install for geomesa-web

Signed-off-by: Emilio Lahr-Vivaz<EMAIL_ADDRESS>

need to port back to 3.0.x as well.

replaced with #2596


Fix keepEmptyValues when inverting range edge

When selecting a new "to" date earlier than the currently selected "to"
date, keepEmptyValues was not being respected. This update checks that
keepEmptyValues is false before overwriting empty values.
In my experience, it did not seem to affect the "from" field, but I changed it to be safe.

@nickrivadeneira a bit late, but thanks for the PR. Can you provide a simple jsfiddle to display the problem so I can test the PR. Thanks!

@acrobat https://jsfiddle.net/f0kLqyw6/
Instructions:

Select date in the "To" field
Select an earlier date in the same "To" field

Expected result: "From" field remains empty
Actual result: "From" field is populated with a date

@acrobat Any thoughts on this?

I will try to make some time to test and review the PR!

@acrobat I face the same issue. Is it going to be fixed?

@vsn4ik Looks like you're the active maintainer now based on recent PRs - any chance this can get reviewed?

@acrobat @vsn4ik Any update here?

@acrobat @vsn4ik @Azaret Any chance this can get reviewed? Had this open for almost 2 years now and the bug is still there.


Fix _topframe example to use go1.16 embed and updated KeyCode() return values

I was seeing an error when trying to build and run examples/_topframe/main.go
$  go run examples/_topframe/main.go
# command-line-arguments
examples/_topframe/main.go:40:4: go:embed cannot apply to var inside func
examples/_topframe/main.go:94:17: multiple-value e.KeyCode() in single-value context

This also required updating go.mod to 1.16 which is now officially released (but unsure if this project wanted to update to that minimum version yet just for the example). Alternatively you could add  a go.mod to examples/_topframe/go.mod at go1.16, but I'm not sure that's best practice and makes it a bit confusing.
$ go run examples/_topframe/main.go
# command-line-arguments
examples/_topframe/main.go:25:3: go:embed requires go1.16 or later (-lang was set to go1.14; check go.mod)

Added a Build step to the Github actions CI to ensure examples / cmd is built to report any compilation errors:
    - name: Build
      run: |
           go build ./...
           go build ./cmd/*
           go build ./examples/*

Added some build flags for go1.16 and < go1.16 but I feel like it just makes the example really complicated.

this is rad, thanks! i'd really like to keep this version of topframe as simple as possible, i'm planning to release a more developed standalone version. do you think keeping this one only for 1.16 is reasonable or should i just remove it when standalone comes along. this one is best for its simplicity and legibility, so seems suited as an example here.

this is rad, thanks! i'd really like to keep this version of topframe as simple as possible, i'm planning to release a more developed standalone version. do you think keeping this one only for 1.16 is reasonable or should i just remove it when standalone comes along. this one is best for its simplicity and legibility, so seems suited as an example here.

I agree, prob best to just keep this example simple here and not add extra complexity to the main project library.

Closing for now, in future there'll be a standalone _topframe


[Tooling] Highlight types

 Issue by Minoli
Friday Feb 01, 2019 at 08:49 GMT
Originally opened as https://github.com/ballerina-platform/plugin-vscode/issues/253

Description:
The type(e.g twitter:Client) are displayed with the same color as the variable name.

Affected Versions:
Ballerina 0.990.3-SNAPSHOT

ATM, we don't provide highlighting categorization for imports and variables to distinguish colors.

Fixed with https://github.com/ballerina-platform/ballerina-lang/pull/31841


[Polymetis] Fix threading issue for Franka hand client

Description
Original Franka hand client had erroneous threading implementation, causing client to crash on startup.
Fixes #1356
Type of change
Please check the options that are relevant.

[x] Bug fix (non-breaking change that fixes an issue)
[ ] Proposes a change (non-breaking change that isn't necessarily a bug)
[ ] Refactor
[ ] New feature (non-breaking change that adds a new functionality)
[ ] Breaking change (fix or feature that would break some existing functionality downstream)
[ ] This is a unit test
[ ] Documentation only change
[ ] Datasets Release
[ ] Models Release

Type of requested review

[x] I want a thorough review of the implementation.
[ ] I want a high level review.
[ ] I want a deep design review.

Before and After
If this PR introduces a change or fixes a bug, please add before and after screenshots (if this is causes a UX change) or before and after examples(this could be plain text, videos etc ) to demonstrate the change.
If this PR introduces a new feature, please also add examples or screenshots demonstrating the feature.
Testing
Please describe the tests that you ran to verify your changes and how we can reproduce.
Checklist:

[ ] I have performed manual end-to-end testing of the feature in my environment.
[ ] I have added Docstrings and comments to the code.
[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have added relevant collaborators to review the PR before merge.
[ ] [Polymetis only] I ran on hardware (1) all scripts in tests/scripts, (2) asv benchmarks.

Codecov Report

Merging #1361 (8b1eaae) into main (768b118) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 8b1eaae differs from pull request most recent head 92d772b. Consider uploading reports for the commit 92d772b to get more accurate results

@@           Coverage Diff           @@
##             main    #1361   +/-   ##
=======================================
  Coverage   34.40%   34.40%
=======================================
  Files         357      357
  Lines       35168    35168
=======================================
  Hits        12098    12098
  Misses      23070    23070

Thanks for fixing.

Was the original PR never tested on a Franka gripper?
Have you tested this on the Franka gripper?
Please run clang-format so the tests pass.

I assume I tested on a Franka which is why I added the threading in the beginning, but I can't be 100% sure. Maybe I didn't update both the client and the server when testing, maybe I just didn't test it.
Anyways this fix is tested to work on a Franka Hand in FRE today so this should be good to go.


Contributors tab needs to work

Using the new markup for form fields, we need to rewrite to form and make the model "do all the magic."

Fixed #523


Merge the MLIR changes (including changes to IR structure, and lattice passes via pass manager interface)

Closed by #1.
Completely changes the IR structure to reflect MLIR design choices. Ultimately, after carefully reading the MLIR documentation, I'm convinced that the MLIR design is a good optimum for extensibility -- clearly well thought out and designed, and supports the interfaces which I'd like to use to interact with extensible lattice interpreters.

[X] IR re-implementation.
[X] Test examples for a builtin dialect.
[X] Operation traits.
[x] Pass manager.

This change has introduced many advanced things into the codebase. It's likely less clear to someone observing how things actually work here, because I had to introduce concepts like trait objects, casting, and dynamic dispatch from Rust into the implementation to support the ability for my IR containers (e.g. Operation) to hold containers with intrinsics that are user-defined. The common solution in Rust for this is to use trait objects -- which is great and works (!), but trait objects prevents you from customizing behavior (e.g. by using Rust traits) on the thing that you just turned into Box<dyn SatisfiesTrait> (e.g. that you just introduced dynamic dispatch for). This thus requires designing an entirely new mechanism for enforcing traits (again, just like MLIR traits on these intrinsic-agnostic containers. The mechanism which I've implemented here relies on casting of trait objects, which is advanced usage of Rust's type system (specifically, std::Any and downcasting).

[X] Test examples.
[x] Ruminate on this interface by writing a pass which uses it.

Re -- if anything comes of this project, one thing which might be interesting for those curious is how one would implement an "MLIR-like thing" in Rust. I believe the above concepts (ultimately presented after merging #1) adequately answers this question.

Closed by #1.