Feature Request: Scroll to Top Button

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
When scrolling on pages on freeCodeCamp, reading articles, and accessing parts of the curriculum I feel like there is a lot of content and I have to scroll for a long time. It would be nice to have a scroll to top button on the bottom right corner to navigate back to the top of the page.
Describe alternatives you've considered
Alternatively, some sort of navigation menu with the sections on the page to allow users to jump to certain sections instead of scrolling back and forth.
Additional context
No response

Hi @JoT8ng
I would love to contribute to this issue for Hacktoberfest! Could you please assign it to me?
I have experience with the required tech stack, I'm excited to work on building the code snippet generator.
Looking forward to your response!
Thanks,
Akshay Mishra

i want to work on this , please assign

Steps to Implement the Scroll to Top Button:

Add Scroll to Top Button in the HTML (or JSX if using React)
You need to add a button that appears after the user has scrolled down the page. The button will be positioned at the bottom right corner.

Add Styling for the Button
To ensure the button is always visible at the bottom right of the screen and styled appropriately, add CSS. You can customize the appearance to match the freeCodeCamp theme.

Add JavaScript to Control Visibility and Scrolling
Now, add JavaScript to control when the button is displayed and how it behaves when clicked. The button will appear after the user scrolls down a certain amount, and on click, it will smoothly scroll the page back to the top.

Ensure Accessibility
Keyboard Accessibility: The button should be focusable using keyboard navigation (tabindex="0").
ARIA Label: Ensure proper accessibility labeling with the aria-label="Scroll to Top" attribute on the button.

I would like to work on this issue please guide me how can I solve this issue

Hi @akshaymishra-01 @chiragmalik2612 @sameer6699,
Issue has not been triaged yet, and a solution has not been agreed upon. Until that the issue is not open for contribution.
Additionally we typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue.
Issues labelled with help wanted or first timers only are open for contributions.
Please make sure you read our guidelines for contributing. We prioritize contributors following the instructions in our guide. Join us in our chat room or the forum if you need help contributing - our community will be happy to assist you.

Hi! Is there any chance I could claim or otherwise be assigned to this bug? I am relatively new to GitHub but I want to see if I can help you with this

Hey @JacksonRoberts-Git,
check out this comment - https://github.com/freeCodeCamp/freeCodeCamp/issues/56563#issuecomment-2395998807

only issues with the help wanted label are open for contribution

Not sure if we need a scroll to top button. Maybe on mobile or a keyboard without a Home button it could be useful.

But I do think giving easier access to the table of content after you scroll past it would be nice.
It could be implemented as a sticky sidebar that triggers after you scroll past the TOC, maybe with a visual indication of what section you are scrolled to. It could have a scroll to top link as well. An example of this would be how Wikipedia has it.
Not sure how easy it is to implement without changing the current layout too much. The TOC would likely need to be implemented as a partial.


http.request: add missing handle close (HTTP/0.9 case)

I am not 100% sure that this was an error, but for other cases handle is closed.
https://github.com/lunarmodules/luasocket/blob/1fad1626900a128be724cba9e9c19a6b2fe2bf6b/src/http.lua#L393

since http 0.9 is obsolete, I vote for not changing it. I'd expect it to do more harm than good.


Allow download of user index by non-admins

We take privacy seriously, so in the past we have only allowed admins
to get the user index.  However, in retrospect this was really
more security theater than real security.  The index information
is available publicly anyway through various means.
The user information (id and name) is easily determined via show
one-by-one.  Whether or not a user is on GitHub, and their nickname,
can be inferred by the external page reference.  And the GitHub uid
is easily determined from GitHub using the nickname and GitHub APIs.
So in short, we're overprotecting information already publicly available.
This is a problem, because we want to encourage people to analyze
our data about OSS, and the user list is a key part of that data.
We're just making it hard for legitimate uses.
So, this lets download the user index even if they aren't an admin.
It's still subject to the usual limitations (e.g., pagination).
This change still requires that users be logged in to get the data.
This seems fair enough (register yourself before getting a list
of users), and may help us detect abuses.
The tests use "refute ..." instead of "assert !..." per a suggestion
from Jason Dossett.
Note that we still ONLY release email addresses to admins, and
we NEVER include the hashed passwords. Those remain sensitive,
and we continue to protect them per our security policy.
Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

Codecov Report

Merging #828 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #828   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          45     45
  Lines        1427   1427
=====================================
  Hits         1427   1427

Impacted Files
Coverage Δ

app/controllers/users_controller.rb
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Looks good to me!


Add section about trigger.paths and how to include and exclude specific paths

Add section about pipelines.trigger.paths and how you can include and exclude specific paths. Some of the information on this page would fit pretty well:
https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#paths

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

ID: db702258-9035-fa1e-33be-414a79c9655e
Version Independent ID: db702258-9035-fa1e-33be-414a79c9655e
Content: resources.pipelines.pipeline.trigger definition
Content Source: content/resources-pipelines-pipeline-trigger.md
Service: azure-devops-pipelines
GitHub Login: @steved0x
Microsoft Alias: sdanie

Thank you for your feedback. We are migrating this issue to our new documentation feedback system, and closing this issue.
As we phase out GitHub issues for this repository, we encourage you to propose changes using public PRs or submit feedback through our updated control at the top of the page. For more information on our feedback systems, see https://aka.ms/contentuserfeedback.


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-30-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 4331

Questions ?
Please refer to the Backport tool documentation


CTRL + A does not select in text boxes

From @tairabiteru on November 17, 2015 23:3
title
Copied from original issue: tairabiteru/NDL-DVCL#42

Given the current codebase, this would be difficult to implement.
I will attempt to incorporate this into the program, but it will be on low priority.

Implemented as of B 1.2.3

This was actually rather easy to implement. I simply was binding the command to the wrong widget.


%1 %2 in output

Running a debug command like pkg . --debug shows:
> [debug] File %1 added to queue

Should the %1 be replaced with a file name?

I can't reproduce this issue. I just tried npm init -y then adding "bin" in my package.json to point to my index and then pkg . --debug will build my exec just fine... Also execs works ok. Also pkg debug information is shown correctly

I'm on windows, using latest version. Same thing %1 %2 ...
Seem's it's normal ?
https://github.com/zeit/pkg-fetch/blob/master/lib/log.js

Experiencing the same.

I created a repository that reproduces this issue: https://github.com/Tmarty/pkg-271


Add EnumShapeAttribute

The DataContractSerializer attribute set is largely redundant with your *ShapeAttribute set. Except that DCS offers EnumMemberAttribute which allows renaming an enum value, and PolyType has no equivalent.
IEnumTypeShape doesn't enumerate the enum value names anyway, forcing us to use reflection at runtime. Presumably that would need to be filled in to make specifying a rename to make sense.

