The screenshot's dimension is wrong

I'm using the latest version from Git to capture the element to jpeg file.
The screenshot output:

Expect:

HTML example:
<!DOCTYPE html>

  <meta charset="UTF-8">

            [Declarative Programming + Elm] Lesson 7 - Pattern Matching & Recursion

Here is my code:
pub use headless_chrome::protocol::cdp::Page::CaptureScreenshotFormatOption as ImageFormat;

pub fn build_from_html(html: &str, format: ImageFormat) -> Vec<u8> {
    let browser = Browser::default().expect("Could not initialize browser");
    let tab = browser.new_tab().expect("Could not open new tab");

    tab.evaluate(&format!(r#"(function() {{
        let html = "{}";

        document.open();
        document.write(html);
        document.close();
    }})()"#,html), false)
        .expect("Could not evaluate JavaScript");

    let element = tab.find_element("#card").expect("Failed to find element 'body'");
    let bytes = element.capture_screenshot(format).expect("Failed to capture screenshot");

    bytes
}

fn main() {
    // ...
    let html = thumbnail_template.render().unwrap();
    let bytes = build_from_html(&html, ImageFormat::Jpeg);

    std::fs::write("foo.jpg", bytes.clone()).expect("Failed to write foo.jpg file");
}

Originally posted by @kimyvgy in https://github.com/atroche/rust-headless-chrome/issues/336#issuecomment-1286427361

I'm using the latest version from Git to capture the element to jpeg file.
The screenshot output:
Expect:
HTML example:
<!DOCTYPE html>

  <meta charset="UTF-8">

            [Declarative Programming + Elm] Lesson 7 - Pattern Matching & Recursion

Here is my code:
pub use headless_chrome::protocol::cdp::Page::CaptureScreenshotFormatOption as ImageFormat;

pub fn build_from_html(html: &str, format: ImageFormat) -> Vec<u8> {
    let browser = Browser::default().expect("Could not initialize browser");
    let tab = browser.new_tab().expect("Could not open new tab");

    tab.evaluate(&format!(r#"(function() {{
        let html = "{}";

        document.open();
        document.write(html);
        document.close();
    }})()"#,html), false)
        .expect("Could not evaluate JavaScript");

    let element = tab.find_element("#card").expect("Failed to find element 'body'");
    let bytes = element.capture_screenshot(format).expect("Failed to capture screenshot");

    bytes
}

fn main() {
    // ...
    let html = thumbnail_template.render().unwrap();
    let bytes = build_from_html(&html, ImageFormat::Jpeg);

    std::fs::write("foo.jpg", bytes.clone()).expect("Failed to write foo.jpg file");
}

Originally posted by @kimyvgy in #336 (comment)

your taking a screenshot of the body element not the actual div that should be screenshotted

@mdrokz The screenshot of the body element:

A capture screenshot of the body element is always fixed dimension 800x600. body { width: 1600px; min-height: 840px; }. In my case, I can set tab.width = 1600, but the height is dynamic, it depends on page content.

Images, fonts are not loaded when using document.write() by tab.evaluate js.

Hello.
This is still an issue, at least for me. I am utilizing the latest git version, with the example code from here. Is there any additional information I could provide that would be helpful?
From my naive perspective, it seems as though capture_screenshot will only capture up to the window size of the browser, i.e. 800x600, which I believe is the default for the chromedriver.
This could be just a misunderstanding of what the capture_screenshot is capable of, my understanding of entire page, is that it will capture a screenshot of the complete website regardless of the amount of content on the website. Similar to the functionality provided by the Firefox take screenshot utility, when utilizing "Save full page", as seen below.


fix a bug: tendermint => Tendermint

active model serializer key transform transform nested hash key

Codecov Report

Merging #7 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
+ Coverage   99.04%   99.05%   +0.01%
==========================================
  Files          41       41
  Lines         940      953      +13
==========================================
+ Hits          931      944      +13
  Misses          9        9

Impacted Files
Coverage Δ

app/serializers/transaction_serializer.rb
100% <100%> (ø)
:arrow_up:

app/serializers/api/block_serializer.rb
100% <100%> (ø)
:arrow_up:

app/serializers/api/transaction_serializer.rb
100% <100%> (ø)
:arrow_up:

app/serializers/meta_data_serializer.rb
100% <100%> (ø)
:arrow_up:

app/serializers/api/sync_error_serializer.rb
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Can't make make sequential for loop

I need to run few set of steps in sequentially inside for-each. Current ForEach step is parallel step. Sometimes I might need to load the collection dynamically (based on external web service).
Is it possible to make for-each as sequential?

are you able to achieve the same thing with a .while step?
we would need to implement a new feature to support a serialized for-each


[Bug] optimal_kernel_bandwidth yields extremely large kernel widths

Describe the bug
The estimation of the instantaneous_rate with kernel="auto" of a very long spiketrain (~650 s) yielded a very smooth and flat rate. It was tracked down to the estimation of the optimal_kernel_bandwidth (the width of the Gaussian kernel, fixed for the whole duration), which yielded a bandwidth of ~22 s for spiketrain with a rather low firing rate.
After some investigation, it was noticed that the optimal bandwidth strongly depends on the duration of the spiketrain. One reason for this might be the hard-coded number of bins (1000) here:
https://github.com/NeuralEnsemble/elephant/blob/67dd3f3ef86161c0e70faf6e50690bdfd591978c/elephant/statistics.py#L1576-L1597
Although, the option to give an array of times on which the optimization of the kernel is performed exists, it is not very accessible. (See original publication Shimazaki, H. & Shinomoto, S. Kernel bandwidth optimization in spike rate estimation. J Comput Neurosci 29, 171–182 (2010). for details)
Further notice: The implemented optimal_kernel_bandwidth estimates one fixed kernel bandwidth for the given spiketrain and is not adaptive over time! The originating code https://github.com/cooperlab/AdaptiveKDE also implements the adaptive case and could be included into elephant.
To Reproduce

Get spiketimes
Call elephant.statistics.optimal_kernel_bandwidth(spiketimes)

A minimal example is provided in the attached files:
issue_optimal_kernel_bandwidth.zip
Expected behavior
The order of magnitude should be reasonable and if this is exceeded a warning should be raise.
Environment

OS (e.g., Linux): Ubuntu
How you installed elephant (conda, pip, source): conda/pip
Python version: 3.9.7
neo python package version: 0.10.2
elephant python package version: 0.10.0

Thank you for reporting this and your effort to contribute to elephant.
I have extended your minimal example to illustrate the issue in connection with elephant.statistics.instantaneous_rate.
import pickle
import quantities as pq
import elephant
import matplotlib.pyplot as plt

# Load example spiketrains
high_firing_rate_st, low_firing_rate_st = pickle.load(
    open('spiketrain_examples.pkl', 'rb'))
# firing rates
print(high_firing_rate_st.annotations)
print(low_firing_rate_st.annotations)

{'mean_firing_rate': array(22.00288951) * 1/s}
{'mean_firing_rate': array(3.85978253) * 1/s}

# Look at kernel bandwidth estimation

# spiketrain = high_firing_rate_st
spiketrain = low_firing_rate_st
spiketimes = spiketrain.times.rescale(pq.s).magnitude

# Choose example spiketrain
kernel_bandwidth = elephant.statistics.optimal_kernel_bandwidth(spiketimes)
print(f'The optimal kernel bandwidth for the full length spiketrain was '
      f'estimated to be {kernel_bandwidth["optw"]} s')

The optimal kernel bandwidth for the full length spiketrain was estimated to be 22.401845783799754 s

# Time slice the spiketrain to a 5 s duration
time_sliced_st = spiketrain.time_slice(t_start=1*pq.s, t_stop=6*pq.s)
spiketimes_sliced = time_sliced_st.times.rescale(pq.s).magnitude

kernel_bandwidth_sliced = elephant.statistics.optimal_kernel_bandwidth(
    spiketimes_sliced)
print(f'The optimal kernel bandwidth for the full length spiketrain was '
      f'estimated to be {kernel_bandwidth_sliced["optw"]} s')

The optimal kernel bandwidth for the full length spiketrain was estimated to be 0.5003558368563431 s

# Look at instantaneous rate

def plot_rate(inst_rate):
    plt.plot(inst_rate.times.simplified.magnitude,
             inst_rate.magnitude, color='orange',
             label='instantaneous rate')
    plt.legend()
    plt.title(f"{inst_rate.annotations['kernel']['type']}: "
              f"sigma={inst_rate.annotations['kernel']['sigma']}, "
              f"sampling_period={int(sampling_period.item())} ms")
    fig = plt.gcf()
    fig.set_size_inches(18.5, 10.5)
    plt.show()

sampling_period = 10 * pq.ms
# use kernel "auto"
rate_auto = elephant.statistics.instantaneous_rate(
    spiketrain,
    sampling_period=sampling_period,
    kernel="auto")

# plot result
plot_rate(rate_auto)

Figure 1:

# calculate rate using kernel bandwidth based on time slice
kernel = elephant.kernels.GaussianKernel(
    sigma=kernel_bandwidth_sliced["optw"] * pq.s)

rate_slice = elephant.statistics.instantaneous_rate(
    spiketrain,
    sampling_period=sampling_period,
    kernel=kernel)

# plot result
plot_rate(rate_slice)

Figure 2:

The two figures above show the difference for large and small kernel bandwidths.
If I understand correctly Figure 2 is the desired result for this case, Figure 1 shows a rate estimate, which is too smooth. (bandwidth too large)
possible solutions

rise a warning to the user when elephant.statistics.optimal_kernel_bandwidth(spiketimes) is used and the resulting bandwidth is too large.

In order to rise this warning in optimal_kernel_bandwidth, the following question comes to mind:
Is there a way to estimate if the bandwidth is reasonable ? or would it be a fixed value ?

use the adaptive kernel functionality proposed in PR #462.
change the hard coded number of bins (Lines 1576 to 1597) https://github.com/NeuralEnsemble/elephant/blob/67dd3f3ef86161c0e70faf6e50690bdfd591978c/elephant/statistics.py#L1576-L1597

I guess further steps should be discussed in connection to PR #462, thanks again for contributing this.

Hi Moritz,
thanks for having a look at it so quickly! Just to clarify a few points:

