Transferring field attribution to UA

First of all, I want to thank you for an incredibly cool tool!
We are trying to deal with the transfer of attribution of fields to the UA from Google.
Step by step:

We have connected the library and added a function:

import {onCLS, onFID, onLCP} from 'https://unpkg.com/web-vitals@3/dist/web-vitals.attribution.js?module';
function sendToGoogleAnalytics({name, delta, value, id, attribution}) {...}

and enabled field attribution:

  switch (name) {
    case 'CLS':
      eventParams.debug_target = attribution.largestShiftTarget;
      break;
    case 'FID':
      eventParams.debug_target = attribution.eventTarget;
      break;
    case 'LCP':
      eventParams.debug_target = attribution.element;
      break;
  }
    case 'FID':
      eventParams.debug_target = attribution.eventTarget;
      break;
    case 'LCP':
      eventParams.debug_target = attribution.element;
      break;
  }

Passing the results to GA

onCLS(sendToGoogleAnalytics);
onFID(sendToGoogleAnalytics);
onLCP(sendToGoogleAnalytics);

But we do not get the result in the form of fields (div and so on) that led to the greatest changes in CLS, FND, LCP.
Tell me, please, what else do we need to do?

Can you show what you are doing with your eventParams?
This needs to be sent to GA like this in GA4:
gtag('event', name, eventParams);

Or with a custom dimension in prior versions of GA:
        ga('send', 'event', {
          eventCategory: 'Web Vitals',
          eventAction: name,
          // The `id` value will be unique to the current page load. When sending
          // multiple values from the same page (e.g. for CLS), Google Analytics can
          // compute a total by grouping on this ID (note: requires `eventLabel` to
          // be a dimension in your report).
          eventLabel: id,
          // Google Analytics metrics must be integers, so the value is rounded.
          // For CLS the value is first multiplied by 1000 for greater precision
          // (note: increase the multiplier for greater precision if needed).
          eventValue: Math.round(name === 'CLS' ? delta * 1000 : delta),
          // Use a non-interaction event to avoid affecting bounce rate.
          nonInteraction: true,
          // Use `sendBeacon()` if the browser supports it.
          transport: 'beacon',

          // OPTIONAL: any additional params or debug info here.
          // See: https://web.dev/debug-web-vitals-in-the-field/
          // dimension1: '...',
          // dimension2: '...',
          dimension1: eventParams.debug_target
          // ...
        });

Do I need to add something to the script or do something on the GA side?

I'd just set it up in the exact same way and am seeing debug_target event parameters on the LCP events.
Here's is a view from the Real Time screen in GA:

Are you seeing the LCP events in GA4 but just not the debug_target?
Or are you not seeing the events at all?
Can you see the data being sent in the Network panel? Here's an example from my test site:

You can see for yourself here: https://www.tunetheweb.com/experiments/ga4/

Thanks a lot! I think I'm beginning to understand. All necessary data is transmitted:

This means that all the necessary data is being transmitted. But I can't figure out how to customize their representation, as in the screenshot below.
https://web-dev.imgix.net/image/eqprBhZUGfb8WYnumQ9ljAxRrA72/Y49u3cmRD6RfAaZGCSmx.png?auto=format&w=845
Tell me, please, do I need to add something to the script code?

Ah, sorry, I missed that this issue was in the Web Vitals Report repo, and not the web vitals library - apologies.
As noted in the README unfortunately the Web Vitals Report is not compatible with GA4 so this cannot be used.
@philipwalton detailed how to extract this information from GA4 via BigQuery in this article: https://web.dev/vitals-ga4/, including this section on extracting the Debug information: https://web.dev/vitals-ga4/#example-queries-2.
Let us know how that looks, and then think we can close out this issue as GA4 support is being tracked in #22 ?