This would require changing the API of IEnumShape as well. Rather than interfacing with the type directly to extract member names (including EnumMemberAttribute annotations) we would need to expose Func<TEnum, string> and Func<ReadOnlySpan<char>, TEnum> delegates that honor the annotations.

If you're going to add APIs like that, just be aware that multiple enum value names can represent the same ordinal value. And then of course we have flags enums.


Various small cleanups

Please see each commit's message. :)

this is great, thank you so much! merged


Sail has no way to enforce the usage of docker compose cli plugin (v2) when docker-compose (v1) is installed

Sail Version: 1.12.9
Laravel Version: 8.6.0
PHP Version: 8.0.13
OS: Windows 10 19044.1387

Description:
With this merged PR https://github.com/laravel/sail/pull/244, sail fallsback to docker compose cli only if docker-compose is not installed; it always executes docker-compose even if compose cli plugin (which is the official v2 of docker compose) is installed.
Compose cli plugin has some new features like copying files using named services:
docker compose cp mariadb:/var/lib/mysql/. backup/raw-dbfiles

Sail equivalent sail cp mariadb:/var/lib/mysql/. backup/raw-dbfiles wont work if the user has both docker-compose and compose cli and we don't have a way to enforce Sail to use the compose cli instead of docker-compose.
The above command:
sail cp mariadb:/var/lib/mysql/. backup/raw-dbfiles

will output the message No such command: cp
Steps To Reproduce:

On a system with both docker-compose (v1) and docker cli (v2) installed, go to a Laravel project with Sail (and mariadb service or change to mysql if mysql is used)
Create a backuptmp/raw-dbfiles directory mkdir -p backuptmp/raw-dbfiles
Try to use cp command like: sail cp mariadb:/var/lib/mysql/. backup/raw-dbfiles

Prossible solution
I suggest that we create an environment variable to tell Sail if we want to enforce the usage of docker compose cli even if docker-compose v1 exists. And if this is acceptable issue and solution, I'll be happy to create a PR for it.

Thanks for mentioning this @clytras. This could however, just have been a simple PR with your proposed solution. Feel free to attempt that.

I'll submit a PR soon then. Thank you @driesvints


Correct link to Supervision page

thanks for your contribution @RobPurcellCgl

No problem :)
I'll do a larger one with some other doc fixes when I have time, if they aren't corrected in the meantime.
I think you've rearranged the docs site at some point and the links are pointing to the old structure (including the GitHub edit links, which doesn't help for submitting corrections).


Support switching jdbc dialect based on session conf

:mag: Description
Issue References 🔗

Describe Your Solution 🔧
Now JDBC engine using the overlay conf as session conf,  The ConnectionProvider will switch depending on the session conf. Therefore, we should also select the JDBC dialect based on the session conf.
Types of changes :bookmark:

[ ] Bugfix (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 change)

Test Plan 🧪
Behavior Without This Pull Request :coffin:
Behavior With This Pull Request :tada:
Related Unit Tests

Checklist 📝

[x] This patch was not authored or co-authored using Generative Tooling

Be nice. Be informative.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.45%. Comparing base (31469fa) to head (adac785).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6202      +/-   ##
============================================
- Coverage     58.55%   58.45%   -0.10%
  Complexity       24       24
============================================
  Files           649      649
  Lines         39361    39361
  Branches       5415     5415
============================================
- Hits          23046    23009      -37
- Misses        13847    13870      +23
- Partials       2468     2482      +14

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Thanks, merged to master.


[BUG] Pane is displayed when hidden after keyboard hide

Describe the bug
If the pane has been opened and then hidden with .hide(), when the on-screen keyboard is hidden the pane is shown again.
To Reproduce
Steps to reproduce the behavior:

Initialise and open the pane
Use .hide() to hide the pane
Focus on an input field to show on-screen keyboard
Tap elsewhere on screen to blur input field to hide on-screen keyboard

Expected behavior
I expect the pane to remain hidden after the on-screen keyboard has been hidden.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: iOS

Ionic:

   Ionic CLI                     : 6.12.2
   Ionic Framework               : @ionic/angular 5.5.1
   @angular-devkit/build-angular : 0.1100.4
   @angular-devkit/schematics    : 11.0.4
   @angular/cli                  : 11.0.4
   @ionic/angular-toolkit        : 3.0.0

Cordova:

   Cordova CLI       : 8.1.2<EMAIL_ADDRESS>   Cordova Platforms : android 9.0.0, browser 6.0.0, ios 5.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 28 other plugins)

Utility:

   cordova-res                          : not installed
   native-run (update available: 1.3.0) : 1.2.2

System:

   npm               : 6.14.8
   OS                : macOS Catalina
   Xcode             : Xcode 12.2 Build version 12B45b

Smartphone (please complete the following information):

Device: iPhone XS
OS: 14.3

@sjregan Already fixed on master. Will be included to next release.

@sjregan Already fixed on master. Will be included to next release.

This still happens in v1.2.7 on Android devices

@modvd i will check

@modvd please check that it completely fixed on master branch.

I have two panels. The first one has a middle and top break and has fitScreenHeight set to true. The second one has no breaks and fitHeight set to true.
Before the fix, both panes would open when I hide the keyboard (by tapping outside and by clicking hardware back button).
After the fix, the first pane stays hidden. It is completely fixed. The second pane still opens when hiding the keyboard when tapping outside of the keyboard. It stays hidden when i hide the keyboard by tapping the hardware back button.

I did a little more tests and this bug still happens with panes with fitHeight set to true. And not when fitScreenHeight is set to true.
Plus, I get this warning "Cupertino Pane: middle breakpoint disabled" when I hide the keyboard.
It only happens when I hide the keyboard when clicking outside of it. Not when I use the hardware back button.

@modvd big thanks for investigations and help. It believes that's now it is completely done for all type of panes!


Discussion: Which latest version is verified to be working?

Since there is a hex search and replace, does it work with latest firmware 2.2.5_0003.0616? Has anyone tried successfully?
Is 2.2.1 the last known working firmware?

I can confirm it works with 2.2.5_0003.0616.
One issue I did run into: on first boot, with the sdcard inserted, the RTSP server started but there were no streams. Restarting the camera without the sdcard fixed this.

Homekit still works?

Homekit still works?

Yes

Got it to work with some fiddling. Changed the ntp server pool to a local one. Ran a reverse script seen in one of the forks first.
A new firmware is out 2.2.6. I'm staying with 2.2.5

2.2.7 is out and the Hostname trick does not seem to work (1st time to try out). Any different experiences?

2.2.7 is out and the Hostname trick does not seem to work (1st time to try out). Any different experiences?

im on 2.2.7 and it did not work. Is there a way to downgrade without opening the device?

2.2.7 is out and the Hostname trick does not seem to work (1st time to try out). Any different experiences?