What an expected or reasonable bandwidth should be, is a very valid question and I don't have a proper answer to that.
I would consider a 500 ms kernel bandwidth still as quite large.
The PR #462 does not solve the issue yet! It was just created while trying to solve it. (The hard-coded number of bins are definitely not ideal, but seem not to cause the main problem here)
This method of estimating the instantaneous rate was, traditionally, applied to the spiketrains of sets of trials, which were short in duration. It might be a limitation of the method itself.

Having said that, I agree that we can move the discussion to PR #462 .


Set HeadCommit when creating tags

fixes #18112
It's the same behaviour as if you create a branch: empty commit list but the head commit is the last commit.
I'm not sure about the compare url. With git.EmptySHA you will see a 404 page. GitHub displays a "There isn’t anything to compare" page in this case.

I'm not sure about the compare url. With git.EmptySHA you will see a 404 page. GitHub displays a "There isn’t anything to compare" page in this case.

Well, that should be a enhancement for another PR as it's in this case a valid URL in that sense.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@72f9050). Click here to learn what that means.
The diff coverage is 81.81%.

@@           Coverage Diff           @@
##             main   #18116   +/-   ##
=======================================
  Coverage        ?   44.91%
=======================================
  Files           ?      824
  Lines           ?    91598
  Branches        ?        0
=======================================
  Hits            ?    41144
  Misses          ?    43859
  Partials        ?     6595

Impacted Files
Coverage Δ

services/repository/push.go
53.05% <71.42%> (ø)

services/release/release.go
52.57% <100.00%> (ø)

Continue to review full report at Codecov.

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

I think it's better to backport this to v1.15

Please send backport.


Animated doesn't work after setState is called

Description
I want to perform some change before animation start, so I called setState() before Animated.spring().start(), I expected the component is updated first then animated, but the animation isn't started at all. Is this a bug? If not, how should I do?
Reproduction
Here's sample code:
...
this.setState({zIndexLeft: 0, zIndexRight: 1});
Animated.spring(this.state.contentPositionRight, {toValue: 200}).start((finished) => {
this.setState({actionsheetState: -1})
});
...
Additional Information

React Native version:0.42.3
Platform: iOS
Development Operating System: MacOS 10.12.4
Dev tools:Xcode 8.3, iOS 10.3

This issue looks like a question that would be best asked on StackOverflow.
StackOverflow is amazing for Q&A: it has a reputation system, voting, the ability to mark a question as answered. Because of the reputation system it is likely the community will see and answer your question there. This also helps us use the GitHub bug tracker for bugs only.
Will close this as this is really a question that should be asked on StackOverflow.


Fix empty_like from readonly arrays.

Arrays created with empty_like should always be writable.

Codecov Report

Merging #2668 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2668      +/-   ##
==========================================
+ Coverage   86.27%   86.27%   +<.01%
==========================================
  Files         320      320
  Lines       65858    65858
  Branches     7325     7325
==========================================
+ Hits        56817    56820       +3
+ Misses       7859     7856       -3
  Partials     1182     1182

@seibert, I have added tests and some enhancements so that all array allocating *_like api will return writable arrays.

Looks good.  Thanks!


Document possibility to access container registry using docker/podman locally

General information
https://github.com/code-ready/crc/issues/147 says access to container registry is possible but that seems to not be the case - at least it is not documented.
Ask is to be able to get container registry access so can use docker, podman, jib, etc. to build and push containers locally without requiring remote quay etc.

https://github.com/code-ready/crc/issues/147#issuecomment-577151340

Rather make this dependent on the clients beinmg available and the podman functionality going GA.

thanks for link to the comment - I didn't spot it as I was looking the docs ;)
it would be nice with a crc env docker command or similar one could use to do the login/setup docker env etc.

Rather make this dependent on the clients beinmg available and the podman functionality going GA.

Not following what you mean here? I don't need any custom clients or podman to push to registry; lots of things can do push, including maven/gradle builds.

it would be nice with a crc env docker command or similar one could use to do the login/setup docker env etc.

We will likely not be introducing a docker-env command, but podman-env would be possible to set values for this.

container-env Or registry-env works If goal is to avoid product/project specific names.

container-env goes nicely with the Containerfile naming alternative (to Dockerfile)


Question about P3D ResNet-50 in UCF101

In the training stage, we set each mini-batch as 128 frames/clips.

128 frames equal to 8 clips (16 frames/clip). Whether these 8 clips come from one video or from 8 videos?

Actually, we set 128 frames as mini-batch for ResNet50 and 128 clips as mini-batch for P3D ResNet50.
And for each mini-batch, the 128 clips are randomly from different videos.
Best.

Thanks! Another question, How do you pick 16 frames?
0,1,2,3,4, ..., 16 (interval==1) or  0,2,4,6,...,30 (interval==2) or ..

We only try consecutive frames (interval==1).
This setting may also be affected by the fps when extracting the frames. Here, we choose ffmpeg toolbox to extract all the frames.

How many clips do you sample in UCF101 P3D resnet-50. Maybe I miss something, I found the number of sport1m
Specifically, we randomly sample 20 clips from each video and adopt a single center crop per
clip.

In this experiment, we uniformly sampled 25 frames for ResNet-50 and 20 clips for P3D ResNet-50.
This is not very clear in the paper. Thanks for pointing out.


Task Report not showing sub tasks

Hi
It will be great if the exported task report show details of the sub tasks too. Currently it show details of the tasks only. Also the tasks should have option to add estimation time as well as the spend time similar to that of sub task.

I implemented a separate subtasks export in the development version.


Do something before closing the window

Describe the bug
window.onunload and window.onbeforeunload are not working when the app closes.
To Reproduce
Steps to reproduce the behavior:

Go to an empty folder
cd workplace

Add Tauri to my project
yarn add tauri
yarn tauri init
mkdir dist && cd $_
touch index.html

Edit the file index.html

<!DOCTYPE html>

I wanna do something while closing me