Oh, thank you!
Do I understand correctly that if I use gtag or an old version of GA, then the script (https://github.com/GoogleChromeLabs/web-vitals-report/issues/24#issuecomment-1315291714 ) will transmit data in the form as in the picture:

Thanks!
It turns out that the script code will be like this:
<script type="module">
import {onCLS, onFID, onLCP} from 'https://unpkg.com/web-vitals@3/dist/web-vitals.js?module';

function sendToGoogleAnalytics({name, delta, id}) {
  ga('send', 'event', {
          eventCategory: 'Web Vitals',
          eventAction: name,
          eventLabel: id,
          eventValue: Math.round(name === 'CLS' ? delta * 1000 : delta),
          nonInteraction: true,
          transport: 'beacon',
          dimension1: eventParams.debug_target
        });
}

onCLS(sendToGoogleAnalytics);
onFID(sendToGoogleAnalytics);
onLCP(sendToGoogleAnalytics);
</script>

Next I need to create custom dimensions in Google UA.
And there are difficulties with this. If I understood correctly, then you need to create like this:

But this throws an error in the console:

I'm sure I'm doing something wrong, but I can't find the instructions for it. Could you tell me the next step?

Your code needs to be like this:
function sendToGoogleAnalytics({name, delta, id, attribution}) {

  let debug_target;

  switch (name) {
    case 'CLS':
     debug_target = attribution.largestShiftTarget;
      break;
    case 'FID':
     debug_target = attribution.eventTarget;
      break;
    case 'LCP':
     debug_target = attribution.element;
      break;
  }

  ga('send', 'event', {
          eventCategory: 'Web Vitals',
          eventAction: name,
          eventLabel: id,
          eventValue: Math.round(name === 'CLS' ? delta * 1000 : delta),
          nonInteraction: true,
          transport: 'beacon',
          dimension1: debug_target
        });
}

onCLS(sendToGoogleAnalytics);
onFID(sendToGoogleAnalytics);
onLCP(sendToGoogleAnalytics);
</script>

Many thanks to you, Barry!
It works!

Hello! Thank you again for the unique and cool tool!
Another question arose. The code above works for Google UA. But Google UA connects mainly via gtag. Like this:
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXX-X"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-XXX-X');
</script>

Hence ga() will not send data to Google UA. So I need to use the Core Web Vitals script for UA gtag. like this:

<script type="module">
import {onCLS, onFID, onLCP} from 'https://unpkg.com/web-vitals@3/dist/web-vitals.attribution.js?module';
function sendToGoogleAnalytics({name, delta, id, attribution}) {
 let debug_target;

  switch (name) {
    case 'CLS':
     debug_target = attribution.largestShiftTarget;
      break;
    case 'FID':
     debug_target = attribution.eventTarget;
      break;
    case 'LCP':
     debug_target = attribution.element;
      break;
  }

  gtag('event', name, {
    event_category: 'Web Vitals',
    event_label: id,
    value: Math.round(name === 'CLS' ? delta * 1000 : delta),
    non_interaction: true,
	dimension1: debug_target  });
}

onCLS(sendToGoogleAnalytics);
onFID(sendToGoogleAnalytics);
onLCP(sendToGoogleAnalytics);
</script>

Please tell me what to enter here in this case?

Or in the case of gtag UA, we can't get data in the fields like here?

gtag() is just a wrapper around the standard ga() calls.
So you can use the same values. the ga in those fields refers to "Google Analytics" rather than the ga() function used to send data from the page to Google Analytics.

Are you sure this is not a GA4 instance of Google Analytics?
Can you see the data in the Google Analytics?
Can you see the data being sent in Dev Tools?

Are you sure this is not a GA4 instance of Google Analytics?
Yes, I created a separate tag and indicated that I would use Google UA.
Can you see the data in the Google Analytics?
Yes, the data is coming

Oops, sorry!
The data started coming in, maybe it needed a little time.

A small point is that the data is not specified for individual pages. Does it also take time and wait a little?

I would have thought that should have landed at the same time as the attribution debug information but it can take some time so I'd try again later today.

Once again and many many many times, thank you very much, Barry!


Links in the Readme not working

If its okay can I fix this issue ?

i can i work on that

I'm interested to contribute, please assign me this.

pls assign this issue to me.

please assign this issue to me.


How to get the video reference to use Pannellum API functions?

i use the video example code
var v1 = videojs('pan1', { loop: true, plugins: { pannellum: { "hfov": 120 } } });
i want to use the api 'toggleFunction',
but after i use
` v1.pnlmViewer.toggleFullscreen();
v1.pannellum.toggleFullscreen();
v1.pnlm.toggleFullscreen();
v1.pnlmViewer.toggleFullscreen(); `
all don't work! the console output below
Cannot read property 'toggleFullscreen' of undefined
what‘s the right code to make the right reference。。。。need help!

Are you using a new version of utils/video/videojs-pannellum-plugin.js? The ability to reference the Pannellum object was added March 30 in e0a108a50440ccbe095e46551657a13ee682280f. With the latest version of the plugin, v1.pnlmViewer.toggleFullscreen(); should work.

thx,petroff, it works ,and i can access to the pnlmViewer.
i finally toggle fullscreen using the videojs api ,cause the videojs player's fullscreen function acts a little different with pnlmViewer's toggleFullscreen() . i can't tell.
thx!!!


fix set input text by removing text from input

This fixes the set input text function by removing the texts in the input.

@bicced Seems if you click on the button multiple times it changes the text on the UI but when you actually post it, its just the first text


[FEATURE] add hover effect on social icons

Currently, the social icons at the bottom hav no hover effect
Add a simple one.
It must work both for dark mode ann light mode.

@FrancescoXX I would love to work on it, shall I?

@FrancescoXX either i can work on it

go for it @ramnaresh8

@FrancescoXX thanks for the opportunity, I've submitted the pull request. I would wait for your review. Thanks again :)

closed by #91


output file compatible with radarr/couch potato

it might be more useful to make the output file compatible with radarr/couch potato so all the movies could easily be imported

In addition, this could be done somehow by creating an IMdb playlist with the missing movies, then the user just needs to add the playlist to radarrs "lists" feature.

Fixed in 0.0.3


Add support for deleteActivity and updateActivity

Adding support for these methods in WebChat will bring support for these methods to the emulator, which is important to allow developers to truly test their applications which may rely on these methods!
According to @compulim this would involve a few lines here:
https://github.com/Microsoft/BotFramework-WebChat/blob/master/packages/core/src/reducers/activities.js#L83

Meeting scheduled. Attached a list of pre-meeting questions, please feel free to add to below:

Delete activity, requested by bot

What channels support delete activity today?
Any stories to support this scenario?
Will this remove the activity in the conversation history?

Update activity, requested by bot

What channels support update activity today?
Any stories to support this scenario?

(Web Chat) After the user submit an Adaptive Card, it can be render as something else to prevent re-submission

Will this update the activity in the conversation history?


[Utility] Check bounding box validity

Is your feature request related to a problem? Please describe.
Related to #27 and #39
The user could pass bad values such as strange numbers or invalid values, or reverse the values like a latitude,longitude instead of longitude,latitude order
Describe the solution you'd like
We should consider a validity check here. A bbox should always consist of a (lon,lat) for the lower left (i.e. southwest) corner of a box, and (lon,lat) for the upper right (northeast) corner.

longitude range: has a min value of -180, a max value of 180
latitude range: has a min value of -90, max value of 90
latitude compare: in a bbox of [west,south,east,north] the value of south should always be smaller than the value of north (because south is lower, closer to -90, north is higher toward 90, even if both are negative)
longitude compare: in a bbox of [west,south,east,north] the value of west should always be smaller than the value of east, EXCEPT if the bbox crosses the international dateline, which we can check with #39. Technically any time that west > east it could cross the dateline, but could also be an error. If it passes the dateline test we should just consider it valid.
zero values: 0 is valid for all values in a bbox n a bbox of [west,south,east,north] the value
equal values: we should never see east == west and never see south == north. This produces a flat box or line that has no inner size to get data within

Describe alternatives you've considered
Alternative could be to let the user just get a message that the function fails and somewhere it will be due to an a invalid bounding box, but not made clear to the user

@joeyouss

Welcome, @joeyouss!

@joeyouss, if you need any help or if you run into any problems, let us know!

Thank you !


Word Wrapping Problem in Input Field

Issue: Word Wrapping Problem in Input Field
Description:
There is an issue with the word wrapping behavior in the input field of the chat application. The input text does not wrap correctly when it reaches the edge of the input box, and instead, it causes horizontal scrolling or text overflow outside the input field. Additionally, the placeholder text may not be aligned properly with larger or smaller input field sizes.
Steps to Reproduce:

Open the application and focus on the input text field.
Type a long string of text without hitting enter.
Observe that the text does not wrap as expected, and may overflow or cause scrolling horizontally.

Expected Behavior:
The input text should wrap properly within the input box without causing horizontal scrolling or overflow.
Actual Behavior:
Text overflows outside the input box or causes horizontal scrolling.
Possible Cause:
The issue might be related to the flags used in ImGui::InputTextMultiline() or the incorrect handling of the content region width and padding when rendering the input field. Word-wrapping logic may not be handling the input field width properly.
Proposed Solution:

Investigate if the ImGuiInputTextFlags_NoHorizontalScroll flag is correctly applied, and ensure that text wrapping is enabled in the input field.
Adjust input box width calculations and ensure padding does not interfere with the word-wrapping behavior.

Relevant Code:
ImGuiInputTextFlags flags = ImGuiInputTextFlags_EnterReturnsTrue |
                            ImGuiInputTextFlags_CtrlEnterForNewLine;

ImVec2 inputSize = ImVec2(inputWidth, inputHeight); // Input height is adjustable
ImGui::InputTextMultiline("##input", inputText, IM_ARRAYSIZE(inputText), inputSize, flags);

Environment:

OS: Ubuntu 24.04
ImGui Version: 1.91.4
OpenGL/GLFW Version: 3.4
Hardware: Thinkpad X1 Carbon Gen 9

Additional Context:
The issue may be more noticeable with larger input fields or specific input padding values. Placeholder alignment also seems to be inconsistent based on the input field size, which could be related to the word-wrapping problem.

Altering imgui library by using text wrap functionality to the multi-line text input would suffix.
https://github.com/abvadabra
Imandana's solution might be the simplest, but have issue in cursor navigation.
Issue:
cavet (keyboard cursor) can't move down.


Change returning app order in get_app of connectors

This fix #490

See https://github.com/mitsuhiko/flask-sqlalchemy/issues/490#issuecomment-314720313
FYI: Your commit messages is excessively long (first line should be <51 chars) and contains typos.

Fixed in #547. The order wasn't the issue, needed to return current_app._get_current_object().


Delete Enrollment Method Error

Describe the bug?
After enrolling to Okta via iOS and when I invoke SDK's enrollment delete method, I get 401 Unauthorized error from idp/myaccount/app-authenticators/.
Error details:
error="invalid_token"
error_description="The access token has been revoked."
This is happening because revoke method is invoked before idp/myaccount/app-authenticators endpoint in my opinion.
Some screenshots are provided below.
What is expected to happen?
I was expecting to see delete method works properly and removed enrolments.
What is the actual behavior?
It doesn't remove enrollments
Reproduction Steps?
Steps:
1- Login with Okta and enroll
2- Logout and delete enrollment
3- You should see that SDK is not removing enrollment
Invoked endpoints and statuses during enrollment

Invoked endpoints and statuses during delete enrollment

Additional Information?
Thank you.
SDK Version(s)
1.1.2
Build Information
No response

Hi @KaannnOzdemiir ,
That is totally correct assumption - This is happening because revoke method is invoked before idp/myaccount/app-authenticators endpoint in my opinion.
Please change the sequence of operations. Delete push authenticator enrollment first and then proceed with the sign-out process
Ildar


docs: Add persistence layer (MSSQL) to WeatherForecast example

@testcontainers/oss-team does anyone would like to review .NET PRs?


change the way c++ compile

./cc/configure_tensorflow.sh
always end up with download error
hope changes made in BUILD file so the c++ part can be move to tensorflow/examples directory and compile with bazel build tensorflow/examples/cc/...

no need

we're working a proper solution for this, how did you end up working around it?

Somehow the download completed, and it is tensorflow 1.13 rc2 in the /tmp/minigo_tf, I replace it with tensorflow 1.13.2, tweek the cc/configure_tensorflow.sh to disable the git download, but the later process has "tensorflow dir not found" error. I will rerun to make sure


[Feature]Support Show databases from catalog; for dla connector

What type of PR is this：

[ ] bug
[x] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

[FE PR Coverage check]
:disappointed: fail : 9 / 24 (37.50%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
1
13
07.69%

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
2
4
50.00%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
6
7
85.71%

[FE PR Coverage check]
:disappointed: fail : 8 / 25 (32.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
1
15
06.67%

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
2
4
50.00%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
5
6
83.33%

[FE PR Coverage check]
:disappointed: fail : 20 / 40 (50.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
3
12
25.00%

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
7
17
41.18%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

[FE PR Coverage check]
:disappointed: fail : 22 / 39 (56.41%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
7
17
41.18%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
5
11
45.45%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

run starrocks_fe_unittest

[FE PR Coverage check]
:disappointed: fail : 19 / 29 (65.52%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
5
11
45.45%

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

[FE PR Coverage check]
:disappointed: fail : 28 / 39 (71.79%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/sql/analyzer/ShowStmtAnalyzer.java
5
8
62.50%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
8
12
66.67%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

:large_blue_circle:
com/starrocks/common/ErrorCode.java
1
1
100.00%

[FE PR Coverage check]
:disappointed: fail : 28 / 39 (71.79%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/sql/analyzer/ShowStmtAnalyzer.java
5
8
62.50%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
8
12
66.67%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

:large_blue_circle:
com/starrocks/common/ErrorCode.java
1
1
100.00%

[FE PR Coverage check]
:disappointed: fail : 30 / 39 (76.92%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/sql/analyzer/ShowStmtAnalyzer.java
5
8
62.50%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
10
12
83.33%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

:large_blue_circle:
com/starrocks/common/ErrorCode.java
1
1
100.00%

[FE PR Coverage check]
:disappointed: fail : 29 / 38 (76.32%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/sql/analyzer/ShowStmtAnalyzer.java
5
8
62.50%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
9
11
81.82%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
10
11
90.91%

:large_blue_circle:
com/starrocks/common/ErrorCode.java
1
1
100.00%

run starrocks_fe_unittest

run starrocks_fe_unittest

[FE PR Coverage check]
:disappointed: fail : 27 / 36 (75.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/sql/parser/AstBuilder.java
4
7
57.14%

:large_blue_circle:
com/starrocks/sql/analyzer/ShowStmtAnalyzer.java
4
6
66.67%

:large_blue_circle:
com/starrocks/qe/ShowExecutor.java
8
10
80.00%

:large_blue_circle:
com/starrocks/analysis/ShowDbStmt.java
11
13
84.62%


[Android | Expo 51 | RN 0.74.1] newArchEnabled = true; parseSync is not a function

Description
I am trying to build android app -> npx expo run:android with newArchEnabled=true
I got an error

Steps to reproduce

Install the latest lottie-react-native 6.7.2
set newArchEnabled=true on gradle.properties file
start npx expo run:android

Snack or a link to a repository
https://snack.expo.dev/@mikhailr1337/lottie-react-native
Lottie React Native version
6.7.2
React Native version
0.74.1
Platforms
Android
Workflow
React Native
Architecture
Fabric (New Architecture)
Build type
None
Device
Android emulator
Acknowledgements
Yes

Thanks for opening this issue. I am also facing same issue.

I was able to fix this using
https://github.com/expo/expo/issues/28494#issuecomment-2081770811

Seems like an issue with codegen and not related to just lottie. Please refer to https://github.com/expo/expo/issues/28494#issuecomment-2081770811.


Building on MacOS Catalina gives 'ld: framework not found Cocoa'

Hey, I'm trying to get simple OpenGLAda programs to build on my Mac machine but I'm running into this issue:

To be clear upfront, this might not be an issue with OpenGLAda. I just have no idea what else it could be, so I'm starting here. No worries if you think this is not your bug, I'll probably take it to Homebrew next.
The program I'm testing is two files, testing.adb and testing.gpr. I'm basically just initialising a window, sleeping for three seconds, then destroying it.
testing.adb:
with GL; use GL;
with Glfw; use Glfw;
with Glfw.Windows;

procedure Testing is
    Window : aliased Glfw.Windows.Window;
begin
    Glfw.Init;
    Window.Init (Width => 1280, Height => 720, Title => "Testing");

    delay 3.0;

    Window.Destroy;
end Testing;

And testing.gpr:
with "./dep/openglada/opengl";
with "./dep/openglada/opengl-glfw";

project Testing is
    for Source_Dirs use ("src");
    for Object_Dir use "obj";
    for Main use ("testing");
end Testing;

I installed GLFW via Homebrew and have LIBRARY_PATH=/usr/local/lib in my env.
As you saw above, building this with gprbuild results in the Cocoa not found error.
An equivalent C program seems to work (but it also doesn't use Cocoa afaik...):
#include <GLFW/glfw3.h>
#include <OpenGL/gl.h>
#include <unistd.h>

int main(void) {
    int init_result = glfwInit();
    GLFWwindow *window = glfwCreateWindow(1280, 720, "Testing", NULL, NULL);

    sleep(3);

    glfwDestroyWindow(window);
}

Compiling this works just fine:

If it's not too much trouble, could you possibly see if you're having this problem too? If not I'll assume it's something borked in my Homebrew setup or something.
Thanks very much!

I think there's more initialization needed.
Check initialize.adb under OpenGLAda-examples/common/src of the '/flx/OpenGLAda-examples' repository.
Or perhaps have a look at one of the simple OpenGLAda-examples.
One of the simplest is OpenGLAda-examples/superbible/simplest

This glfw based tutorial might help, https://capnramses.github.io//opengl/index.html.

ld: framework not found Cocoa

This has nothing to do with your code, it's a linker error. Do you have Xcode installed? I am not quite sure about this, but I think you need a macOS SDK installed, which comes with Xcode.

I do have Xcode installed via the App Store, yes. I've just reinstalled it but that didn't help. Guess I'll look into this more, thanks for the help. Still, if you happen to have any other ideas, I'm all ears, this one's got me stumped. Thanks again.

Hmm, Xcode command line utilities installed?
I just checked on my machine, the framework should be in

/System/Library/Frameworks/Cocoa.framework
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Cocoa.framework/

I believe the second one is what Xcode would use but the first one is what GNAT requires because it has no clue about which macOS SDK to use. Not completely sure. The first option may be installed with Xcode command line tools, or it may be already there. Frankly, macOS moves it developer stuff around so much I lost track of how things are supposed to work.
If the first option is missing and you can't figure out how to create it, or if you want to just try out things, you can try modifying OpenGLAda's linker options in the opengl.gpr file:
when "quartz" =>
            for Linker_Options use
              ("-Wl,-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks,-framework,OpenGL,-framework,CoreFoundation");

-F gives the framework search path.
That's all I can think of. Let me know if something works :).

On my system the Cocoa framework is installed as /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk 1/System/Library/Frameworks/Cocoa.framework.
Perhaps you could check that it is actually installed on your system?
Also, sometimes I get a dialog from Xcode requesting permission to install additional components; usually, I think, after an OS update.
Another thought is that you might need an appropriate gpr configure file  (.cgpr). Perhaps run gprconfig?
But I doubt that that's your problem as I can't find any reference to cocoa in my gpr configure file.
I'm wondering if you need the reference to cocoa at all as my typical build command doesn't include any mention of cocoa:
gprbuild -d -eL -P/System/Volumes/Data/Ada_Source/OpenGLAda-examples/redbook/03_draw_commands/draw_commands.gpr
-XMode=debug -XLibrary_Type=static -XAuto_Exceptions=enabled -XWindowing_System=quartz -XGLFW_Version=3
/System/Volumes/Data/Ada_Source/OpenGLAda-examples/redbook/03_draw_commands/src/draw_triangles.adb -s
 --config=/System/Volumes/Data/Ada_Source/default.cgpr -p

Just some thoughts and probably not much help.
I'll try your code on my system and see what happens.

Ah, one more thing, you can set the environment variable DYLD_FRAMEWORK_PATH to the folder where your frameworks are located, this is a better solution than tinkering with the opengl.gpr file.

I tried your code on my system.
It ran to completion but no window was displayed.
/System/Volumes/Data/Ada_Source/More_OglAda_Examples/tester/obj/testing
[2020-08-18 22:05:41] process terminated successfully, elapsed time: 03.36s

The command generated by GPS was:
gprbuild -d -eL -P/System/Volumes/Data/Ada_Source/More_OglAda_Examples/tester/testing.gpr -XGLFW_Version=3
 -XLibrary_Type=static -XAuto_Exceptions=enabled -XMode=debug -XWindowing_System=quartz
/System/Volumes/Data/Ada_Source/More_OglAda_Examples/tester/src/testing.adb
 -s --config=/System/Volumes/Data/Ada_Source/default.cgpr -p

Non-display of window possibly due to additional initialization needed for Mac?

@flyx Thanks so much for the info, that's quite helpful. I do seem to have both of those directories for Cocoa.framework, the contents of the latter look like this:

Exporting DYLD_FRAMEWORK_PATH any of the mentioned directories hasn't seemed to help.
I tried compiling the redbook example that @rogermc2 used, and it also fails to link with the same error:

@rogermc2 I don't believe the code does display a window, no. The C one doesn't, anyway. My main problem right now is that I can't get any OpenGLAda code at all to link on my system. Thanks for trying it on yours, it's strange that it works for you and not for me. I'm quite new to development on MacOS so all this 'framework' stuff is pretty new to me. 🤷♀
Thanks so much for everyone's help.

I also remain "a novice at all this 'framework' stuff"!
Here is my gprbuild command, generated by GPS for draw_triangles:
gprbuild -d -eL -P/Ada_Source/OpenGLAda-examples/redbook/03_draw_commands/draw_commands.gpr
-XMode=debug -XLibrary_Type=static -XAuto_Exceptions=enabled -XWindowing_System=quartz
-XGLFW_Version=3 draw_triangles.adb -s --config=/Ada_Source/default.cgpr

I tried your method of just invoking gprbuild on the terminal command line:
MacBook-Air:03_draw_commands rogermcmurtrie$ gprbuild
using project file draw_commands.gpr
Compile
   [Ada]          draw_triangles.adb
.
.
.

through to:
Link
   [link]         draw_triangles.adb
ld: library not found for -lfreetype
collect2: error: ld returned 1 exit status
gprbuild: link of draw_triangles.adb failed

From my limited experience of using gprbuild from the command line, using just the command gprbuild seems insufficient;  additional parameters are usually required.
Again, in my limited experience, at least specifying a configuration file is required.
I suggest trying my gprbuild command above for draw_triangles or, rather, the one for the testing program with parameters changed to suit your system. You might try it without the --config parameter but it will probably fail in which case you will need to generate a configure file using gprconfig.
I just tried the gprbuild command above for draw_triangles from the command line and it completed successfully.
Then tried it without the --config parameter and it failed with:
ld: library not found for -lfreetype

so it seems that a configuration file is essential.
I next tried it with only the  --config parameter and, surprisingly, it built and ran successfully:
MacBook-Air:03_draw_commands rogermcmurtrie$ gprbuild  --config=/Ada_Source/default.cgpr
using project file draw_commands.gpr
Compile
   [Ada]          draw_triangles.adb
   [Ada]          main_loop.adb
.
.
.

It could be that the system "remembered" some of the other parameters.

@rogermc2 !!! 🥳 GPRconfig worked! I tried it when you suggested before but I selected the GCC compiler included with GNAT for both C and C++. Nothing changed, so I didn't mention it. I just tried again, but selecting the LLVM compilers in /usr/bin this time (probably Clang installed via Homebrew), and the program links and runs just fine now!
It generated a config file called default.cgpr, which gprbuild grabs by default according to the docs. So now just running gprbuild on its own has the program compiling and linking properly!

Thanks so much!! I've even got my cargame-ada project compiling again, so now I can get back to work on it!
You guys really went above and beyond, thank you so much for the help! 🎉🎊🥳


tests failing

libp2p-ipfs-browser (webrtc only) dial from the second node to the first node:
Error: timeout of 15000ms exceeded. Ensure the done() callback is being called in this test.
libp2p-ipfs-browser (webrtc only) node1 hangUp node2:
Error: Uncaught AssertionError: expected true to not exist

╰─$ npm run test:browser

><EMAIL_ADDRESS>test:browser /Users/kumavis/dev/js-libp2p-ipfs-browser
> gulp test:browser

[14:10:13] Using gulpfile ~/dev/js-libp2p-ipfs-browser/gulpfile.js
[14:10:13] Starting 'test:browser'...
[14:10:13] Starting 'libnode:start'...
[14:10:14] Finished 'libnode:start' after 144 ms
[14:10:14] Starting 'test:browser:before'...
[14:10:14] Finished 'test:browser:before' after 6.68 μs
[14:10:14] Starting 'karma'...

15 11 2016 14:10:15.003:WARN [watcher]: Pattern "/Users/kumavis/dev/js-libp2p-ipfs-browser/test/**/*.spec.js" does not match any file.
15 11 2016 14:10:15.005:WARN [watcher]: Pattern "/Users/kumavis/dev/js-libp2p-ipfs-browser/test/fixtures/**/*" does not match any file.
15 11 2016 14:10:21.580:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
15 11 2016 14:10:21.580:INFO [launcher]: Launching browser Chrome with concurrency 1
15 11 2016 14:10:21.586:INFO [launcher]: Starting browser Chrome
15 11 2016 14:10:23.641:INFO [Chrome 54.0.2840 (Mac OS X 10.10.5)]: Connected on socket /#Jzlh0kAh8zpJWeljAAAA with id 79955531
  libp2p-ipfs-browser (websockets only)
    ✓ create libp2pNode (607ms)
    ✓ start libp2pNode (1ms)
    ✓ libp2p.dialByMultiaddr nodeA to nodeB (639ms)
    ✓ libp2p.dialByMultiaddr on Protocol nodeA to nodeB (53ms)
    ✓ libp2p.hangupByMultiaddr nodeA to nodeB (506ms)
    ✓ libp2p.dialByPeerInfo nodeA to nodeB (561ms)
    ✓ libp2p.dialByPeerInfo on Protocol nodeA to nodeB (26ms)
    ✓ libp2p.hangupByPeerInfo nodeA to nodeB (503ms)
    - libp2p.dialById nodeA to nodeB
    - libp2p.dialById on Protocol nodeA to nodeB
    - libp2p.hangupById nodeA to nodeB
    stress
      ✓ one big write (4289ms)
      ✓ many writes (1553ms)

  libp2p-ipfs-browser (webrtc only)
    ✓ create two peerInfo with webrtc-star addrs (667ms)
    ✓ create two libp2p nodes with those peers (2ms)
    ✓ listen on the two libp2p nodes (23ms)
    ✓ handle a protocol on the first node
    1) dial from the second node to the first node
    2) node1 hangUp node2
    ✓ create a third node and check that discovery works

  15 passing (34s)
  3 pending
  2 failing

  1) libp2p-ipfs-browser (webrtc only) dial from the second node to the first node:
     Error: timeout of 15000ms exceeded. Ensure the done() callback is being called in this test.

  2) libp2p-ipfs-browser (webrtc only) node1 hangUp node2:
     Error: Uncaught AssertionError: expected true to not exist (webpack:///~/chai/lib/chai/assertion.js:107:0 <- test/browser.js:63401)

[14:10:49] 'karma' errored after 35 s
[14:10:49] Error: Some tests are failing
    at formatError (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/gulp/bin/gulp.js:195:15)
    at emitOne (events.js:101:20)
    at Gulp.emit (events.js:188:7)
    at Gulp.Orchestrator._emitTaskDone (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/orchestrator/index.js:264:8)
    at /Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/orchestrator/index.js:275:23
    at finish (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/orchestrator/lib/runTask.js:29:3)
    at Server (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/aegir/tasks/test/browser.js:21:7)
    at removeAllListeners (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/karma/lib/server.js:379:7)
    at Server.<anonymous> (/Users/kumavis/dev/js-libp2p-ipfs-browser/node_modules/karma/lib/server.js:390:9)
    at Server.g (events.js:286:16)
    at emitNone (events.js:91:20)
    at Server.emit (events.js:185:7)
    at emitCloseNT (net.js:1548:8)
    at _combinedTickCallback (internal/process/next_tick.js:71:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

npm ERR! Darwin 14.5.0
npm ERR! argv "/Users/kumavis/.nvm/versions/node/v6.3.1/bin/node" "/Users/kumavis/.nvm/versions/node/v6.3.1/bin/npm" "run" "test:browser"
npm ERR! node v6.3.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>test:browser: `gulp test:browser`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test:browser script 'gulp test:browser'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the libp2p-ipfs-browser package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp test:browser
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs libp2p-ipfs-browser
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls libp2p-ipfs-browser
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/kumavis/dev/js-libp2p-ipfs-browser/npm-debug.log

So after much debugging, seems the IceConnection is failing inside of simple-peer. No idea why.

@kumavis is this master or any other version?

master - shoot what branch was i supposed to be using?

I see you are using npm 3, so it should be good.
I just did a fresh clone, fresh npm install and everything is working fine:
  libp2p-ipfs-browser (websockets only)
    ✓ create libp2pNode (245ms)
    ✓ start libp2pNode (1ms)
    ✓ libp2p.dialByMultiaddr nodeA to nodeB (622ms)
    ✓ libp2p.dialByMultiaddr on Protocol nodeA to nodeB (31ms)
    ✓ libp2p.hangupByMultiaddr nodeA to nodeB (504ms)
    ✓ libp2p.dialByPeerInfo nodeA to nodeB (548ms)
    ✓ libp2p.dialByPeerInfo on Protocol nodeA to nodeB (20ms)
    ✓ libp2p.hangupByPeerInfo nodeA to nodeB (503ms)
    - libp2p.dialById nodeA to nodeB
    - libp2p.dialById on Protocol nodeA to nodeB
    - libp2p.hangupById nodeA to nodeB
    stress
      ✓ one big write (2910ms)
      ✓ many writes (1513ms)

  libp2p-ipfs-browser (webrtc only)
    ✓ create two peerInfo with webrtc-star addrs (1120ms)
    ✓ create two libp2p nodes with those peers (2ms)
    ✓ listen on the two libp2p nodes (21ms)
    ✓ handle a protocol on the first node
    ✓ dial from the second node to the first node (767ms)
    ✓ node1 hangUp node2 (502ms)
    ✓ create a third node and check that discovery works (2338ms)

  17 passing (17s)
  3 pending

CI is also fine https://travis-ci.org/ipfs/js-libp2p-ipfs-browser/jobs/176329622
Can you try to npm fresh install?

I also tried running the tests on a fresh clone from master (950a9ad3f415b3c7284ef5a93715ef0df1d58a3b currently) and tests are failing for me as well, but with different error and also a worrisome discovery.
Firstly, error in the test involves webpack:
17 11 2016 11:36:10.134:ERROR [preprocess]: Can not load "webpack"!
  WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration has an unknown property 'debug'. These properties are valid:
   object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry, externals?, loader?, module?, name?, node?, output?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
   The 'debug' property was removed in webpack 2.
   Loaders should be updated to allow passing this option via loader options in module.rules.
   Until loaders are updated one can use the LoaderOptionsPlugin to switch loaders into debug mode:
   plugins: [
     new webpack.LoaderOptionsPlugin({
       debug: true
     })
   ]
 - configuration.module has an unknown property 'postLoaders'. These properties are valid:
   object { exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, loaders?, noParse?, rules?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, wrappedContextCritical?, wrappedContextRecursive?, wrappedContextRegExp? }

Secondly, the exit code from running the tests is 0! Which in reality should mean the tests are passing, but they are not.
Full logs:
➜  js-libp2p-ipfs-browser git:(master) npm test

><EMAIL_ADDRESS>test /home/victor/projects/ipfs/js-libp2p-ipfs-browser
> gulp test

[11:35:58] Using gulpfile ~/projects/ipfs/js-libp2p-ipfs-browser/gulpfile.js
[11:35:58] Starting 'test'...
[11:35:58] Starting 'test:node'...
[11:35:58] Starting 'libnode:start'...
[11:35:58] Finished 'libnode:start' after 78 ms
[11:35:58] Starting 'test:node:before'...
[11:35:58] Finished 'test:node:before' after 4.52 μs
[11:35:58] Starting 'mocha'...

  libp2p-ipfs-browser (websockets only)
    ✓ create libp2pNode (3484ms)
    ✓ start libp2pNode
    ✓ libp2p.dialByMultiaddr nodeA to nodeB (579ms)
    ✓ libp2p.dialByMultiaddr on Protocol nodeA to nodeB
    ✓ libp2p.hangupByMultiaddr nodeA to nodeB (506ms)
    ✓ libp2p.dialByPeerInfo nodeA to nodeB (517ms)
    ✓ libp2p.dialByPeerInfo on Protocol nodeA to nodeB
    ✓ libp2p.hangupByPeerInfo nodeA to nodeB (501ms)
    - libp2p.dialById nodeA to nodeB
    - libp2p.dialById on Protocol nodeA to nodeB
    - libp2p.hangupById nodeA to nodeB
    ✓ stress test: one big write (226ms)
    ✓ stress test: many writes in 2 batches (3210ms)
    ✓ stop the libp2pnode

  11 passing (9s)
  3 pending

[11:36:07] Finished 'mocha' after 9.58 s
[11:36:07] Starting 'libnode:stop'...
[11:36:09] Finished 'libnode:stop' after 2.01 s
[11:36:09] Starting 'test:node:after'...
[11:36:09] Finished 'test:node:after' after 4.89 μs
[11:36:09] Finished 'test:node' after 12 s
[11:36:09] Starting 'test:browser'...
[11:36:09] Starting 'libnode:start'...
[11:36:09] Finished 'libnode:start' after 7.19 ms
[11:36:09] Starting 'test:browser:before'...
[11:36:09] Finished 'test:browser:before' after 2.22 μs
[11:36:09] Starting 'karma'...
17 11 2016 11:36:10.134:ERROR [preprocess]: Can not load "webpack"!
  WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration has an unknown property 'debug'. These properties are valid:
   object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry, externals?, loader?, module?, name?, node?, output?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
   The 'debug' property was removed in webpack 2.
   Loaders should be updated to allow passing this option via loader options in module.rules.
   Until loaders are updated one can use the LoaderOptionsPlugin to switch loaders into debug mode:
   plugins: [
     new webpack.LoaderOptionsPlugin({
       debug: true
     })
   ]
 - configuration.module has an unknown property 'postLoaders'. These properties are valid:
   object { exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, loaders?, noParse?, rules?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, wrappedContextCritical?, wrappedContextRecursive?, wrappedContextRegExp? }
   Options affecting the normal modules (`NormalModuleFactory`).
    at webpack (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/webpack/lib/webpack.js:17:9)
    at new Plugin (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/karma-webpack/lib/karma-webpack.js:63:18)
    at invoke (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:75:15)
    at Array.instantiate (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:59:20)
    at get (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:48:43)
    at /home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:71:14
    at Array.map (native)
    at Array.invoke (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:70:31)
    at Injector.get (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:48:43)
    at instantiatePreprocessor (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/karma/lib/preprocessor.js:55:20)
    at Array.forEach (native)
    at createPreprocessor (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/karma/lib/preprocessor.js:74:20)
    at Array.invoke (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:75:15)
    at get (/home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:48:43)
    at /home/victor/projects/ipfs/js-libp2p-ipfs-browser/node_modules/di/lib/injector.js:71:14
    at Array.map (native)

17 11 2016 11:36:10.157:WARN [watcher]: Pattern "/home/victor/projects/ipfs/js-libp2p-ipfs-browser/test/**/*.spec.js" does not match any file.
17 11 2016 11:36:10.172:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
17 11 2016 11:36:10.173:INFO [launcher]: Launching browsers Chrome, PhantomJS with concurrency 1
17 11 2016 11:36:10.173:ERROR [karma]: Found 1 load error
[11:36:10] Finished 'karma' after 234 ms
[11:36:10] Starting 'libnode:stop'...
[11:36:12] Finished 'libnode:stop' after 2 s
[11:36:12] Starting 'test:browser:after'...
[11:36:12] Finished 'test:browser:after' after 3.01 μs
[11:36:12] Finished 'test:browser' after 2.24 s
[11:36:12] Finished 'test' after 14 s
➜  js-libp2p-ipfs-browser git:(master) echo $?
0
➜  js-libp2p-ipfs-browser git:(master) npm version
{ 'libp2p-ipfs-browser': '0.12.1',
  npm: '4.0.1',
  ares: '1.10.1-DEV',
  http_parser: '2.7.0',
  icu: '57.1',
  modules: '48',
  node: '6.6.0',
  openssl: '1.0.2h',
  uv: '1.9.1',
  v8: '5.1.281.83',
  zlib: '1.2.8' }

Output from npm ls as well: https://ipfs.io/ipfs/QmQptqPxRzkBNMs3L3mxLm9hfN9VZLxRMvX2RrQoKRWNmH/npm-ls-output.log

Reminder to self: check that the commits you refer to as latest are actually the latest... Updated from master and now the tests are passing for me.

retried, I'm getting failures still
https://gist.github.com/kumavis/559da6afd60c456f9c7ba01c1f844220
only on karma
17 11 2016 12:45:48.155:INFO [Chrome 54.0.2840 (Mac OS X 10.10.5)]:
on latest master with fresh npm i

how can i help debug this issue?

For those the tests pass for, can you report what browser version the tests run on?

Hey! - Tests pass when I disconnect from my VPN....

Ah, that makes sense, since the sig server is on localhost ! :) All good then?

@diasdavid well, i can still access localhost over http, not really sure why it doesnt work for webrtc, but its a bit out of scope for this project

@kumavis it is how the STUN in WebRTC happens, it is getting confused, getting SDP offers for IPFS where it is not located, making the dialing fail.

technology is a bottomless pit spewing lasers :hole: ⚡  ⚡


Image Only Pre-trained Network

Hi,
Thank you for this work. I am interested in using the image only version as a baseline. Before I try training it myself, I was wondering if you happened to have the pre-trained model (image only, 3DOF, VC) hanging around somewhere. It would be very much appreciated!
Thank you,
Marissa

Hi Marissa,
Thank you so much for your interest in our work. We have updated the README to include the path to the image only, 3DOF VC trained on LRBg data (first row of table 4 in the paper). We also include the link to download this model here. Please feel free to let us know if you have any other questions.


upload projection model and supporting data files

Pull Request doc
Purpose
uploading porjection model (projection_model.py) and necessary data files (/data/cop_temp_htg_midperfhp.csv, data/cop_temp_htg_advperfhp.csv, projection/scenario_inputs/NYIS-ZONA.csv). Scenario_inputs for other zones as well as a notebook script that help user generate input files will be uploaded soon.
minor changes to zone_shp_overlay function in zone_profile_generator.py for calling from projection model
What the code is doing
The projection model takes model outputs from disaggregation models and scenario inputs from input csv's to produce hourly consumption projections for future scenarios. A detailed description of functions involved is added below.

LoadProjectionScenario: class that take in scenario inputs from either a base scenario or a projection scenario for a load zone. The input is processed to obtain growth in building stock and fraction of households that converted from fossil fuel to electricity for end-uses including space heating, air conditioning, hot water generating and cooking.
temp_to_energy: taking the hourly weather DataFrame that is prepared for the user specified "weather years", and the energy consumption slopes obtained from electricity disaggregation model for calculating hourly disaggregated load for the base scenario. The only different from the function with same title in "zone_profile_generator.py" is that it uses the current heat pump penetration estimation and the heat pump COP vs DBT models Mike developed to further disaggregate heating loads into that consumption by heat pump and resistance heat.
scale energy: This function starts from the hourly load from above function, then compares the floor area and the fraction of household primary energy sources between projection scenario (instance of LoadProjectionScenario) and the base scenario (instance of LoadProjectionScenario). And then scale disaggregated loads with respect to the growth of floor area for each primary fuel usages. If anticipate performance improvement for heat pump technologies, then the improve of COPs for each hour is also reflected.
ff_electrify_profiles: This function estimates new loads converted from the current fossil fuel disaggregation model. Under the default condition, future space heating load is scaled from the current electricity load in the above function. However, user can choose to trust the demand profile from fossil fuel model and assume that even households electrified their space heating appliances, their hourly consumption profiles still maintains the same shape as fossil fuel disaggregation model obtained. To do this, user only needs to change "new_hp_profile = "elec"" to "ff" in the main function. Besides, fossil fuel usages for DHW and cooking is converted to electric loads if user defines a change to the fraction of floor area of the respective end-uses.
predict_scenario: This function calls the above functions sequentially, and construct dataframes for each scenario that is computed for a load zone.

Where to look
projection_model.py and csv files: /data/cop_temp_htg_midperfhp.csv, data/cop_temp_htg_advperfhp.csv, projection/scenario_inputs/NYIS-ZONA.csv
Time estimate
1 hour

For cop_temp_htg_advperfhp.csv and cop_temp_htg_midperfhp.csv files, they are just the heat pump COP model Mike developed. I just converted the math formulations in "ff2elec_profile_generator_htg.py" to this COP vs temperature version for easy access in projection model

For cop_temp_htg_advperfhp.csv and cop_temp_htg_midperfhp.csv files, they are just the heat pump COP model Mike developed. I just converted the math formulations in "ff2elec_profile_generator_htg.py" to this COP vs temperature version for easy access in projection model

I see. Given we are the own of the data, it should be fine.


move OMNIBUS_BASE for windows

What does this PR do?
On windows builds, move the omnibus base dir closer to the root rather than relative to the gitlab build dir.  mitigates (but doesn't solve) long filename issue.
Motivation
builds breaking due to vendored package with long path name
Additional Notes
Sometimes, having an OS with a 30 year old legacy isn't the best thing in the world.

accidentally brought in unrelated changes


Disappearing thumbnails on results list

Type

🐛 Bug

Thumbnails appear briefly on results list, then break. What's up with that?

I can reproduce this in Chrome, but not Safari. Guessing it might be some srcset-like attribute that:

Is trying to load in thumbnails that don’t exist, and
Is supported in Chrome but not Safari?

@gestchild Closed by https://github.com/wellcometrust/wellcomecollection.org/pull/1240?

@jamesgorrie was fixed by #1056, I'll close


Feature: Deployment Support for  Monorepo

🔖 Feature description
Current Deployment setup downloads the git repo and tries to build docker image from root path.
Repo Structrure

.gitignore
service1/Dockerfile
service1/scr/*
service1/package.json
service2/Dockerfile
service2/scr/*
service2/package.json

example of Dockerfile
path: /service1/Dockerfile
FROM keymetrics/pm2:12-alpine

ENV HOME=/home/node
USER root
WORKDIR $HOME/app
COPY package.json $HOME/tmp/
COPY package-lock.json $HOME/tmp/
COPY .npmrc $HOME/tmp/
RUN cd $HOME/tmp/ && npm install
COPY src $HOME/app/src
RUN cd $HOME/app && npm run build
COPY pm2.json ./

EXPOSE 9026

🎤 Pitch
While image build, deployment script should have an option to moved to a directory (sub path) in the repo and then perform the docker build  command.
✌ Solution
While image build, deployment script should have an option to moved to a directory (sub path) in the repo and then perform the docker build  command.
🔄 Alternative
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

@pawan-59 @prakarsh-dt This is a valid ask for monorepos. Has this been checked?


opt out of Send for wasm32

I'm working on adding a Wasm SQLite Backend to Diesel with the newly released wa-sqlite.
Lots of functions for wa-sqlite are async and cannot be made sync in a wasm environment through blocking (b/c web). This means i've turned to this crate to try and continue to get it working, but this crate requires Send for it's Connection/diesel traits. This PR relaxes that condition for wasm32 environment.

Thanks for opening this PR. Can you explain why you need to relax this bound on a technical level. So what exactly does not work if that bound is there?  I can understand that it might be feel duplicated on a plain wasm32 target but:

I would really like to not have different behavior on different platforms if somewhat possible
Even the wasm32-unknown-unknow target now allows some sort of threading via web-workers, although that requires setting a few additional target feature flags while compiling.

@weiznich wasm-bindgen futures aren't Send, but async-trait requires Send by default. So, for instance if I try returning the future created with a wasm-bindgen JS Export, it will return a future that's !Send and won't satisfy the requirements for Connection.
I understand the hesitation of having different behavior on different platforms, and I'd be OK leaving this as a duplicated/temp workaround until the diesel-wasm-sqlite backend becomes more full-featured. However, it would be nice to eventually have something like this. I think it's also common practice in other libraries, if that makes it any better.

Thanks for providing that context. That's at least helpful to understand why you made this change. For me that raises a more fundamental question: Why do you believe that the AsyncConnection trait is the better solution there instead of using the Connection trait from diesel itself? I mean if you don't have threads at all there is no way to do something like spawn_blocking + sqlite only offers a blocking API at all. Given that I personally do see no advantage of trying to use an async interface there at all.

Maybe it would be worth putting a warning in the readme that the wasm target is experimental?

Platform support for diesel essentially boils down to: Officially supported is what we test in CI (in terms of target, platform, database system). Anything else is not supported. It might work, but we don't give any guarantee about it. I think that is quite similar to what most other projects do.

Thanks for providing that context. That's at least helpful to understand why you made this change. For me that raises a more fundamental question: Why do you believe that the AsyncConnection trait is the better solution there instead of using the Connection trait from diesel itself? I mean if you don't have threads at all there is no way to do something like spawn_blocking + sqlite only offers a blocking API at all. Given that I personally do see no advantage of trying to use an async interface there at all.

Yeah this is actually a very interesting problem. Sqlite does have only blocking calls, but the wa-sqlite has a largely Promise-based API that translates to Rust futures with Wasm Bindgen. For instance, consider the exec function of wa-sqlite, or open_v2 which both return Promises. Even the 'sync' wasm build uses Promise-based functions.
As for why that is, i'm not entirely sure. There's probably an answer somewhere in wa-sqlite discussions
According to this discussion, it may be something to do with browser APIS like OPFS

So just to summarize everything: It's basically required as wa-sqlite bindings generate futures that are not Send, right?

So just to summarize everything: It's basically required as wa-sqlite bindings generate futures that are not Send, right?

Yes :)
There is a recent discussion that popped up on the topic of a sync wa-sqlite here. It looks out of scope for the current wa-sqlite creators, but it would definitely be interesting to watch the progress in the future

I had some time thinking about this again. As previously mentioned I do not like the idea to couple this on the target. In the end it's something that depends on the underlying connection implementation, not on the target.
Given that I would like to propose a different solution: We move away from using #[async_trait] and instead have an explicit associated type per function returning a future. That associated type would then be only require Future, but it would allow implementations to opt into the + Send by using Box<dyn Future + Send>. I think for AsyncConnection that should be relatively straight forward. For traits building on top of these it will be a bit more complicated. I expect that this will either require to specify complex contaminator types there or having a custom future type so that the compiler can automatically infer if the returned type is Send or not. Being able to just use impl Future there would be great, but it seams like you cannot use it for associated types yet. For trait functions it doesn't "leak" the Send bound as it's the case for free standing functions, which in turn makes it not usable there.

That makes sense, and overall a more robust solution.
Since I don't have the bandwidth to work on this myself right now, can close this and I opened https://github.com/weiznich/diesel_async/issues/185 instead


ERROR in ./index.js Module parse failed: Unexpected token (7:2) You may need an appropriate loader to handle this file type.

Is this a bug report?
Yes
Yes
Description
I am trying to use React with another JS application system. When executing that file's server, I get a loader error.
Expected Behavior
I expected my localhost://3000 to render my index.js file
Observed Behavior
the console returned an error
Error: Hash: 945f101fc131ff14e06f13d1133b0999bdfaf181
Version: webpack 3.12.0
Time: 136ms
          Asset     Size  Chunks             Chunk Names
      bundle.js  2.73 kB       0  [emitted]  main
bundle.map.json   2.5 kB       0  [emitted]  main
   [0] ./index.js 221 bytes {0} [built] [failed] [1 error]

ERROR in ./index.js
Module parse failed: Unexpected token (7:2)
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
|
Hello, world!
,
|   document.getElementById('root')
| );
    at Watching.handler (/usr/local/lib/node_modules/@fly/fly/src/utils/build.ts:41:16)
    at Watching._done (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:106:8)
    at compiler.emitRecords.err (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:79:19)
    at Compiler.emitRecords (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:371:38)
    at compiler.emitAssets.err (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:62:20)
    at applyPluginsAsyncSeries1.err (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:364:12)
    at next (/usr/local/lib/node_modules/@fly/fly/node_modules/tapable/lib/Tapable.js:218:11)
    at Compiler.compiler.plugin (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/performance/SizeLimitsPlugin.js:99:4)
    at Compiler.applyPluginsAsyncSeries1 (/usr/local/lib/node_modules/@fly/fly/node_modules/tapable/lib/Tapable.js:222:13)
    at Compiler.afterEmit (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:361:9)
    at require.forEach.err (/usr/local/lib/node_modules/@fly/fly/node_modules/webpack/lib/Compiler.js:350:15)
    at /usr/local/lib/node_modules/@fly/fly/node_modules/async/dist/async.js:473:16
    at iteratorCallback (/usr/local/lib/node_modules/@fly/fly/node_modules/async/dist/async.js:1064:13)
    at /usr/local/lib/node_modules/@fly/fly/node_modules/async/dist/async.js:969:16
    at /usr/local/lib/node_modules/@fly/fly/node_modules/graceful-fs/graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:135:15)

Environment
Please run these commands in the project folder and fill in their results:

npm ls react-native-scripts:
<EMAIL_ADDRESS>/home/ryan/Desktop/my-app
└── (empty)
npm ERR! code 1

npm ls react-native:
<EMAIL_ADDRESS>/home/ryan/Desktop/my-app
└── (empty)
npm ERR! code 1

npm ls expo:
<EMAIL_ADDRESS>/home/ryan/Desktop/my-app
└── (empty)
npm ERR! code 1

node -v:
v8.10.0

npm -v:
3.5.2

Also specify:

Operating system:
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04 LTS
Release:	18.04

Reproducible Demo
install create-react-app
install fly app (documentation) see below for command line:
npm install --save-dev @fly/fly
create an index.js file in your root directory (make sure you have root permissions)
paste the following code:
`import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import registerServiceWorker from './src/registerServiceWorker';

ReactDOM.render(

Hello, world!
,
  document.getElementById('root')
);
registerServiceWorker();`

Save your file.

In the command line, run `fly server'

Error above happens

I don't understand why you expect client-side React code to work in Fly entry point.
The Fly docs say it's a tool for proxying, and its entry point looks like this:\
fly.http.respondWith(function(request){
  return new Response("Hello! We support whirled peas.", { status: 200})
})

What you've pasted looks like React client-side code. It's compiled by CRA and has nothing to do with Fly.

Thank you for that clarification @gaearon, I stumbled upon the clarification of React's client side code shortly after I posted this.

Yeah, I just mean that it seems like these entry points serve different purposes. One is for your code (which is in src/index.js), the other one seems to be for proxy configuration?


No output sound MSI Z270 Gaming Pro Carbon, OS X 10.11.6

Trying to launch sound on that mono with 10.11.6 and 1.1.3 version of AppleALC.kext, but with trying layouts 1,2,3,5,7,11 - got nothing. Got working line in like a charm, but output devices doesn't play any sounds at all.

That's very annoying, but I am afraid not much could be done until you contribute the compatible resources for your codec.


Improving "as you type" linting

I turn the typing lint interval up to 2000 so it isn't interruptive to typing. However, the delay after correcting an error is bothersome. So it'd be nice to have an additional option that will lint at a higher interval when there's an error.

If a user has set a delay high enough that that becomes an issue, what happens if we have a 'speedup when there is an error"? It will be faster until the error is fixed, potentially staying at the fast speed for a while... which is against what the user asked for in the first place.

That's true, is there any information about the position (line, column) of the error that could be used to identify cases where the user is editing the code around the error?

The error you are fixing may have nothing to do with the current position of the cursor (missing ) for example).

ok


dopamine: init at 3.0.0-preview.25

Description of changes
The audio player that keeps it simple
https://github.com/digimezzo/dopamine

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/3999

Working fine

Result of nixpkgs-review pr 315465 run on x86_64-linux 1

1 package built:

dopamine

Result of nixpkgs-review pr 315465 run on x86_64-linux 1

1 package built:

dopamine


QuickStart Final step Production HTTP use - Apache mod_wsgi

Hi,
I'm new to Hug.
In your QuickStart, you gave example on uwsgi and Gunicorn.
Is there a way to use it on Apache w/ mod_wsgi?

Yes. Assuming your module is available to your default python, just make a
wsgi file with from your_module import __hug_wsgi__ as application, and
that is the file you give mod_wsgi in that one directive.
On Jun 29, 2016 11:06 PM, "sevillalarry"<EMAIL_ADDRESS>wrote:

Hi,
I'm new to Hug.
In your QuickStart, you gave example on uwsgi and Gunicorn.
Is there a way to use it on Apache w/ mod_wsgi?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/timothycrosley/hug/issues/339, or mute the thread
https://github.com/notifications/unsubscribe/AASNz8idX9BuHzNqPvRLWFEZs2mOZuphks5qQ0DKgaJpZM4JByHv
.

HI, I'm really new to hug and python, can you point me to some doc to get this done? I mean, how can I expose my hug main script (I'm using routes and different modules...) via Apache?
thanks for this amazing work...


Bloomberg : empty

Hello.
Bloomberg bridge returns empty feed from "Trending" and for "search term".
Don't know where does come the "Trending stories" because there is no such section on Bloomberg website.
Not sure what should give this feed now.
Last articles ?
EU/US/other regions are different hompages...

Confirmed. Thanks for reporting!

Not sure what should give this feed now.
Last articles ?
EU/US/other regions are different hompages...

Which content do you normally monitor that could be interesting to have as a feed?

Honestly, can't say.
First, user could could choose which "region" he wants (US/EUR/etc.) and then a chrono order of news but they are not displayed in order.
On EUR homepage, all stories are unordered, would it be possible to order them ?
They all have a date in URL, some are in "nzws" category, some in "view".
I personally don't read this website so... can't tell more.
Is it possible to know what was the feed supposed to display before it was broken ?

I see, thanks for the feedback!

Is it possible to know what was the feed supposed to display before it was broken ?

Unfortunately no, unless someone took a screen shot...

I personally don't read this website so... can't tell more.

If you are okay with it, we keep this issue open for future reference in case someone who uses the site is interested in using the bridge. If there is no one interested, we can just remove it in a year or so. Of course if you or someone else is interested in fixing it, be my guest :grin:

Very good idea :D

https://github.com/RSS-Bridge/rss-bridge/commit/8a21fd147


How to align the categories of image data and video data during joint training

Image data is based on coco dataset, with 80 classes, but RVOS-D only has 65 classes, and many classes cannot be aligned. How to solve this problem during joint training？

We didn't consider the categories. We just use the --binary to indicate whether the object is referred.


When a new instance is recreated, connect does not work for a while

When an instance is recreated, two instances appear in remotepy list, one with status Terminated and the other Running.
When trying to connect to the instance by name, the tool returns Multiple instances found with name mantisnlp_gpt3.
This is a problem we had experience with the old remote as well and can be fixed by filtering out the terminated status

This is resolved in #13 . Please install the latest version 0.1.7

Also @nsorros added you to this repo, look out for the invite.


Is there activation support for the AdminClient.describeLogDirs method?

Closing this issue since there is no description. If this issue/question is still valid, please open another with a full description.


private balanceOf

@HarryR

Change variable balanceOf to _balanceOf and set to private
Create a public function balanceOf() with a require mentioned here

leon: Is there s way to reveal balanceOf if you own the address? @dotandat
dotandat: Sure, just require(msg.sender==owner||is approved(msg.sender)); ?

Looks good.... but
However there are more side channels which could reveal the balance, if we take the transferFrom command for example.
    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        require(_balanceOf[src] >= wad);

        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad);
            allowance[src][msg.sender] -= wad;
        }
        //...
    }

I can extract the exact balance with a bit of trial and error by monitoring the gas usage of a call even though the call fails it fails at a different point there will be a distinct difference in gas usage if the account has a balance higher or lower than the wad value we're trying to transfer. For example (pseudocode):
for b in range(255):
   (success, gas_usage) = contract.transferFrom(target_account, 1<<b)
   if gas_usage == known_value:
      print('Account has at least balance of', 1<<b)
      break

While this can be expensive and can only be run on-chain by a contract, with a little bit of work it will extract the exact balance of an account.
Furthermore, if you already know a balance you can test in 2 calls to see if the balance has changed or to confirm the balance is known (try expected_balance and expected_balance+1, to verify the 2nd call uses less gas).

this is great info! Thinking more about small iterations.
For this PR, do you see anything wrong with these changes?

Can you confirm that this logic is mergable? @HarryR


Content: Ministry portal: Add identifying information to assessment

**As a ministry user I want to see identifying information on the 'assessment' page to confirm I am viewing the correct account.
Acceptance Criteria

Generated by Zenhub AI

[ ] Scenario: Identifying information displayed on 'assessment' page
Given the user is logged in on the ministry portal
Has navigated to the  'assessment' page
When the user views the page content
Then identifying information should be displayed on the page to confirm user is viewing the correct account
[ ] Scenario: Identifying information matches user's application data

Given the user's application information is stored in the system
When the user views the identifying information on the 'assessment' page
Then the information should match the information on the 'view assessment' page

Mock up:

The identifying information should be added to the top left to align with the 'view assessment' page

This information can be reused for the assessment page

Additional context provided**
Technical context:

Zenhub #3287 adds the full name to the identifying information
Once that ticket is updated all of the identifying information on that page should be reused on the 'assessment' page using the same formatting and location

Business context:

When a ministry user is processing work from the exceptions/change request (appeals) page, if they click the wrong 'view' button they have no way of knowing they are on the wrong account.
As ministry staff cannot reverse actions in SIMS, not having identifying information increases the chance for error

Closing - done on another ticket.


Fixed 'mysql-client' has no installation candidate

Fixed an issue that prevented php-fpm service from building successfully.
E: Package 'mysql-client' has no installation candidate

I completed the 3 steps below:

[ *] I've read the Contribution Guide.
[ *] I've updated the documentation. (refer to this for how to do so).
[ *] I enjoyed my time contributing and making developer's life easier :)

Thanks for your contribution. I did merge PR from @lukasbesch which solves this issue better.


Fix orientation instability

The main benefit of this PR is orientation stability.

I'm going to go ahead and merge this. I know it's not perfect but it seems better than the status quo.


CI setup with travis-ci

please delete the video that you uploaded. Do not forget to add cypress/videos/ to your gitignore

delete video

Done


Update git-branch-name-generator extension

Port of #12780

cc @pernielsentikaer
Description

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[ ] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@michaelbonner Let's confirm the change and update the pics in metadata!

Hi! Is this PR ready for review? @michaelbonner do you want to take a look first?

The failure of CI Extensions / Check (pull_request) is weird. It says that showHUD can take 1 arguments.
ℹ info  -  entry points [src/index.tsx src/random.tsx]
ℹ info  -  compiled entry points
ℹ info  -  generated extension's TypeScript definitions
src/index.tsx(57,64): error TS2554: Expected 1 arguments, but got 2.
src/random.tsx(19,64): error TS2554: Expected 1 arguments, but got 2.
TypeScript check failed (exit status 2)
Error: TypeScript check failed (exit status 2)
Error: Process completed with exit code 1.

@mil3na Is there a way I can reproduce that type-check?

Have you run eslint or prettier?

@mil3na If I reopen https://github.com/raycast/extensions/pull/12780 and leave only the "random" part, with no UI just straight to copying to clipboard which differs from @michaelbonner's extension, could we separate the two?

What do you mean by "separate the two"? Maybe open a new clean PR would be best anyway.


Upgrade S4 to automatically output a white light curve in addition to spectroscopic light curves

I have code that does this in my tjb_white_light branch, but rather than merging that in now, let's add it at the same time as we're chaning to Astreus since we'd have to undo several of the edits I'd add anyway


No error for failure to connect to broker

Somewhat unintentionally i started the spring boot app with KafkaListener without running any broker.  It doesnt complain during start up for failure to connect the kafka broker.
Shouldn't this stop server startup like how other message listeners work in spring.
Thanks

Kafka only logs such situations at the debug level...
11:22:02.864 [container-kafka-consumer-1] DEBUG o.a.kafka.common.network.Selector - Connection with localhost/<IP_ADDRESS> disconnected
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

Since the Kafka client manages the connection, not Spring, there's not much we can do.
On the sending side, (every 60 seconds by default) you will see...
11:27:29.742 [main] ERROR o.s.k.s.LoggingProducerListener - Exception thrown when sending a message with key='si.key' and payload='foo0' to topic si.topic:

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

No, it shouldn't.
Consider the case when your application has many other features and one of them is fallback to some other service when Kafka Broker is down.
When the last one comes back, the Listener Container starts to proceed with message consumption from the topic(s).
Does it make sense for you?

@garyrussell  i see it comes out from the kafka error logs. But if you think of health check on spring boot, it would be great to see something like this on the health endpoint right?

@artembilan if i remember right you would do for a JMS connection

on the health endpoint

That would be there when Spring Boot Kafka support will be merged https://github.com/spring-projects/spring-boot/pull/6961

if its coming it would be great,  is there work around mean time

You can borrow some ideas from here: http://docs.spring.io/spring-boot/docs/1.4.2.RELEASE/reference/htmlsingle/#production-ready-health:

Health information is collected from all HealthIndicator beans defined in your ApplicationContext. Spring Boot includes a number of auto-configured HealthIndicators and you can also write your own.

We can borrow some ideas from the Kafka binder health indicator: https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/blob/master/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaBinderHealthIndicator.java
One particular problem that we've run into is that 'health' is more nuanced in the case of Kafka than for other systems. There is no notion of an generic connection to the cluster - consumers consume specific topics/partititions. A cluster may be healthy with respect to some topics (i.e. there's at least one in-sync replica and there is a leader for each) and unhealthy with respect to others, so it depends of the client's perspective.

Thanks for the pointer

Interestingly, you need to a create new KafkaConsumer for health check. Just a thought can the underlying KafkaConsumer instances created in the messagelistener's exposed , so maybe can reuse the same consumer to do something similar to what you do in the kafkabinderhealthindicator

I've run into an interesting side effect of the Kafka communication when the broker is not available.
If you disable the creation of topics and the ability to add partitions in the kafka binder:
spring:
  cloud:
    stream:
      kafka:
        binder:
          autoCreateTopics: false
          autoAddPartitions: false

And then startup your application producer (without the broker running), the application "freezes". I enabled the debug logging in the Kafka selector and very quickly saw it was attempting (and failing) to connect to the broker in a very tight loop.
This presents two problems:

There is no feedback that the broker is not available (unless you have debug enabled on the Kafka selector).

I am unable to terminate the process from Eclipse. I either have to:
Run the process via Debug and then have to terminate the kafka producer thread.
or "kill -9" the process.

@tkvangorder,
thank you for feddback, but is there some pointer that it is exactly Spring Kafka problem?
Maybe that is how Apache Kafka client is done and would be better to share your experience there?
I'm afraid we can't fix Apache Kafka issues here from Spring Kafka perspective.
Thank you for understanding.

@artembilan
Makes sense, I do think this more a problem with the underlying Kafka client. The use of Spring Cloud Stream + Kafka Binder + "autoCreateTopics = true" works only because of coincidence:  It uses the Kafka admin utility in an attempt to create the topic BEFORE the connection to kafka is made. If the zookeeper cluster is not listening, this call fails with some feedback and the application stops.
I will see if I can get some clarification from the Kafka team on how to configure the client such that it fails a little more gracefully.
It also might be possible for the Spring Kafka project to "ping" the server before connecting to it, but admittedly, that seems like a hack.

Pay attention that producer has sync property to configure: https://docs.spring.io/spring-cloud-stream/docs/Chelsea.SR2/reference/htmlsingle/index.html#_kafka_producer_properties
when you set it into true you will have an exception directly in the calling thread.
In async mode (default) the exception is indeed thrown to the thread in the internal Kafka client executor.
I'm closing this since it isn't related to Spring Kafka and we don't have any control over Kafka client internals.

@artembilan I appreciate the time you have taken to answer my question. Thanks!
I know this is not strictly a spring-kafka issue, but I wanted to follow-up on this so it's documented for others.
Setting sync to true did not have the desired effect.
The incredible long wait time, spent when the kafka broker is not available, is due to a combination of things:
The Kafka client will, by default, block for 60000ms and the spring cloud stream uses a retry strategy that will attempt this call 10 times using an incremental back-off policy. This equates to roughly 10 minutes before a timeout occurs.
There is a configuration option to reduce the time the Kafka client will block:
"max.block.ms"
To set this via spring cloud stream:
spring:
  cloud:
    stream:
      kafka:
        bindings:
          <channel-name>:
            producer:
              configuration:
                "max.block.ms": 3000

There is also an issue for customizing the retry strategy employed by SCS.
https://github.com/spring-cloud/spring-cloud-stream/issues/858

The Kafka client will, by default, block for 60000ms

I still think it is an Apache Kafka responsibility to document this limitation.
Not sure why Spring Kafka documentation should point to the target project flaws.
What is the point to do then Spring Kafka at all?
More over we don't have such a section in our Reference Manual. Just only description of the features provided by Framework. Everything rest is linked to the Apache Kafka official documentation directly.
We can't speculate from our doc because Apache Kafka is not our product.
We will be more than happy to help community but not outside of our boundaries. That's too far and we don't support Apache Kafka.
Thank you for your attention and some effort to make this project better!

Sorry, that was worded poorly. I didnt anticipate any further action from the spring kafka team, I just wanted to explain what was going to help others that happen on this thread.

KafkaClient sucks on this, it's not spring-kafka thing, I think


Directly pass arguments to ffmpeg

Using a subshell is more overhead and could open security holes.
Some specs are not passing. But they did not pass before my changes.

It took a while but thank you for this, @corny


need a more user friendly API/cmd line to generate coverage report

cmd line
instead of instructions here: https://github.com/samuelroy/nim-coverage#how-to-make-it-work-with-your-project I think we can have something a lot easier to use that'd only require calling a single command, eg:
nimble install coverage # would install a coverage binary under ~/.nimble/bin (alongside c2nim, nimble, nimgrep etc)
cd pathto/nim-regex # or whatever other code
coverage [options] --cov:outputdir:<outputdir> mainfile.nim

options would forward to nim compiler (eg, allowing to pass stuff like -d:foobar (or anything else) which affect how files are compiled (and affect coverage !)
options starting with --cov: (eg --cov:outputdir:<outputdir>) would be specific to coverage binary and not forward to nim compiler
Note: for rationale behind syntax --cov:suboption:value see https://github.com/nim-lang/Nim/pull/8757
API
in addition, having an API (called by the cmd line) would be good to have
[EDIT] Note
cligen could be used to automate generating the cmd line given the API, in which case all that's needed is the API

Agree, the task was a simple way to get a code coverage system working. I will work on the API, it should be ready by next week.
Cligen looks really nice, thanks.


Bump CAPAS to 0.1.21

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherrypick release-0.14


Add: "auto-label" GitHub Workflow for Automated Labeling

Objective: Implement an "auto-label" GitHub workflow to automatically assign the "gssoc-ext" and "hacktoberfest-accepted" labels to relevant pull requests and issues.
Details:

This workflow will streamline the labeling process by automatically applying the "gssoc-ext" and the "hacktoberfest-accepted" label to Issues.
By automating these labels, we can ensure consistent tracking and visibility of contributions tied to these significant events.

Implementing this "auto-label" workflow will enhance project organization

hey @suryanshsk  Please Assign it to me with label "gssoc-ext" , "hacktoberfest-accepted" and "level2"


Maximum columns per view

Using Microsoft SQL Server 2016 (SP2-GDR) (KB4505220) - 13.0.5101.9 (X64)   Jun 15 2019 23:15:58   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
I received Msg 4505, Level 16, State 1, Procedure ...snipped...
CREATE VIEW failed because column '...snipped...' in view '...snipped...' exceeds the maximum of 1024 columns.
I don't see this limit documented on this page.
I would like to create views up to the limit of a SELECT statement (4096 columns).

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

ID: 780e3e16-ac52-1343-fe0a-a706c71ddb92
Version Independent ID: 6f09b278-faa0-6f0d-1013-c1ae62ca006c
Content: Maximum Capacity Specifications for SQL Server - SQL Server
Content Source: docs/sql-server/maximum-capacity-specifications-for-sql-server.md
Product: sql
Technology: install
GitHub Login: @MikeRayMSFT
Microsoft Alias: mikeray

@keandersen -- thank you for your feedback.
@MikeRayMSFT -- please look into this issue 3045.

https://github.com/MicrosoftDocs/sql-docs/issues/3045

The update to the documentation is en-route.
To request an update to the feature (i.e. to ask to raise the maximum columns in a view), use https://aka.ms/sqlfeedback.
Thank you @keandersen for submitting this comment.


scExpression populate cell type names when a user selects a tissue

Right now when a user selects a tissue, the tissue name appears with no additional information. The backend API requires both a tissue and a gene to return cell types.
Ideally, when a user selects a tissue the visualization would update with the tissue name, cell types, and cell counts.
This work builds on improvements made in #2336

Thanks for making this ticket - I'm copying my proposed solution from this (now duplicate) issue: #2686
To further elaborate, I believe users should be able to see what cell types from the ontology are present in the tissue without needing to query a gene. Currently, selecting tissues without selecting any genes displays the following:

The motivation for omitting the cell types is due to concerns about performance issues when querying the backend without a gene specified.
My suggestion would be to skip the following lines of code if genes are not specified and return undefined values to the frontend:

https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L36
https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L38
https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L39
https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L42
https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L49
https://github.com/chanzuckerberg/single-cell-data-portal/blob/f41fb6f2c1aaf42e3f68d948592467418171681b/backend/wmg/api/v1.py#L47

The only line we need is this one as it returns the cell types present in the sliced data. This should avoid any performance hits.
@MDunitz what do you think about the feasibility of the proposed backend changes?
@hthomas-czi & @signechambers1 do you think showing the cell types when genes are not selected is worth prioritizing?

Is this still in progress @MDunitz @signechambers1 - it was re-opened by Madison but no one is assigned.


Base COPY spreadsheet has leftover values

Seems to have been overwritten during a new project creation.

[x] Restore to speadsheet to previous version

Restored original values prior to change.


New revision should contain only latest changes

Steps to reproduce:

For the annotation task, set any label. Finish task.
Go to the validation task and mark page as invalid. Finish task. New annotation task would be created.
Go to the new annotation task, make an annotation. Save draft.

You can use this task.
Front-end's request body POST http://dev2.badgerdoc.com/api/v1/annotation/annotation/861:
{
    "user": "a6511931-ddbc-4ea5-a885-5653773d5d48",
    "pages": [],
    "base_revision": "f2876a0cb849509d91800ef9a33f83c1dc6fbca3",
    "validated": [],
    "failed_validation_pages": [
        1
    ],
    "categories": [
        "labels_test_category_id"
    ],
    "links_json": []
}

Backend's response 400
{
    "detail": "This task is for annotation. There should not be any pages in validated and failed arrays. Pages in validated: set() Pages in failed: {1}"
}

In Request Body fields "categories" and "failed_validation_pages" are not empty.
Instead, a new revision (annotation) should be created having only field "pages" not empty.
Remember, revision is the latest changes, not the whole current state.

Pages will be filled only if annotation of a document(draw annotations) has been done. Editing of categories and links for document also an annotation and creates a revision. Need to be discussed with @MikhailFokanov


Hy

issue is not real issue. @fogleman take action

Thanks for taking over @kaepsis while I was away, these spam reviews keep popping up like whack-a-mole.
Except nobody can hit them.


config_file.cfg issue

hello,
i am doing a research and i tried executing the config_file.cfg under simetuc directory but i  can't do so. can you please help me out. it says some parser error in anaconda prompt.

Same problem I am facing


Migrate KubernetesSecretConfigStore to @configu/integrations

Suggestion
Migrate the KubernetesSecretConfigStore from its current setup to the new @configu/integrations module as part of the major restructuring. The goal is to move all third-party integrations, including stores, expressions, and libraries, to @configu/integrations.
Motivation
This migration is part of a larger effort to better organize and modularize the product. Moving the KubernetesSecretConfigStore will align with the new structure, making the system cleaner and more maintainable.
Context
You can refer to the already migrated stores for guidance:
Migrated stores in integrations.
Base stores implementations from @configu/ts can be found here:
Base stores in TS.
The old node-based stores were previously in @configu/node:
Node stores.
The old browser-based stores were previously in @configu/browser:
Browser stores.

@akshay11298
Thanks for raising the PR! I've assigned the issue to you.
We’ll review the solution as soon as possible. Great work!


Export to file function

For those scenarios where it's not necessarily desirable to bring a smartphone into confession (and you have so many things to mention that you'd like to write it down), perhaps a file export function could be good. (or perhaps copying to clipboard, but that's not necessarily as helpful for mobile users).
I could implement it myself as soon as I find some time, just wanted to get some feedback from you guys. Cheers!

I like the idea and I'm open to merging it into the project.
Have you thought much about how you'd implement it yet? I think it would be most useful as a print function that works from both a mobile phone and computer (to a physical printer, or could then be "printed" to PDF).


Fails when using proxyfmu_booter

Starting proxyfmu_booter
.\proxyfmu_booter.exe --port 9090

Press any key to quit...
[proxyfmu] Found proxyfmu executable: "proxyfmu.exe"
[proxyfmu] Booting FMU instance 'OSOM'..
[proxyfmu] FMU instance 'OSOM' instantiated using port 65510
[proxyfmu] External proxy process for instance 'OSOM' returned with status -1073741819

Using OspSystemStructure.xml:
<OspSystemStructure xmlns="http://opensimulationplatform.com/MSMI/OSPSystemStructure" version="0.1">
        <StartTime>0.0</StartTime>
        <BaseStepSize>0.05</BaseStepSize>
        <Algorithm>fixedStep</Algorithm>
        <Simulators>
                <Simulator name="OSOM" source="proxyfmu://localhost:9090?file=OSOM.fmu" stepSize="0.05"/>
        </Simulators>
</OspSystemStructure>

Fails when running cosim
 .\cosim.exe run .\OspSystemStructure.xml
error: No more data to read.

It works fine when not using the booter by altering to the following:
<Simulator name="OSOM" source="proxyfmu://localhost?file=OSOM.fmu" stepSize="0.05"/>

@mrindar had a similar issue with cosim v.0.5.1. The issue is weird, because the booter works with cosim 0.5.0, but not inline proxyfmu. With 0.5.1, inline proxyfmu works, but not booter..

I also have no issues when running libcosim master with booter and inline proxyfmu.

Let me summarise the two situations:
A

.\proxyfmu_booter.exe --port 9090
.\cosim.exe run .\OspSystemStructure.xml
source="proxyfmu://localhost:9090?file=OSOM.fmu"
CRASHES

B

.\cosim.exe run .\OspSystemStructure.xml
source="proxyfmu://localhost?file=OSOM.fmu"
WORKS

If I understand the system correctly, the only difference here is that in situation A, proxyfmu_booter.exe starts proxyfmu.exe, and in situation B cosim.exe starts proxyfmu.exe. Is there some fundamental difference between the two in how they start proxyfmu.exe?
Alternatively, is there some difference between proxyfmu_booter.exe and cosim.exe in how they link libraries, or which compiler flags are used?

Fixed by #58


Update deb/rpm and installer script for fluentd

Dependent on fixes for the fluentfoward receiver upstream

Add fluentforward receiver, splunk_hec exporter, and custom endpoint URL env vars to the default linux config
Add default fluentd config to forward @SPLUNK labeled events to the collector
Add sample fluentd source for journald (currently not enabled by default since it requires dependencies and permissions that we may not want to perform on the system)
Update installer script to install/configure fluentd and add options for custom endpoint URLs
Update deb/rpm packaging for new fluentd config files and set ownership/permissions

Codecov Report

Merging #52 (46c0a2e) into main (4eb7232) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #52   +/-   ##
=======================================
  Coverage   93.61%   93.61%
=======================================
  Files           6        6
  Lines         313      313
=======================================
  Hits          293      293
  Misses         12       12
  Partials        8        8

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 4eb7232...46c0a2e. Read the comment docs.

Codecov Report

Merging #52 (46c0a2e) into main (4eb7232) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #52   +/-   ##
=======================================
  Coverage   93.61%   93.61%
=======================================
  Files           6        6
  Lines         313      313
=======================================
  Hits          293      293
  Misses         12       12
  Partials        8        8

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 4eb7232...46c0a2e. Read the comment docs.


Validator stops signing blocks without any errors

I moved my validator to a new machine and when I do unjail, it's successfully signing blocks for couple of minutes. After that it stops and I can't see anything suspicious in the logs. Attaching screenshots of how the logs look like at the moment of validator stops signing.

Paloma version:
v0.11.6
Pigeon version:
App version: v0.11.5
Build commit hash: cd14972b74003d3613963f552752e6bcde826fe4
Paloma wallet:
https://paloma.explorers.guru/account/paloma1hj4lxqp05ntjl6ezu3qn9eyedp5p4fpdwu8gxj
ETH wallet:
https://etherscan.io/address/0xae318806f552f489aa73b7e9150b5c167a85225f
There should be no issue with configs as the same config file was working fine before I moved. Anyway attaching.
loop-timeout: 5s
health-check-port: 5757

paloma:
  chain-id: messenger
  call-timeout: 20s
  keyring-dir: ~/.paloma
  keyring-pass-env-name: PALOMA_KEYRING_PASS
  keyring-type: os
  signing-key: wallet
  base-rpc-url: http://localhost:30657
  gas-adjustment: 2
  gas-prices: 0.01ugrain
  account-prefix: paloma

evm:
  eth-main:
    chain-id: 1
    base-rpc-url: ${ETH_RPC_URL}
    keyring-pass-env-name: "ETH_PASSWORD"
    signing-key: ${ETH_SIGNING_KEY}
    keyring-dir: ~/.pigeon/keys/evm/eth-main
    gas-adjustment: 2.5
    tx-type: 2

The expected behavior validator should not be jailed after you unjail it.

Seems like the issue is caused by indexer being set to null. Do you want guys to patch the binaries so the app will let you know that indexer should not be null on startup or at least to print an error message when it fails?

Closing as we are upgrading.