im on 2.2.7 and it did not work. Is there a way to downgrade without opening the device?

There is no need to open it as you should still be able to access the serial console with a modified USB cable - see the readme

That’s great. I can get an FTDI adapter but can you point me to the right direction for how to get the older firmware and flash it?

That’s great. I can get an FTDI adapter but can you point me to the right direction for how to get the older firmware and flash it?

Someone has uploaded them here https://github.com/niceboygithub/AqaraCameraHubfw/tree/main/original/G2H. You could just replace the single 'camera' executable to downgrade the version (use binwalk to extract it from those files - or I can provide a copy). It depends what you want to achieve, once you have shell access you could also just run this hostname script manually.


In-Call or Hotspot Activated statusbar height

Hi @m1entus  . I'm not sure if you're still supporting this control, but I hope you are.
I'm experiencing a problem when the statusbar height changes its size for an incoming call or when the hotspot is activated pushing the views down instead of resizing them.
You can reproduce this with the simulator using cmd + Y to simulate an incoming call in the demo apps.
I'm presenting a view which uses the whole screen size, and when the statusbar changes things get shifted down instead of resizing and I have UI elements moved partially off screen.
Changing:
formSheet.presentedFormSheetSize = [UIScreen mainScreen].bounds.size;

in MZViewController.m in the demo will show what I'm talking about.
I tried resizing my viewcontroller using UIApplicationWillChangeStatusBarFrameNotification and UIApplicationDidChangeStatusBarFrameNotification but it doesn't work.

You would have to change presentedFSViewController.view frame istead of presentedFormSheetSize.

Thanks @m1entus. It's working now. I saw you implemented UIApplicationDidChangeStatusBarFrameNotification in MZFormSheetBackgroundWindow. I tried to use its didChangeStatusBarFrame delegate to change the presentedFSViewController frame in just one place but couldn't access presentedFSViewController from the delegate, so I ended up the notifications on the viewcontrollers


Replace our own JaroWinkler algorithm with jaro_winkler gem

Add the jaro_winkler gem and use it behind the StringUtil facade. Add more test data and remove StringUtil's calculation of plain Jaro distance, which we don't use.

👍


  Even just pressing the button to close it and restart it

to help - I need the project itself that you are running so that I can check it locally

Okay, I can get that to you in about 5 minutes or so. It just needs to upload

Here you go https://drive.google.com/file/d/1P8qwx9LOjKDGv0S75X88f-LimeJRtgPu/view?usp=sharing

Which version of unity are you using to test btw?

https://drive.google.com/file/d/1XlvT9Pedl5egjJTbnoFT1JsnbgyNG34P/view?usp=sharing

What exactly is this?

I put together the project that you sent and made an apk

Did you fix the issue?

no, I just put together a project
I can tell you how

Well the thing is if I wanted an apk I would have just make an apk. But what iw as looking for help on was fixing my issue

Is my apk working correctly for you?

Whether the apk works or not is irellavent. I can't put an apk in my react native project

do you want me to tell you how I build my project?
or what?

If what you did got it to work then sure

I have the same problem, and I did all the steps you listed on your latest post. The problem is slightly hard to reproduce because it doesn't happen all the time and it never happens when it's a development build from my computer. It only happens when I open the existing app from my phone, but it doesn't always happen. The unity view will say "made with unity" and show the logo, but then the view is black.
I was reading the logcat in Android Studio, and the only difference between when it does show up and when it doesn't is a line saying:
`UnityEngine.XR.Management.XRGeneralSettings:Awake()
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)`

No error is there but still the Unity app is not loading, need support for plain boilerplate code for react-native and unity.

I used MacOS and iMac for build project

No error is there but still the Unity app is not loading, need support for plain boilerplate code for react-native and unity.

Hi! For this i need a simple unity project that i could use as an example

Thanks, this drive link has both basic unity and react native code:
https://drive.google.com/drive/folders/16WXe0eldVSvavQF4cFpoWneEDGe76VE_?usp=sharing
I have tried the same unity (In 2020.3.15f1 and 2020.3.19f1) code with reactnative 0.64.1, 0.65.1 and 0.66.0

Add Example https://drive.google.com/file/d/1D3oaHstzlmIAvIqzbwfSTwlonxJev7Yh/view?usp=sharing
I used another unity project. if, according to my example, you cannot start your project - write

Thanks a lot for the example code, due to which could see reference code. This help in creating custom build and is now working on same environment.


API error: Invalid format. data.body.message.body is missing and it is required.

When calling SendException() in my middleware:
var response = await _rollbar.SendException(ex);
I get the following exception:
{
  Connection: keep-alive
  Date: Fri, 10 Mar 2017 09:44:05 GMT
  Server: nginx
  Access-Control-Allow-Origin: *
  Access-Control-Allow-Credentials: true
  X-Response-Time: 6ms
  Content-Length: 100
  Content-Type: application/json; charset=utf-8
}

The associated error in rollbar is:
API error: Invalid format. data.body.message.body is missing and it is required.
As far as I can tell my configuration looks okay, the Rollbar class appears to be properly instantiated with 6 builders and a single exception builder. I get the same error if i use services.AddRollbar(), services.AddRollbarWeb() or use your own middleware class: app.UseRollbarExceptionHandler();
SendMessage function works as expected.

I tracked the problem down to this: API error: Invalid format. data.body must have either a 'trace', 'trace_chain', 'message' or 'crash_report' property, (but not more than one).
As a temporary workaround:
public class CustomExceptionBuilder : IExceptionBuilder     {         public void Execute(Payload payload, System.Exception exception)         {             payload.Data.Body.Message = null;         }     }
then:
services.AddRollbarWeb();  services.AddSingleton<IExceptionBuilder, CustomExceptionBuilder>();

Yep, slipped through due to a known hole in our testing. Went ahead and patched that hole for 0.5.1 and will see about getting a release later today.


UI Improvements

What is the change?
I've made some improvements to UI of Bloggit app.
What does it fix/add?
Forms in the profile page and upload page will be nicer now.  Fixed UI of about page, Home page.
Screenshots (if appropriate):
Here's a gif,

What is the change?
I've made some improvements to UI of Bloggit app.
What does it fix/add?
Forms in the profile page and upload page will be nicer now. Fixed UI of about page, Home page.
Screenshots (if appropriate):
Here's a gif,

Good work @hariramjp777

What is the change?
I've made some improvements to UI of Bloggit app.
What does it fix/add?
Forms in the profile page and upload page will be nicer now. Fixed UI of about page, Home page.
Screenshots (if appropriate):
Here's a gif,

Good work @hariramjp777


HDDS-6599 Use a single property to define ozone version