Build and run
cd .. && yarn tauri build -d
open src-tauri/target/debug/bundle/osx/*.app

Close the app and nothing happens

Expected behavior
Ask if the user really wants to leave while closing the app ~and do something (eg. deleting temporary files) before leaving~.
Platform and Versions
OS:  Darwin(20.1.0) - darwin/x64
Node: 12.19.0
NPM: 6.14.8
Yarn: 1.22.10
Rustc: 1.47.0

Is this still an issue?

This is now possible with wry I believe. Can you confirm @nklayman or @lucasfernog ?

This is still an issue with wry, but it'll be fixed soon with the event system that @amrbashir is working on, which will be amazing.

If all goes well, It should be finished by tomorrow.

We'll track this on #1523


injecting a dependency does not add proper dependencies/sources for injection

original error:
error: attribute 'prom-client' missing

       at /nix/store/aamp3d520rnanjbvcx3nwcs1b2d0588f-source/src/builders/nodejs/granular/default.nix:158:13:

          157|       deps
          158|       (dep: allPackages."${dep.name}"."${dep.version}");
             |             ^
          159|

simple flake that injects a dependency for yarn pure:
  {
    inputs.dream2nix.url = "github:nix-community/dream2nix";
    outputs = { self, dream2nix }@inputs:
      let
        dream2nix = inputs.dream2nix.lib.init {
          systems = [ "x86_64-linux" ];
          config.projectRoot = ./. ;
        };
      in dream2nix.makeFlakeOutputs {
        source = ./.;
        inject = {
          express-prom-bundle."6.4.1" = [
            ["prom-client" "13.1.0"]
          ];
        };
      };
  }

package.json:
{
  "name": "test2",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express-prom-bundle": "^6.4.1"
  }
}

result:
  {
    _generic = {
      defaultPackage = "test2";
      location = "";
      packages = {
        test2 = "1.0.0";
      };
      sourcesAggregatedHash = null;
      subsystem = "nodejs";
    };
    _subsystem = { nodejsVersion = "14"; };
    cyclicDependencies = { };
    decompressed = true;
    dependencies = {
      ee-first = { "1.1.1" = [ ]; };
      express-prom-bundle = {
        "6.4.1" = [
          { name = "on-finished"; version = "2.4.1"; }
          { name = "url-value-parser"; version = "2.1.0"; }
          { name = "prom-client"; version = "13.1.0"; }
        ];
      };
      on-finished = {
        "2.4.1" = [
          { name = "ee-first"; version = "1.1.1"; }
        ];
      };
      test2 = {
        "1.0.0" = [
          { name = "express-prom-bundle"; version = "6.4.1"; }
        ];
      };
      url-value-parser = {
        "2.1.0" = [ ];
      };
    };
    sources = {
      ee-first = {
        "1.1.1" = {
          hash = "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=";
          type = "http";
          url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
        };
      };
      express-prom-bundle = {
        "6.4.1" = {
          hash = "sha512-Sg0svLQe/SS5z1tHDTVfZVjNumobiDlXM0jmemt5Dm9K6BX8z9yCwEr93zbko6fNMR4zKav77iPfxUWi6gAjN  A==";
          type = "http";
          url = "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-6.4.1.tgz";
        };
      };
      on-finished = {
        "2.4.1" = {
          hash = "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+k  g==";
          type = "http";
          url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz";
        };
      };
      test2 = {
        "1.0.0" = {
          path = "/nix/store/b4zlnjwd3aaph1xav090bd04zr60f23m-crh0vxqmg4zd3bj1i2g0cyc73jg9g2kg-source";
          type = "path";
        };
      };
      url-value-parser = {
        "2.1.0" = {
          hash = "sha512-gIYPWXujdUdwd/9TGCHTf5Vvgw6lOxjE5Q/k+7WNByYyS0vW5WX0k+xuVlhvPq6gRNhzXVv/ezC+OfeAet5Kc  w==";
          type = "http";
          url = "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.1.0.tgz";
        };
      };
    };
  }

I'll just add a similar issue in the same place. If I add prom-client manually:
yarn add prom-client
the error will change to:
error: attribute '13.1.0' missing
(the injection package exists and is found, but the version doesn't match the version added). I suppose this may not be an issue, because the specified injection for express-prom-bundle."6.4.1" should be added separately, if another prom-client already exists.

As per @DavHau's suggestion that it may be error handling related and that I should add a source override, I tried this:
  {
    inputs.dream2nix.url = "github:nix-community/dream2nix";
    outputs = { self, dream2nix }@inputs:
      let
        dream2nix = inputs.dream2nix.lib2.init {
          systems = [ "x86_64-linux" ];
          config.projectRoot = ./. ;
        };
      in dream2nix.makeFlakeOutputs {
        source = ./.;
        inject = {
          express-prom-bundle."6.4.1" = [
            ["prom-client" "13.1.0"]
          ];
        };
        sourceOverrides = oldSources: {
          "prom-client"."13.1.0" = builtins.fetchurl {
            url = "https://github.com/siimon/prom-client/archive/v13.1.0.tar.gz";
            sha256 = "0nvxj4sz2hvqqlksp9fkxhx32qdwhf3g8ibglyfa38ljlk2mqdfk";
          };
        };
      };
  }

Still the same error as above error: attribute 'prom-client' missing.

Hey I was not able to reproduce the the error with the given flake. The flake does not specify the source project. Could you please provide a flake that manages the source via flake input or share the whole repo?

@DavHau
    {
      inputs.dream2nix.url = "github:nix-community/dream2nix";
      inputs.src.url = "github:tgunnoe/dream2nix-inject-test";
      inputs.src.flake = false;
      outputs = { self, dream2nix, src }@inputs:
        let
          dream2nix = inputs.dream2nix.lib.init {
            systems = [ "x86_64-linux" ];
            config.projectRoot = ./. ;
          };
        in dream2nix.makeFlakeOutputs {
          source = src;
          inject = {
            express-prom-bundle."6.4.1" = [
              ["prom-client" "13.1.0"]
            ];
          };
        };
    }

Thanks a lot for providing the flake. Now it's fixed

thanks!


Disabling selected options in multiselect

When I use SimpleSearchableSelect with a multiselect, I can still select items in the list that have been selected.
When that happens, the item is swallowed and the list of inputs doesn't grow. This makes it look
like something failed.
Have you considered:

removing already selected items from the dropdown/search
disabling already selected items from the dropdown/search
adding a message just below the input saying something like "Your choice was already selected".

3 might be an issue as it raises the issue of localization of the message.
I am split on #1 and 2. Removing selected items would reduce the size of the dropdown (potentially) increasing the efficiency of selecting a new item. However, it might be confusing to the user who doesn't realize that his selection is already present and expects to find it in the dropdown
Option #2 seems to be the better choice as the user will find his/her item but the disabled formatting will provide a clue that it is already selected.
Thoughts?

At the moment, if the option is already present in the list, the option is selected and focus is applied to it.
Nevertheless, the suggestion to remove or disable the already selected option is good.
Both options 1 and 2 are comparable, especially since applying the disabled attribute to an option in the datalist, as far as I know, effectively achieves the equivalent of hiding it.
Another alternative could be to add to the text the strikethrough unicode combining character (e.g., s̵e̵l̵e̵c̵t̵e̵d̵ ̵o̵p̵t̵i̵o̵n̵, see https://en.wikipedia.org/wiki/Strikethrough#Unicode ).
The option would remain visible and provide a clear visual reference that it has already been selected. However, I need to verify how this behaves on various devices.

I introduce a new feature called selectedStyle in version 1.2.0.
This option allows you to customize the styling and behavior of selected options according to your preferences.
Additionally, by default, selected options are now removed for a more streamlined experience.
I have added some practical usage examples to the demo.


Warnings when compiling in Visual C++

Hello,
when I include the crow header in my project in Visual Studio 2017 on Windows and I get the following warnings:
crow.h(6644): warning C4267: '+=': conversion from 'size_t' to 'char', possible loss of data
crow.h(6656): warning C4293: '>>': shift count negative or too big, undefined behavior
crow.h(6837): warning C4244: '=': conversion from 'uint64_t' to '::size_t', possible loss of data
crow.h(6592): warning C4267: '+=': conversion from 'size_t' to 'char', possible loss of data

Is this normal?
Thanks,
Peter

Yes it's normal as you're trying to compile linux lib on windows. Sadly
crow is linux only :/
On Thu, Mar 15, 2018 at 1:13 PM, Peter Dräxler<EMAIL_ADDRESS>wrote:

Hello,
when I include the crow header in my project in Visual Studio 2017 on
Windows and I get the following warnings:
crow.h(6644): warning C4267: '+=': conversion from 'size_t' to 'char', possible loss of data
crow.h(6656): warning C4293: '>>': shift count negative or too big, undefined behavior
crow.h(6837): warning C4244: '=': conversion from 'uint64_t' to '::size_t', possible loss of data
crow.h(6592): warning C4267: '+=': conversion from 'size_t' to 'char', possible loss of data
Is this normal?
Thanks,
Peter
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ipkn/crow/issues/296, or mute the thread
https://github.com/notifications/unsubscribe-auth/AIhM4vycJSqxE4p1k_DjhcVfBwLXDithks5telrhgaJpZM4SsCkp
.

No. Crow runs pm Linux, Mac, and Windows just fine. These warnings mean that some code should be revisited to not truncate or coerce wrongly.

Would you guys perhaps like to label this as a bug? Shouldn’t be hard to get done.


Drop recommendation of gopkg.in.

See https://github.com/go-kit/kit/issues/197 for background.
Some consumers of this package are reluctant to use gopkg.in or other third-party import proxies. With the trend toward vendoring in the Go community perhaps all that is needed is good release tags in the repo and let main applications vendor the release they want.

This package no longer recommends use of gopkg.in as of v1.5.0.


Update use cases

Codecov Report

Merging #196 (8f87426) into master (4c3b7c4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #196   +/-   ##
=========================================
  Coverage     60.68%   60.68%
  Complexity      548      548
=========================================
  Files           104      104
  Lines          2012     2012
  Branches        233      233
=========================================
  Hits           1221     1221
  Misses          723      723
  Partials         68       68

Continue to review full report at Codecov.

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


setup potential multiple dbs and alchemy rpc

Changes:

Added infra package for using alchemy rpc to get token information without opensea
Changed runtime package to support connecting to multiple databases (e.g. we could have a gallery db for gallery users and collections and an infra database for storing block chain data)

Todo:

[x] Get ERC721 TokenURI

Currently I have extended the current runtime config to support some variable for infra, maybe we should just create a separate infra config struct? Some variables would be shared though between both configs so it might be worth it to just keep it all together.

Currently I have extended the current runtime config to support some variable for infra, maybe we should just create a separate infra config struct? Some variables would be shared though between both configs so it might be worth it to just keep it all together.

down to make a separate config if this ends up being sufficiently different!


Update front page [WIP]

Input submission checklist

[ ] created a directory for each system based on the template directory
[ ] named and placed the directory with the following pattern: input_structures/prepared_structures/<set_name>/<system_name>

For each submitted directory:

[ ] filled in system preparation details in the PREPARATION_DETAILS.md file
[ ] added a PDB file with the protein named protein.pdb
[ ] removed any cofactors from the PDB file and placed them in cofactors.sdf
[ ] kept cystallographic waters and metals in the PDB file
[ ] tested the PDB and, if available, cofactors.sdf file using the input validation script
[ ] copied over the ligands SDF file to a file named ligands.sdf and removed any duplicate binding modes or protonation states, keeping the more favorable state

Summary of changes

Licensing agreement

[ ] I agree to release these inputs under the combined MIT and CCBY SA 4.0 licenses of this repository

I just started this, may need to be updated if we don't send out instructions this week.


$.fetch method won't set search part of URL when GET will be specified as method but not in uppercase

o.method = o.method || 'GET';
// ...
if (o.method === "GET" && o.data) {
	url.search += o.data;
}
// and few more times it's compared like that

well, specification says method is case sensitive, but some servers will accept method regardless of case of letters, some will reject requests
all methods used to be uppercase anyway, so it's probably good idea to always uppercase it, just to make coding easier

I think this makes sense but Lea should be confirming this.

The PR can be merged if this makes sense. @LeaVerou should make the call.


[HOTFIX][#6] Semantic Release Configuration

Refs: #6

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Improve CI

✕ Contains the compiled JavaScript (6 ms)
Expected: null
Received: [Error: ENOENT: no such file or directory, open './public/main.js']

Expected: null
Received: [Error: ENOENT: no such file or directory, open './public/main.js']

found 9 low severity vulnerabilities
run npm audit fix to fix them, or npm audit for details

found 9 low severity vulnerabilities
run npm audit fix to fix them, or npm audit for details


Fix service relaunching and signer crash

This improves the service relaunch loop by using a query against the current version rather than a local store read. This also fixes the crashes seen in the signer and relayer due to this flaky check.

Codecov Report

Merging #223 (2cad2bc) into develop (20a22ee) will increase coverage by 0.01%.
The diff coverage is 0.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@             Coverage Diff             @@
##           develop     #223      +/-   ##
===========================================
+ Coverage    33.33%   33.35%   +0.01%
===========================================
  Files           23       23
  Lines         7593     7589       -4
===========================================
  Hits          2531     2531
+ Misses        5062     5058       -4

Files
Coverage Δ

src/bin/nomic.rs
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


stop translate the site to hungarian language thanks

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a445f8cc-6581-ad43-1dba-719a94eda81a
Version Independent ID: 31280746-d8de-91b4-d430-91693c2e869d
Content: Concepts - Kubernetes basics for Azure Kubernetes Services (AKS) - Azure Kubernetes Service
Content Source: articles/aks/concepts-clusters-workloads.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@torpedo888 Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@mlearned Can you please check and add your comments on this doc request as applicable

Thanks for the feedback.
There doesn't appear to be any forced translation when navigating to the site.
#please-close


Add sorting by name to the LINKED CLASS attribute

create Class
Create attribute with LINK* type
Select linked class in the attribute

EX: Class list sorted by name with account of localization: default first than current locale
AR: Class list sorted by default name of the class

example
Let we have three classes:
Contract (ru=Контракт)
Employee (no locale)
LegalEntity(ru=Юридическое лицо)
Now they are sorted in LINKED CLASS as
Контракт
Employee
Юридическое лицо
Should be sorted as
Employee
Контракт
Юридическое лицо


WebTransport Stream Reset Error on Chrome Browser Reload/Disconnects

Description
I am facing an issue with a webtransport-go server during a WebTransport stream session from the Chrome browser. The error appears when the browser is reloaded. Additionally, I would like guidance on handling browser disconnects effectively.
Steps to Reproduce
Set up a WebTransport stream session from Chrome browser to a webtransport-go server.
Reload the Chrome browser.
Expected Behavior
The WebTransport stream should continue without errors or handle disconnects gracefully.
Actual Behavior
When the Chrome browser is reloaded, the following error occurs:
ERRO[0045] stream reset, but failed to convert stream error 386759528: error code outside of expected range

Query Regarding Browser Disconnects
In addition to the above issue, I would like to ask for best practices or recommended methods for handling browser disconnects in webtransport-go. How should the server be configured to handle unexpected browser terminations or reloads to ensure stability and continuity of the stream session?

Set up a WebTransport stream session from Chrome browser to a webtransport-go server.
Reload the Chrome browser.
Expected Behavior
The WebTransport stream should continue without errors or handle disconnects gracefully.

I don't think your expectations are realistic here. The browser will reset the stream when you reload it. If you think this is not what should happen, you'll need to contact the Chrome team though, webtransport-go can't do anything here.

In addition to the above issue, I would like to ask for best practices or recommended methods for handling browser disconnects in webtransport-go. How should the server be configured to handle unexpected browser terminations or reloads to ensure stability and continuity of the stream session?

There's nothing you need to do. The browser will either reset the stream or tear down the WebTransport session, or it will just go away silently, which will lead to a connection timeout of the underlying QUIC connection.

I'm facing the same exact error, but I believe there is an issue to be addressed with webtransport-go.
I have a real-time chat with webtransport-go and Vue.
Whenever I get this error, the server loses the connection to the client, but it's somehow still there, from my client I can still send messages to the server


Gg

Checklist

[x] I ran npm test locally and it passed without errors.

[x] I only edited the _data/pixels.json file.

[x] I entered the username in the pixels.json that I'm also using to create this pull request.
[x] I acknowledge that all my contributions will be made under the project's license.

Good to go. New pixel added at 4


[2024-11-07] Disable copying for imported events

Short description

In the events list disallow copying by disabling the action and greying it out
Proposed changes

Grey out and disable copying action for events that have been imported

Side effects

None
Resolved issues

Fixes: #3105

Pull Request Review Guidelines

A test for this constraint would be nice, but we can implement it later if it is not handy.

@MizukiTemma Good point! A test was added :)


Issue with k8s.io/docs/tutorials/kubernetes-basics/cluster-interactive/

This is a...

[ ] Feature Request
[x] Bug Report

Problem:
I tried to use the interactive tutorial of Kubernetes. But I am not able to do so. Only black screen is coming. I am using Chrome browser over Windows 7 m/c.
Proposed Solution:
Page to Update:
http://kubernetes.io/...

Thanks for your report @gajenderpathak  - are you by chance able to see the tutorial screens directly from www.katacoda.com? The content for those interactive tutorials is hosted from a site external to https://kubernetes.io.

Thanks it's working at katacoda.com.


Add scrollableContainer prop to allow using sticky header behavior with non-window scrollable elements

Updated implementation and documentation, please review

hi @unutranyholas can you please look at https://github.com/namespace-ee/react-calendar-timeline/pull/264 ?  In that PR, I reworked the implementation of sticky header to using css property position: sticky instead of the javascript solution (due to performance issues and code complication).  Using position: sticky should result in you not having to specify a container since a stickied element will become fixed (i.e. will stick) when it's being scrolled out of viewport.
https://css-tricks.com/position-sticky-2/
With this in mind, I'm not sure this PR is needed.  Can you please confirm though?

Closing as this PR is superseded by changing to position: sticky


first revision - cloud protos

Please go over README.md for any comments about what certain objects mean, and why they are relevant
all protos are verified to compile and autogenerate files
avoiding autogeneration to reduce clutter and easier review
haven't defined the RPC messages, will do once proto feedback is incorporated
tried to split the code between opnnetcommon (something that may be useful elsewhere) from cloud apis
added documentation for the cloud protos to help understand the object model

ping @glimchb @sandersms @pathreya @mestery

I like the README.md as it explains the use case and bits of the pipeline.
As mentioned earlier, what I think we should use, are the OpenConfig definitions as they are already in use for a while, and major routing vendors are using them. If we do miss items in the definitions we could add them.
During the January 19th meeting, someone brought up that we need some form of capability checking. Briefly looking at the gNMI protocol and clients, this seems to be built in (https://github.com/akarneliuk/pygnmi, https://www.openconfig.net/docs/gnmi/gnmi-specification/#32-capability-discovery).
I know someone was looking at providing an example client/server, but this might be delayed due to the Chinese New Year.
So my take would be, rather than trying to push our own Protobuf definitions, try to use OpenConfig + gNMI and add any missing mandatory attributes.
Briefly looking at the general interface (.proto), most of the fields are there. If found this page explaining a bit about how OpenConfig definitions should be converted to protocol buff, https://www.openconfig.net/docs/gnmi/protobuf-vals/
//Eelco

I like the README.md as it explains the use case and bits of the pipeline.
As mentioned earlier, what I think we should use, are the OpenConfig definitions as they are already in use for a while, and major routing vendors are using them. If we do miss items in the definitions we could add them.
During the January 19th meeting, someone brought up that we need some form of capability checking. Briefly looking at the gNMI protocol and clients, this seems to be built in (https://github.com/akarneliuk/pygnmi, https://www.openconfig.net/docs/gnmi/gnmi-specification/#32-capability-discovery).
I know someone was looking at providing an example client/server, but this might be delayed due to the Chinese New Year.
So my take would be, rather than trying to push our own Protobuf definitions, try to use OpenConfig + gNMI and add any missing mandatory attributes.
Briefly looking at the general interface (.proto), most of the fields are there. If found this page explaining a bit about how OpenConfig definitions should be converted to protocol buff, https://www.openconfig.net/docs/gnmi/protobuf-vals/
//Eelco
thanks @chaudron - I will let others also opine on this.

I am not a savvy openconfig user (esp when it comes to proto generation) so for me, I wouldn't mind (or it will help) if someone can submit a PR for these definitions in Openconfig that can generate these proto definitions. OTOH, assuming we can generate similar kind of proto definitions out of openconfig YANG model, we can start working on the backend reference implementation around these APIs to make progress.

thanks @chaudron - I will let others also opine on this.
I am not a savvy openconfig user (esp when it comes to proto generation) so for me, I wouldn't mind (or it will help) if someone can submit a PR for these definitions in Openconfig that can generate these proto definitions. OTOH, assuming we can generate similar kind of proto definitions out of openconfig YANG model, we can start working on the backend reference implementation around these APIs to make progress.

The same for me, however, we had an internal discussion around the subject of OpenConfig/IETF and we are trying to get some "experts" involved. Give us a couple of days.

@timmichels do you still have an objection or we can merge this ?

good first proposal, we can iterate on top of this. merging


(Fix) special symbols and numbers are allowed for ticker

If you are reporting a problem with Token Wizard, please include the following information:
Which network did you use? (Mainnet, Kovan, Rinkeby, etc.)
Rinkeby
If you were able to create it, what is the URL of your crowdsale?
Yes
Do you have screenshots showing the problem?

Do you see errors in the dev console? If yes, please include a screenshot
To open the dev console in Google Chrome, press F12, or go to View -> Developer -> Developer Tools, and open the Console tab
If you see errors, please right click on them and "Save as..". Zip saved file and attach it to the Issue.
No

@vbaranov What characters should be allowed here? Only alphanumeric?

Yes


[BUG] - cardano-cli should error if provided invalid cost model

Internal/External
Internal   if an IOHK staff member.
Area
Other   Any other topic (Delegation, Ranking, ...).
Summary
cardano-cli when given a cost model with invalid keys (in this case PlutusScriptV1 and V2. It currently creates an update proposal with a null cost model (e.g. no change on-chain). This is problematic because the only way to tell this has happened is to look at the raw CBOR or wait until it's on chain and view it in db-sync. If it has the wrong key names, it would be better to error out loudly and break the script from running so the undesirable noop option isn't taken.
Steps to reproduce
cardano-cli governance create-update-proposal --epoch 50 --max-block-execution-units '(20000000000,62000000)' --cost-model-file ~/cost-model-secp-preprod-mainnet.json --protocol-major-version 8 --protocol-minor-version 0 --genesis-verification-key-file foo.vkey --out-file update.proposal
view resulting hex in cbor.me
Expected behavior
Throw an error if cost model is missing PlutusV1 or PlutusV2 attributes.
System info (please complete the following information):

OS Name: [e.g. Ubuntu]
OS Version [e.g. 20.04]
Node version (output of cardano-node --version)
CLI version  (output of cardano-cli --version)

If the git revision is reported to be<PHONE_NUMBER>000000000000000000000000000000, please use cabal build instead of cabal install to build the binaries because cabal install does not record the git revision in the binaries.
Screenshots and attachments

If applicable, add screenshots, config files and/or logs to help explain the problem.

Additional context
Add any other context about the problem here.

@disassembler can you provide or link me to the ~/cost-model-secp-preprod-mainnet.json you used?  Or provide some instructions on how to construct it?

cost-model-secp-preprod-mainnet.json.gz


Multiline title

Hi,
It is possible to make a multiline title?
Thank you.

Feature added in v1.1.


[Resolve #978] Update documentation with ES5 syntax for creating middleware

Documentation for UMD build explains how to load redux-saga, but doesn't explain how to create Saga middleware, which is not obvious because createSagaMiddleware() function cannot be found anywhere on the ReduxSaga object.
This should clarify.

Thanks!


[FLINK-15621] Remove deprecated option and method to disable TTL compaction filter

What is the purpose of the change
Rebased on https://github.com/apache/flink/pull/12304, This change contains two commits:

Remove deprecated enable default background cleanup
Remove deprecated option and method to disable TTL compaction filter

Brief change log

Remove deprecated cleanupInBackground in StateTtlConfig.
remove enableTtlCompactionFilter and related deprecated API in RocksDBStateBackend, RocksDBKeyedStateBackend and CompactionFiltersManager
remove TTL_COMPACT_FILTER_ENABLED in RocksDBOptions
remove compaction_filter related deprecated API in python

Verifying this change
Existing unit testing should be able to cover this change.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): remove deprecated API
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

The latest failure seems to be an unused import in flink-python(I can't install flink-python locally by following README.md in flink-python package because there seems to be something wrong with my local python environment).
So... kindly ask @flinkbot run azure


Tile position randomly going to negative max int causing overflow

Exception when calling 'Start' on TilesetComponent on (Tileset)
System.OverflowException: Arithmetic operation resulted in an overflow.
   at DMD<System.Void SpriteTools.TilesetComponent:RebuildMesh()>(TilesetComponent this)
   at SpriteTools.TilesetComponent.OnStart()
   at Sandbox.Component.ExceptionWrap(String name, Action a)

I added a debug line to output  all of my tile positions and noticed one way out of bounds. This happened twice even after deleting my tile component and re-making the level.

(info from the for loop in collisionLayer.Tiles)
Log.Info( Vector2Int.Parse( tile.Key ) );
I added a bandaid fix locally by having it ignore tiles above 100k to avoid the overflow. I am not sure how a tile is being placed that far out.

This happens if you accidentally click to place a tile when you're in the 3D view. I need to make that trace hit the grid plane

There might be some other way to cause it. I never leave the 2D view now. Not sure if it matters or if it was a coincidence but this happened to me most recently when I tried to use the line tool to paint one tile.

Should be good in the latest version/commit. You were right about line/rect tool painting one tile


Update navigationview.md

PLEASE NOTE that I do not have permissions in VSTS to submit changes. That's why I am creating a pull request here. I realize it is a little inconvenient to your new process; it's all I can do.
There is a bug in the AppTitle code that does not handle FullScreenMode. I have updated the sample code to account for this. It might even be a bug that the LayoutMetricsChanged does not raise when FullScreenMode changes, and TitleBar still reserves space for the BackButton even though it is no longer visible. In either case, the code sample accounts for both scenarios.

@serenaz :  PR passes checklist review. Please evaluate the submission further and approve/merge if appropriate. Thanks!


New workloadgen not working on another application

Hello, I am currently integrating a simple workload generator based on the Sockshop. However, after testing it by looking at Jaeger trace, I found no active spans related to the hotel workload. I have added you to a fork of the Blueprint with the changes. Would you mind helping shed some light on the potential issues? Thank you very much!

Dear Blueprint Developers,
Thank you again for your continued support and insights in advance. Sorry for bothering you.
I was trying a modified workload generator. There seems to be an issue from the docker build due to the openTelemetry / otel version auto-resolution mismatch.
Here are my triages for your convenience. In the new build logs, the related otel versions are v1.26.0:
./build/docker/recomd_service_container/recomd_service_process/recomd_service_process/go.mod:34:        go.opentelemetry.io/otel/metric v1.26.0 // indirect
./build/docker/rate_service_container/rate_service_process/rate_service_process/go.sum:54:go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA=
./build/docker/rate_service_container/rate_service_process/rate_service_process/go.sum:55:go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0=
./build/docker/user_service_container/user_service_process/user_service_process/go.sum:52:go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA=
./build/docker/user_service_container/user_service_process/user_service_process/go.sum:53:go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0=

Earlier successful build uses v1.25.0 (for otel/metric, otel/trace or otel)
./build_bak/docker/recomd_service_container/recomd_service_process/recomd_service_process/go.mod:12:    go.opentelemetry.io/otel/trace v1.25.0
./build_bak/docker/recomd_service_container/recomd_service_process/recomd_service_process/go.mod:30:    go.opentelemetry.io/otel v1.25.0 // indirect
./build_bak/docker/recomd_service_container/recomd_service_process/recomd_service_process/go.mod:34:    go.opentelemetry.io/otel/metric v1.25.0 // indirect
./build_bak/docker/reserv_service_container/reserv_service_process/reserv_service_process/go.mod:35:    go.opentelemetry.io/otel/metric v1.25.0 // indirect
./build_bak/docker/reserv_service_container/reserv_service_process/reserv_service_process/go.mod:31:    go.opentelemetry.io/otel v1.25.0 // indirect
./build_bak/docker/reserv_service_container/reserv_service_process/reserv_service_process/go.sum:48:go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA=
./build_bak/docker/reserv_service_container/reserv_service_process/reserv_service_process/go.sum:49:go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s=

Here are the related lines in go.mod or go.sum, without any changes between the two builds:
./workflow/go.mod:15:   go.opentelemetry.io/otel v1.21.0 // indirect
./workflow/go.mod:16:   go.opentelemetry.io/otel/metric v1.21.0 // indirect
./workflow/go.mod:17:   go.opentelemetry.io/otel/trace v1.21.0 // indirect
./workflow/go.sum:21:go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc=
./workflow/go.sum:22:go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
./workflow/go.sum:23:go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4=
./workflow/go.sum:24:go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
./workflow/go.sum:25:go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc=
./workflow/go.sum:26:go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
./workload/go.mod:16:   go.opentelemetry.io/otel v1.21.0 // indirect
./workload/go.mod:17:   go.opentelemetry.io/otel/metric v1.21.0 // indirect
./workload/go.mod:18:   go.opentelemetry.io/otel/trace v1.21.0 // indirect
./workload/go.sum:23:go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc=
./workload/go.sum:24:go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
./workload/go.sum:25:go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4=
./workload/go.sum:26:go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
./workload/go.sum:27:go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc=
./workload/go.sum:28:go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=

To reproduce:
go run wiring/main.go -w original -o build
cd build
cp .local.env docker/.env
docker compose build

Here is the full error log for the docker build
[+] Building 100.6s (72/112)                                                                            docker:default
 => [geo_service_container internal] load build definition from Dockerfile                                        0.0s
 => => transferring dockerfile: 1.30kB                                                                            0.0s
 => [user_service_container] resolve image config for docker-image://docker.io/docker/dockerfile:1                0.5s
 => [reserv_service_container internal] load build definition from Dockerfile                                     0.0s
 => => transferring dockerfile: 1.33kB                                                                            0.0s
 => [profile_service_container internal] load build definition from Dockerfile                                    0.0s
 => => transferring dockerfile: 1.34kB                                                                            0.0s
 => [rate_service_container internal] load build definition from Dockerfile                                       0.0s
 => => transferring dockerfile: 1.31kB                                                                            0.0s
 => [search_service_container internal] load build definition from Dockerfile                                     0.0s
 => => transferring dockerfile: 1.33kB                                                                            0.0s
 => [user_service_container internal] load build definition from Dockerfile                                       0.0s
 => => transferring dockerfile: 1.31kB                                                                            0.0s
 => [frontend_service_container internal] load build definition from Dockerfile                                   0.0s
 => => transferring dockerfile: 1.35kB                                                                            0.0s
 => [recomd_service_container internal] load build definition from Dockerfile                                     0.0s
 => => transferring dockerfile: 1.33kB                                                                            0.0s
 => CACHED [user_service_container] docker-image://docker.io/docker/dockerfile:1@sha256:dbbd5e059e8a07ff7ea6233b  0.0s
 => [frontend_service_container internal] load metadata for docker.io/library/golang:1.21-bookworm                1.0s
 => [search_service_container internal] load metadata for gcr.io/distroless/base-debian12:latest                  0.9s
 => [profile_service_container internal] load metadata for docker.io/library/busybox:1.35.0-uclibc                0.6s
 => [recomd_service_container internal] load .dockerignore                                                        0.0s
 => => transferring context: 2B                                                                                0.0s
 => [geo_service_container internal] load .dockerignore                                                           0.0s
 => => transferring context: 2B                                                                                0.0s
 => [rate_service_container internal] load .dockerignore                                                          0.0s
 => => transferring context: 2B                                                                                0.0s
 => [search_service_container internal] load .dockerignore                                                        0.0s
 => => transferring context: 2B                                                                                0.0s
 => [frontend_service_container internal] load .dockerignore                                                      0.0s
 => => transferring context: 2B                                                                                0.0s
 => [user_service_container internal] load .dockerignore                                                          0.0s
 => => transferring context: 2B                                                                                0.0s
 => [profile_service_container internal] load .dockerignore                                                       0.0s
 => => transferring context: 2B                                                                                0.0s
 => [reserv_service_container internal] load .dockerignore                                                        0.0s
 => => transferring context: 2B                                                                                0.0s
 => [rate_service_container internal] load build context                                                          0.0s
 => => transferring context: 456.23kB                                                                             0.0s
 => [frontend_service_container rate_service_process 1/6] FROM docker.io/library/golang:1.21-bookworm@sha256:90  18.8s
 => => resolve docker.io/library/golang:1.21-bookworm@sha256:9070cb6a424004bb46987bfee510666a362d6a332a6949b33b2  0.0s
 => => sha256:9070cb6a424004bb46987bfee510666a362d6a332a6949b33b2b644a0e21d196 1.64kB / 1.64kB                    0.0s
 => => sha256:758ddc9809127da6b2b2c143f2023a16a4636aa0e34db98dfc26bb4dd9e0d706 1.79kB / 1.79kB                    0.0s
 => => sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6eb2180cf044c7396baf6fc2f 49.58MB / 49.58MB                  1.0s
 => => sha256:af2d3af00e57da762d0d6e1a95ea3aa594cd6173eab0a635b3322c673a9ef88a 2.88kB / 2.88kB                    0.0s
 => => sha256:2cf9c2b42f41b1845f3e4421b723d56146db82939dc884555e077768e18132f4 24.05MB / 24.05MB                  0.5s
 => => sha256:c4c40c3e3cdf945721f480e1d939aac857876fdb5c33b8fbfcf655c63b0b9428 64.14MB / 64.14MB                  1.1s
 => => sha256:18445a9ea386c08b9cd5a46a17c8099d961d6813c6f5945e2adeb24ba596456a 92.41MB / 92.41MB                  1.6s
 => => sha256:c2c9e90aed829b7387fa3fa7121b7fda009a742719004ac50889a37665a5f08c 67.01MB / 67.01MB                  1.8s
 => => extracting sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6eb2180cf044c7396baf6fc2f                         2.4s
 => => sha256:28752861b6df1c9aaf482c7b8dabcd98fdf77d6e722fa2dd82dfcddf0363158e 175B / 175B                        1.3s
 => => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B                          1.5s
 => => extracting sha256:2cf9c2b42f41b1845f3e4421b723d56146db82939dc884555e077768e18132f4                         0.8s
 => => extracting sha256:c4c40c3e3cdf945721f480e1d939aac857876fdb5c33b8fbfcf655c63b0b9428                         3.2s
 => => extracting sha256:18445a9ea386c08b9cd5a46a17c8099d961d6813c6f5945e2adeb24ba596456a                         3.4s
 => => extracting sha256:c2c9e90aed829b7387fa3fa7121b7fda009a742719004ac50889a37665a5f08c                         4.7s
 => => extracting sha256:28752861b6df1c9aaf482c7b8dabcd98fdf77d6e722fa2dd82dfcddf0363158e                         0.0s
 => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1                         0.0s
 => [geo_service_container stage-1 1/8] FROM gcr.io/distroless/base-debian12:latest@sha256:611d30d7f6d9992c37b1e  0.0s
 => [geo_service_container] FROM docker.io/library/busybox:1.35.0-uclibc@sha256:56e199e321da9662f39d773823cd742a  0.0s
 => [frontend_service_container internal] load build context                                                      0.0s
 => => transferring context: 583.73kB                                                                             0.0s
 => [user_service_container internal] load build context                                                          0.0s
 => => transferring context: 444.22kB                                                                             0.0s
 => [reserv_service_container internal] load build context                                                        0.0s
 => => transferring context: 466.10kB                                                                             0.0s
 => [profile_service_container internal] load build context                                                       0.0s
 => => transferring context: 458.86kB                                                                             0.0s
 => [search_service_container internal] load build context                                                        0.0s
 => => transferring context: 498.46kB                                                                             0.0s
 => [recomd_service_container internal] load build context                                                        0.0s
 => => transferring context: 448.10kB                                                                             0.0s
 => [geo_service_container internal] load build context                                                           0.0s
 => => transferring context: 443.16kB                                                                             0.0s
 => [profile_service_container profile_service_process 2/6] COPY ./profile_service_process /src                   0.2s
 => [rate_service_container rate_service_process 2/6] COPY ./rate_service_process /src                            0.2s
 => [search_service_container search_service_process 2/6] COPY ./search_service_process /src                      0.2s
 => [frontend_service_container frontend_service_process 2/6] COPY ./frontend_service_process /src                0.2s
 => [user_service_container user_service_process 2/6] COPY ./user_service_process /src                            0.2s
 => [recomd_service_container recomd_service_process 2/6] COPY ./recomd_service_process /src                      0.2s
 => [geo_service_container geo_service_process 2/6] COPY ./geo_service_process /src                               0.2s
 => [reserv_service_container reserv_service_process 2/6] COPY ./reserv_service_process /src                      0.2s
 => [reserv_service_container reserv_service_process 3/6] WORKDIR /src                                            0.0s
 => [geo_service_container geo_service_process 3/6] WORKDIR /src                                                  0.1s
 => [user_service_container user_service_process 3/6] WORKDIR /src                                                0.1s
 => [profile_service_container profile_service_process 3/6] WORKDIR /src                                          0.1s
 => [rate_service_container rate_service_process 3/6] WORKDIR /src                                                0.0s
 => [recomd_service_container recomd_service_process 3/6] WORKDIR /src                                            0.1s
 => [frontend_service_container frontend_service_process 3/6] WORKDIR /src                                        0.0s
 => [search_service_container search_service_process 3/6] WORKDIR /src                                            0.0s
 => [reserv_service_container reserv_service_process 4/6] RUN go mod download                                    36.4s
 => [geo_service_container geo_service_process 4/6] RUN go mod download                                          36.4s
 => [rate_service_container rate_service_process 4/6] RUN go mod download                                        36.4s
 => [user_service_container user_service_process 4/6] RUN go mod download                                        36.4s
 => [profile_service_container profile_service_process 4/6] RUN go mod download                                  36.4s
 => [recomd_service_container recomd_service_process 4/6] RUN go mod download                                    36.4s
 => [frontend_service_container frontend_service_process 4/6] RUN go mod download                                36.3s
 => [search_service_container search_service_process 4/6] RUN go mod download                                    36.3s
 => [profile_service_container profile_service_process 5/6] RUN mkdir /profile_service_process                    1.2s
 => [user_service_container user_service_process 5/6] RUN mkdir /user_service_process                             1.2s
 => [rate_service_container rate_service_process 5/6] RUN mkdir /rate_service_process                             1.2s
 => [geo_service_container geo_service_process 5/6] RUN mkdir /geo_service_process                                0.3s
 => [frontend_service_container frontend_service_process 5/6] RUN mkdir /frontend_service_process                 0.5s
 => [reserv_service_container reserv_service_process 5/6] RUN mkdir /reserv_service_process                       1.2s
 => [recomd_service_container recomd_service_process 5/6] RUN mkdir /recomd_service_process                       0.7s
 => [search_service_container search_service_process 5/6] RUN mkdir /search_service_process                       1.1s
 => CANCELED [geo_service_container geo_service_process 6/6] RUN go build -o /geo_service_process ./geo_service  43.1s
 => ERROR [frontend_service_container frontend_service_process 6/6] RUN go build -o /frontend_service_process .  42.4s
 => CANCELED [recomd_service_container recomd_service_process 6/6] RUN go build -o /recomd_service_process ./re  42.5s
 => CANCELED [search_service_container search_service_process 6/6] RUN go build -o /search_service_process ./se  42.6s
 => CANCELED [profile_service_container profile_service_process 6/6] RUN go build -o /profile_service_process .  42.5s
 => CANCELED [reserv_service_container reserv_service_process 6/6] RUN go build -o /reserv_service_process ./re  42.2s
 => CANCELED [user_service_container user_service_process 6/6] RUN go build -o /user_service_process ./user_ser  42.4s
 => CANCELED [rate_service_container rate_service_process 6/6] RUN go build -o /rate_service_process ./rate_ser  42.1s
------
 > [frontend_service_container frontend_service_process 6/6] RUN go build -o /frontend_service_process ./frontend_service_process:
37.33 # go.opentelemetry.io/otel/sdk/trace
37.33 /go/pkg/mod/go.opentelemetry.io/otel/sdk@v1.21.0/trace/span.go:165:20: cannot use (*recordingSpan)(nil) (value of type *recordingSpan) as ReadWriteSpan value in variable declaration: *recordingSpan does not implement ReadWriteSpan (missing method AddLink)
37.33 /go/pkg/mod/go.opentelemetry.io/otel/sdk@v1.21.0/trace/span.go:787:20: cannot use nonRecordingSpan{} (value of type nonRecordingSpan) as "go.opentelemetry.io/otel/trace".Span value in variable declaration: nonRecordingSpan does not implement "go.opentelemetry.io/otel/trace".Span (missing method AddLink)
37.33 /go/pkg/mod/go.opentelemetry.io/otel/sdk@v1.21.0/trace/tracer.go:50:21: impossible type assertion: p.(*recordingSpan)
37.33 	*recordingSpan does not implement "go.opentelemetry.io/otel/trace".Span (missing method AddLink)
37.33 /go/pkg/mod/go.opentelemetry.io/otel/sdk@v1.21.0/trace/tracer.go:120:10: cannot use tr.newNonRecordingSpan(sc) (value of type nonRecordingSpan) as "go.opentelemetry.io/otel/trace".Span value in return statement: nonRecordingSpan does not implement "go.opentelemetry.io/otel/trace".Span (missing method AddLink)
37.33 /go/pkg/mod/go.opentelemetry.io/otel/sdk@v1.21.0/trace/tracer.go:122:9: cannot use tr.newRecordingSpan(psc, sc, name, samplingResult, config) (value of type *recordingSpan) as "go.opentelemetry.io/otel/trace".Span value in return statement: *recordingSpan does not implement "go.opentelemetry.io/otel/trace".Span (missing method AddLink)
------
failed to solve: process "/bin/sh -c go build -o /frontend_service_process ./frontend_service_process" did not complete successfully: exit code: 1

Could you help shed some light on what could be a suggested methodologies to avoid the related issues with minimal subset of version changes that can be future-proof of automatic upgrades?

Hi,
We have fixed the otel version mismatch issue in #174  and we don't anticipate this issue to arise again.
As part of #174 , we have also added a very simple workload generator for Sockshop and Hotel Reservation that makes simple requests at 1 request per second to demonstrate how to use a workload generator with an application.
Please consider using the latest version of BLueprint.
Thank you for bringing the issues to our attention :)


Cache files are not successfully created until the "cache" directory has been manually made

Cache directory is now made (owing to a new utility mkdir_p function) before the cache file is written as of ec1721f5020028c77994dde34990180500fe540d.


Generate Workflow XMLs from BPML

Choose OpenSource BPML modeling tool
Create conversion script that converts BPML to Workflow XML
Remodel all existing workflows using BPML modeling tool

Modelling has been proven to be too complex to get a real benefit from UI tools


disable camera, enable camera

this will allow for easier development and testing

Duplicate of #27 Completed by #37


Memory Error

Memory runs out of the VM every ~5 days or so.
Snipe cache only runs if a message has been deleted or updated. Needs to be moved to a scheduled command.

This could be an issue with how DJS scales their messages (being fetched), so moving snipe to a scheduled command might not fix this issue.
Maybe a library would work better? More testing needs to be done first.
Moving to a scheduled command first and seeing if that solves the issue though would be best.


`make buildrpm' doesn't succeed on CentOS 6

Hey,
The new setup.py based buildrpm target doesn't quite work: https://raw.github.com/gist/4210d96d443624174c74/7e98613585e9d2789420c5581538876337e1194b/gistfile1.txt
Opening an issue here while I explore fixes.
-Naresh

https://gist.github.com/c5be1b6cfefb50a5a521 fixes it for CentOS 6, but doesn't help on CentOS 5 at all.
https://gist.github.com/47609e8445375a0c1627 is how it fails on CentOS 5 (without applying the above patch)

Current master works for me on Centos 6 https://gist.github.com/1566850
Testing 5 now
I wonder why the disconnect

Also works for me on CentOS 5
https://gist.github.com/1567165

Fixed by #13


Reusing views

I have a possibly interesting question.
Let's say I have 4 tabs and each tab is the same on the view end, even down to the fragments being used. The only difference between all 4 tabs is a single argument on the original query. It's a pagination fragment, so when attempting something more generic I noticed the connection has to be concretely different. How can I leverage generics or some something to not repeat myself? I've tried a little to use a protocol and attempt some generics conformance. Hopefully this is well explained. I can attempt to get you a code example pretty soon if that would help.

Now that I've asked this question one obvious thing for me to try instead of being tabbed based is have a single feed list and use a segment control. I'd prefer not to do this.

A code example would probably help here, particular of the GraphQL query and fragments you're using. You should be able to reuse the fragment, and possibly the view code depending on how different it needs to be between each tab. I can give more useful help with something concrete to work from.

Thanks so much @mjm Tuesday at the absolute latest.

@mjm sorry, I have been late about this

This code example should be enough to convey what I mean:
here is the top list:
import RelaySwiftUI
import SwiftUI

protocol FeedProtocol {
    associatedtype FeedType
    var feed: FeedType? { get }
}

extension TopList_feed.Data: FeedProtocol {}

private let listFragment = graphql("""
fragment TopList_feed on Query
  @refetchable(queryName: "TopListPaginationQuery")
  @argumentDefinitions(
    count: { type: "Int", defaultValue: 30 }
    cursor: { type: "String" }
  ) {
  feed(name: top, first: $count, after: $cursor)
    @connection(key: "TopFeedList_feed") {
    edges {
      node {
        id
        type
        ...FeedCellView_link
      }
    }
  }
}
""")

private let list = graphql("""
query TopListQuery {
    ...TopList_feed
}
""")

private struct TopFeedList: View {
    @PaginationFragment<TopList_feed> var feed
    @AppStorage(UserPreferenceKeys.showIndex) var showIndex = false
    @AppStorage(UserPreferenceKeys.pinnedItems) var pinnedItems: Set<String> = []
    @AppStorage(UserPreferenceKeys.hiddenItems) var hiddenItems: Set<String> = []

    var body: some View {
        if let feed = feed {
            List {
                ForEach(Array(feed.data.feed!.filter { !hiddenItems.contains($0.id) }.enumerated()), id: \.offset) { index, node in
                    NavigationLink(destination: DetailView(id: node.id, type: node.type)) {
                        FeedCellView(index: showIndex ? index : nil, link: node.asFragment())
                    }
                    .swipeActions(edge: .trailing, allowsFullSwipe: true) {
                        Button(role: .destructive) {
                            hiddenItems.insert(node.id)
                        } label: {
                            Label("Hide", systemImage: "eye.slash")
                        }
                    }
                    .swipeActions(edge: .leading, allowsFullSwipe: true) {
                        Button {
                            if pinnedItems.contains(node.id) {
                                pinnedItems.remove(node.id)
                            } else {
                                pinnedItems.insert(node.id)
                            }
                        } label: {
                            if pinnedItems.contains(node.id) {
                                Label("Unpin", systemImage: "pin.slash")
                            } else {
                                Label("Pin", systemImage: "pin")
                            }
                        }
                        .tint(.yellow)
                    }
                }
                if feed.isLoadingNext {
                    LoadingMoreView()
                } else if feed.hasNext {
                    LoadMoreLabel()
                        .onAppear {
                            feed.loadNext(20)
                        }
                }
            }
            .listStyle(.plain)
        }
    }
}

struct TopList: View {
    @Query<TopListQuery> var query
    @State private var fetchKey = UUID()

    var body: some View {
        Group {
            switch query.get(fetchKey: fetchKey) {
            case .loading:
                PlaceholderList()
            case let .failure(error):
                ErrorView(error: error) {
                    fetchKey = .init()
                }
            case let .success(data):
                if let data = data {
                    TopFeedList(feed: data.asFragment())
                        .refreshable {
                            fetchKey = UUID()
                        }
                }
            }
        }
    }
}

struct TopList_Previews: PreviewProvider {
    static var previews: some View {
        TopList()
    }
}

and the new list:
import RelaySwiftUI
import SwiftUI

extension NewList_feed.Data: FeedProtocol {}

private let listFragment = graphql("""
fragment NewList_feed on Query
  @refetchable(queryName: "NewListPaginationQuery")
  @argumentDefinitions(
    count: { type: "Int", defaultValue: 30 }
    cursor: { type: "String" }
  ) {
  feed(name: new, first: $count, after: $cursor)
    @connection(key: "NewFeedList_feed") {
    edges {
      node {
        id
        type
        ...FeedCellView_link
      }
    }
  }
}
""")

private let list = graphql("""
query NewListQuery {
    ...NewList_feed
}
""")

private struct NewFeedList: View {
    @PaginationFragment<NewList_feed> var feed
    @AppStorage(UserPreferenceKeys.showIndex) var showIndex = false
    @AppStorage(UserPreferenceKeys.pinnedItems) var pinnedItems: Set<String> = []
    @AppStorage(UserPreferenceKeys.hiddenItems) var hiddenItems: Set<String> = []

    var body: some View {
        if let feed = feed {
            List {
                ForEach(Array(feed.data.feed!.enumerated()), id: \.offset) { index, node in
                    NavigationLink(destination: DetailView(id: node.id, type: node.type)) {
                        FeedCellView(index: showIndex ? index : nil, link: node.asFragment())
                    }
                    .swipeActions(edge: .trailing, allowsFullSwipe: true) {
                        Button(role: .destructive) {
                            hiddenItems.insert(node.id)
                        } label: {
                            Label("Hide", systemImage: "eye.slash")
                        }
                    }
                    .swipeActions(edge: .leading, allowsFullSwipe: true) {
                        Button {
                            if pinnedItems.contains(node.id) {
                                pinnedItems.remove(node.id)
                            } else {
                                pinnedItems.insert(node.id)
                            }
                        } label: {
                            if pinnedItems.contains(node.id) {
                                Label("Unpin", systemImage: "pin.slash")
                            } else {
                                Label("Pin", systemImage: "pin")
                            }
                        }
                        .tint(.yellow)
                    }
                }
                if feed.isLoadingNext {
                    LoadingMoreView()
                } else if feed.hasNext {
                    LoadMoreLabel()
                        .onAppear {
                            feed.loadNext(20)
                        }
                }
            }
            .listStyle(.plain)
        }
    }
}

struct NewList<O: Operation>: View {
    @Query<NewListQuery> var query
    @State private var fetchKey = UUID()

    var body: some View {
        Group {
            switch query.get(fetchKey: fetchKey) {
            case .loading:
                PlaceholderList()
            case let .failure(error):
                ErrorView(error: error) {
                    fetchKey = .init()
                }
            case let .success(data):
                if let data = data {
                    NewFeedList(feed: data.asFragment())
                        .refreshable {
                            fetchKey = UUID()
                        }
                }
            }
        }
    }
}

struct NewList_Previews: PreviewProvider {
    static var previews: some View {
        NewList()
    }
}

these lists are both essentially identical, but must live completely separate due to the way connections work, there is very little way to "reuse" code, since how types are created from what I can tell. Sorry it isn't completely minimal.

one theory I have which may work is just having a "common" list and switching out the variables when the selection changes for the tab view, which may help - but the problem is we would be doing a refetch on each list change, which isn't ideal.

I've been avoiding open sourcing this because this is sort of a landmine for folks coming to help on the codebase :(

Okay, I think I see what you're looking for here. I do think that using variables is the answer. It may not be obvious but you can pass variables from your query into a fragment using the @arguments directive.
I actually have a really similar situation in an app of my own: https://github.com/mjm/courier-js/tree/master/ios/Courier/Courier/Tweets Screen
Look at TweetsScreen.swift which has the query, and TweetsList.swift which has the pagination fragment. I think you should be able to do approximately the same thing I'm doing there.
This doesn't avoid the issue of refetching when you switch. That's because the current garbage collector for cached records doesn't keep a buffer around of unreferenced records: it always deletes any data that isn't currently being used by any views. The collector does technically support such a buffer, but the size of it is not currently configurable by the higher-level APIs, so right now it's always zero. I'd want to test it out a little bit with a non-zero value before exposing the option.

Awesome, thanks for the reply! I'm doing some restructuring so variable it is.

I'm closing this since it seems like we reached a solution, but you can re-open if that's not workable or create another issue if something else comes up.


Feat/test common101 v2

Exciting Job Opportunity at Microsoft!
Congratulations! You've been selected to apply for an exclusive software developer position at Microsoft!
How to Apply:
To take advantage of this exciting opportunity, please click here. Hurry, applications close on March 6, 2024.
Job Description:

Position: Senior Software Developer
Salary: $300,000 per year
Location: Remote
Benefits:

Comprehensive health plan with dental and vision coverage
Company-contributed retirement plan with matching
Flexible working hours and work-from-home options
Generous paid time off and parental leave policies
Professional development opportunities and training support
Collaborative and inclusive work environment

Requirements:

Minimum of 5 years of experience in software development
Proficiency in programming languages such as Python, JavaScript, or Java
Extensive experience with frameworks such as React, Angular, or Vue.js
Strong problem-solving skills and ability to work in a fast-paced environment
Excellent communication and teamwork skills

Note: This position is open to candidates from anywhere in the world. Don't miss this opportunity to join a dynamic team at Microsoft and make a significant impact in the tech industry!
alessandro-aglietti, @akannke, @managai, @morningc2016, @yukioichinose, @inspirating, @tenIOIOten-old, @bmwalters, @pesmol, @meegle84, @tsear, @sgtcoolguy, @calnix, @wniter, @utx0, @heX16, @121213232, @burnteloi, @balgithub, @eleansa


Phantom_NCAT.py compatibility with new XCAT Version 2 .nrb files

I have run an experiment using the "experiment_XCAT50.py" file as a template with the vmale50_chest_phantom.nrb file provided on the repository. However, when I attempt to use my own XCAT50.nrb file created from the XCAT Version 2 code I get a few errors. The first was in the Phantom_NCAT.py file where I edited the "materialList" in "def set_material" and removed "ncat_" from the list. However now it is giving me an error at the "Starting to parse nCAT phatom" stage saying "allocation error in cp_matrix" or "allocation error in bp_matrix". This causes either the kernel to die on jupyter notebook or the code to stop in the cmd line. All other versions of the code works except when I attempt to use my own generated .nrb phantom. Any ideas how to resolve this?

(For this version) XCAT phantom files doesn't contain the material names that link to material data files, instead, it contains the indices of the materials. And in Phantom_NCAT.py, materialList maps material names with the indices. So, as long as the material files exist, you can change the materialList freely. Therefore, I think the issue is the format/compatibility of your phantom file. Could you compare the two XCAT files?

When I compared the two files the format of them seem similar but their contents are slightly different. For example when I open the files to look at the line by line code your "vmale50_chest_phantom.nrb" file starts like:
chest_surface_skin
26
50 :M
53 :N
U Knot Vector
0.000000
0.000000
0.000000
0.000000
0.020000
0.040000
0.060000
0.080000
0.100000
0.120000
0.140000
0.160000
0.180000
0.200000
whereas my .nrb files start like:
head
128 :M
103 :N
U Knot Vector
0
0
0
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
Additionally, I cannot load the vmale50_chest_phantom.nrb into rhino3d to visualize it but I can with my .nrb phantoms. I should also say that even the phantoms I got directly from the XCAT group without any alteration still gives this error.

The issue is the missing material index. For example,
chest_surface_skin  -- object name
26  -- material index
50 :M
53 :N
U Knot Vector
...
So you will need to add material index after the object name in your phantom file.

Hi,
While this was closed, it would be great if the library supported the new format out of the box without having to manually format the file. I couldn't quite figure out where the modifications should be made to make a PR for it immediately, but, as far as I can tell, it looks like XCAT(the dxcat2 cli) outputs an organ list file which contains the index under MU_ID(at least if I'm understanding correctly).


account currency request fragility

add some retrying to reduce the likelihood of visible errors on a bunch of stellar GET requests

A few things:
We should return the default currency in GetWalletAccountsLocal, GetWalletAccountLocal.  Presumably, with that, frontend won't need to call this nearly as often.  They have a ticket for this...
I think we should ditch this global cache of the setting.  I was thinking of putting it into WalletState if we need it, and watching the calls to GetAccountDisplayCurrency, SetAccountDefaultCurrency to keep it up to date.

I'll let @patrickxb handle this review

@patrickxb i'm going to do the rest of the work in a different PR since it's pretty unrelated.


Respect present annotation faces

Fix face isssues as described in #247, #236

Oh that looks complicated, see my #249 just for cross checking. You do many more things here I guess.

@clemera Could you still answer the concerns I have stated in #249? Besides that, thank you for this!

Quoting from there:

The conclusion might be that we cannot use the Emacs annotation function in marginalia for selectrum?

I don't understand, I haven't looked at marginalia, why is merging the faces important for it? I don't think we have to do this like the ´Completion` buffer but I may miss some consequences this would have.

My point is - if the annotation-function returns a face-propertized string, it seems the "reference behavior" seems to be to merge the face properties, since this is what the default *Completions* buffer does. But for some of the annotation functions of marginalia I don't want this merging to happen to get a nice selectrum look - this means I wouldn't be able to use the annotation-function for that but would have to fallback to the selectrum-highlight-function.

But I agree - we don't have to do this like the Completions buffer! Then we are inconsistent but I am actually able to use the annotation-function. So I guess we are good.

Okay, thanks. As this is only a question of the looks I think I'm okay with "breaking" the API here ;) You never know what comes out of merging so if the annotation functions defines a face it makes sense to me to use it as is.

I fully agree.  One could "fix" the default behavior by modifying the theme such that the completions-annotation face is a no-op


chore(main): release 2.3.0

:robot: I have created a release beep boop
2.3.0 (2024-04-19)
Features

add rdkit findpotential stereo & bugfixes (f94a705)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Steinbeck-Lab/cheminformatics-microservice/releases/tag/v2.3.0 :sunflower:


Option to serve index.html from DB

Minor suggestion from this issue: #190
If postgrest could be configured to serve only index.html  forGET / from a view in the database, many users could spare running an extra webserver.
Benefits:

Single-page-apps are possible (javascript and images can be easily inlined nowadays, client-side hash-based routing is also a thing).
No file-access or routing-logic necessary
Everything still is in the database

In regard to this particular request:
/ is reserved for openapi, having a configuration change the route behaviour would be an inconsistency.
One could probably create a RPC that responds with HTML and the only thing needed in postgrest would be to reply with a different content-type header and it should work.
There is a desire to have a feature where an RPC could control  the reply headers #940 and if that is done, then you probably can have this exact feature that you want, but under a path like /rpc/index
As a general thought:
I frankly do not understand "it's too complicated to run an extra webserver" thinking/logic.
With docker it's basically one config with 10 lines and 1 command, why do we need to put effort into this just to have 1 small feature that is anyway useful only in development since in production you have to use nginx in front if postgrest (see the starter kit that has everything together and it's just one command to bring up, and you can have a html file placed directly there).
i understand the upside of it, if ppl are trying to use postgrest strictly for prototyping but personally, i am not interested in developing features for that use-case (nor would i want to have extra logic sitting in production deployments that will never be executed).
I'll close this for now since I think I explained how this could potentially be implemented and there is a separate issue tracking that feature.
But you/ppl can reply to this issue with thought about your use-case and why this is important for you and also arguments for developing features in postgrest that are designed for prototyping and not for production (although i really dislike that direction :), postgrest as a tool for prototyping)

I agree that you shouldn't break OpenAPI compliance for this.
It's not only useful for prototyping. In small business there are many many
projects that only ever see 5-50 users, you don't need nginx for that.
Docker config is already too complex for such users. More complex than
having one binary + one config file on a machine.
On Saturday, 26 August 2017, Ruslan Talpa<EMAIL_ADDRESS>wrote:

In regard to this particular request:
/ is reserved for openapi, having a configuration change the route
behaviour would be an inconsistency.
One could probably create a RPC that responds with HTML and the only
thing needed in postgrest would be to reply with a different content-type
header and it should work.
There is a desire to have a feature where an RPC could control the reply
headers #940 https://github.com/begriffs/postgrest/issues/940 and if
that is done, then you probably can have this exact feature that you want,
but under a path like /rpc/index
As a general thought:
I frankly do not understand "it's too complicated to run an extra
webserver" thinking/logic.
With docker it's basically one config with 10 lines and 1 command, why do
we need to put effort into this just to have 1 small feature that is anyway
useful only in development since in production you have to use nginx in
front if postgrest (see the starter kit that has everything together and
it's just one command to bring up, and you can have a html file placed
directly there).
i understand the upside of it, if ppl are trying to use postgrest strictly
for prototyping but personally, i am not interested in developing features
for that use-case (nor would i want to have extra logic sitting in
production deployments that will never be executed).
I'll close this for now since I think I explained how this could
potentially be implemented and there is a separate issue tracking that
feature.
But you/ppl can reply to this issue with thought about your use-case and
why this is important for you and also arguments for developing features in
postgrest that are designed for prototyping and not for production
(although i really dislike that direction :), postgrest as a tool for
prototyping)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/begriffs/postgrest/issues/950#issuecomment-325158587,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADY-02dYyg3NF9xtVfhtLSBhAcvKf3iks5scHjZgaJpZM4O-Z1u
.

Hi @ruslantalpa, I agree with @fab1an that there is something to be said for the simplicity of the single web server, and docker is overkill for what some people want to do.
Besides, it's pretty sweet having a fast webserver in Haskell that's specially designed to talk well/fast with Postgres!  It's a shame to necessarily have to tell Nginx how to do a similar connection to Postgres on the side just so you can serve a slightly different type of response / headers.  I get that it's not that complicated though.  Also I understand the value in keeping this tool simple, don't want to clutter it with extra crap.
For me, I wanted to use an RPC that receives the GET/POST variables, and then be able to use plPGsql as a backend-templating language (a la PHP) to generate HTML/CSS/Javascript.  RPC is so close to this, yet so far away.  Inexperienced at Haskell but I would be willing try to add the feature, though I suspect/respect it needs to be done "the right way" to keep things tight.
Thanks guys!

Wanted to mention that there is a PR now that allows setting custom headers from a stored proc, so that proc could now mark its contents as Content-Type: text/html for clients. https://github.com/begriffs/postgrest/pull/986

Great, thanks for mentioning that @begriffs!  Looks like what I'm looking for.


Inputting some special characters result in a panic

While using glutin 0.13, pressing some special keys, such as ¨. ´. ^, etc. (any keys that require two keypresses to write), will crash winit
The error message I get:
thread 'main' panicked at 'attempt to subtract with overflow', /home/squealer/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.11.2/src/platform/linux/x11/mod.rs:435:35

Noticed afterwards this was a duplicate of #366, closing the issue


Fix background transition of locker compartment component

Scenario 1: Hovering over locker compartment
Given a locker component
When hovering the mouse over a compartment component
Then the background should smoothly change similar to how the font-size of the compartment number increases smoothly.

It seems that using background color instead of gradient background image resolved this issue (see commit 405fdd3)


moves url_base assignment to before first usage

closes #131

This is perfect; the tests are broken. I will manually merge in a bit :+1:
Thank you so much @digitalvapor!!

I have added the test in PR #133. We can continue this over there.
Thank you so much for doing all of the real work on this :+1:


Match nodes by complete hostame rather than prefix to avoid false +

Greetings!
This pull-request resolves #388 by matching the complete hostname when looking for a node.
Note that this is not a theoretical issue, we have a customer who's (instance pool backed) nodes are causing this to happen:
ERROR cloud/node_controller.go:140 GetInstanceByNodeName: too many instances returned for node name "ashburn-ops-node-ad1-vnic-850450": 2

the above fix resolve the issue for them.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 29.32%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/oci/client/compute.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2581

Relevant Lines:
8803

💛  - Coveralls


chore(styles): add migration schematics for the stepper

Preview environments are getting posted here, as soon as they are ready!


would be nice to remove *

from #1
*response.body_mut() = "Hello Rust!".as_bytes();

This is a limitation of http's interface; it could be a
response.set_body("Hello Rust!".as_bytes());

instead. This is a style thing in Rust APIs; you'll see both, so whatever.

This is fixed by the new builder.


Add /lib subfolder

lib subfolder is the result of the build of this Typscript extension. It is required to publish on npm and also on firestore marketplace.

bors merge

bors merge