Scrollbar size and chart width

Not really sure if this is a "bug" per say, but thought I'd drop it in here for future ref.
The problem I have is present when you have multiple charts on one page where you don't know the height of the scrollable area beforehand.
Let's start with how it's supposed to look if everything is fine:

This page lays out all the charts using a flexbox rows/cols setup:

First chart uses ~45% of the available space and centers using justify-content-center
Second chart uses 100% of the available width
Third... use ~30% of and stacks when there's more graphs.

So how does it look when it's "broken":

From a quick look it all looks the same, but if you check the right-hand margin you'll see that there's something going on with the first two charts.

First chart is slightly larger than the "working" example and is not quite centered (it's hard to see - just trust me)
Second chart has some obvious problems with the right margin
Third... looks ok - strange right?

Even more fun - when you resize the window it all adjusts itself an looks like the first screen 😨
So what's going on here? Well, the first clue is to look at how many pixels we're off by in "broken" mode - and on my system (Windows) it's ~17px, a magic number that corresponds to the width of the scrollbar.
When a chart is drawn there's an initial call to getDimensions to calculate the initial size of the chart. This method is called again whenever the chart parent or the window is resized - so far so good. The chart rendering is called in flow order of the page (top to bottom) and here's where the "problem" appears.

When the first chart is drawn there's no scrollbar (as it's the only element on the "page" (think scrollable area, because it's that scrollar that will mess us up in a second).
When the second chart is drawn there's still no scrollbar (depending on the height of the viewport) so we're still calculating the width without it. However once the chart is on the page we now have a scrollbar!
From the third chart and onwards we have a scrollbar so the width is now ~-17px from what the previous two charts were based on.

To make this even more fun you can try doing this with the devtools open (from the bottom) and the breakpoint for when scrollbars appear is after the first chart (since we have less viewport available).

So how does one deal with this? In my case (since I know I'll always fill up a full viewport worth of charts) I set the height of the scrollable area to something like 100vh so that all chart calculations will subtract the width of the scrollbars from the get-go.
There's probably a "better" way to do this, Either by re-calculating all the chart widths when we're done (but how do we know that?) or that already rendered charts resize whenever we pass the breakpoint where a scrollbar appears (I don't know why this is not happening at the moment, but at least in my case this is not happening).
As mentioned in the beginning I'm not sure it's a bug per se but I thought I should mention it and post my workaround for others. Maybe we can add something to the docs about it?

There is another workaround to get the charts to have their resize trigger executed - by disabling animations:
options: {
  chart: {
    animations: {
      enabled: false
    }
  }
}

Not sure why this makes the resize trigger work vs just having them on...

Another work-around I'm using is to set the container width to ~97%. This number is "almost" full width, which will look more or less the same. Those 3% will account for the excess scrollbar width of the chart. You can center the container to get a more pleasant look.
I know it's dirty, but we live in a cruel world


Crash FABException / FirebaseApp.configure() (only on production builds)

[REQUIRED] Step 1: Describe your environment

Xcode version: 11.3.1
Firebase SDK version: 6.23.0
Firebase Component: Firebase/Crashlytics AND Crashlytics 3.14.0 (Auth, Core, Database, Firestore, Messaging, Storage, etc)
Component version: 6.23.0
Installation method: CocoaPods

[REQUIRED] Step 2: Describe the problem
Today I've started on  the firebase integration for our tvOS apps. I had some problems with integrating our topshelf extension, but then found another thread (https://github.com/firebase/firebase-ios-sdk/issues/5126) which stated the extension needed to use the same GoogleService-Info.plist as the main app.
Finally I've got it managed to make it work on my device with running the debug version from xcode itself on the device. After succeeding I made a release version to testflight, but after installing, when I want to open the app, it opens for 1 second and then crashes. (Seems it crashes on FirebaseApp.configure())
I'm not sure if I have done anything wrong or if it's a bug.
Steps to reproduce:
What  I've done:
Followed the basic integration documentation of firebase.

New project
New App with id of the main target (main app)
Implemented the SDK
FirebaseApp.configure() in didFinishLaunch (AppDelegate + import Firebase)
Run script "${PODS_ROOT}/FirebaseCrashlytics/run" with 2 input filed for DSYM and path to the info.plist.

When running the app via Xcode on a real device it worked fine.
Debug app has 2 bundle id's
main app: com.company.mainApp.debug
extension: com.company.mainApp.debug.extension
For the release build I did the same steps, but just removed the debug GoogleService-Info.plist and replaced  them with the release GoogleService-Info.plist. (This will later be a early stage run script, which will provide the correct one, but for testing now I've manually replaced them)
Release app also has 2 bundle id's (main tvOS app + topshelf)
main app: com.company.mainApp
extension: com.company.mainApp.extension
Both use in both debug/release cases the same GoogleService-info.plist (added to the correct target etc)
Since I can't attach xcode on the device because  the app crashes immediately after installing from  testflight I don't have any logs from xcode.
Logs from console:
*** Terminating app due to uncaught exception 'FABException', reason: '[Fabric] Value of Info.plist key "Fabric" must be a NSDictionary.'
*** First throw call stack:
(0x1afefce14 0x1af8068d0 0x1afdf382c 0x100e9b2e0 0x100e9aeb4 0x100e9aff8 0x100e68dd8 0x100e72ff0 0x100e726e0 0x100e687c4 0x1af8d0338 0x1af8d195c 0x100e68554 0x100e68970 0x101e4ca94 0x1af8d0338 0x1af8d195c 0x101e4c888 0x101e4e6b0 0x101e4e408 0x1b085fba4 0x1afe593b0 0x1afe593f8 0x1afe58758 0x1afe58410 0x1afdd4aec 0x1afe57d60 0x1b0837108 0x100ea91dc 0x100ea8374 0x100ea7fb8 0x100ea7f20 0x100da5554 0x100da4a28 0x1d2d453a8 0x1d2d47094 0x1d2d4c70c 0x1d260a400 0x1d2a104ec 0x1d260af14 0x1d260a940 0x1d260ad28 0x1d260a5d0 0x1d260eac8 0x1d29467fc 0x1d2a299f4 0x1d260e848 0x1d2a298f0 0x1d260e6b4 0x1d248f3c0 0x1d248df28 0x1d248f0f8 0x1d2d4ab34 0x1d2966f50 0x1b2834bb0 0x1b2859988 0x1b283f314 0x1b2859644 0x1af8d0338 0x1af8d2f90 0x1b287e568 0x1b287e234 0x1b287e75c 0x1afe7aeec 0x1afe7ae44 0x1afe7a5dc 0x1afe75728 0x1afe74fc8 0x1b2342328 0x1d2d4e8b0 0x100b54<…>

I've checked my Info.plist files and I don't have any Fabric key set anymore

Looks like the exception is coming from the deprecated Fabric SDK. Could you make sure you remove Fabric SDK from your dependencies and check if you still have the issue?

@maksymmalyhin I've already removed the fabric from my podfile - deintegrated the pod and reinstalled everything. If I check my Podfile.lock it seems it's still there indeed, so I will check to remove this.
But it also seems it's there because of the old Crashlytics SDK (not the Firebase/Crashlytics). But If i remove this one, the app complains about the Crashlytics SDK not found anymore while it never gets called, so I supposed it was still necessary to use for the Firebase SDK?
I'll already check if I can remove the Fabric dependency in the mean time.

Ok @maksymmalyhin Seems cocoapods didn't remove Crashlytics and Fabric from the "Other Linker Flags" in the build settings, so it was still searching for these frameworks while i removed them. Everything seems to work for now. I will make another production build to test the case and I'll keep you up to date, thanks for the help already!

If it's still crashing, can you symbolicate the stack trace and make sure you haven't accidentally linked Firebase twice?

@maksymmalyhin, @morganchen12 Crash is solved for me! Thanks for the quick help!

Happy to help!


Tidy up from #8 and #9

Tidy up from #8 and #9.
/cc @ParasiteDelta in case you're interested! Take a look at the individual commits.

Codecov Report
Attention: Patch coverage is 0% with 16 lines in your changes are missing coverage. Please review.

Project coverage is 0.0%. Comparing base (148a96d) to head (1d8f4f8).

Additional details and impacted files

Files
Coverage Δ

src/main.rs
0.0% <0.0%> (ø)


Include node tags

Hi! Nice library :smile:
I was trying it out to fetch some data about changing rooms (i.e. for changing baby diapers), and for this I need to see tags of nodes. I see currently Element in OverpassResponse only contains tags for Way, but the actual api response from overpass can include tags for Node as well.
It would be really nice if I access these tags without needing to write my own OverpassResponse, Element and Node types for deserialization.

I believe this should be sufficient for my needs:
diff --git a/src/api/overpass_response.rs b/src/api/overpass_response.rs
 #[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
 #[serde(rename_all = "lowercase")]
 #[serde(tag = "type")]
 pub enum Element {
     Node {
         id: u64,
         lat: f64,
         lon: f64,
+        tags: Option<Value>,
    },
     Way {
         id: u64,
         nodes: Vec<u64>,
         tags: Option<Value>,
    },
 }

Here is an example of a node with tags (for a norwegian restaurant with a changing table available in the toilet):
{
  "type": "node",
  "id": 630733188,
  "lat": 58.3406929,
  "lon": 8.5931355,
  "tags": {
    "amenity": "cafe",
    "changing_table": "yes",
    "changing_table:fee": "no",
    "check_date": "2024-07-24",
    "contact:facebook": "https://www.facebook.com/Herlighed.Grimstad",
    "internet_access": "wlan",
    "internet_access:fee": "no",
    "level": "0",
    "name": "Herlighed",
    "opening_hours": "Mo-Fr 07:00-18:00; Sa 08:00-18:00; Su 11:00-18:00",
    "outdoor_seating": "yes",
    "shop": "bakery",
    "smoking": "no",
    "toilets": "yes",
    "toilets:access": "customers",
    "toilets:wheelchair": "designated",
    "website": "https://www.herlighed.no/",
    "wheelchair": "yes"
  }
}

Hello! This is actually a feature I was planning on implementing but haven't gotten around to it.
Without thinking about it too deeply, I think your one liner solution works fine (see if it passes tests). If you want to put in a PR I would be happy to look it over. However if not, I can implement it and get it in but no promises on when :)

Implemented! I am incrementing to 0.4 since this changes the API so if you download that from crates, you should be good to go. Let me know if there is any other issues.

Great, thanks!


docs: Fix search UI description

Updates the search doc in the user guide to describe the default search UI on both narrow and wide viewports.
Also breaks all lines in the doc at 80-characters width.
Fix: #1781

thanks for review @drammock, will send separate commits in the future (also easy for me to revert the whitespace fixes if you want this commit to only have the content update)

easy for me to revert the whitespace fixes if you want this commit to only have the content update

No need, I already checked it since the diff was not too large


Bugs found on aws deployment

Frequent disconnections from socket in collaboration service

Need to further investigate, maybe just sch wifi cmi
When 2 users are collaborating at the same time, it seems to be working fine sometimes, just a bit inconsistent.

Profile dp file size exceed limits only works once, subsequent times toast does not show

For the first upload, the toast appears stating that the file size exceeds the 3MB. But subsequent images that exceed 3MB does not show

Make edit profile dp more obvious, and more intuitive (like adding an edit button to the dp and have a spinner while the new img uploads)
Signup still does not work on cloud deployment

it still passes http://localhost for the clicking of email verification link @tlyi @xingjie99 will this be a quick fix?

Ooh good catch, sorry will update the verification link!


Allow the Boundary to be updated

Allow the boundary layer to be updated.
Allow one to update the feature Collection for the boundary layer.
Once the Feature Collection is updated then the layer should redraw the label and boundary

Also implement a method removeLayerOnMap to remove layers on map in addition to disableLayerOnMap


error with new_just and docker_entrypoint

linux/docker_entrypoint.bsh expects DOCKER_GROUP_NAMES to be defined, however, linux/new_just does not setup this variable in the .env file (it does set up GIDs).

It looks like the issue is actually that DOCKER_GROUP_NAMES expects there to be at least 2 group names.

The initial issue was fixed when working on #42
Just ran a test with:
: ${BLAH_GIDS=22}
: ${BLAH_GROUP_NAMES=two}

And there was no problem. Assuming problem fixed


pGina - Login Issue

Pgina login module allowing user to login with any domain suffix.
Example: A local window machine (Win Server 2008 & 2012), is able to login successfully when we put any domain suffix.

Domain support is only implemented in pGina.fork
https://github.com/MutonUfoAI/pgina/releases
If the system is member of a domain, the username is verified against this domain
If you want to do a local logon use .\username
If you want to logon to another domain of your domaintree use domain\username or username@domain
pwdChange is supported too .........

Hi,
Thanks for the response.
So do this consider as a bug where I can login to pGina using any domain suffix?
Or pGina should not allow user to login when user trying to enter an invalid suffix?
Need advise?
Thanks
Regards,
Mike Ong
From: Hans Wurst<EMAIL_ADDRESS>Sent: Monday, 21 November, 2016 4:28 PM
To: pgina/pgina<EMAIL_ADDRESS>Cc: Ong Beng Wee Mike<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [pgina/pgina] pGina - Login Issue (#320)
Domain support is only implemented in pGina.fork
https://github.com/MutonUfoAI/pgina/releases
If the system is member of a domain, the username is verified against this domain
If you want to do a local logon use .\username
If you want to logon to another domain of your domaintree use domain\username or username@domain
pwdChange is supported too .........
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pgina/pgina/issues/320#issuecomment-261873842, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AWhh7dKFcyprD_SLzGRGfGU4BpmjO0Tuks5rAVYtgaJpZM4K31me.

This message and any attachments are intended solely for the addressees and may contain confidential information. Any unauthorized use or disclosure, either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the message if altered, changed or falsified. If you are not the intended recipient of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free from viruses, the sender will not be liable for damages caused by a transmitted virus.

pGina does not support a domain environment

Hi,
Sorry as I wasn’t understand that.
Just to be more clear which is.
I have a window machine that never join any domain controller. Is a local machine.
But when I trying to perform login using “ abc/userid or testing/userid”
And it’s still allowing me to login, so my question is why pgina still allowing me to login when I enter an invalid domain name? by right its should only allow me to login by only entering userid but without domain name.
Thanks
Regards,
Mike Ong
From: Hans Wurst<EMAIL_ADDRESS>Sent: Monday, 21 November, 2016 4:35 PM
To: pgina/pgina<EMAIL_ADDRESS>Cc: Ong Beng Wee Mike<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [pgina/pgina] pGina - Login Issue (#320)
pGina does not support a domain environment
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pgina/pgina/issues/320#issuecomment-261875172, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AWhh7Xl-QXF2ygOZyCT8XqrEuzJc9sTHks5rAVeugaJpZM4K31me.

This message and any attachments are intended solely for the addressees and may contain confidential information. Any unauthorized use or disclosure, either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the message if altered, changed or falsified. If you are not the intended recipient of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free from viruses, the sender will not be liable for damages caused by a transmitted virus.

You need to use domain\username or username@domain and not domain/username
If you can logon with wrong creds, than its a bug
I tried this with my fork and the logon was denied

Hi,
Sorry for the typo.
Yes, what i tried was domain\username.
“abc\userid or testing\userid”
But the machine I trying is not joining any domain, so should be not able to login if I enter an invalid domain name. right?
The machine is a local machine, not joining any domain. So login should failed if I enter an invalid domain name?
Regards,
Mike Ong
From: Hans Wurst<EMAIL_ADDRESS>Sent: Monday, 21 November, 2016 4:57 PM
To: pgina/pgina<EMAIL_ADDRESS>Cc: Ong Beng Wee Mike<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [pgina/pgina] pGina - Login Issue (#320)
You need to use domain\username or username@domain and not domain/username
If you can logon with wrong creds, than its a bug
I tried this with my fork and the logon was denied
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pgina/pgina/issues/320#issuecomment-261879852, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AWhh7dsWqAgJyxbldba-UkD2m_7BO7h6ks5rAVzNgaJpZM4K31me.

This message and any attachments are intended solely for the addressees and may contain confidential information. Any unauthorized use or disclosure, either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the message if altered, changed or falsified. If you are not the intended recipient of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free from viruses, the sender will not be liable for damages caused by a transmitted virus.

THIS is not a bug!
Windows own CredentialProvider will log you in if you type abc\administrator
Its obvious MS ignores a wrong domain

Hi,
Thanks for the clarification.
So can I assume that pGina will pass the credential information to msGina, and it was msGina that ignore the invalid domain name because it was local machine.
Thanks
Regards,
Mike Ong
From: Hans Wurst<EMAIL_ADDRESS>Sent: Monday, 21 November, 2016 5:55 PM
To: pgina/pgina<EMAIL_ADDRESS>Cc: Ong Beng Wee Mike<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [pgina/pgina] pGina - Login Issue (#320)
THIS is not a bug!
Windows own CredentialProvider will log you in if you type abc\administrator
Its obvious MS ignores a wrong domain
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pgina/pgina/issues/320#issuecomment-261892918, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AWhh7WNMwtIfqRrmU5nQ1_hGm3qUfsOSks5rAWqFgaJpZM4K31me.

This message and any attachments are intended solely for the addressees and may contain confidential information. Any unauthorized use or disclosure, either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the message if altered, changed or falsified. If you are not the intended recipient of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free from viruses, the sender will not be liable for damages caused by a transmitted virus.


Fix Accuracy Regression of Keras Model inception_resnet_v2

Type of Change
Jira:ILITV-2905
Description
As title
Expected Behavior & Potential Risk
Fix
How has this PR been tested?
Extension
Dependency Change?
No

Extension Test: https://inteltf-jenk.sh.intel.com/job/inc-itex-integration-validation-top-extension/20/


use Electron2 has a error  "[.PPAPIContext]GL ERROR :GL_INVALID_VALUE : glTexImage2D: invalid internal_format GL_RGBA16_EXT"

hello , use Electron2 has a error  "[.PPAPIContext]GL ERROR :GL_INVALID_VALUE : glTexImage2D: invalid internal_format GL_RGBA16_EXT".  use Electron1 it's  doesn't  has  this error.  (on windows)

Duplicates #25
It should be safe to ignore, see https://github.com/Kagami/mpv.js/issues/25#issuecomment-406833585


UF-Instant connection issue

UF-Instant does not have enabled sshd out of the box (tested on fw v4.1.0), so we need the option to connect via telnet.

Hi, I'm glad you guys doing this tool! So is there any progress on UF-Instant workout? I want to buy some SFP GPON device where I can set SN and PLOAM password. I tried contact CarlitoxxPro for buying CPGOS03-0490 but without answer. Their website is not working.

Any update?

Hey,
you can start ssh on the device using following commands per telnet:
cd /var/config
dropbear -R


Run FreeBSD CI also against libcxxrt master.

This updates the Cirrus CI script to to also build and test against the latest libcxxrt master in addition to libcxxrt bundled with FreeBSD 12.0.
Also moves running the tests to a separate phase so build and test logs are shown separately in the Cirrus CI UI.

Awesome, all builds are passing now after https://github.com/libcxxrt/libcxxrt/pull/1 has been merged! 🎉


glade: add darwin support

Description of changes
https://formulae.brew.sh/formula/glade#default
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
23.11 Release Notes (or backporting 23.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.

Result of nixpkgs-review pr 261580 run on aarch64-darwin 1

2 packages built:

glade
gnunet-gtk

Result of nixpkgs-review pr 261580 run on x86_64-darwin 1

2 packages built:

glade
gnunet-gtk


User UI - Allowed to chat when waiting for oauth process to complete and these chat message and response are not presented to the user.

Steps to reproduce the problem:

Create an agent with any tool that requires oauth and publish the agent
Access publish url and chat with the agent.
Ask about any question relating to the tool.
When presented with oauth login, do not take any action.
Chat with the agent by typing a message.

Notice that message/response is not presented. Thread view (in admin UI) shows that chat messsage was actually sent and it succeeded.
https://github.com/user-attachments/assets/59ea2f95-9b91-47b2-b7d0-119da992be72
On refresh, the chat messages are present and the original message that triggered the oauth flow is missing

Expected Behavior:
We should block users from chatting when oauth process is not completed. This is what we do when chatting in admin ui.

We are not allowed to enter new chat messages when waiting for oauth process to be done.


Sync state with Eglo Crosslink remote

Hi, when I turn off the lights with Eglo Crosslink remote, the state is not updated in HA. Is there a way around it? Thanks

Hi, it should update after a minute

Hi, yes, I can confirm that it updates somewhat between 20-40 seconds. First time I was not patient enough. Thanks!

👍🏼


Can't reproduce V2 config in V3 for python configuration

Problem
I used to have this configuration which allowed me to have the highlight that I really liked for python.
 { 'lukas-reineke/indent-blankline.nvim',
    config = function()
      require("indent_blankline").setup({
        show_current_context = true,
        show_current_context_start = true,
        char = '┊',
        show_trailing_blankline_indent = false,
        use_treesitter = false,
      })
    end,
  },

If I recall when I was doing the configuration the biggest thing was to not enable treesitter as it didn't work well with python.
I tried to reproduce this configuration as much as I could doing this configuration:
  { 'lukas-reineke/indent-blankline.nvim',
     main = "ibl", opts = {
        indent = { char =  '┊',smart_indent_cap=false },
        scope = { include = { node_type = {["*"] = {'*'}}}},
    }

However the output is just different and I really don't enjoy it.
I'd like to know how could I reproduce exactly the same configuration with the v3 or if not possible how can I configure Lazy to use a version that works for me.
Steps to reproduce
Update with the latest version and get lost ^^
Expected behavior
As mentioned before I'd like to be able to have the exact same configuration.
I'd welcome any help :)
Neovim version (nvim -v)
NVIM v0.9.1

Version 3 works differently, you can't get the exact same result.
You can use version 2 by specifying the tag in lazy


tests: spi_loopback: reduce footprint by tweaking logging

Using CONFIG_LOG_IMMEDIATE gives us some flash back.
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4ca8395). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master   #13365   +/-   ##
=========================================
  Coverage          ?   48.64%
=========================================
  Files             ?      319
  Lines             ?    46537
  Branches          ?    10756
=========================================
  Hits              ?    22638
  Misses            ?    19313
  Partials          ?     4586

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 4ca8395...3e57028. Read the comment docs.


Add CSV/TSV Format Checker To Demo

Great project - thanks.
When a user is first accessing the demo, they may not understand that the "Choose File" button is for a CSV/TSV file with headers.
What do you think of a pull request for the following changes?

Change wording of button on demo page from "Choose File" to "Upload CSV/TSV File"
Once CSV/TSV file is uploaded, preview the first row and confirm with user that these are the headers. If not, user can add headers and this will be added to the data as first row.

@niles 👆

Hey @patt310 - did you mean to flag for @turnerniles?

Whoops, yup! Thanks

On Feb 27, 2018, at 12:48, Carol A. Scott<EMAIL_ADDRESS>wrote:
Hey @patt310 - did you mean to flag for @turnerniles?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@scottcarol @pat310 I would definitely accept a PR for that!

@turnerniles @pat310 Awesome! I'll ping this thread when I have a PR for your review.


Communications link failure - Installation

Simply downloaded and ran the docker image to receive the following:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Same here!

Same here.

The docker build also failed (As mentioned in #47) with
Starting MySQL database server mysqld
...fail!

The fix seems to be adding chown -R mysql:mysql /var/lib/mysql /var/run/mysqld before running /etc/init.d/mysql start
Made a PR #5 fixing it.The docker build also failed (As mentioned in #47) with
Starting MySQL database server mysqld
...fail!

The fix seems to be adding chown -R mysql:mysql /var/lib/mysql /var/run/mysqld before running /etc/init.d/mysql start
Made a PR #50 fixing it.

@dinuduke A better fix is found on #44. Refer PR #51


[Feature]: ROCm 6.2 support & FP8 Support

🚀 The feature, motivation and pitch
Last week AMD announced  rocm 6.2 (https://rocm.docs.amd.com/en/latest/about/release-notes.html) also announcing expanded support for VLLM & FP8.
Actually I was able to run it following the guides ( Rocm branch ) and executing it like this:
python -m vllm.entrypoints.openai.api_server  --model /work/work2/Meta-Llama-3.1-70B-Instruct --tensor-parallel-size 1 --port 8010 --host <IP_ADDRESS> --quantization fp8 --quantized-weights-path /work/work2/Meta-Llama-3.1-70B-Instruct-fp8/llama.safetensors --kv-cache-dtype fp8_e4m3 --quantization-param-path /work/work2/Meta-Llama-3.1-70B-Instruct-fp8-scales/kv_cache_scales.json
But the performance is like 3/4 times slower than using the model withouth quantitization.
I don't know if ROCm 6.2 can solve thsi issues ... actually the performance we got with mi300x(half) is similar than running the a A100(FP8) on our tests.
Alternatives
No response
Additional context
No response

Did you run the fp8 gemm tuning? This is available in ROCm/vllm only at this point:
Step1:
To obtain all the shapes of gemms during the execution of the model, set the env value TUNE_FP8=1 and then run the model as usual. We will get the a file called /tmp/fp8_shapes.csv.
Step2:
Next, run gradlib to obtain the best solutions of these shapes:
python3 gradlib/gradlib/gemm_tuner.py --input_file /tmp/fp8_shapes.csv --tuned_file /tmp/tuned_fp8_16.csv --indtype fp8 --outdtype f16
where /tmp/tuned_fp8_16 will be used by our fp8 gemm linear layer.
Step 3:
Now, when running inference with fp8, we are using the tuned gemm for best performance.

Hi @hongxiayang , but when I launch vllm using python -m vllm.entrypoints.openai.api_server how I specify the csv to be used? Because I had to tune each model separatly, right?

Is this TUNE_FP8 environment variable processed in vLLM's code? I couldn't find a reference to it anywhere. Setting it in my runs doesn't seem to make any difference.

fp8-tuning is obsolete now. Recommend to use Pytorch tunableOps.
1: Enable TunableOp and tuning. Optionally enable verbose mode:
PYTORCH_TUNABLEOP_ENABLED=1 PYTORCH_TUNABLEOP_VERBOSE=1 your_vllm_script.sh
2. Enable TunableOp and disable tuning and measure.
PYTORCH_TUNABLEOP_ENABLED=1 PYTORCH_TUNABLEOP_TUNING=0 your_vllm_script.sh

Should we close this issue?
Please check the latest version of ROCm and fp8 support.


Clustered lighting reduces performance on WebXR VR

FPS is shown in the middle of the camera view

Using a single directional light: https://playcanvas.com/project/997759/overview/dir-clustured-lighting-in-vr
Tested on a Quest 1
With clustered lighting
72fps in browser
36fps in WebXR VR
Clustered lighting disabled
72fps in browser and WebXR VR

Using a single spotlight: https://playcanvas.com/project/997775/overview/spot-clustured-lighting-in-vr
Tested on a Quest 1
With clustered lighting
72fps in browser
24fps in WebXR VR
Clustered lighting disabled
72fps in browser and WebXR VR

I've tried this with latest engine that has Martins PR https://github.com/playcanvas/engine/pull/4761
Still get the same FPS unfortunately.

Few times over last months I've considered an option in scene.lighting to disable spot/omni lights .. so pretty much the overhead of clustered lighting would be gone (overhead is there even if no omni/spot lights are used just to check for them) if only the directional light is used. I think it's a good idea and I'll add that.


HMR not reloading the page

Vue version
3.2.45
Link to minimal reproduction
https://stackblitz.com/edit/vitejs-vite-p3165e?file=src%2Fcomponents%2FHelloWorld.vue,package.json&terminal=dev
Steps to reproduce

Open App.vue
Add some texts inside of <HelloWorld>....</HelloWorld>

What is expected?
The HMR update should reload the page to apply the changes
What is actually happening?
You can see in the console that an HMR udpate is broadcasted.
[vite] hmr update /src/App.vue
In the chrome devtools, you can see the update being broadcasted:
[vite] hot updated: /src/App.vue
But nothing is updated
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (20) x64 Intel(R) Core(TM) i9-10850K CPU @ 3.60GHz
    Memory: 14.96 GB / 31.86 GB
  Binaries:
    Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
    npm: 8.12.2 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.22621.819.0), Chromium (107.0.1418.24)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    vue: ^3.2.45 => 3.2.45

Any additional comments?

The issue is the same, no matter if the Vue project is served through vite or vue cli
According to @sapphi-red ( https://github.com/vitejs/vite-plugin-vue/issues/3) vite is properly calling the __VUE_HMR_RUNTIME__.rerender

I faced the same problem and reproduced it.
Add any content to the slot of any Column component (or direct in link below). HMR will won't work.
https://codesandbox.io/p/sandbox/vue-3-vite-4-primevue-3-9rubvl?file=%2Fsrc%2Fcomponents%2FTable.vue&selection=[{"endColumn"%3A1%2C"endLineNumber"%3A41%2C"startColumn"%3A1%2C"startLineNumber"%3A40}]

I am having the same issue in Vue 3.3.0 - Bug: HMR does not work in 3.3 alpha 9


Cannot play from a video onwards...

Maybe I'm daft but I've been trying to figure it out for quite some time now.
I load up a playlist, it's a few pages long. I would like to play from a specific video onwards.
Is there a way to achieve this?
Something like :play=17+ :anp in user input mode or --pp=s --start-video=37in command line mode.

Hi beanaroo,
Currently this is not possible, but it's a nice feature request which will be added very soon.
Thanks!

The support for unbounded ranges has been added successfully.
In user input mode, the syntax is: 17.., which will play all the videos, starting with the 17th video from the current page. (:anp is implied)
In command-line mode, --pp=s --results=50 --std=input=37.. will do the same as above. One thing to take into account it's the fact that 37 is relative to the current page. For example, if --results=20, then we need to specify --page=2, and --std-input=17.., which will play the videos starting with the 37th absolute result.
A simpler hack in the command-line mode would be --pp=s --results=1 --page=100, will start playing all the videos, starting with the 100th result.

Goodness! I did not expect such a response. Tested and it works wonderfully. My German and Coding lessons are now streamlined.
Feel free to close this issue if complete.

Thank you :)


Route tool button should be the same size/prominence as the other buttons

As shown here:

For completeness, here is the new route tool button in all it's consistently-styled glory.

One thing occurs to me on looking at this with fresh eyes: the whole right-hand box is relatively huge. Would it be easy to try scaling the box and its contents down a bit @dabreegster ?

Scaling things down is easy to try. Opened #134 to discuss other design changes


Describe File->getCMSFields() API changes in 4.x

File->getCMSFields() can no longer be extended, you need FileFormFactory->updateFormFields().  Describe this change please:

In 4.0.0 changelog
In file-related markdown docs
In File->getCMSFields() PHPDoc

Related: https://github.com/silverstripe/silverstripe-subsites/issues/296

This is what the original reporter needed to do to get it working. Since it's not exactly trivial, it should be in the docs.
## app.yml

SilverStripe\Assets\File:
  extensions:
    - QI\Homes\Extensions\HomeFileExtension
SilverStripe\AssetAdmin\Forms\FileFormFactory:
  extensions:
    - QI\Homes\Extensions\HomeAssetFormFactoryExtension

## HomeFileExtension.php

<?php

namespace QI\Homes\Extensions;

use SilverStripe\ORM\DataExtension;

class HomeFileExtension extends DataExtension
{
    private static $db = [
        'Description' => 'Text',
    ];
}

## HomeAssetFormFactoryExtension.php

<?php

namespace QI\Homes\Extensions;

use SilverStripe\Core\Extension;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextareaField;

class HomeAssetFormFactoryExtension extends Extension
{
    public function updateFormFields(FieldList $fields, $controller, $formName, $context)
    {
        $fields->insertAfter(
            'Title',
            TextareaField::create('Description', 'Description')
        );
    }
}


Fix issues in diff when end of context line has diff

Diff is showing added line as removed when diff is in end of context line. Empty lines from untouched classes are not removed from node and tree view if parser doesn't set empty lines as related to the node line.

Can we add a test for this?

Sure. I will submit a separate PR to add it.


Crash: Error: value should be an instance of Encoder

Describe the bug
We are using Nest.js and kafka as message broker. Kafkajs worked great until now. We have multiple instances of api gateway, which is listening to the reply topic. Api gateway has 6 kafka clients, each of them listening to the their own topic.
Module A client is listening to topic A only. Module B client is listening to topic B only...
When we are deploying api-gw, all 6 at the same time, it's naturally killing the old instances. So, 6 consumers leave and another 6 join at the same time. This is causing a lot of rebalances, which wasn't an issue until now. Right now, after all these rebalances kafka js is throwing 2 errors.
First:
ERROR [Consumer] Crash: KafkaJSNumberOfRetriesExceeded: Specified group generation id is not valid
And after that:
ERROR [Consumer] Crash: Error: value should be an instance of Encoder
After second error, all kafka clients die, all connections dropped, no retries are triggered and Api gateway just hangs there returning empty responses to the client
To Reproduce
If none of the above are possible to provide, please write down the exact steps to reproduce the behavior:

Connect 6 consumers to a topic.
Connect 6 more consumers to the topic and also kill original 6 consumers
Wait for an error. If no error, try couple of times.

Expected behavior
To connect to kafka after a rebalance
Environment:

OS: Ubuntu
KafkaJS version 1.15
Kafka version [e.g. 2.3.1]
NodeJS version 12.22.1

I was able to temporarily  fix the issue by increasing maxRetryTime to higher number.

The second error you mentioned is interesting. Could you set up a listener for the CRASH event and log out not just the error message, but also error.stack? The error is being thrown from here, probably because it's being called with null or undefined, but this method is called from a lot of places, so it would be interesting to understand from where:
https://github.com/tulios/kafkajs/blob/813cbfdfae6107f428befc376457d4af208fe921/src/protocol/encoder.js#L255
If you have the ability to reproduce this locally, it would also be super helpful to have debug output including protocol buffers from when this happens. Running with KAFKAJS_LOG_LEVEL=debug KAFKAJS_DEBUG_PROTOCOL_BUFFERS=1 would output this, but also increase logging volume by a tonne, so probably you don't want to do this in production.
Note that this would contain any data sent between your client and the broker, so if you can only reproduce this with real customer data, this might not be an option. If you can trigger it with test data, that would be 💯

Hi @Nevon we are also facing the same issue. I have pasted the error stack below. Can you help us with this?
Crash: Error: value should be an instance of Encoder {"timestamp":"2021-09-07T12:56:28.488Z","logger":"kafkajs","groupId":"freshflows-background-staging-client","stack":"Error: value should be an instance of Encoder\n    at Encoder.writeEncoder (/usr/src/app/node_modules/kafkajs/src/protocol/encoder.js:211:13)\n    at /usr/src/app/node_modules/kafkajs/src/protocol/encoder.js:281:18\n    at Array.forEach ()\n    at Encoder.writeArray (/usr/src/app/node_modules/kafkajs/src/protocol/encoder.js:272:13)\n    at /usr/src/app/node_modules/kafkajs/src/consumer/assignerProtocol.js:51:44\n    at Array.map ()\n    at Object.encode (/usr/src/app/node_modules/kafkajs/src/consumer/assignerProtocol.js:50:33)\n    at /usr/src/app/node_modules/@nestjs/microservices/helpers/kafka-reply-partition-assigner.js:108:78\n    at Array.map ()\n    at KafkaReplyPartitionAssigner.assign (/usr/src/app/node_modules/@nestjs/microservices/helpers/kafka-reply-partition-assigner.js:106:40)\n    at ConsumerGroup.[private:ConsumerGroup:sync] (/usr/src/app/node_modules/kafkajs/src/consumer/consumerGroup.js:176:35)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)\n    at async /usr/src/app/node_modules/kafkajs/src/consumer/consumerGroup.js:291:9\n    at async Runner.join (/usr/src/app/node_modules/kafkajs/src/consumer/runner.js:77:5)\n    at async Runner.start (/usr/src/app/node_modules/kafkajs/src/consumer/runner.js:100:7)\n    at async start (/usr/src/app/node_modules/kafkajs/src/consumer/index.js:236:7)"}

im also seeing this error in version: 1.16.0-beta.18,1.16.0-beta.22

@Kannndev: I don't think your issue is the same. Since you're using a custom partition assigner, my bet would be that it's returning something that's not a valid assignment, and you're simply running into validation that's telling you that your assignment isn't valid.

my mistake - by mistake, i send an object to "topic" instead of a string.


NetPol issue affecting pods in different namespaces across different hosts

What you expected to happen?
Create k8s network policy "ALLOW all traffic from a namespace" to share a pods app across the cluster.
What happened?
The connection requests are dropped from weave npc, if the source pod is located on a different host than the target pod.
2019/04/22 10:10:57.664451 TCP connection from <IP_ADDRESS>:32812 to <IP_ADDRESS>:9273 blocked by Weave NPC
How to reproduce it?

minimal k8s cluster with 1 master and 2 worker nodes
create deployment and service "nginx1" in namespace "application" with affinity to node1
create deployment and service "nginx2" in namespace "application" with affinity to node2
create instant pod in different namespace on any node and try to access the two services

kubectl run test-$RANDOM --rm -it --image=alpine -- sh
apk add --no-cache curl
curl nginx1.application.svc.cluster.local
curl nginx2.application.svc.cluster.local

import network policy and re-run the tests

Anything else we need to know?

pharos-cluster 2.3.6 with weave enabled
service_cidr: <IP_ADDRESS>/12
pod_network_cidr: <IP_ADDRESS>/12
kube-proxy

clusterCIDR: <IP_ADDRESS>/12
masqueradeAll: false
mode: iptables

Versions:

$ weave version
2.5.1

$ docker version
18.06.1-ce

$ uname -a
Linux 4.15.0-47-generic #50-Ubuntu SMP

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"archive", BuildDate:"2019-03-01T20:58:08Z", GoVersion:"go1.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-03-25T15:19:22Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Logs:
$ kubectl logs -n kube-system <weave-net-pod> weave

weave.log

Network:

$ ip route
$ ip -4 -o addr
$ sudo iptables-save

iptables.log

Create k8s network policy "ALLOW all traffic from a namespace" to share a pods app across the cluster.

Can you please share an e.g network policy that you used. I understand the part "ALLOW all traffic from a namespace", but not  share a pods app across the cluster..  Are you referring to a network policy that use both pod selectors and namespace selector?

Sorry for confusion. This is the networkpolicy i used:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-from-ns-monitoring
  namespace: application
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: nginx
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          app.kubernetes.io/name: monitoring
    ports:
    - protocol: TCP
      port: 80

The connection attempt afterwards is from a pod inside the namespace labeled as "app.kubernetes.io/name=monitoring".

I tried the scenario. I don't see any issue. I am able to access the service exposed by the pods selected by podSelector from any pod in the namespaces selected by namespaceSelector

Did you try the connection from different nodes? In my setup it works if source and target are on the same node, but not if the connection is cross-node.
I would like to try this again in a fresh minimal setup. are you able to give me some details about your environment?

Yes, its from different nodes I am able to see its working.
So i created three namespaces n1, n2, n3. Deployed guestbook app in n1 and n2. and applied below network policy.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-from-n2
  namespace: n1
spec:
  podSelector:
    matchLabels:
      tier: frontend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          namespace: n2
    ports:
    - protocol: TCP
      port: 80

with below pods running
± k get pods -o wide --all-namespaces -l app=guestbook                                                                                ❯❯❯
NAMESPACE   NAME                        READY     STATUS    RESTARTS   AGE       IP          NODE          NOMINATED NODE   READINESS GATES
n1          frontend-69859f6796-48lpf   1/1       Running   0          13h       <IP_ADDRESS>   weave-node2   <none>           <none>
n1          frontend-69859f6796-4z5mz   1/1       Running   0          13h       <IP_ADDRESS>   weave-node2   <none>           <none>
n1          frontend-69859f6796-tj45g   1/1       Running   0          13h       <IP_ADDRESS>   weave-node1   <none>           <none>
n2          frontend-69859f6796-97d2d   1/1       Running   0          13h       <IP_ADDRESS>   weave-node1   <none>           <none>
n2          frontend-69859f6796-gfhb5   1/1       Running   0          13h       <IP_ADDRESS>   weave-node2   <none>           <none>
n2          frontend-69859f6796-jhpb6   1/1       Running   0          13h       <IP_ADDRESS>   weave-node2   <none>           <none>

I am able to curl frontend-69859f6796-tj45g which is n1 namespace from frontend-69859f6796-gfhb5 which is in n2 namespace

thanks, i build a new setup and followed your tests. the only difference is that i connect to a service not to the pod directly. but indeed, it just works. so i need to find out, whats wrong with my prod env.

Oh if you are accessing service then it might not work. NetworkPolices works as expected when there is direct pod-to-pod communication. But pod accessing a services resulting in forwarding traffic to a pod, network policies does not necessarily work, as source IP might get masqueraded. Check (by tcpdump on destination node) if this is the case you are running into.
Its not a implementation issue, rather the semantics of network policies https://groups.google.com/forum/#!topic/kubernetes-sig-network/_KLaN2GKuxM

Thanks for clarification. I checked this in my lab env and there seems to be no masquerading, when accessing the service address. The target pod (nginx) reports the correct client adress (checked inside the source pod).
Furthermore i found this in the docs (https://kubernetes.io/docs/concepts/services-networking/service/):

The iptables proxier does not obscure in-cluster source IPs

So i think this should work as long as i go with iptables-mode for kube-proxy.

I checked the source ips in prod env without any network policy and found out that the requests are always masqueraded, even if the call goes directly to the target pod. thats quite strange, because both clusters are set up with the same tools/configs.

the issue could be solved. the reason was, that there was a stale iptables rules from firewalld, which enforced the masquerading (https://github.com/kontena/pharos-cluster/issues/1302)


Think about packaging plan and directory structure

Want to be able to pass on updates via pip install without overwriting customized data or scripts.
Will need to make utils and ingest_utils non-editable.  They'll need to make customized scripts for their own stuff which shouldn't be modified by a pip upgrade.
Maybe @dr-rodriguez can add some more thoughts.

The packaging plan also impacts the directory structure. Do we want a src/ or a flat layout?

The dark energy json files should live in data/. anything in the .sqlite file should be there as well

It seems like the utils and ingest_utils modules belong in a separate repo and package which the template depends on. EVERYTHING in the template repo would be customizable.

You can still have a package in the same repo, just that some of the folders are not part of what gets installed with pip. In your pyproject.toml file, for example, you would specify the directory that contains the schema, utils, ingest_utils for purposes of the installation and exclude everything else.
Other things in the repo can be in other directories for sample data, scripts, etc.

Though, thinking on it a bit more- that might conflict with the desire for turning this into a template package.
I do wonder: if we want to make people use ingest/ingest_utils with hard-coded table names, do we really need to have a customizable package? It sounds like we're already deciding for them what tables/columns they are going to be using. They only thing they would be able to pick if a particular table is present or not, but if it's a new table they would need to write their own code to ingest...

We are deciding on some "core" tables but I expect every implementation to have some of their own.
Maybe we start scoping this out too. Let's take the Spectral Type table. That could be our custom table and we should keep that ingest script in the SIMPLE repo.

OK, yea. Deciding on the core tables can also help control the scope. Maybe the ingest package is just on 2-4 core tables and the template defines 1-2 extra custom ones as examples. We don't need to define everything as that is left up to the individual teams.
I'll point out that astrodbkit2 has an example schema (https://github.com/astrodbtoolkit/AstrodbKit2/blob/main/astrodbkit2/schema_example.py) that is provided as a guideline. I will probably want to update that with whatever we do here, since it overlaps with the spirit of this template project. (And as an aside, astrodbkit2 should not be the home for the ingest scripts since it is written to be fully unconstrained).

removed extra files in src (e.g., ea86e8572526321973dec9abd583dc3df2940a86).

moved sqlite file to data folder (a72676369c753d14aa684f3d1537f97fbce1a536)

Brainstorming:
My current thoughts on core tables is that they could be the ones currently included here in the template schema: Publications, Telescopes, Instruments, Modes (could cut this ma, PhotometryFilters (could cut this maybe?), Versions, Regime (could cut this maybe?), Sources, Names, Spectra (could cut this maybe?). This is a good number more than the 2-4 @dr-rodriguez suggested!
So, perhaps this repo could host the few extra tables beyond the ingest package? And then a more pared down repository for the ingest package? It's helpful to have the differentiation between that and astrodbkit2.

If this repo ends up not hosting the pip-installable ingest package, then we needn't have the src/ structure — I just like that structure for packages because it's easier for me to wrap my head around what goes on PyPI. Happy to swap structures!

Brainstorm session (view-only): https://app.mural.co/t/stsciinternal7446/m/stsciinternal7446/1706043059814/0e06fd6ca3ce8ecbefec953a6345323edcf652cc?sender=u9972c6cc42643b1ed44a3448

Update: deleted files that implied Python packaging (b7baf6b0b1aa904f28fb85d03d94d132acfbdde0, fe239d125ef017f6a0bba60f64215ce10c9ff722)

Update: went from src to flat structure (a9fd66fe7cd79f429332b2b56e676aba3ff82323)

Update: and remove action that would've python published (3a5aad7ddfe7252efc0b0a4840cd3be2368be576)

Update: took a stab at an astrodb-scripts repo.

I think we're in a good spot!  Moved graphic to https://github.com/astrodbtoolkit/astrodb_scripts/issues/11


sendSocketNotification is not working from node_helper to main module

Hi,
I am new to node.js.I am trying to create new sample module "test".I am sending notification from test module to node_helper and trying to receive notification back to test module.From test module to node_helper notification works fine, but test module does not receive any notification from node_helper.
Any help appreciated.
Here is my module code:
test.js:
Module.register("test",{
defaults:{
text:"Happy Birthday!!!!"
},
getDom: function() {
var wrapper = document.createElement("div");
wrapper.innerHTML =this.config.text;
return wrapper;
},
start:function(){
this.sendSocketNotification("main",{message:"test1"});
},
socketNotificationReceived: function(notification, payload) {
console.log('socketNotificationReceived() in main module..'+notification);
if (notification === "test2") {
console.log('test2 socket notification received...');
}
}
});
Here is node_helper.js:
var NodeHelper = require("node_helper");
module.exports = NodeHelper.create({
// Override start method.
start: function() {
},
// Override socketNotificationReceived method.
socketNotificationReceived: function(notification, payload) {
var self=this;
console.log('Starting socketNotificationReceived()'+notification);
if (notification === "main") {
console.log(notification+' socket notification received...');
this.function1();
}
},
function1:function(){
console.log('inside function1');
this.sendSocketNotification("test2",{message:"test2"});
}
});
Here is config.js:
var config = {
port: 8080,
ipWhitelist: ["<IP_ADDRESS>", "::ffff:<IP_ADDRESS>", "::1"], // Set [] to allow all IP addresses.
language: "en",
timeFormat: 24,
units: "metric",
modules: [
{
	module: "test",
	position: "top_right"
}
]

};

Make sure you first send one message from the module to the helper. After that the communication channel is created and you can send a message from the helper to the module.

Thanks for quick reply.I have created communication channel by sending notification from test module to node_helper.
start:function(){ 	this.sendSocketNotification("main",{message:"test1"}); },

I am stuck there since last 3-4 days.If something is missing or wrong please correct me.Any help appreciated.

There is no issue, you just did not understand that the module doesn't log in the same place as the node helper.
Node helper -> server -> logs into terminal
Module -> client -> logs into browser/electron

Thanks  for the reply.

I guess it's solved :) Closing it for now ...


ggez related code seems outdated

Hi Olivia! First of all thanks for your time and effort put into preparing this tutorial! I pick up Rust recently and I try to follow your explanation of the code step by step but in Chapter 1.4 Rendering Game the implementation of the run method seems outdated due to changes in ggez::graphics crate, so that some methods can't be found anymore, are deprecated or their signatures have changed.
It would be cool and helpful for everyones, who finds and starts to follow your tutorial if the code is up-to-date, so it works and doesn't confuses.
My Cargo.toml:
[package]
name = "sokoban"
version = "0.1.0"
edition = "2021"

[dependencies]
ggez = "0.8.1"
glam = { version = "0.22.0", features = ["mint"]}
specs = { version = "0.18.0", features = ["specs-derive"] }

I'm trying to fix all places, where code is outdated and compile no longer but it's a quite challenging task for someone, who has absolutely no experience in Rust and libraries used in the project 😉. Based on examples from ggezrepository, the code could be refactored as follows:
let (positions, renderables) = data;

// Clearing the screen (this gives us the background colour)
let mut canvas = Canvas::from_frame(self.context, graphics::Color::new(0.95, 0.95, 0.95, 1.0));

// Get all the renderables with their positions and sort by the position z
// This will allow us to have entities layered visually.
let mut rendering_data = (&positions, &renderables).join().collect::<Vec<_>>();
rendering_data.sort_by_key(|&k| k.0.z);

// Iterate through all pairs of positions & renderables, load the image
// and draw it at the specified position.
for (position, renderable) in rendering_data.iter() {
    // Load the image
    let image = Image::from_path(self.context, renderable.path.clone()).expect("expected image");
    let x = position.x as f32 * TILE_WIDTH;
    let y = position.y as f32 * TILE_WIDTH;

    // draw
    let draw_params = DrawParam::new().dest(Vec2::new(x, y));
    canvas.draw(&image, draw_params);
}

// Finally, present the context, this will actually display everything
// on the screen.
canvas.finish(self.context).expect("expected to present");

hey @kwiat1990, thanks for pointing this out, it's certainly been a while since I've bumped the ggez version!
I'll take a look and see what's changed, if there are big API changes it might be tricky because the book relies on line numbers for the code snippets, so adding more lines will mess up the book text.

@iolivia I have managed to go through the entire tutorial and adjusted the code, so it uses the latest version of listed dependencies: link to my repo.
If you’re interested I could try to incorporate the changes in following days and create a PR. I think it could be a good learning experience for me as well.

hey @kwiat1990, great job getting this to work, a PR would be very welcome!

I gonna create one in the next few days.

Implemented in https://github.com/iolivia/rust-sokoban/pull/113, thank you for the PR @kwiat1990 I included it with a few other changes I had!


Use a single background thread for CPU profile sampling.

Currently for each execution that is made a thread is spawned which samples the CPU usage of the threads which are running. However, when lots of invocations are happening at once when profiling is enabled, it would produce so much contention since all of them would be sampling threads that the code would run exponentially slower. Since AWS appears to only have two CPUs that can execute at once, this effectively means that profiling will be a bottleneck and will be more inaccurate/heavy the more invocations are being profiled. So my proposal is that instead a single service thread is ran which performs all the needed profiling and then any execution which wants to get profiling data just registers the threads it wants to profile as it builds a report. This should definitely improve things and make it easier to use and allow for profiling when many methods are being executed at one time.
Additionally, when writing the profiler I created a ThreadGroup and spawned a new thread so that the profiler could profile any new threads that were created. But spawning and running a new thread adds some overhead and it will be simpler and faster to just monitor the main thread.
So then to have a thread be profiled: have a call such as monitorThread(Thread) which tells plugins that support thread monitoring to monitor the given thread. This requires user code changes to specify that a thread should be monitored, but it means that they must decide if they want to monitor a thread rather than not monitoring it.

Moved to release 1.6.0: This is related to #84 and would be easier to do when that is done first.


Feat: Website does not have proper meta tags

Describe the feature
Issue: The website does not have important meta tags like keywords, description, open graph, etc.
Impact: This means that the website is not as visible in search results, and users are less likely to click on the website's links.
Resolution: The website should contain important meta tags. This will help the website rank higher in search results and attract more visitors.
Add ScreenShots
.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'23 contributor
[X] I want to work on this issue

Please assign me this issue so that I can work on this issue under GSSOC'23.


docker: add missing git-lfs & labeler

Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

What does this PR do?
Addressing:
This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-checkout.
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

There is a strange artifact in the file tree =2.0.0, probably left over of some insulation where the version was not wrapped as a string...


Repeated bash string in the test - echo 'hello'

Is your feature request related to a problem? Please describe:
The string"#!/bin/bash\necho 'hello'\n"for testing cloud-init is repeated in the repository tests
Describe the solution you'd like:
Create a constant to get the string from a single place
Additional context:
This relates to the suggestion given here #11370

/remove-lifecycle rotten


2022.4 dashboards

Dashboard modifications of sprint 2022.4

@anjaamrein please have a look at the topics on dev.swissgeol.ch to validate that your change are there. if they are you can close this pr. tanks!

Checked! they are there, thanks. I close the pull request @b4l


Fix levels

This update fixes a bug in the model level calculation of pressure on the vertical height levels.
Description

Added in fixed level heights for the other ECMWF models
Fixed a bug in calculategeoh that was using pressure at half-levels instead of full levels
(see https://confluence.ecmwf.int/display/CKB/ERA5%3A+compute+pressure+and+geopotential+on+model+levels%2C+geopotential+height+and+geometric+height) for details on the full level calculations)

Motivation and Context

Fixes #309

How Has This Been Tested?

unit tests pass locally

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] I have added an explanation of what your changes do and why you'd like us to include them.
[ ] I have written new tests for your core changes, as applicable.
[x] I have successfully ran tests with your changes locally.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

@dbekaert this one should be ready to merge!


Add button to play song (for accessibility)

The trs that play the songs aren't currently tabbable. We need tabbable controls so that people can use the interface without a mouse. I was thinking a play button on the left, but other controls could accomplish this too

Addressed by https://github.com/alexanderpepper/spotify-utils/pull/38


15.0.1 wheel file for MacOS ARM64

Would it be possible to make a wheel available file for ARM64 for the version 15.0.1?
I am working on a project where this version is being used and the code does not seem to be compatible with v17.0.0 or 16.0.0

Describe incompatibility?

I get the following error.
I have
Python 3.8.9
coincurve 16.0.0
.tox/py3/lib/python3.8/site-packages/ethereum/crypto/elliptic_curve.py:8: in <module>     import coincurve .tox/py3/lib/python3.8/site-packages/coincurve/__init__.py:1: in <module>     from coincurve.context import GLOBAL_CONTEXT, Context .tox/py3/lib/python3.8/site-packages/coincurve/context.py:4: in <module>     from coincurve.flags import CONTEXT_ALL, CONTEXT_FLAGS .tox/py3/lib/python3.8/site-packages/coincurve/flags.py:1: in <module>     from ._libsecp256k1 import lib E   ImportError: dlopen(.tox/py3/lib/python3.8/site-packages/coincurve/_libsecp256k1.cpython-38-darwin.so, 0x0002): symbol not found in flat namespace '_secp256k1_nonce_function_default'

v17.0.0 too?

@ofek I see now that with v17.0.0, it works fine. Thank you.


Add API to Move All Funds

Currently is it very difficult to move all funds from the internal wallet to another address. To facilitate this, there should be an API to move all funds.
Suggestion:
Add a wallet/spendall endpoint that works similarly to the spend endpoint, but moves all funds, minus a fee, to the supplied address.
Data Sent:
{
  "feeLevel": "NORMAL",
  "memo": "move to personal wallet",
  "address": "tb1q2gzlqfs27al4087h56gg9pgza2l7fp0v7tl0llgd9agfhx6us8qs5ht6fw",
}

Data Received
{
  "amount": 27106,
  "confirmedBalance": 0,
  "memo": "move to personal wallet",
  "timestamp": "2018-04-19T15:16:18-04:00",
  "txid": "ee4f0bb4b405f17eeeb3e84aaf6bb02a13763cf87a71375f7d59ca5fe916a47d",
  "unconfirmedBalance": 0
}

The above is the same as the spend endpoint, but does not send an amount (since the amount is always all available funds).

Love this idea.


Expose webhook to trigger refresh of secrets

This is a smaller scoped enhancement of #127.  Rather than full integration with SNS or lambda, simply expose an HTTP endpoint that when hit forces a refresh of all (or a subset (??)) of ExternalSecrets.  It would then be an exercise for the user to create the correct SNS/Lambda (or GCP/Azure equivalent) integrations to hit ExternalSecrets's HTTP endpoint when a value is changed.

/notstale

/notstale

Up ! Any update on this ? More globally, how do you guys manually trigger refresh ?

Yeah, event driven refresh should be default in todays async world imo. Periodic sync is costly.


WARNING: 50% of Log Entries are Duplicates

@atombender: thanks for the tool
I've been chasing down log duplicates in our logging pipeline. Out of 562 million log entries, half of those are "unique". About 33% of them are repeated lines, where the previous line is byte-for-byte identical as the current line. I'm fairly certain that ktail is the culprit as the custom template I'm outputting is duplicated as well.
I used mmuniq-hash and mmuniq-bloom to get the 50% numbers.
I'm not sure if k8s has made changes or if there is a bug.
Related to #4 -- however, no stateful sets were in use.

I've seen this where new pods are spawning, ktail seems to sometimes identify the new pod multiple times, and therefore tails the pod's logs multiple times.

To recap: It sounds like we need to add a check just before tailing a pod to make sure that we're not already tailing that pod. If this check exists, it appears to be faulty under some conditions. The check will need to take into account the error/failure state of a tail operation to prevent losing track of a given pod.

@jmealo - it looks like the logic at issue is in the controller.go:buildKey().  the findContainerID() doesn't return anything sometimes, so you end up with multiple tailers on a container, so i've created a #17 to address the issue.  Along with #16 for housekeeping.

Closed by #17.


Point Cloud Processing

Hi,
I had a couple of questions about the way you process the point cloud.

It seems that the processing to get the camera position is incorrect
cam_body_id = self.sim.model.cam_bodyid[cam_i]
cam_pos = self.sim.model.body_pos[cam_body_id]

I found that
self.sim.model.cam_bodyid = [0, 0, 0, 0, 23, 23], and cam_pos = [0, 0, 0] for body id of 0.
I believe the correct way to get the cam positions is
cam_id = self.sim.model.camera_name2id(self.cam_names[cam_i])
cam_pos = self.sim.model.cam_pos[cam_id]

Was this intentional? It doesn't really matter as this work only uses one camera, but it would be useful to be able to extend it to multiple cameras.

How did you determine the point cloud transformation and also the scene bounds for cropping?

Hi, thank you for your interest!
I think you are correct. I also find that the camera params are not quiet right before, but yes, since we use only one camera, that is not a problem. I think if your fix is working, that would be very great to extend to multiple cameras! If you have updates on succeeding in fusing multiple cameras, it would be good to share some updates:)
For your second question, I think it is just determined by visualization. You could use our point cloud visualizer (also contained in this codebase) for debug.

Hi, thank you for your interest!
I think you are correct. I also find that the camera params are not quiet right before, but yes, since we use only one camera, that is not a problem. I think if your fix is working, that would be very great to extend to multiple cameras! If you have updates on succeeding in fusing multiple cameras, it would be good to share some updates:)
For your second question, I think it is just determined by visualization. You could use our point cloud visualizer (also contained in this codebase) for debug.


Bump RadioTherm to 1.41

RadioTherm need to be bumped to 1.41 which allows use of "yet unknown" models of thermostats.

You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum. Thanks!


Feature to listen on window focus events

Summary
Addressed issue: https://github.com/facebook/react-native/issues/24149
On Android, activity's lifecycle events are not triggered when the user pulls down the Status Bar (opening Notification Drawer). In order to know that, you need to override onWindowFocusChanged method.
Changelog

[Android] [Added] - Adds a new listener for onWindowFocusChanged
[JavaScript] [Added] - New event, focusChanged, to listen on focus gain/loss
Test Plan

AppState.addEventListener("focusChanged", hasFocus => {
   if(hasFocus) {
       // do something while we have focus
   } else {
       // unfocused
   }
});

@Krizzu yes, let's mirror web.

@cpojer @matthargett yup, done!


low mAP when doing transfer learning on a custom dataset?

Hi! Thank you for sharing your work :)
I've been attempting to do transfer learning with a class that is not present on the coco dataset. I've read the issues in this repo and followed the instructions about creating a custom dataset and running transfer learning with yolact++. I changed the config.py file with the information about my dataset, used COCO Annotator to check my annotations and it all seemed fine.
However, I'm not sure if the results I'm getting so far are correct.
[ 50]   10550 || B: 0.378 | C: 0.735 | M: 0.717 | S: 0.065 | I: 0.043 | T: 1.939 || ETA: 6 days, 12:19:33 || timer: 0.647

Calculating mAP...

       |  all  |  .50  |  .55  |  .60  |  .65  |  .70  |  .75  |  .80  |  .85  |  .90  |  .95  |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
   box | 24.89 | 30.36 | 30.36 | 30.28 | 30.15 | 29.78 | 29.35 | 28.27 | 24.70 | 14.16 |  1.44 |
  mask | 28.09 | 30.60 | 30.28 | 30.25 | 30.25 | 30.25 | 30.20 | 29.92 | 29.07 | 26.92 | 13.22 |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+

[204]   42430 || B: 0.380 | C: 0.751 | M: 0.656 | S: 0.065 | I: 0.032 | T: 1.883 || ETA: 7 days, 7:51:03 || timer: 0.763

Calculating mAP...

       |  all  |  .50  |  .55  |  .60  |  .65  |  .70  |  .75  |  .80  |  .85  |  .90  |  .95  |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
   box | 24.50 | 30.48 | 30.45 | 30.43 | 30.01 | 30.01 | 29.61 | 27.86 | 22.88 | 12.74 |  0.58 |
  mask | 27.87 | 30.22 | 30.18 | 30.16 | 30.14 | 29.86 | 29.82 | 29.50 | 28.75 | 26.59 | 13.48 |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+

[420]   87140 || B: 0.377 | C: 0.683 | M: 0.573 | S: 0.052 | I: 0.030 | T: 1.715 || ETA: 8 days, 9:55:49 || timer: 0.801

Calculating mAP...

       |  all  |  .50  |  .55  |  .60  |  .65  |  .70  |  .75  |  .80  |  .85  |  .90  |  .95  |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
   box | 24.03 | 30.63 | 30.63 | 30.63 | 30.62 | 30.59 | 29.85 | 27.90 | 20.63 |  8.16 |  0.64 |
  mask | 28.06 | 30.31 | 30.29 | 30.29 | 30.29 | 30.29 | 30.25 | 29.86 | 29.02 | 26.91 | 13.11 |
-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+

Thanks for you help!

@amaanda May I ask how many dataset you had and how long you trained to get this mAP? Did you change learning rate or max_iteration? I'm doing a similar stuff and my mAP gets stuck around 14 for both box and mask.

I'm facing the same issue. Did you find out what was wrong?

I have the same problem, I have 40 imgs for training and 20imgs for val,but I only have on class


Add github actions CI

After #1
Nothing out of the ordinary is needed, I don't think, unless examples are to be tested as well.

Done by #5


Discuss the desiderata of the block runner

This follows #256
The block runner is a class that runs a block in a periodic thread. It is useful if you want to run multiple blocks in the same application.
Here I want to discuss possible desiderata to the block runner.

[ ] FInd a way to start and stop the thread. Right now in the implementation that I proposed #256  I used atomic_bool to stop the thread. A possible solution is to use signals and slots

cc @traversaro @S-Dafarra

A possible solution is to use signals and slots

I personally like the signal/slot paradigm. There was some discussion going on in https://github.com/dic-iit/bipedal-locomotion-framework/issues/44 for this. I would just avoid implementing our own signal/slot library as per https://github.com/dic-iit/bipedal-locomotion-framework/issues/44#issuecomment-633670339
I remember it was very easy to run a block in a separate thread, just a matter of a function call.

https://github.com/ami-iit/bipedal-locomotion-framework/pull/272 closes the issue (for now)


Regression with TCP Endpoints in 1.17.0

With 1.16.5, everything works fine with endpoints defined by IP address:

With 1.17.0, something is assuming this is a TLS connection, and failing with the error:
Failure
Unable to connect to the Docker environment

Logs:
[root@vswarm-2 ~]# docker logs -f c37d71dd0bff
2018/05/13 04:05:32 Instance already has defined endpoints. Skipping the endpoint defined via CLI.
2018/05/13 04:05:32 Starting Portainer 1.17.0 on :9000
2018/05/13 04:06:08 http: proxy error: tls: oversized record received with length 20527
[root@vswarm-2 ~]#

Port 2375 is not a TLS port, and TLS is not checked in the settings above.
The stack config file is as follows:
version: '3.2'

services:
  portainer:
    image: portainer/portainer:1.16.5
    deploy:
      placement:
        constraints:
          - "node.role == manager"
    volumes:
      - type: volume
        source: portainer
        target: /data
        volume:
          nocopy: true
    ports:
      - "9000:9000"
    command: [ "-H", "tcp://<IP_ADDRESS>:2375" ]

volumes:
  portainer:
    driver_opts:
      type: "nfs"
      o: "addr=<IP_ADDRESS>,nolock,soft,rw"
      device: ":/ssdpool/docker/voip/portainer"

Docker Version:  Docker version 18.03.0-ce, build 0520e24 running on RHEL 7.4
Docker is started with a systemd override to expose the API
[root@vswarm-1 ~]# cat /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H <IP_ADDRESS>:2375 -H unix:///var/run/docker.sock

[root@vswarm-1 ~]#

Thanks for the report @xrobau
Could you copy/paste the payload of the POST request to /api/endpoints in your browser's developer tools?

[
    {
        "Id": 1,
        "Name": "vswarm-1",
        "Type": 0,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 0,
        "PublicURL": "",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": true
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 2,
        "Name": "vswarm-2",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 3,
        "Name": "vswarm-3",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 4,
        "Name": "vswarm-4",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 5,
        "Name": "vswarm-5",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    }
]

The 502 comes when it's requesting /api/endpoints/1/docker/version

After some random clicking around, I discovered that I was actually logged in, and could click around.  I can connect to the two non-manager nodes without a problem, but when I try to switch to 1, 2, or 3, I get 502's on /{id}/docker/(swarm|version|info).

@xrobau wonder why the first endpoint has "TLSSkipVerify": true, how did you create this endpoint? Are the other endpoints failing as well?

All of them are. The first one was auto-created by the -H param when I created it.
This seems to be more puzzling as I go.

I'm not getting a 502 when I manually fix the URL, but something is missing in what is returned.

@xrobau anything new in the Portainer container logs? Or just more proxy error: tls: oversized record received with length errors?

Still the TLS misconfiguration
[root@vswarm-3 ~]# docker logs -f 7257da1ca8c4
2018/05/14 05:54:53 Instance already has defined endpoints. Skipping the endpoint defined via CLI.
2018/05/14 05:54:53 Starting Portainer 1.17.0 on :9000
2018/05/14 05:55:06 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:19 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:19 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:19 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:33 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:33 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:33 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:36 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:00:36 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:18 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:18 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:18 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:24 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:24 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:24 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:30 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:30 http: proxy error: tls: oversized record received with length 20527
2018/05/14 06:01:30 http: proxy error: tls: oversized record received with length 20527

I guess the next thing for me to do is a bisect.  Lets see if I can find your 'build a dev environment' document  again...  https://portainer.readthedocs.io/en/latest/contribute.html looks like it.
If you think the portainer.db will help you, I can put it in dropbox or something.

@xrobau yeap, I'll investigate as well because this looks pretty strange to me.
I don't need access to the database, from what I can see in the endpoint list, it looks like the endpoint #1 is invalid and might cause this tos oversized issue (https://stackoverflow.com/questions/39126345/why-am-i-receiving-an-oversized-record-tls-error). I'll investigate and see what might be causing this.
But it's strange that other endpoints do not work too.

The problem is it shouldn't be using TLS at all to connect to the manager nodes. That is the issue. Something is telling Portainer to use TLS, and it shouldn't be.    I won't have time to do a Bisect until next week, as I'm on a pretty tight sprint at the moment 8-\

@jgrasl that makes me think it is Database related.  So I tried an experiment - I deleted vswarm-3 and readded it. And now it's working fine. However, I can't see any difference!
I grabbed a binary blob out of the portainer.db before the change:
@^@^@^@^@^@^@^@^@^@^A{"Id":1,"Name":"vswarm-1","URL":"tcp://<IP_ADDRESS>:2375","PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":true},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^B{"Id":2,"Name":"vswarm-2","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":true},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^C{"Id":3,"Name":"vswarm-3","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":true},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^D{"Id":4,"Name":"vswarm-4","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":false},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^E{"Id":5,"Name":"vswarm-5","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":false},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@

And after:
^@^@^@^@^@^A{"Id":1,"Name":"vswarm-1","URL":"tcp://<IP_ADDRESS>:2375","PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":true},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^B{"Id":2,"Name":"vswarm-2","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":true},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^D{"Id":4,"Name":"vswarm-4","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":false},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^E{"Id":5,"Name":"vswarm-5","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":false},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^F{"Id":6,"Name":"vswarm-3","Type":1,"URL":"tcp://<IP_ADDRESS>:2375","GroupId":1,"PublicURL":"<IP_ADDRESS>","TLSConfig":{"TLS":false,"TLSSkipVerify":false},"AuthorizedUsers":[],"AuthorizedTeams":[],"Extensions":[]}^@^@^@^@^@^@^@^@^@^@^@^

But now I can connect to vswarm-3 without an error. There must be some magic happening somewhere behind the scenes to do with node creation that isn't being done on a migration/upgrade.

Oh, It looks like the problem is here
https://github.com/portainer/portainer/blob/develop/api/http/client/client.go#L25
That's saying if TLS is enabled or if TLS Skip Verify is enabled, use TLS.  If Skip Verify is enabled, but TLS is not enabled, it shouldn't be using TLS.

This should work then https://github.com/portainer/portainer/pull/1892

@jgrasl do you mean that existing endpoints were not working anymore after updating to 1.17 ?

@deviantony yes, for me my existing TCP endpoints didn't work after updating to 1.17. My one endpoint with socket setup worked fine but all TCP endpoints had to be recreated to work again.
Endpoint creation works fine for me in 1.17

@jgrasl were they simple TCP endpoint or TLS enabled endpoints?

@deviantony simple TCP without TLS and I had the same error in the portainer log as @xrobau after update.
2018/05/14 07:04:50 Migrating database from version 8 to 10.
2018/05/14 07:04:50 Starting Portainer 1.17.0 on :9000
2018/05/14 07:10:26 http: proxy error: tls: oversized record received with length 20527

These were added through the GUI a couple of versions ago. Nothing special or unusual was done.

@xrobau @jgrasl any of you tried to update these endpoints before seeing error messages? Or did you just try to use Portainer right after upgrade?

@deviantony I did update my endpoints I put them into a newly created group and after that I realized they're not working.

@jgrasl interesting, I found a bug within the endpoint update process that will automatically create invalid non-TLS endpoints. I'm able to reproduce the error after updating an endpoint.
Now I'd like the confirmation of @xrobau to check if this error is only raised after updating the endpoint.

Are you guys able to reproduce with portainer/portainer:pr1896 ?

Nope. I'm guessing that code snippet is somewhere else, too.

Current output of endpoints, after I recreated vswarm-3 (so it's now ID 6)
[
    {
        "Id": 1,
        "Name": "vswarm-1",
        "Type": 0,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": true
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 2,
        "Name": "vswarm-2",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": true
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 4,
        "Name": "vswarm-4",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 5,
        "Name": "vswarm-5",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    },
    {
        "Id": 6,
        "Name": "vswarm-3",
        "Type": 1,
        "URL": "tcp://<IP_ADDRESS>:2375",
        "GroupId": 1,
        "PublicURL": "<IP_ADDRESS>",
        "TLSConfig": {
            "TLS": false,
            "TLSSkipVerify": false
        },
        "AuthorizedUsers": [

        ],
        "AuthorizedTeams": [

        ],
        "Extensions": [

        ]
    }
]

Oh. Does PR1896 contain PR1892? I didn't look. Maybe that's why it's still not working 8)

@xrobau Question is: after migrating from 1.16.5 to 1.17.0, did the endpoints fail to work immediately? Or did you update these endpoints first (changing name, the assigned group or something else...) ?
Could you try to reproduce with portainer/portainer:pr1896 ?

It failed to work immediately. The error is still present with pr1896. At that point I just recreated the three endpoints, as you should be easily able to recreate the issue locally.

as you should be easily able to recreate the issue locally.

Well I'm not, that's what I'm trying to figure out. Ok, I'll dig deeper.

If you can tell me how to set the TLSSkipVerify flag back on in the database, I'll be able to put it back to being broken 8)

I'd like to reproduce the process to break the endpoints... so no point in breaking them manually. I'm still looking.

There's two problems, and while you've addressed the second (endpoint gets into an indeterminate TLS state), I don't think you've fully addressed the first - what to do WHEN an endpoint is in that state.
Other people (at least @jgrasl) have managed to get into this state, and it's very difficult for a non-technical user to fix.
Can you readdress #1892 and find everywhere else that is making the same assumption? I guess that there's a lot of copy-and-pasted (rather than DRY!) TLS inits that I didn't find on my first look through.

Was facing a similar issue to @xrobau. I have tried portainer/portainer:pr1909 and I can now update the stack once more.

Thanks for the feedback @jezhodges


Use of absolute/relative paths

Due to the way we name output files, if a path to another directory is specified:
poppunk --assign-query --ref-db /lustre/scratch118/infgen/team81/nc3/GPS/ST_core/GPS --distances /lustre/scratch118/infgen/team81/nc3/GPS/ST_core/GPS/GPS.dists --model-dir /lustre/scratch118/infgen/team81/nc3/GPS/ST_core/GPS_dbscan_refine --q-files query.list --output GPSC_assignment --threads 16

We get errors:
ERROR: could not open ".//lustre/scratch118/infgen/team81/nc3/GPS/ST_core/GPS//lustre/scratch118/infgen/team81/nc3/GPS/ST_core/GPS.9.msh" for reading.

Need to add a general util function for writing output and parsing these paths correctly (using os.path).

A workaround for now is to symlink input directories into the wd


double-beep: Watch liveroger.com

double-beep requests the watch of the watch_keyword liveroger\.com. See the MS search here and the Stack Exchange search here.

liveroger\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Suraj Rao in Charcoal HQ


"Change the presentation of a bar chart" Chrome test failure

Affected page
Add a link to the coding challenge with the problem.
https://www.freecodecamp.org/learn/data-visualization/data-visualization-with-d3/change-the-presentation-of-a-bar-chart
Your code
Copy and paste the code from the editor that you used in between the back-ticks below:
<style>
  .bar {
    width: 25px;
    height: 100px;
    /* Add your code below this line */
    margin: 2px;

    /* Add your code above this line */
    display: inline-block;
    background-color: blue;
  }
</style>
<body>
  <script>
    const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];

    d3.select("body").selectAll("div")
      .data(dataset)
      .enter()
      .append("div")
      .attr("class", "bar")
      .style("height", x => (x*10 + "px")); // Change this line
  </script>
</body>

Expected behavior
Add a clear and concise description of what you expected to happen.
Solution should work in Chrome and Firefox. Currently fails in chrome but passes in Firefox.
In Chrome, "The fifth div should have a height of 250 pixels and a margin of 2 pixels." test passes while every other test fails.
Tested both again with the official solution and had the same issue with chrome.
Screenshots
If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box.
System (please complete the following information):

Device: Desktop
OS: Fedora 34
Browser: Chrome, Firefox
Version: [e.g. 22]
Chrome Version 91.0.4472.114 (Official Build) (64-bit)
Firefox 89.0.1 (64-bit)

Additional context
Tested 1080p and 1440p screens and got same result, Firefox passes and Chrome fails

Hello there,
Thank you, for taking the time to open this. However, I am unable to reproduce this - the code passes in Chrome for me.
Therefore, I am going to close this as the most likely cause for the test failing in one of your browsers is a browser extension interfering with the tests. We recommend disabling all browser extensions with access to freecodecamp.org.
If this has been closed in mistake, please reopen with more information.


SyntaxError: Unexpected token .

Hi, there is an Error when I import component to server side for rendering:
/react-bootstrap-table/dist/react-bootstrap-table.min.css:1
(function (exports, require, module, __filename, __dirname) { .react-bs-table .react-bs-container-header .sort-column,td.re
act-bs-table-expand-cell{cursor:pointer}.react-bs-table-container .react-bs-table-search-form{margin-bottom:0}.react-bs-tab
le-bordered{border:1px solid #ddd;border-radius:5px}.react-bs-table table{margin-bottom:0;table-layout:fixed}.react-bs-tabl
e table td,.react-bs-table table th{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.react-bs-table-pagination{ma
rgin-top:10px}.react-bs-table-tool-bar{margin-bottom:5px}.react-bs-container-header{overflow:hidden;width:100%}.react-bs-co
ntainer-body{overflow:auto;width:100%}.react-bootstrap-table-page-btns-ul{float:right;margin-top:0}.react-bs-table .table-b
ordered{border:0;outline:0!important}.react-bs-table .table-bordered>thead>tr>td,.react-bs-table .table-bordered>thead>tr>t
h{border-bottom-width:2px}.react-bs-ta
SyntaxError: Unexpected token .
                                                                                ^

The reason why I am trying to render react page in server is about react-router. It doesn't allow me to refresh a not index page or type url directly to go into a specific page, otherwise there will be 404 not found.
So I have to render react to html when there is a http request that not for default index.html coming in.
Libs version
{
  "scripts": {
    "start": "node ./server/app.js",
    "dev": "NODE_ENV=development node dev-server.js",
    "build": "rimraf ./dist && NODE_ENV=production webpack"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "0.16.1",
    "koa": "^2.2.0",
    "koa-bodyparser": "^4.2.0",
    "koa-router": "^7.2.0",
    "koa-static": "^3.0.0"
    "koa-ejs": "^4.0.0",
    "lodash": "^4.17.4",
    "prop-types": "15.5.10",
    "qs": "^6.4.0",
    "react": "15.5.4",
    "react-bootstrap": "0.31.0",
    "react-bootstrap-table": "^3.3.8",
    "react-burger-menu": "2.0.2",
    "react-dom": "15.5.4",
    "react-redux": "5.0.5",
    "react-router-dom": "4.1.1",
    "redux": "3.6.0",
    "redux-thunk": "2.2.0"
  },
  "devDependencies": {
    "babel-core": "^6.24.1",
    "babel-loader": "^7.0.0",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "css-loader": "^0.28.3",
    "extract-text-webpack-plugin": "^2.1.0",
    "file-loader": "^0.11.1",
    "html-webpack-plugin": "^2.28.0",
    "image-webpack-loader": "^3.3.1",
    "jsx-loader": "^0.13.2",
    "react-hot-boilerplate": "^1.0.0",
    "react-hot-loader": "^1.3.1",
    "rimraf": "^2.6.1",
    "style-loader": "^0.18.1",
    "url-loader": "^0.5.8",
    "webpack": "2.5.0",
    "webpack-dev-server": "^2.4.5"
  }
}

server.js
const Koa = require('koa');
const serve = require('koa-static');
const bodyParser = require('koa-bodyparser');
const router = require('koa-router')();

require('babel-core/register')({
    presets: ['es2015', 'stage-0','react']
});

import React from 'react';
import ReactDOMServer from 'react-dom/server';
import render from 'koa-ejs';
import path from 'path';

import {StaticRouter} from 'react-router';
import App from './src/routes';

let app = new Koa();
app.use(bodyParser());

app.use(async(ctx, next) => {

    console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
    await next();
});

render(app, {
    root: path.join(__dirname, '../dist'),
    layout: 'index',
    viewExt: 'html',
    cache: false,
})

router.get('/*', async(ctx, next) => {
    let url = ctx.url;
    let context = {};

    let markup = ReactDOMServer.renderToString(
        <StaticRouter
            location={url}
            context={context}>
            <App />
        </StaticRouter>
    )
    console.log('url', url);
    await ctx.render('index',markup);
});

app.use(serve('./dist'));

/app.use(router.routes());

let port = process.env.PORT || 9000;

app.listen(port,()=>{
    console.log(`listening on: ${port}`);
});

update:
about TypeError: Super expression must either be null or a function, not undefined
I guess it is a bug from yarn, because some time when I add and change libs by yarn, this error will come, and even I re-install by yarn, it still happened.
So my solution is delete the whole nodes_module and run npm i to re-install all modules.

SyntaxError: Unexpected token . just comes out when I import those components which contain react-bootstrap-table, however, it works fine if don't import them in server side.  Any advises for the error  ?
Thank you so much.

dod you have correct css loader and configuration for webpack, because it seems like something wrong from CSS, right?

I found this issue came from importing the css file in jsx file directly, import /node_modules/react-bootstrap/dist/react-bootstrap-table.min.css. So I just delete the import then it works well.
Thanks @AllenFang

Nice !


Parser not working with ublox NEO-6M

Hi @aentinger
I tried the parser with an ublox NEO-6M receiver but unfortunately it didn't work. It seems like GPRMC dataset is formatted a little bit different than expected. Here is a dataset:
$GPRMC,193517.00,A,4837.99895,N,01301.58584,E,0.793,,111020,,,A*7D
Could you have a look on this? Thank you.

Good morning @generationmake :wave: :coffee:
This is most likely because it contains 4 additional fields: date, mv, mvE, mode (see datasheet page 63). I'll look into it.

107-Arduino-NMEA-Parser:1.0.2 has been released. @generationmake can you please test with your ublox GPS module?


Fixed status indicator for text and link components

What this PR does / why we need it:
Moves status indicators from clarity angular to core. Re-enable plugin authors to set text next to an icon.
Which issue(s) this PR fixes

Fixes #1688

Special notes for your reviewer:
Example usage:
text := component.NewText("my-text", func(t *component.Text) {
	t.SetStatus(component.TextStatusOK)
})

Same thing for link components.
Signed-off-by: Sam Foo<EMAIL_ADDRESS>

Looks good 👍