What changes were proposed in this pull request?
Setting ozone.version independently makes it hard to automatic version update using 'mvn versions:set' command. This change makes 'project.version' a single source of ozone version. In addition, plugin introduced in HDDS-6304 (which tried to solve the same issue) has been removed.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-6599
How was this patch tested?
The following command ended with a success:
mvn versions:set -DnewVersion=1.4.0-SNAPSHOT -DprocessAllModules && mvn clean install
The above command fails without the proposed changed because 'versions:set' is not applied to ozone-annotation-processing module

The current model (ozone.version independent of project.version) was introduced when Ozone was part of the Hadoop codebase, as a way to allow using different version number for these two.  Currently it is not necessary and could be removed.  But it provides the flexibility to let an existing or new submodule use different version later.

command fails without the proposed changed because 'versions:set' is not applied to ozone-annotation-processing module

Thanks for pointing that out.  I think we should fix this problem by making that module part of the regular Ozone project hierarchy.

I think we should fix this problem by making that module part of the regular Ozone project hierarchy.

It wouldn't fix the problem because there is still a requirement (introduced by #3075) to make project.version equal to ozone.version which cannot be achieved by mvn versions:set

@adoroszlai as an alternative, the following changes can be done instead of affection ozone.version:

remove maven-enforcer plugin (the same change as in this PR)
change the following dependency to use project.version instead of ozone.version:

   <dependency>
      <groupId>org.apache.ozone</groupId>
      <artifactId>ozone-annotation-processing</artifactId>
      <version>${ozone.version}</version>
    </dependency>

there is still a requirement (introduced by #3075) to make project.version equal to ozone.version which cannot be achieved by mvn versions:set

#3075 only added the enforcer check to avoid version mismatch.  ozone.version always had to be updated manually during the release process.

@myskov I think we should have a discussion about this (keep or drop the ozone.version property) in the dev mailing list.  Can you please start one?

/pending discussion on dev list


Encountered a training error when using slim with multi-GPU connect by PIX type

Hi all, I encountered a training error when I training model in multi GPU.
The key condition is using slim to write model and training in multi GPU(GTX TITAN X) which connect by PIX type.
How to reproduce:

checkout office code in here

copy code in below(slim model code) and replace it to cifar10.py file. (Because only slim code can reproduce this issue)

start to training: CUDA_VISIBLE_DEVICES=1,0 python cifar10_multi_gpu_train.py --num_gpus=2

an incorrect loss will appear. (Also GPU usage is incorrect)

Note 1: Check GPU info in below. this issue only happend when I using GPU 0,1 or GPU 2,3 or GPU 4,5 or GPU 6,7(connect by PIX). In this case, everything is ok If I using other combinations
Note 2: I can't reproduce this issue in GTX 1080 ti
Thank you so much!
The training error log in below:
linux@<IP_ADDRESS>:~/models/tutorials/image/cifar10: CUDA_VISIBLE_DEVICES=1,0 python cifar10_multi_gpu_train.py --num_gpus=2
Filling queue with 20000 CIFAR images before starting to train. This will take a few minutes.
2017-11-09 18:13:02.264529: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are
available on your machine and could speed up CPU computations.
2017-11-09 18:13:06.359127: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.076
pciBusID 0000:05:00.0
Total memory: 11.92GiB
Free memory: 11.81GiB
2017-11-09 18:13:06.784690: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x5f00120 exists before initializing the StreamExecutor
. We haven't verified StreamExecutor works with that.
2017-11-09 18:13:06.786072: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 1 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.076
pciBusID 0000:04:00.0
Total memory: 11.92GiB
Free memory: 11.81GiB
2017-11-09 18:13:06.786507: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 1
2017-11-09 18:13:06.786527: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y Y
2017-11-09 18:13:06.786592: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 1:   Y Y
2017-11-09 18:13:06.786623: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:05:00.0)
2017-11-09 18:13:06.786635: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX TITAN X, pci bus id: 0000:04:00.0)
2017-11-09 18:13:06.830077: I tensorflow/core/common_runtime/simple_placer.cc:697] Ignoring device specification /device:GPU:1 for node 'tower_1/fifo_queue_Dequeue' because the input edge from 'prefetch_queue/fifo_queue' is a reference connection and already has a device field set to /device:CPU:0
2017-11-09 18:13:06.830125: I tensorflow/core/common_runtime/simple_placer.cc:697] Ignoring device specification /device:GPU:0 for node 'tower_0/fifo_queue_Dequeue' because the input edge from 'prefetch_queue/fifo_queue' is a reference connection and already has a device field set to /device:CPU:0
2017-11-09 18:13:09.804877: step 0, loss = 2.30 (119.9 examples/sec; 1.067 sec/batch)
2017-11-09 18:13:17.096214: step 10, loss = 2.30 (421.3 examples/sec; 0.304 sec/batch)
2017-11-09 18:13:23.708459: step 20, loss = 2.30 (390.0 examples/sec; 0.328 sec/batch)
2017-11-09 18:13:31.362454: step 30, loss = 2.30 (362.5 examples/sec; 0.353 sec/batch)
2017-11-09 18:13:38.225150: step 40, loss = 2.30 (363.3 examples/sec; 0.352 sec/batch)
2017-11-09 18:13:44.695175: step 50, loss = 2.30 (389.8 examples/sec; 0.328 sec/batch)
2017-11-09 18:13:51.994245: step 60, loss = 2.30 (362.5 examples/sec; 0.353 sec/batch)
2017-11-09 18:13:58.623306: step 70, loss = 2.30 (421.2 examples/sec; 0.304 sec/batch)
2017-11-09 18:14:05.480061: step 80, loss = 2.30 (390.6 examples/sec; 0.328 sec/batch)
2017-11-09 18:14:11.952376: step 90, loss = 2.30 (389.2 examples/sec; 0.329 sec/batch)
2017-11-09 18:14:18.375831: step 100, loss = 293778.34 (362.7 examples/sec; 0.353 sec/batch)
Traceback (most recent call last):
  File "cifar10_multi_gpu_train.py", line 283, in <module>
    tf.app.run()
  File "/home/zhangjiguo/.local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 48, in run
    _sys.exit(main(_sys.argv[:1] + flags_passthrough))
  File "cifar10_multi_gpu_train.py", line 278, in main
    train()
  File "cifar10_multi_gpu_train.py", line 251, in train
    assert not np.isnan(loss_value), 'Model diverged with loss = NaN'
AssertionError: Model diverged with loss = NaN

My GPU list with command nvidia-smi -L
GPU 0: GeForce GTX TITAN X (UUID: GPU-2c9601fc-369e-fce7-d139-8c7144700def)
GPU 1: GeForce GTX TITAN X (UUID: GPU-eb4d8327-7058-39fe-e510-3437fe258745)
GPU 2: GeForce GTX TITAN X (UUID: GPU-62fbacf7-0120-5c6b-ceea-ad026fddc537)
GPU 3: GeForce GTX TITAN X (UUID: GPU-15be755d-9982-f4f4-4455-1d648d836b6e)
GPU 4: GeForce GTX TITAN X (UUID: GPU-e48fae89-debd-9769-3851-61ba44acd6e1)
GPU 5: GeForce GTX TITAN X (UUID: GPU-f796ad02-e104-04b5-d6c1-ff72d872654f)
GPU 6: GeForce GTX TITAN X (UUID: GPU-7e27fd1e-ba3b-2dd3-6d03-960b8c76a0be)
GPU 7: GeForce GTX TITAN X (UUID: GPU-8de522e7-f375-ab05-28ff-5ddfd9e325b0)

and GPU connection info with command nvidia-smi topo -m
       	GPU0   	GPU1   	GPU2   	GPU3   	GPU4   	GPU5   	GPU6   	GPU7   	mlx4_0 	CPU Affinity
GPU0   	 X     	PIX    	PHB    	PHB    	SOC    	SOC    	SOC    	SOC    	SOC    	0-13,28-41
GPU1   	PIX    	 X     	PHB    	PHB    	SOC    	SOC    	SOC    	SOC    	SOC    	0-13,28-41
GPU2   	PHB    	PHB    	 X     	PIX    	SOC    	SOC    	SOC    	SOC    	SOC    	0-13,28-41
GPU3   	PHB    	PHB    	PIX    	 X     	SOC    	SOC    	SOC    	SOC    	SOC    	0-13,28-41
GPU4   	SOC    	SOC    	SOC    	SOC    	 X     	PIX    	PHB    	PHB    	PHB    	14-27,42-55
GPU5   	SOC    	SOC    	SOC    	SOC    	PIX    	 X     	PHB    	PHB    	PHB    	14-27,42-55
GPU6   	SOC    	SOC    	SOC    	SOC    	PHB    	PHB    	 X     	PIX    	PHB    	14-27,42-55
GPU7   	SOC    	SOC    	SOC    	SOC    	PHB    	PHB    	PIX    	 X     	PHB    	14-27,42-55
mlx4_0 	SOC    	SOC    	SOC    	SOC    	PHB    	PHB    	PHB    	PHB    	 X

Legend:

  X   = Self
  SOC  = Connection traversing PCIe as well as the SMP link between CPU sockets(e.g. QPI)
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe switches (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing a single PCIe switch
  NV#  = Connection traversing a bonded set of # NVLinks

slim model code: (Please replace these code to cifar10.py)
def inference(images):
	# reimplement by slim
    slim = tf.contrib.slim
    conv1 = slim.conv2d(images, 64, [5, 5], scope='conv1',
                       weights_regularizer=slim.l2_regularizer(0.0),
                       weights_initializer=tf.truncated_normal_initializer(stddev=0.1),
                       activation_fn=tf.nn.relu)
    pool1 = slim.max_pool2d(conv1, [3, 3], 2, padding='SAME', scope='poll1')
    norm1 = tf.nn.lrn(pool1, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm1')
    conv2 = slim.conv2d(norm1, 64, [5, 5], scope='conv2',
                       weights_regularizer=slim.l2_regularizer(0.0),
                       weights_initializer=tf.truncated_normal_initializer(stddev=5e-2),
                       biases_initializer=tf.constant_initializer(0.1),
                       activation_fn=tf.nn.relu)
    norm2 = tf.nn.lrn(conv2, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75, name='norm2')
    pool2 = slim.max_pool2d(norm2, [3, 3], 2, padding='SAME', scope='poll2')
    flatten2 = slim.flatten(pool2)
    local3 = slim.fully_connected(flatten2, 384, scope='local3',
                       weights_regularizer=slim.l2_regularizer(0.004),
                       weights_initializer=tf.truncated_normal_initializer(stddev=0.04),
                       biases_initializer=tf.constant_initializer(0.1),
                       activation_fn=tf.nn.relu)
    local4 = slim.fully_connected(local3, 192, scope='local4',
                       weights_regularizer=slim.l2_regularizer(0.004),
                       weights_initializer=tf.truncated_normal_initializer(stddev=0.04),
                       biases_initializer=tf.constant_initializer(0.1),
                       activation_fn=tf.nn.relu)
    softmax_linear = slim.fully_connected(local4, NUM_CLASSES, scope='softmax_linear',
                       weights_regularizer=slim.l2_regularizer(0.0),
                       weights_initializer=tf.truncated_normal_initializer(stddev=1/192.0),
                       biases_initializer=tf.constant_initializer(0.0),
                       activation_fn=None)
    return softmax_linear

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): no
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):CentOS Linux release 7.2.1511
TensorFlow installed from (source or binary):source
TensorFlow version (use command below):Tensorflow 1.2.0/ 1.0.1
Python version: 2.7
Bazel version (if compiling from source): 1.4.5
GCC/Compiler version (if compiling from source):4.8.5
CUDA/cuDNN version:CUDA 8.0 and cuDNN 5.0
GPU model and memory:TITAN X with 12GB
Exact command to reproduce:

This might be related to the customized model you defined, as the loss going to nan caused this training error. We can't debug or reproduce this since it seems it's hardware specific. Please debug further yourself and let us know if there is a bug on tensorflow side.

Hi there, can you open this. I'm facing the exact same issue with the thread owner, with GTX 1080ti


[Storage Blob]Some Implementations in track1 doesn't exist in track2, or have a different implementation

Sample URL: https://github.com/Azure-Samples/storage-blob-dotnet-getting-started
Some Implementations in track1 doesn't exist in track2 in this sample, Details in the following table.

Service
Implementation   with Track1
Implementation   with Track2

Storage blob
Line#130~131 Link    // Create a buffer manager for the Blob   service client. The buffer manager enables the Blob service client to     // re-use an existing buffer across   multiple operations.               blobClient.BufferManager = new   WCFBufferManagerAdapter(                 BufferManager.CreateBufferManager(32 * 1024, 256 * 1024), 256 * 1024);
No method.

Storage blob
Line#502~504  Link    Console.WriteLine("Base URI: {0}",   blobClient.BaseUri);     Console.WriteLine("Primary URI:   {0}", blobClient.StorageUri.PrimaryUri);     Console.WriteLine("Secondary URI:   {0}", blobClient.StorageUri.SecondaryUri);
No method to get   PrimaryUri and  SecondaryUri   Only:   blobServiceClient.Uri

Storage blob
Line#876~912  Link   // Generate an ad-hoc SAS URI for the   container with write and list permissions.               string adHocContainerSAS =   GetContainerSasUri(container);
No method

Storage blob
Line#388~394   Link  // List containers   beginning with the specified prefix, returning segments of 5 results each.     // Note that passing in null for the   maxResults parameter returns the maximum number of results (up to 5000).    // Requesting the container's metadata as   part of the listing operation populates the metadata,     // so it's not necessary to call   FetchAttributes() to read the metadata.                       resultSegment = await   blobClient.ListContainersSegmentedAsync(                       prefix,   ContainerListingDetails.Metadata, 5, continuationToken, null, null);
No method, only   list container.

Storage blob
Line#469~482   Link    ///Lists blobs beginning with the specified   prefix, which must include the container name.     // The prefix is required when listing   blobs from the service client. The prefix must include     // the container name.                       resultSegment = await   blobClient.ListBlobsSegmentedAsync(prefix, continuationToken);                       foreach (var blob in   resultSegment.Results)                       {                             Console.WriteLine("\tBlob:" + blob.Uri);                       }
No method, only   list blob.

Storage blob
Line#1071~1076  Link  // If the blob is   a snapshot, write out snapshot properties.               if (blob.IsSnapshot)               {                   Console.WriteLine("\t   SnapshotTime: {0}", blob.SnapshotTime);                   Console.WriteLine("\t   SnapshotQualifiedUri: {0}", blob.SnapshotQualifiedUri);               }
No method about Snapshot

Storage blob
Line#1091  Link   Console.WriteLine("\t   ContentMD5: {0}", blob.Properties.ContentMD5);
No method to get ContentMD5

Storage blob
Line#1450~1451 Link   // Construct the   virtual directory name, which becomes part of the blob name.                       virtualDirName +=   string.Format("level{0}{1}", i,   blobServiceClient.DefaultDelimiter);
No method to get DefaultDelimiter

@jongio @tg-msft

Thanks for the help migrating!

For buffer management, Track 2 uses ArrayBool<byte>.Shared.  I don't see us making that configurable until we find a customer scenario that requires it.
There's unfortunately not a great way to reliably get Primary/Secondary URIs in the case of vanity domains.  We make customers set it themselves via BlobClientOptions.GeoRedundantSecondaryUri .  We could maybe file a bug to add some "best guess" methods to BlobUriBuilder, but the best workaround for now would be something like:Uri primary = new Uri("https://myacctname.blob.core.windows.net/");
BlobUriBuilder builder = new BlobUriBuilder(primary);
builder.Host = builder.Host.Insert(builder.Host.IndexOf('.'), "-secondary");
Uri secondary = builder.ToUri();

Getting a container SAS is supported by BlobSasBuilder today.  Just set the BlobContainerName property and proceed as normal.BlobSasBuilder sasBuilder = new BlobSasBuilder();
sasBuilder.BlobContainerName = "mycontainer";
sasBuilder.SetPermissions(BlobContainerSasPermissions.List | BlobContainerSasPermissions.Write);
sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
BlobUriBuilder uriBuilder = new BlobUriBuilder(blobUri);
uriBuilder.Sas = sasBuilder.ToSasQueryParameters(sharedKey);
Uri sasUri = uriBuilder.ToUri();

In the next couple of months we're hoping to add convenience APIs that should make this a little easier like:var builder = containerClient.GetSasBuilder(
    permissions: BlobContainerSasPermissions.List | BlobContainerSasPermissions.Write,
    expiresOn: DateTimeOffset.UtcNow.AddHours(1));
// Set any other SAS options...
var sasUri = containerClient.GenerateSasUri(builder);

List containers beginning with the specified prefix 5 at a time and fetch metadata too:BlobServiceClient serviceClient = ...;
IAsyncEnumerable<Page<BlobContainerItem>> pages =
    serviceClient
    .GetBlobContainersAsync(
        traits: BlobContainerTraits.Metadata,
        prefix: "images-")
    .AsPages(pageSizeHint: 5);
await foreach (Page<BlobContainerItem> page in pages)
{
    foreach (BlobContainerItem container in page.Values)
    {
        Console.WriteLine(container.Name);
        foreach (KeyValuePair<string, string> pair in container.Properties.Metadata)
        {
            Console.WriteLine($"    {pair.Key}: {pair.Value}");
        }
    }
}

Listing blobs by prefix works just like the above sample code
We don't have explicit methods for testing if something's a snapshot.  We also treat snapshots as opaque strings on advice from the Arch Board.  Please note there's also BlobBaseClient.WithSnapshot(string snapshot) to turn any random client into one pointing at a snapshot.  The best way to check if something's a snapshot today is:BlobClient blob = null;
BlobUriBuilder builder = new BlobUriBuilder(blob.Uri);
if (builder.Snapshot != null)
{
    Console.WriteLine($"Snapshot: {builder.Snapshot}");
}

We're future proofing hashing to support multiple algorithms so it's currently:BlobDownloadInfo download = ...;
// Someday: Console.WriteLine($"Algorithm: {download.ContentHashAlgorithm}");
Console.WriteLine($"Hash: {download.ContentHash}"); // Just MD5 today

There's no DefaultDelimiter for virtual directories because they're a synthetic concept and we're not adding those to Track 2.  You can just use the Track 1 constant value directly in the sample code.

I didn't compile or run any of these code samples so they might be a little off, but ping me if you run into more trouble.

Thank you for your help. Now I know how to check if something's a snapshot, but is there a method to get SnapshotTime or SnapshotQualifiedUri in track2?

It's just using BlobUriBuilder.Snapshot.  Here's equivalent example code:
BlobClient blob = ...;
BlobUriBuilder builder = new BlobUriBuilder(blob.Uri);
if (builder.Snapshot != null)
{
    Console.WriteLine($"Snapshot Time: {builder.Snapshot}");
    Console.WriteLine($"Snapshot URI: {blob.Uri}");
}

Thank you for your help. Is there a method to get blob StreamWriteSizeInBytes in track2?
The follow code is track1.

I'm not super familiar with that property, but according to the docs the closest thing we have is StorageTransferOptions.MaximumTransferSize and it's only an option that you pass into Upload yourself.
We don't have a notion of virtual directories in Track 2 because that's a synthetic concept.  You can check if an item is a prefix though.  Here's sample code to recursively enumerate everything in a container starting with a given prefix and return only the "directories":
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

namespace ConsoleApp46
{
    public static class Program
    {
        private const string ConnectionString = "...";

        public static async Task Main()
        {
            BlobContainerClient container = new BlobContainerClient(ConnectionString, "clouddrive");
            await container.CreateIfNotExistsAsync();
            Func<string, Task> CreateVirtualFile = async path =>
                await container.GetBlobClient(path).UploadAsync(
                    new MemoryStream(Encoding.UTF8.GetBytes("Hello, world")),
                    overwrite: true);
            await CreateVirtualFile("toplevel.txt");
            await CreateVirtualFile("/foo/bar/baz/qux.txt");
            await CreateVirtualFile("/foo/bar/baz/quux.txt");
            await CreateVirtualFile("/azure/storage/blobs/demo.txt");
            await CreateVirtualFile("/azure/storage/queues/demo.txt");
            await CreateVirtualFile("/azure/storage/files/demo.txt");
            await CreateVirtualFile("/azure/storage/datalake/demo.txt");

            Console.WriteLine("Storage folders:");
            await foreach (string folder in GetVirtualFoldersAsync(container, "/azure/storage/"))
            {
                Console.WriteLine($"    {folder}");
            }

            Console.WriteLine("\nAll folders:");
            await foreach (string folder in GetVirtualFoldersAsync(container))
            {
                Console.WriteLine($"    {folder}");
            }

        }

        public static async IAsyncEnumerable<string> GetVirtualFoldersAsync(BlobContainerClient container, string root = "/")
        {
            Queue<string> remainingFolders = new Queue<string>();
            remainingFolders.Enqueue(root);
            while (remainingFolders.Count > 0)
            {
                string path = remainingFolders.Dequeue();
                await foreach (BlobHierarchyItem blob in container.GetBlobsByHierarchyAsync(prefix: path, delimiter: "/"))
                {
                    if (blob.IsPrefix)
                    {
                        yield return blob.Prefix;
                        remainingFolders.Enqueue(blob.Prefix);
                    }
                }
            }
        }
    }
}

Thank you for you help. As follow now I can't find methos to manage contaner lease,  is there a method to do it?

If you add the .Specialized namespace, you'll find a GetBlobLeaseClient extension method on containers and blobs which provides all the lease operations.


Error uploading image

Animated WebP is not supported
latest docker build

Is there an error message in your log?

Should be fixed now. Docker image v0.5.4 is building as I type this

Alright, second attempt. Should be fixed by 70a3da1, but I can't be sure until you test it out. The fix is in the latest docker build bdbenim/stash-empornium:0.5.6

Resolved in #37


CDN support

In a nutshell, if you run with an env-variable STATIC_URL, this will assume you have your already built assets hosted at that location.
What this means is that we're using S3 to store uploaded files, but we're using the CDN to serve the (already built) static assets.
If you don't supply a STATIC_URL it is assumed that if you run with USE_S3 that the assets will also be found in that bucket.

For me it seems to correct.
@madewulf Can you take a second looks to be sure?
From my understanding this is the configuration we are using for WFP so it's already working there.


Downgrade lifecycle-viewmodel.

2.3.0-beta1 version is causing assembleRelease error:
Could not determine the dependencies of task ':samplejava:lintVitalRelease'.

Could not resolve all artifacts for configuration ':samplejava:debugAndroidTestCompileClasspath'.
Could not find androidx.lifecycle:lifecycle-viewmodel:2.3.0-beta1.
Required by:
project :samplejava

The correct artifact version is 2.3.0-beta01 for the latest beta, see https://maven.google.com/web/index.html#androidx.lifecycle:lifecycle-viewmodel:2.3.0-beta01`


Add unified integretion test for registry module

Purpose of the pull request
Add base integration test for registry module, used to make sure all registry plugins are implemented correctly.
Brief change log

Add dolphinscheduler-registry-it
Implement with zookeeper/etcd
Unify the reentrant lock logic.
Turn off some log in maven build

Verify this pull request
Verify by IT.

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

Project coverage is 39.67%.  Consider uploading reports for the commit 5f6a635 to get more accurate results

Files
Patch %
Lines

...inscheduler/plugin/registry/etcd/EtcdRegistry.java
0.00%
24 Missing :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##                dev   #15981      +/-   ##
============================================
- Coverage     39.94%   39.67%   -0.27%
+ Complexity     5081     5024      -57
============================================
  Files          1369     1366       -3
  Lines         45643    45486     -157
  Branches       4869     4859      -10
============================================
- Hits          18232    18047     -185
- Misses        25513    25565      +52
+ Partials       1898     1874      -24

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix issue with isBehavior return true for arrays

Purpose
Browsers are introducing an at function on arrays, which makes the isBehavior function return true for arrays.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
Changes

isBehavior now also checks for a "pull" property.

What about only checking for pushB instead of both at and pull? pushB seems like a name that is fairly unlikely to collide with anything.

What about only checking for pushB instead of both at and pull? pushB seems like a name that is fairly unlikely to collide with anything.

That sounds more reasonable, but it seems to give some issues
this future for example https://github.com/funkia/hareactive/blob/master/src/future.ts#L242

Confirmed that this fixes the issue for all the browsers it was bugging on for me before


feat(ui): implemented mako templates and enabled render as HTML.

Issue link
Relates: #1
Changes in this PR

added deps of Mako with poetry add mako
added base logic to render mako templates for client as HTML response

Changes not included in this PR
Finalize templates

Confirmed rendered templates would be shown as HTML responses with browser.
Note that we have to use HTMLResponse since FastAPI would be return context-type application/json by default.

Enabled staticfiles with FastAPI:


Default Timeline setting

Currently Home Timeline is always default. One of users wanted to set Everything Timeline as default.
Please note though that reloading Everything (same as Public)  Timeline doesn't take into account already loaded messages: it always requests the same number of latest messages from a Public timeline (aassuming that loading the whole timeline may be too much...). This is not a case for small instances, so maybe "Load full Public timeline" setting should be added to the Microblogging system Editor?!

Maybe a setting for how many messages to load at a time (e.g., 10/20/50/100/All) would cover "full public timeline" and behavior on other time lines as well. Or did I miss a setting for that?
(I have a problem with how many messages are loaded that I'll never read - but that would be another issue.)

The default timeline could be Public without loading new queets every time it opens (I don't know if you understand me, I'm not so good at English, sorry)

I think it's perfect as it is right now, the settings menu it's very complete and it could confuse some people, maybe should be better to keep it simple and include only other options.

But I think that the main topic of this open code social networks is the public conection betwen people so... (my opinion)

Maybe #237 could be a good solution, but I don't know if android allows it.

It could be a good idea, I think.

v.20.0. Published to the Open Beta testing channel, please opt in here: https://play.google.com/apps/testing/org.andstatus.app at test it!


Understanding custom launcher scripts for HPC hosts

Hi there,
Originally I started a request for more documentation related to the process of registering a compute center with visit https://github.com/visit-dav/visit/issues/17098 and I have learned plenty in the process.
This issue is more about needing to understand custom launchers to navigate the security measures in place on my HPC. In the previous issue I posted a small diagram of the structure of the system https://github.com/visit-dav/visit/issues/17098#issuecomment-961308209 but the basic idea is this. A user first must log into a gateway host, and then issue two commands shell and then a cluster name. At this point the user will then be able to provide a slurm allocation command to launch an HPC session.
I figure the two commands that need to be provided before the allocation are things that can be specified in a custom launcher, but exactly how to set up a custom launcher that does this is a little opaque to me still. I know that other examples of these files are in the https://github.com/visit-dav/visit/tree/develop/src/resources/hosts folders under each compute center, but these files span a number of years and a great variety of systems so I haven't found a good example to follow yet.
Can anyone help me and folks who are in my shoes down the road to better understand how custom launchers are made? Thanks so much for this assistance.

@DevinBayly... before I get deeply into this...to what extent do you anticipate passwordless ssh can or will play a role in enabling your users to make these connections?
Reason I ask is that we had a similar set up here at LLNL...a gateway machine (which permitted only a handful of shell commands) from which users would then access various central compute resources. Passwordless ssh from the gateway to various compute resources combined with ssh-tunneling (aka port-forwarding) allowed a user running the VisIt client (viewer and GUI) to connect to a VisIt engine (via authentication through the gateway) running on a gateway-accessible-only compute resource.

Hi there, I'm willing to bet it would be a useful thing to include. The users at my institution who are anticipating this the most highly are interested in having "fewer steps" all around; if they also don't have to type their password in to a prompt each time they start a visit session on our HPC that would be a positive thing.
This does sound similar so I'm excited to know that a strategy implemented for LLNL may be reusable for us at the University of Arizona. Would you tell me more about what kinds of manually entered commands were no longer needed in this case? That will help me understand whether our positions are in fact the same.
If you don't mind, would you still be able to expand upon how folks get comfortable using custom launcher scripts for their hosts? I'm hopeful that your suggestion above will suit us, but I feel like this is a feature added that will help me tackle any issues that remain after setting up the passwordless gateway.


Gets trace IDs from MDC

Currently, we're extracting the trace IDs from the request headers.
This has several shortcomings, such as the trace IDs not being in sync
when Brave generates new ones.
The MDC should be the single source of truth for getting trace IDs.
It is already being populated by Spring Cloud Sleuth and we should
reuse that mechanism.
Because header extraction is already being performed by Spring Cloud
Sleuth, all this logic is eliminated from this project.
This leaves us unable to get trace IDs from requests within certain
GCP infrastructure that uses the "x-cloud-trace-context" header.
Because adding a new extractor to the zipkin propagation isn't trivial,
this work will need to be done on a separate PR.
Some documentation repairs also done, including eliminating repeated
logging module's README.

Is Travis failure related to your changes somehow?

@joaoandremartins Before I get too deep into this, is Logging correlation by trace ids still working even if  Cloud Trace / Sleuth are not used?

Logging correlation does not work well as it is.
That being said, it won't work without Sleuth, because Sleuth or Brave is the one extracting and writing the trace ID to the MDC. For that matter, neither does the JSON one currently, since it's getting the trace ID from the MDC as well.
I'm also not sure if non-Sleuth environments are actually something we should be worrying about on this Spring Cloud GCP repo.

Not removing the current logging module for now.
#714 was merged, so this can be closed.


Providing some of social icons

Hello , I'm GSSOC'22 contributor
Issue Type:
I would like to add some social icons in index.html file. Can I work on this issue.

index.html of?

@ruchichaurasia24


The path rewriter is missing paths

We use wsrun in our monorepo to run the typescript compiler in watch mode.
While setting up the vscode default build task and the problem matcher, I've tried to let wsrun rewrite tsc output paths. That fails currently.
package
 | src/index.tsx(33,5): error TS2304: Cannot find name 'adsf'.

Would it be an option to give wsrun a pattern which should be checked?

Just for the reference: I've found out that with pretty output enabled in tsconfig.json the path rewriting does work.
So I've managed to create a problem matcher which listens to all errors in all tsc processes in the whole monorepo.


Docs for one catalog CR

Adding 2 pages with guides (onbaording & adding platform services) ->checked with @chewbeccy
general info about marketplace -> checked with @chewbeccy
Rename meshMarketplace to OSB Services and change structure of docs around old marketplace

closed cleaned content merged on dev already


Node Version

Hi i can't run this on node v8.5.0. Can you kindly provide which version that you used?

@lanbau Yes, It does support node v8.5.0.


Add "people dancing" emoji

"People dancing" is a possible alt tag; this adds an emoji for that. See below for an example:

Thanks for the addition! But any idea why the change is making github's syntax checker freak out? Notice the red text after the addition:

Because I bring shame to my house by missing my closing quotes haha. Fixed.

Haha, no problem. Thanks!


Remove warnings

After we updated to Material UI v4, there's some warnings that needs to be fixed. Please check on the console to know more.

It's seems solved now with #18


Add functionality to convert a forecast to a climatological anomaly

As an IMPROVER scientist wishing to develop SAMOS functionality in IMPROVER, I need a utility function to allow me to convert an input cube of data to a cube containing anomaly data.
This function should take as inputs:

a cube containing diagnostic data to be converted to anomalies (e.g screen temperature data)
a cube containing a mean average of that diagnostic (e.g mean screen temperature over a period)
(optional) a cube containing a variance of that diagnostic (e.g screen temperature variance over a period)

the following calculation should then be performed:
if variance input present:
standardised_anomaly = (data - mean) / sqrt(variance)
else:
anomaly = data - mean
Acceptance criteria

[ ] Plugin added to IMPROVER for creating a cube of climatological anomalies.
[ ] Unit tests demonstrating the proper functioning of the new plugin

This functionality might neatly fit in improver/utilities/mathematical_operations.py.

@maxwhitemet and I discussed this ticket this morning to come up with an implementation plan. We expect that the new functionality will look something like as follows:
class calculate_climate_anomalies
  def init
  	# initialisation
  def verify_inputs
  	# confirm that input data makes sense
        # this could involve checking that the input data shapes are compatible,
        # and that the time bounds of the mean and variance cubes contain the time of the data cube
  def create_output_cube
  	# setup correct metadata
  def calculate_anomalies
  	# do the calculation here
  def process
        # call the previously defined functions
  output


Add configuration options for third-party formatters

Closes https://github.com/Shopify/ruby-lsp/issues/1775
To properly support additional formatters, we need to change how formatters are selected when using VS Code.
Currently we use an enum with fixed set of choices. We could change this to a text field, but that result in a poorer user experience.
Another option is to add the additional formatters to the enum list.
Although we generally try keep ruby-lsp itself unaware of specific addons, in this case it seems a worthwhile trade-off.
With the new choices being added, there is some additional information we want to show the user. There are two ways we could do this:
Using enumDescriptions:

Using enumLabels:

I'm not sure about maintaining this list while we don't have any control on the community addons. For example, ruby-lsp-rubyfmt is likely not working with the recent Ruby LSP releases as it doesn't use the latest addon interface. Can we instead ask users to choose auto and focus on letting the server pick the right formatter?

Yeah, I'm good with that 👍