cmd/vendor/github.com/google/pprof/internal/driver: TestHttpsInsecure fails

What version of Go are you using (go version)?
go version devel +bb98331 Mon Nov 6 01:35:58 2017 +0000 windows/386
What operating system and processor architecture are you using (go env)?
Windows XP 32 bit
set GOARCH=386
set GOBIN=
set GOCACHE=go-build
set GOEXE=.exe
set GOHOSTARCH=386
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Documents and Settings\aa\dev\
set GORACE=
set GOROOT=C:\Documents and Settings\aa\dev\go
set GOTMPDIR=
set GOTOOLDIR=C:\Documents and Settings\aa\dev\go\pkg\tool\windows_386
set GCCGO=gccgo
set GO386=sse2
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m32 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\DOCUME~1\aa\LOCALS~1\Temp\go-build119289778=/tmp/go-build -gno-record-gcc-switches

What did you do?
I run
go test -short -v -run=TestHttpsInsecure cmd/vendor/github.com/google/pprof/internal/driver

command
What did you expect to see?
PASS

What did you see instead?
=== RUN   TestHttpsInsecure
--- FAIL: TestHttpsInsecure (15.11s)
        fetch_test.go:420: fetchProfiles(https+insecure://<IP_ADDRESS>:2343/debug/pprof/profile) got non-symbolized profile: len(p.Function)==0
FAIL
exit status 1
FAIL    cmd/vendor/github.com/google/pprof/internal/driver      15.261s

Alex

It had the same issue on plan9, and it's now skipped on plan9 (see https://github.com/google/pprof/blob/79c4198ef7bd1069f8f56501fc05f0f1d2c33d8a/internal/driver/fetch_test.go#L426). We could add XP detection and Skip there, too.
That said, I was surprised to learn that we still support Windows XP (we don't even have a builder for it: #10267; breakage seems inevitable). @alexbrainman Out of curiosity, is there any plan to phase off XP support?

It had the same issue on plan9, and it's now skipped on plan9

I did not have a chance to investigate this yet. Do you know what is broken?

@alexbrainman Out of curiosity, is there any plan to phase off XP support?

I do not run Windows XP any more. But once in a while I turn my old computer on only to discover that Go still works on it (including running all.bat). So there is very little "maintenance" on my part. We can declare Windows XP as not supported, but what are we to gain from that?
Alex

Do you know what is broken?

AFAIK CPU profiling just doesn't work on a few system/kernels, so returned profiles are empty and the test fails. We have #13841 for this, but Windows is not mentioned here. I don't know if the root cause is the same as the one mentioned there.

We can declare Windows XP as not supported, but what are we to gain from that?

That we won't have to debug and fix issues like this one any more : ) Jokes asides, I have nothing against Go still officially supporting Windows XP, I don't see many XP-related bugs filed here so it's not like XP support requires a significant amount of work.

AFAIK CPU profiling just doesn't work on a few system/kernels, so returned profiles are empty and the test fails. We have #13841 for this, but Windows is not mentioned here. I don't know if the root cause is the same as the one mentioned there.

Thanks for the info. I will have a look when I get around to it.
Alex

I actually worked on the Windows XP builder recently. I don't have it online yet, though.

FYI. This is how this failure looks now (go version devel +840fad1 Fri Dec 8 21:34:24 2017 +0000 windows/386):
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto692695659
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output515286222
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto843567573
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output224173872
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto773020367
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output041979362
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto888498649
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output023426916
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto067212659
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output396533302
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto919268381
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output361080024
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto110886999
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output019404234
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto066471073
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output958677900
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto160214395
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output065365662
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto594469733
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output820835200
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto448383199
Hide expression matched no samples
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output835759794
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto551871593
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output975475892
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto600751235
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output587553286
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto942780333
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output181980456
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto873942631
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output538548890
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto919414065
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output503070940
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto785010315
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output731650158
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto131466485
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output681117648
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto979284207
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output725014402
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto779629817
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output851461636
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto489463187
Ignoring local file \path\to\buildid-contention: build-id mismatch (buildid-contention != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output788932566
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto066206013
Ignoring local file \path\to\buildid-contention: build-id mismatch (buildid-contention != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output141312888
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto417937527
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output033166186
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto493068225
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output769530924
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto407154587
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output228292670
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto386990213
TagHide expression matched no samples
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output832611872
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto617105663
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output352665170
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto890350985
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output870522708
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto822884515
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output380400550
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto059814093
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output264667080
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto808290439
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output885106746
TagShow expression matched no samples
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto998080081
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
TagShow expression matched no samples
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output759434108
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto211531435
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output251788814
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto794351125
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
tagfocus:Interpreted '1mb:2gb' as range, not regexp
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output961803888
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto865960719
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef)
tagfocus:Interpreted '30kb:' as range, not regexp
tagignore:Interpreted '1mb:2mb' as range, not regexp
TagHide expression matched no samples
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output154357538
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto295762969
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output373042852
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto399778227
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output943696246
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto697677917
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output234969624
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_proto054917783
Ignoring local file \path\to\buildid: build-id mismatch (buildid != abcdef) tagfocus:Interpreted '400kb:' as range, not regexp
Generating report in C:\DOCUME~1\aa\LOCALS~1\Temp\profile_output161258762
Local symbolization failed for cppbench_server_main: CreateFile cppbench_server_main: The system cannot find the file specified.
Local symbolization failed for libpthread-2.15.so: CreateFile /libpthread-2.15.so: The system cannot find the file specified.
Some binary filenames not available. Symbolization may be incomplete.
Try setting PPROF_BINARY_PATH to the search path for local binaries.
Local symbolization failed for cppbench_server_main: CreateFile cppbench_server_main: The system cannot find the file specified.
Local symbolization failed for libpthread-2.15.so: CreateFile /libpthread-2.15.so: The system cannot find the file specified.
Some binary filenames not available. Symbolization may be incomplete.
Try setting PPROF_BINARY_PATH to the search path for local binaries.
Local symbolization failed for cppbench_server_main: CreateFile cppbench_server_main: The system cannot find the file specified.
Local symbolization failed for libpthread-2.15.so: CreateFile /libpthread-2.15.so: The system cannot find the file specified.
Some binary filenames not available. Symbolization may be incomplete.
Try setting PPROF_BINARY_PATH to the search path for local binaries.
--- FAIL: TestHttpsInsecure (15.13s)
        fetch_test.go:442: fetchProfiles(https+insecure://<IP_ADDRESS>:4847/debug/p
prof/profile) got non-symbolized profile: len(p.Function)==0
FAIL
FAIL    cmd/vendor/github.com/google/pprof/internal/driver      18.024s

Alex

The linux-arm-arm5spacemonkey builder also fails in the same way with this pprof failure:
https://build.golang.org/log/a73a8e17687b9a1bc3d429223d883e837a73f32a

That's the same failure (with the same error message) reported in the first message... what am I missing? The part above the --- FAIL: line is verbose output from previous tests.


Poll state Refactor

I mainly did this to keep myself sane by making the poll-state node match the same format as the current-state node. Feel free to reject this if you don't want to go this route.
Currently, poll-state node msg.payload is an object and not just the state of the node like current-state. I moved msg.payload to msg.data like current-state and made msg.payload the actually state.
Also fixed the status of the node to reflect the state and not the object that was msg.payload.
This is a breaking change like the current-state refactor, #20, was.

I will test this as well! Thanks for your work!


[Functionality] Admin is able to open "Додати партнера" modal window via click on the button "Створити партнера".

Login as admin.
Open page "Admin/Партнери".

Steps to reproduce

Click on the red button "Створити партнера" in the upper right corner.
Add 5 symbols to the "Назва" field.
Add picture to the "Лого" field.
Click on the buttom "Зберігти"

Expected result

The modal window "Додати партнера" opened.
In the table on the page a partner with the entered values appears

User Story #1491

Add the epic, the block, and the page where it should be checked at the beginning in the [].
And a label with the type of the TC (functional or UI).


0.95.3 build faillure w/ Carthage

Trying to build 95.3 with Carthage fails with the following error (95.2 works).
Repro Repo https://github.com/GregIngelmo/test_realm953_carthage
git clone https://github.com/GregIngelmo/test_realm953_carthage

OS X:
ProductName:    Mac OS X
ProductVersion: 10.11
BuildVersion:   15A284

Cathag:
0.8.0

Xcode:
Xcode 7.0.1
Build version 7A1001
Apple Swift version 2.0 (swiftlang-700.0.59 clang-700.0.72)
Target: x86_64-apple-darwin15.0.0

Works:
> git checkout realm-cocoa-95-2
> ./test_carthage_build.sh

Fails:
> git checkout realm-cocoa-95-3
> ./test_carthage_build.sh

*** Downloading realm-cocoa at "v0.95.3"
Failed to write to /Users/greg/test_realm953_carthage/Carthage/Build/iOS/Realm.framework: Error Domain=NSCocoaErrorDomain Code=516 "“strip-frameworks.sh” couldn’t be copied to “Realm.framework” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/private/var/folders/bp/mdmhbyj1723_z5jvwnf6p_fw0000gn/T/carthage-archive.QKH7Dg/Carthage/Build/iOS/Realm.framework/strip-frameworks.sh, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Users/greg/test_realm953_carthage/Carthage/Build/iOS/Realm.framework/strip-frameworks.sh, NSFilePath=/private/var/folders/bp/mdmhbyj1723_z5jvwnf6p_fw0000gn/T/carthage-archive.QKH7Dg/Carthage/Build/iOS/Realm.framework/strip-frameworks.sh, NSUnderlyingError=0x7fcc0862a010 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
```sh

@GregIngelmo Carthage 0.9.2 or 0.9.3 will fix this issue. Please update your Carthage to the latest version. Carthage 0.9.2 and 0.9.3 cannot be installed via Homebrew.  So you build Carthage from source or download and run the Carthage.pkg from latest release https://github.com/Carthage/Carthage/releases

Thx, I'll upgrade asap

Fixed, thank you @kishikawakatsumi


[NF] GUI Live Preview of Geometry

Hello to everyone,
it would be nice to have a live preview of the geometry inputs within the GUI.
As a first step, this would require to have meaningful default parameter for everything.
The question is, how to do that.
Of course the class definions should be updated therefore, but that may not be sufficient. If for instance the default lamination diameters are changed in a way, that the default slot pitch is exceeded by the slot width, the slot preview will be invalid.
So either there has to be an error/warning (since the user can also input invalid slot parameter by accident) or the default parameter have to be corrected within the GUI corresponding to the previous user inputs, which seems to be a difficult task.
The next step then, would be to use matplotlib to plot the geometry instead of the images.
Best regards,
Sebastian

For this topic I suggest to start with the slots (then the holes).
My idea would be to take advantage of the step by step design of the machine by supposing that the lamination dimensions are set. If we create a complete default machine we would set default lamination dimensions and then default slot dimensions.
For the slot default parameter, my idea would be to add a new method to the slot "set_default" that would compute (and set) the default value for each slot type. These values would be computed according to Rint and Rext of the lamination and Zs (if provided otherwise we just set a default Zs as well). Basically we would create a default slot and scale it according to the current lamination dimension.
In the GUI would would just need to call the set_default when changing the slot type (if there is no previous slot of this type).
For the matplotlib display, it can be interesting to find a way to display the schematics on the current slot (to avoid to have the schematics and the current slot in two different widget). For clarity we can imagine that the current selected widget is highlighted in the display (name in red ? remove all other parameter name ?)
Best regards,
Pierre


merge: stage to master

merge: stage to master

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


Navbar and Carousel

Navbar and Carousel done :+1:

@Vaibhav015 Please resolve the conflicts and update the PR. Thanks.

I have resolved the conflict @coderwassananmol Please take a look :+1:


Collection Across Multiple Columns

When using collections or associations, for example like this:
<%= f.association :property_attributes, as: :check_boxes %>

If there are a lot of property_attributes then you end up with a really long list. I'd like to split these across multiple columns, but it's not immediately clear how I could do that. Is there a built-in way, or would it be a case of creating a custom input?

Is there a built-in way, or would it be a case of creating a custom input?

There isn't a built-in way. You can achieve this through the Wrapper API configuration and some CSS to set specific dimensions for each entry of the list.

Fair enough, thanks.

Any examples of this?


v.0.0.30 copy failed

I reinstalled the latest version 0.0.30 and run the command ionic serve it return the copy error:
 copy failed:  Error copying "src/assets/" to "www/assets/": Error: EPERM: operation not permitted, open 'h:\Javascript\Ionicframework\ionic-conference-app-master\www\assets\fonts\ionicons.eot',Error: EPERM: operation not permitted, open 'h:\Javascript\Ionicframework\ionic-conference-app-master\www\assets\fonts\ionicons.svg',Error: EPERM: operation not permitted, open 'h:\Javascript\Ionicframework\ionic-conference-app-master\www\assets\fonts\ionicons.ttf',Error: EPERM: operation not permitted, open 'h:\Javascript\Ionicframework\ionic-conference-app-master\www\assets\fonts\ionicons.woff',Error: EPERM: operation not permitted, open 'h:\Javascript\Ionicframework\ionic-conference-app-master\www\assets\fonts\ionicons.woff2'

Hello, thanks for opening an issue with us! If im seeing correctly this is on a windows machine correct? Does this happen with a plain starter?

1.update build script to 0.0.30 and run the command ionic serve the error happen
2 then use ionic build  and the error is not disappear,
3.last run  ionic serve the service is start,but the page is show nothing

Awesome, thanks for the repro steps. Is this happening on a windows machine or a linux/osx machine?  Also, does this happen with a plain starter?

windows 10

still using ionic-conference-app project for testing

I download the latest  ionic-conference-app project from https://github.com/driftyco/ionic-conference-app and then run ionic serve the error is not happened,and can be displayed .

Thank you for your help!
But the page is still can't debug such as signup.ts

Thanks for testing. I am going to close this issue and track the debug issue in https://github.com/driftyco/ionic-app-scripts/issues/110. Thanks!


Data Migration issue.

Hello Business Central Experts.
I am facing issue during migrating the data in to a Sandbox environment. However I am able to migrate same data in my local business central Env (Docker).
What is the issue?
I am selecting the file from here.

Once I clicked on the Next, and select the appropriate excel file.
It does not showing any details of importing file, like it should be. See below.

Its just staying on the previous screen.
Any solution.
Thanks.

Are you still seeing this issue in later Docker images?  We are unable to recreate this issue within our CSP Sandbox environments.    If so, what build(s) are you seeing the issue?

Firstly I was getting this issue for one of our client BC instance (Sandbox). However I was able to do the same thing in Docker.
Now I am not able to recreate this error for our client BC instance. I think It was for a little time.
Thanks

Thank you for the update.
From: Sudarshan khandal<EMAIL_ADDRESS>Sent: Tuesday, October 9, 2018 7:13 AM
To: Microsoft/AL<EMAIL_ADDRESS>Cc: Kirsten Schaff<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [Microsoft/AL] Data Migration issue. (#3710)
Firstly I was getting this issue for one of our client BC instance (Sandbox). However I was able to do the same thing in Docker.
Now I am not able to recreate this error for our client BC instance. I think It was for a little time.
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2FAL%2Fissues%2F3710%23issuecomment-428168391&data=02|01|kschaff%40microsoft.com|f066289ea005456be7eb08d62de08616|72f988bf86f141af91ab2d7cd011db47|1|0|636746839675777876&sdata=vA3I3nRWls%2Fp3xEmK6w%2B6vnYXBQ2okjmX5GYvgaKVYc%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FApoK0kO9Jtgw-1tGpOzWrSZokspCsVjgks5ujJK9gaJpZM4WnM2d&data=02|01|kschaff%40microsoft.com|f066289ea005456be7eb08d62de08616|72f988bf86f141af91ab2d7cd011db47|1|0|636746839675787886&sdata=2wO7AJRIYudp7CVf6iBZ%2Bd1hqZzTT9gySvN95lXZx%2Bk%3D&reserved=0.


Do not notify app product managers

We strip the '@' character from the product manager's name as otherwise it would notify them in Slack which could get annoying for them.

What do you think of just wrapping the #{data.product_manager} in back-ticks?

Yup, fair enough, have amended the code. Adding back ticks makes it look like a code block now, which initially I wasn't a fan of, but after some quick googling there doesn't seem to a better way of escaping characters in Slack, so this seems like the simplest thing to make the change. 👍

I constantly abuse back-ticks in Slack to highlight text and escape stuff myself. I think it's fine in the context of an IM (as opposed to a doc). Thanks for doing this!


plotting lines can only be viewed from certain angles

view angle A

rotated to a different viewing angle

Thanks for reporting this, probably related to #44, should be easy to fix.

@maartenbreddels - would this be over here:
https://github.com/maartenbreddels/ipyvolume/blob/master/js/src/scatter.js#L294
i'm not very comfortable with the code base here.

See the referenced commit for what the issue was, it is more of a workaround until I do all the coordinate transformations the proper threejs way.

I did what you suggested here: https://github.com/maartenbreddels/ipyvolume/commit/c419acdab3e47c056cd37dd6ba58f5c9b12e51c9
but it doesn't disappear anymore. Maybe the browser cache was in play, can you open the notebook in incognito mode, or (for chrome) go to the Developer Tools ->  Network -> Disable Cache

i tried this and still getting the same outcome.
when trying to do a development install i'm getting the following errors now:
 jupyter nbextension install --py --symlink --sys-prefix ipyvolume
Installing /home/neuro/repos/ipyvolume/ipyvolume/static -> ipyvolume
- Validating: problems found:
   X  require: /opt/conda/envs/neuro3/share/jupyter/nbextensions/ipyvolume/extension.js
  OK section: notebook
Full spec: {'section': 'notebook', 'src': 'static', 'dest': 'ipyvolume', 'require': 'ipyvolume/extension'}

    To initialize this nbextension in the browser every time the notebook (or other app) loads:

          jupyter nbextension enable ipyvolume --py --sys-prefix

neuro@jupyter-satra:~/repos/ipyvolume$ jupyter nbextension enable --py --sys-prefix ipyvolume
Enabling notebook extension ipyvolume/extension...
      - Validating: problems found:
        - require?  X ipyvolume/extension
neuro@jupyter-satra:~/repos/ipyvolume$

i'm going to close this for now - on my os x machine, i just installed everything from scratch and it works with current master. will test inside a docker container next to make sure things are operational.

👍
browser cache could mess things up as well, try incognito window or (in chrome) open de Dev console, and in the Network tab select 'Disable Cache'.

I'm having the same problem on the latest release:

ipyvolume version: '0.4.0'
I wanted to install from master but I get error about npm not being present although when I type npm in console it works... I'd be thankful for any help :)

Sorry for my late reply, I lost this msg since it was in a closed issue. Indeed, this is not released yet, you need master. Could it be that npm is an alias? If you use anaconda, you can try installing conda install -c conda-forge nodejs.

Sorry for silence: unfortunatelly the conda install does not help and I'm not sure how to check if npm is an alias on windows...


update album view

Use .card for album cover
Remove custom styles
Rework hover
Make entire thing clickable

I quite liked the old hover effect, maybe we could have both? :blush:
Nice work otherwise, makes sense to make the whole thing clickable.

The spacing around the image seems a bit inconsistent to me on hover, and maybe the corner radii should match?

oh right :( my bad!
we still can probably do something about it, if we add a container around the button, so that the container grows but the button is centered within it

Should be better now.

oh it is much better indeed! LGTM, merging if you're good to go on your end?

Yeah, should be fine to merge.


✨ New easy-to-write register addresses

New address format in modbus.yml:

first symbol - modbus function code
all other symbols - modbus register address

Backward compatibility included 🥳
Some tests are fixed (modbus_test.go)
Fixes #22

Thanks! CC @bastischubert @rfc1036 for testing.

LGTM from a functional view.
When trying with an invalid address the error handling kicks in like this:
ERRO[0000] failed to scrape metrics for module 'SDC1-MM201-B03-F205-L1-current': metric 'current_amps', address '370004': modbus register address parcing failed  65535  source="modbus_exporter.go:148"
Before that commit, the error handling from modbus/modbus.go line 201ff kicked in with an error message, that is now no longer working. Maybe the whole error handling there (201-203) needs to be reviewed.

Thanks @bastischubert. More descriptive and point-to-a-solution error messages would be good. I see @dshatohin is already taking a look, which is great.

Hi, thank you @RichiH and @bastischubert, I've just revisited error handling, now we are getting error for registers greater than 65535:
failed to scrape target '<IP_ADDRESS>:1502' with module 'fake': failed to scrape
metrics for module 'fake': modbus register address is out of range: 370004

and for wrong function code we are getting:
failed to scrape target '<IP_ADDRESS>:1502' with module 'fake': failed to scrape
metrics for module 'fake': metric: 'coil', address '560004': metric address should
be within the range of 10 - 465535.
'1xxxxx' for read coil / digital output,
'2xxxxx' for read discrete inputs / digital input,
'3xxxxx' read holding registers / analog output,
'4xxxxx' read input registers / analog input

LGTM @dshatohin


Merge prTesting_202011061914 branch to master branch

Docs Build status updates of commit 9368f2b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


fix SOURCES.md Bundle media with application example

The example in SOURCES.md will not work.
Under Bundle media with application,

...using new Player.play('example.mp3');

should be:

...using new Player('example.mp3').play();

Thanks for the contribution!


[ITensorVisualizationBase] [ENHANCEMENT] Remove subscript from single tensor visualization. Show plevs by default.

Codecov Report

Merging #841 (1da780a) into main (7d7a420) will decrease coverage by 2.99%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #841      +/-   ##
==========================================
- Coverage   76.01%   73.01%   -3.00%
==========================================
  Files          67       67
  Lines        7570     6308    -1262
==========================================
- Hits         5754     4606    -1148
+ Misses       1816     1702     -114

Impacted Files
Coverage Δ

src/broadcast.jl
60.16% <0.00%> (-26.73%)
:arrow_down:

src/qn/qnindexset.jl
86.66% <0.00%> (-13.34%)
:arrow_down:

src/physics/site_types/tj.jl
65.82% <0.00%> (-8.98%)
:arrow_down:

src/indexset.jl
76.95% <0.00%> (-7.21%)
:arrow_down:

src/lastval.jl
57.14% <0.00%> (-7.15%)
:arrow_down:

src/physics/sitetype.jl
87.24% <0.00%> (-6.40%)
:arrow_down:

src/global_variables.jl
85.29% <0.00%> (-5.82%)
:arrow_down:

src/LazyApply/LazyApply.jl
61.53% <0.00%> (-5.64%)
:arrow_down:

src/ITensors.jl
25.00% <0.00%> (-5.00%)
:arrow_down:

src/mps/abstractprojmpo.jl
83.90% <0.00%> (-4.33%)
:arrow_down:

... and 52 more

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 7d7a420...1da780a. Read the comment docs.


bug: Paloma website total messages sent shows 0 sometimes

What is happening?

Section description
Provide as much context as you can. Give as much context as you can to make it easier for the developers to figure what is happening.

Intermittently the website shows 0 as total number of messages sent. This also happened during an investor meeting
How to reproduce?

Section description
Please write detailed steps of what you were doing for this bug to appear.

https://www.loom.com/share/8fd6f757cccd4b939ee2746c1038c694
What is the expected behaviour?

Section description
If you know, please write down what is the expected behaviour. If you don't know, that's ok. We can have a discussion in comments.

Numbers should never be 0 on website

same thing just happened wiht the flock number @rootedbox I just went to the site (no refreshs)

@rootedbox still seeing this issue on the flock number - reopening

put in catches so if the system has an issue it won't die.. put default values in the front end just in case the back end does die.. put in longer waits between getting data because twitter was complaining.


Update on R version in Azure ml Studio (classic)

Hi Microsoft team,
I have been using Azure ML studio (classic) for quite sometime along with custom R scripts . The current version of R in Azure ML studio is MRO 3.4.4 &  The latest CRAN version of R is 3.6+ with major changes being brought to tidy verse community (dplyr, ggplot and much more). I used to code in R with local machine and bring to Azure ML Studio. these updates doesn't function in Azure ML studio. Could you please let us know when will be getting new R version in Azure ML studio (classic). As the last update from Microsoft is 2018.

@arunrajes, Thank you for sharing the update. It would be great if you can share the Microsoft Doc that you following or checking so that its easier for us.

@arunrajes This GitHub repo is only for reporting issues in the documentation. I can forward this information.but the correct location for product feedback is the UserVoice site.
https://feedback.azure.com/forums/257792-machine-learning


restic: 0.16.5 -> 0.17.0

Description of changes
Added python3 for https://github.com/restic/restic/blob/76d56e24d615b2460247bf184ed4c0906d8e39eb/cmd/restic/cmd_backup_integration_test.go#L572
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

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

3 packages built:

prometheus-restic-exporter
restic
restique


Not able to use Twitter API's member related API functions

Hi,
I am using your script for one of the twitter app. It is working good when i use most of the API functions like getlists, block member, follow, unfollow, get-list-members etc but i am getting constant issue if i try to add a member in specific list or if i try to destroy a member from list.
Talking about this specific function:
https://dev.twitter.com/rest/reference/post/lists/destroy
Issue:
[code] => 112 [message] => You must specify either a list ID or a slug and owner.
I am getting this message even i hardcode the listID or ownerId and used all possible combination required by that API function.
I also dropped same issue on twitter community but no luck yet.
https://twittercommunity.com/t/error-112-you-must-specify-either-a-list-id-or-a-slug-and-owner/53007
Can you please verify or help how we can use that function using your API script? I tried some of the other list-member related functions but those which have Get method are working while with POST method are not working.
Hope, you can provide a solution.
Thanks,

Hi, this is an old one. I'm just going through and cleaning up issues, although if you still need help, please feel free to reopen a new issue. Thanks.

It's October, 2020, I am having this issue still today.  Just opened issue #294
https://github.com/J7mbo/twitter-api-php/issues/294https://github.com/J7mbo/twitter-api-php/issues/294


Illegal invocation when calling req.extend

When calling req.extend, it triggers a 500 error with the message Illegal invocation. I have tried using event.waitUntil directly and it seems to work. Following is the relevant code, please let me know if I should provide any other information.
import { Router, listen } from 'worktop'

const router = new Router()

const handleTest = async (event) => {
  event.waitUntil(fetch('https://cloudflare.com'))
  return new Response('ok')
}

router.add('GET', '/test2', async (req, res) => {
  req.extend(fetch('https://cloudflare.com'))
  res.send(200, 'ok')
})

addEventListener('fetch', (event) => {
  const { pathname } = new URL(event.request.url)
  if (pathname === '/test') event.respondWith(handleTest(event))
  else listen(router.run)
})

Hmm.. odd that I haven't run into this in my own scripts yet. It definitely makes sense & I'll fix it – but curious now 😅

Thank you for looking at this and fixing it so quickly @lukeed!

No problem :) Available in 0.7.1

Sweet! Just tried it out now and it works great!


Clear backend FAQ vote count

Overview
FAQ's are currently listed dynamically. The logic in place orders FAQ's from most clicked to least clicked. This order must be reset.
Action Items

[x] Click count for FAQ's must be set to 0 in backend production django environment (api.civictechindex.org)

Resources/Instructions

Cleared FAQ count by Oct 11th, 2021, 6 pm


[Smoke Tests] Exclude non-standard WCF package

Summary
The focus of these changes is to remove the WCF extensions package that is not compatible with netstandard2.0 from the smoke tests, and to bump static testing dependencies to the latest versions.

/check-enforcer override


Sphinx docs

I setup a sphinx conf.py and built the documentation (sphinx-apidoc) . I also setup a webhooks for the repo to communicate with readthedocs.io for automatic update of docs.
All of the above works. But the package structure (due to imports) needs to be updated first.
Anyway checkout the master-branch.
Help needed!

Fixed


Stopped working recently

Hi mate. Recently it seems that this has stopped working for me and my mate using it. It just doesnt even detect that they are brewing and doesnt detect when they are finished.
If I turn "infobox state" to "Always" it show both locations as "uninitialized"
Let me know if there's any more info i can provide.. Cheers

Uninitialized is probably a result of the client's settings file not being updated. Double check that your client supports configManager.setRSProfileConfiguration(CONFIG_GROUP, key, obj);. You could also run the client in Intellij to debug if any of the methods in the plugin are failing.
https://github.com/InfernoStats/Brewing/blob/master/src/main/java/com/infernostats/BrewingPlugin.java#L178
Currently Working for me:

It seems your client was more up to date than mine!
2021-12-09 11:58:30 [Client] WARN  n.runelite.client.eventbus.EventBus - Uncaught exception in event subscriber
java.lang.NoSuchMethodError: 'java.lang.Object net.runelite.client.config.ConfigManager.getRSProfileConfiguration(java.lang.String, java.lang.String, java.lang.reflect.Type)'
	at com.infernostats.BrewingPlugin.getConfigOpt(BrewingPlugin.java:387)
	at com.infernostats.BrewingPlugin.getConfigBrewingState(BrewingPlugin.java:360)
	at com.infernostats.BrewingPlugin.onGameTick(BrewingPlugin.java:174)
	at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
	at net.runelite.client.eventbus.EventBus.post(EventBus.java:220)
	at net.runelite.client.callback.Hooks.tick(Hooks.java:191)
	at client.doCycle(Client.java:2537)
	at client.i(Client.java)
	at am.u(GameEngine.java:335)
	at am.run(GameEngine.java:314)
	at java.base/java.lang.Thread.run(Thread.java:832)

Ah yeah I am using a daily updated client. Does this mean that you've been able to replicate the issue?
Cheers

@40-Cal-Banana Yes I can reproduce the issue. I'm working on a fix for it now

@40-Cal-Banana https://github.com/runelite/plugin-hub/pull/2525


Update MongoDB Driver to support SCRAM-SHA-1 for authentication

The tag we're using is v0.7.9 and current tag is v3.0.2. They introduced several new features and most important support SCRAM-SHA-1 for authentication which will be the default for the new MongoDB version.

Any update on this? Having SCRAM-SHA-1 auth mechanism only pretty much renders this integration useless as it is very very old, sadly...

We'd gratefully accept this as a contribution - currently we have some other higher priority stuff which needs to be done before we get to this. I can't promise when we'll get around to this atm other than hopefully 'soon'.

Thank you @larshesel. Unfortunately, I can not help with this as I have 0 erlang knowledge.
However, FYI, I did try to do it using redis, but it is also failing. I've created a new issue here: https://github.com/erlio/docker-vernemq/issues/19

The mongodb driver was upgraded to a version supporting SCRAM on master. It will be part of the VerneMQ 1.2.1 release.

Hi
I'm getting mongo connection issue while trying to do Auth using database.
Using Vernemq docker and Mongo 3.6.17 version.

In vernemq Im getting the following log

Any help is deeply appreciated.


Basic ar view

Resolves #8
TODO: Remove extraneous meshes when number of locations to render diminishes
TODO: Update current location as user walks around

tested the AR view on my phone! works!


Enable textarea and hidden fields support

Hello @thojansen,
I  think this is the only required update to fix https://github.com/cla-assistant/cla-assistant/issues/143.
Also, I need to display a textarea (this is why I've found your issue), for instance to ask for a postal address.
What do you think?

Coverage remained the same at 91.268% when pulling 2c952d0eea1caf4f0f0d1fee59282ff8c8560770 on mickaelandrieu:added-hidden-and-textarea-support into a49f8ed87b2613179e3f252fa73b2b7e964d911b on cla-assistant:master.

Coverage remained the same at 91.268% when pulling 1e6c1aef378505118527ee4b0c2f0ea68edcb47e on mickaelandrieu:added-hidden-and-textarea-support into a49f8ed87b2613179e3f252fa73b2b7e964d911b on cla-assistant:master.

👍  thank you for your PR. Can you test the changes in https://preview.cla-assistant.io please?

 I have 1 question regarding the way the data are stored on your service: can you confirm this is not stored on SAP servers (for the mongodb part)? This is a very important information for me (should we use the service or should we host it ?).

@mickaelandrieu Yes, I can confirm that the data is not stored on SAP servers (yet), we use mlab.com as mongodb service provider. However I can't say how long we'll keep the status quo, med- or longterm we would like to move to our own infrastructure (based on CloudFoundry), but there are no concrete plans so far.

@KharitonOff textarea feature works as expected (for my needs)

As I don't understand who can be interested by a hidden field, I don't know how to test it: is it only to pass data? And if yes, why?
Regarding the data storage, will we be notified if the data are moved to SAP servers "before"? It's very important for us to ensure our contributors that their data are not offered to any company, at least, not used by any company.

@mickaelandrieu we had a discussion regarding this #141 and have changed our ToS as a reaction of that issue.
https://gist.github.com/CLAassistant/3a73e4cd729c9d0a6e30/revisions
This should clarify how the data stored can be used.

..for purposes of operating and improving the Website and Tool

SAP has no interest in using that data for any other purposes and the physical location of the data storage will not change that. Legally the offered service is bound to the ToS.

Thnks for the additional information @thojansen, it's fair :)


Loosen Ecto requirement to 2.1.x. Starting to prep for proper dev.0 r…

…elease.

Coverage remained the same at 84.101% when pulling 1d1e8614d5e4cc3750d9f5716c8efa36a9f8ee0f on ecto-2.1.x into 9c2fdfb9dce8d0780169a874882aa11a7b725373 on master.


surface slippage errors to the dapp

Contracts table now says Slippage too high instead of Error when the slippage is too high
Rename converting to swapping in side panel transaction messages

Contract change checklist:

[ ] Code reviewed by 2 reviewers. See template and example.
[ ] Unit tests pass
[ ] Slither tests pass with no warning
[ ] Echidna tests pass if PR includes changes to OUSD contract (not automated, run manually on local)

Merging this in, happy to address anything if needed


fix(script): broken component is and veu-router behaviour

Related issue
Closes #540
Scope of work
Fix for SfProductCard with link if vue-router is present. Null in href was received by router-link and together with to attribute it messed up rendering an anchor element.
Checklist

[x] I followed composition rules for my component
[x] I tested the component in most common device sizes (can be tested in Storybook from viewport addon in top menu)

thanks @psmyrek looks like it works


feat: Add archipelago (WIP)

This PR adds archipelago support to explorer.
Archipelago will remove layers and replace them with "islands" that get dynamically generated.
Realms will now be name-only (for instance, fenrir)
A prefered island could be provided through URL in order for friends to be able to connect when multiple islands intersect.
This is a work in progress. See #2404 to track progress of this feature

https://play.decentraland.zone/branch/feat/add-archipelago/index.html?ENV=zone&CATALYST=https://peer-uw-1.decentraland.zone/ <- To test with a catalyst that is not in DAO


Multiple sliders not working inside Bootstrap Tabs

Hello guys,
I have one problem happening on a project and I cannot seem to find the proper answer/fix for it. I even
created a thread, but it got closed for no reason and I get no response, and also found one kind of similar answer through the threads on this forum, but it wasn't the right fix for my issue.
My problem is described below, hope any of you can help me! =)
======================================================
This is a (multiple allowed):

bug

Swiper Version: 4.0.3
Platform/Target and Browser Versions: Multiple Platforms (PC)
Live Link or JSFiddle/Codepen or website with isssue: http://imovel-cia.com.br/empreendimentos/canvas-alphaville-high-houses-apartamentos-270-338-metros-alameda-cauaxi-purus-em-frente-ao-alphaville-2
JS file used to initialize the slider: http://imovel-cia.com.br/assets/site/redesign/assets/js/imovel.js
What you did
I have a group of tabs running inside this type of page, inside my project. It's a structured page, to be dynamically created for multiple instances of data (called from my DB). I have 4 tabs and the ones called "Plantas" and "Ilustrações" (2nd and 3rd), have Swiper sliders instances created for each one of them.
Expected Behavior
All sliders inside those tabs should have their effect working properly (prev-next buttons).
Actual Behavior
When both tabs have Swiper instances, only one of them work. The other one is only draggable, but loses its pagination between images and all the effects inherited from the original script. It happens when Swiper Sliders are created on both tabs. If only one has a slider instance, it works fine, but not when multiple tabs have sliders inside of them. =/
One important note: they work fine on mobile, but on my PC, on every browser that I've tried, they're working as I said above.
Can I get any help? Thanks in advance, guys!

It happens because Swiper on the moment of initialization is hidden (in hidden tab), so it can't correctly calculate its own sizes to do the things properly. You need to:

init it when the tab what contains this swiper becomes visible/active
or call its .update method when the tab what contains this swiper becomes visible/active
or try to enable observer and observeParents parameters

Run into the same bug today and found https://vissense.github.io/vissense/
        VisSense(mySwiper.el).monitor({
            visible: function() {
                mySwiper.update();
            },
        }).start();

I stumbled upon a similar problem (with my own tab solution). Calling .update() on activating a tab works fine, but it seems to ignore the responsive break-points, if the window.size changed between tab switches.

I create a simple listener for the shown.bs.tab event and then update() only if necessary. Seems to work quite well. Here's my JS:
var mySwiper = new Swiper('.swiper-container', {
  loop: true,
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
  var paneTarget = $(e.target).attr('href');
  var $thePane = $('.tab-pane' + paneTarget);
  var paneIndex = $thePane.index();
  if ($thePane.find('.swiper-container').length > 0 && 0 === $thePane.find('.swiper-slide-active').length) {
    mySwiper[paneIndex].update();
  }
});

Here's a working jsfiddle: https://jsfiddle.net/silb3r/jhz9tfb7/

(firstly ı speak little english, so sorry )@cfxd thank  you its worked me, when click to tabs, every slide works, but I has a problem. Example I click to profile tab and then go to cat pic(second picture), and then home tab click back, slide does not start at the place , in other words slider doesnt reinitializied. I do not know if I can understand???

Also this stuation doesnt work on pagination? pagination doesnt show tabs

http://gurtekniktoner.com/kartussepetim.com/
I have the same problem, you are please help me
(the above solutions did not work)

Run into the same bug today and found https://vissense.github.io/vissense/
        VisSense(mySwiper.el).monitor({
            visible: function() {
                mySwiper.update();
            },
        }).start();

Worked perfectly for me! Thanks

I have the same issue but what if I initialise slider dynamicly with this code:
      $('.results-tab-slider').each(function(){         new Swiper($(this), {           slidesPerView: 2,           spaceBetween: 70,           loop: true,           breakpoints: {             767: {               slidesPerView: 1             },             1024: {               slidesPerView: 2             },             1270: {               slidesPerView: 1             }           },           navigation: {             prevEl: $(this).siblings('.results-tab-button-prev'),             nextEl: $(this).siblings('.results-tab-button-next'),           }         });       });
Unfortunately we loose ability to use mySwiper.update();

@NetPax you can access the Swiper instance afterwards, with .swiper.
Last I testet, it only works with JS, not jQuery:
document.querySelector('selector-for-an-element-with-swiper').swiper.update()

Found that @cfxd code worked great with bootstrap tabs except discovered that sliders with thumbnails and lazy loading did not work.  The main slider would be fine, but the thumbs would not load the images even with an update().  Used a combination of @JLueke  and @cfxd to also add the command to load lazy images.
    $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
        var paneTarget = $(e.target).attr('href');
        var $thePane = $('.tab-pane' + paneTarget);
        if ($thePane.find('.swiper-container').length > 0 && 0 === $thePane.find('.swiper-slide-active').length) {
           document.querySelectorAll('.tab-pane' + paneTarget + ' .swiper-container').forEach( function(item) {
                  item.swiper.update();
                  item.swiper.lazy.load();
              });
         }
      });

As @nolimits4web pointed out in one of the options, initializing the carousel by setting
observer: true and observeParents: true, does the job seamlessly. No extra event listeners needed after that.
Something like this
new Swiper(<selector>, {
 // your other config
  observer: true,
  observeParents: true
}


[WIP] adjusting .env_sample ENV Variables: [SUBMISSIONS_API_URL, RABBITMQ_H…

…OST, AWS_S3_ENDPOINT_URL]
Template
This is a template. While not all sections are necessary, depending on the size and complexity of the PR,
more information is better.
@ mention of reviewers
@ckcollab
A brief description of the purpose of the changes contained in this PR.
Upon a raw git clone and using the README instructions, these environment variable needed to be updated in order for codalab-v2 to work out of the box.
Issues this PR resolves
...
Known issues to be addressed in a separate PR
...
A checklist for hand testing

[ ] add checklist here

Any relevant files for testing
link to any relevant files (or drag and drop into github)
Misc. comments
This is my first pull request. Any fields that I Ieft blank are not out of laziness, but rather I didn't have that information or didn't know best how to answer it.
Ran "not e2e" tests and got:
...========= 101 passed, 5 deselected, 4 warnings in 75.63 seconds ============...
Ran "Selenium" tests and got:
...=========== 5 failed in 97.03 seconds =========...
Checklist

[+] Code review by me
[+] Hand tested by me
[+] I'm proud of my work
[ ] Code review by reviewer
[ ] Hand tested by reviewer
[ ] Ready to merge

closing this guy for now, we'll pick 'er back up eventually :)


sensor return list of methods instead of mobData

OpenMods:
OpenBlocks-1.7.10-1.4.1-snapshot-607.jar
OpenModsLib-1.7.10-0.7.1-snapshot-345.jar
OpenPeripheralAddons-1.7.10-0.3.1-snapshot-195.jar
OpenPeripheralCore-1.7.10-1.1-snapshot-220.jar
OpenPeripheralIntegration-1.7.10-0.2.1-snapshot-63.jar
Modlist:
http://blog.terpo.org/upload/mc/modlist.txt
My wither spawning is using a sensor to detect mobs like the wither. Normally there is only one mob, or no mob in range.
The program in short form:
s = peripheral.wrap("left") -> sensor
mobs = s.getMobIds()  -> mob ids  -> is detecting the wither (example: 7419601)
for k, v in pairs( s.getMobData(7419601) ) do
print(k)
print(v)
end
Now, instead of printing the data of the mob, I am getting the list of methods for the sensor:
listSources
function: xxxxxxxx
getAdvancedMethodsData
function: xxxxxxxx
... and so on
In this version the sensor worked fine with the same code:
OpenBlocks-1.7.10-1.3-snapshot-569.jar
OpenModsLib-1.7.10-0.6-snapshot-321.jar
OpenPeripheralAddons-1.7.10-0.2.0-snapshot-178.jar
OpenPeripheralCore-1.7.10-0.6.0-snapshot-208.jar
OpenPeripheralIntegration-1.7.10-0.1.0-snapshot-49.jar

Expected behaviour. Try to play with those methods or just check our FAQ (last question).


BuildPlan::from_lock() should be able to create a BuildPlan even there is a package removal in the manifest file

Currently BuildPlan::from_lock() fails when there is a package removal in the manifest file. We should be able to get some sort of an "unsafe" BuildPlan rather than a complete failure. Because #1686 needs to be able to generate a diff on the BuildPlan generated from the lock file and the updated manifest file.
Proposed Solution
We can do that by introducing an "unsafe" version of the graph_to_path_map(). Current graph_to_path_map() returns an error ("dependency required for path reconstruction has been removed from the manifest") when the dependency coming from the graph is not included in its parent manifest file (which is the case for the removed packages). Instead, we can point them to a default removed path (something like $HOME/.forc/removed). This way we can create an unsafe version of the BuildPlan which can be used to produce the diff. Once we have the diff apply_new_manifest() from #1686 will use that diff to create an actual BuildPlan representing the updated manifest file.

Just to clarify, I think the steps to reproduce this bug are:

forc init foo- initialise new project
forc build - generate new lock file and build project
Add implicit-std = false to manifest, removing the implicit std dependency.
forc build - Fails with "dependency required for path reconstruction has been removed from the manifest". Specifically, this error is produced by the core dependency as it is a path dependency of std.

Does that sound right @kayagokalp ? If so I might look into this soon.
I'm looking at graph_to_path_map and it's not immediately clear to me why this occurs just yet. E.g. even if std is removed from the manifest dependencies, it was introduced as a git dependency and as a result when loaded from the old lock file it should still be able to reconstruct it's path into the associated ~/.forc/git/checkouts/std-* directory :thinking:


Add cmdk-sv dependency

Add cmdk-sv dependency
added new command bar
open all functionality
change store name
Refactor store names and update imports
Fix issues and improve code in multiple files
migrate to sveltekit v2
fix setCamera store
Refactor SetCamera component and remove resetKey prop

#223  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @yustarandomname and the rest of your teammates on  Graphite


Packages update with dependabot

This is a running task for updating packages based on dependabot alerts.

Dependabot updates for this month are done. A new issue will be opened for the next updates.
Notes:
On the next update, use the CombinePRs workflow to automerge all dependabot PRs. They'll all be merged to the dependabot-upgrades branch, then a pull request will be opened to dev from the dependabot-upgrades branch.


Update stoplist.txt

@peterzheng98 lib/domains/stoplist.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@peterzheng98 This file will not be updated. I have to close the request without merging. Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information. Thank you for the understanding!


Keep the center view controller immobile

Hi is there a way to keep the drawer center view controller immobile when one of the drawer side controller appears?

Not with the current architecture.


Claiming podcasts - what can we do to help?

Use case
Currently, if you want to "claim" a podcast on most podcast directories, then they achieve this in one of two ways.

Publisher types in their RSS feed into a podcast directory
Podcast directory reads the email in the RSS feed
Podcast directory sends a TOTP token or a URL via email
Owner of the podcast opens their email and finds the mail from the Podcast Directory
Owner of the podcast clicks that link.
Now, the podcast directory reasonably knows that the publisher is the owner of the podcast - at least, the owner of the email address.

This falls over in a few ways:
a. it relies on quick transmission of emails, unimpeded by spam filters
b. the podcast publisher needs access to this email address (quite hard for a large team)
c. the email address could be used for multiple podcasts
d. it causes a lot of basket abandonment, as podcasters have to move from a website to an email, get distracted by the other emails there, and go and do something else, forgetting to claim their podcast
The drawbacks with 'claiming' feeds have caused some podcast apps/directories to just not bother with this step, and that's a mistake that would be nice to fix, too.
Suggestion
I don't really know what I'm doing here, but I'd like to suggest some form of key/token thing that allows this to be automated. So the above is changed to...

Publisher types their RSS feed into a podcast directory
The podcast directory redirects you to your podcast publisher
The publisher has a simple page (behind your login) which says "Do you want to claim your podcast on XX?"
You click "yes" and it takes you back to the podcast directory, which now knows you've claimed your podcast.

This seems quite similar to OAuth, so there might be something there in how it works. I think we also need to give an auth URL for a podcast publisher. This would a) tell the podcast directory that this is supported; and b) tell the podcast directory where to go to request clarification from the podcast host that this really is this person's podcast.
<podcast:locked auth="https://example.com/claiming/login.php" owner="email@example.com">yes</podcast:locked>
This is a problem, and it would be really nice to have a programmatic, smooth solution to it. I'm not sure I've identified a solution yet.
Later: I've added some documentation below as to how I think it might work.

I can see how to do this.
A simple api endpoint at the podcast host listed in the feed that accepts a token and something to identify the podcast and a return api hook to send the response to.
Podcast host has a notification for users in their dashboard (presumably they know they're signing up for something so they're watching for this).
One click and the token is sent back to the requester. Job done no email.
I believe I could build this for 3speak as a demo very quickly.
One issue... The services love harvesting emails. But this would be much better.

[ ] And it doesn't even use the blockchain 😂😂😂😂😂

I think the OAuth-type of bouncing from PodcastDirectory to PodcastHost works. No need for a notification system.
directory.example.com:
Your podcast host supports quick claiming. [Click here to claim your podcast]

host.example.com
Hi, Brian.
SuperPods wants to let you claim the Five Eyes Podcast on their service.
Is that OK?
[x] Share my email address with them too
[CLAIM MY SHOW ON SUPERPODS] [Cancel]

...yes, and sends a token from one to another. That would be neat.

Good idea James. Real code always helps.

How does this vaguely work for documentation?
"Claiming" a podcast in a podcast directory means that your customer can be authorised as the owner of that podcast in a directory. You might claim a podcast in Podchaser to add host information; in GoodPods to be notified of comments; or in Spotify to add it to the Spotify dashboard for analytics.
A "quick-claim" is a programmatic way to claim a podcast, by taking your customer from a podcast directory to an authenticated page on their podcast host.
For podcast directories
Run a podcast directory, and want to check that someone owns this podcast?
Check that quick-claiming is enabled in the RSS feed.
You should see an auth field within the <podcast:locked> tag. If you do, this podcast is quick-claim enabled, and you can give them this quick procedure.
Give them a "claim this with your podcast host" button
You will send a POST to the auth field present in the podcaster's RSS feed, with three values:
a. guid - A podcast:guid is either present in the RSS feed already, or can be calculated from its original RSS feed address. This is the UUIDv5 GUID for a podcast feed, not the individual episode guid. Here's the spec for that.
b. token - this can be whatever you want it to be. You will see it coming back from the podcast host when the podcast has been verified. You may include in it some form of userID and security token.
c. auth is the auth URL in the RSS feed.
The returnurl field below is where you would like to be sent this information back if the user agrees.
Here's an example in PHP of your button:
echo '<form method="post" action="'.$auth.'">';
echo '<input type="hidden" name="guid" value="'.$guid.'">';
echo '<input type="hidden" name="token" value="'.$token.'">';
echo '<input type="hidden" name="returnurl" value="https://directory.example.com/claimed/thanks">';
echo '<input type="submit" value="Claim this now">';
echo '</form>';

Handle the response
If the user wants to claim the podcast, they will press a button on their podcast host's website, and you will get a POST to the returnurl above. It will contain the same GUID as above, and the token.
Check the GUID is the one you were expecting; and ensure the token is correctly formatted. If it is, the user has successfully claimed the podcast.
For podcast hosts
If you're a podcast host wanting to add quick claiming for your customers, then here's how you can do it painlessly:
Add a podcast:locked field in your RSS feeds
The field needs two values:
a. auth - a URL to a page that is protected on your server by customer login. It is highly recommended that this be an https address.
b. owner - the email address of your user (the same as itunes:email). This is not used in this process, but is part of the standard podcast:locked tag.
If you support podcast:locked's transferral feature, you may also add a "yes" to this tag, signifying that it is currently locked for transfer.
Example:
<podcast:locked auth="https://example.com/claiming/login.php" owner="email@example.com"></podcast:locked>
Write a page for a user to agree to "claim" a podcast
The podcast directory will send a POST request to this URL, containing three values: token, guid and returnurl. You should return the token and guid to the returnurl that they have sent.
A podcast:guid is either present in your RSS feed already, or can be calculated from its original RSS feed address. This is the UUIDv5 GUID for a podcast feed, not the individual episode guid. Here's the spec for that.
Here's an example in PHP:
if (!$user['loggedin']) {
   // this user is not logged in. Take them to log in
   // Retain the token, guid and returnurl, and bring them back here
   exit;
}

// You might want to give confirmation that the podcast they are claiming
// is the correct podcast.
// Grab the podcast details in an array from your local systems.
// Check that the podcast is owned by this person, of course.
$podcast = lookup_from_guid($_POST['guid']);

echo '
Claiming your podcast
';
echo '
The website at '.parse_url($_POST['returnurl'],PHP_URL_HOST).' wants to check you own '.$podcast['name'].'. Click the button below to show that you do.
';
echo '<form method="post" action="'.$_POST['returnurl'].'">';
echo '<input type="hidden" name="guid" value="'.$podcast['guid'].'">';
echo '<input type="hidden" name="token" value="'.$_POST['token'].'">';
echo '<input type="submit" value="I do">';
echo '</form>';

The above will successfully check that your user is authenticated and send back the token to the directory service if the user agrees.

I know it is a somewhat far off dream... but I'd dearly love to dump having to put emails in feeds completely. It's just a nasty spam harvesting system as it is today. This would certainly be the first step on that journey.

Agree. To be honest, we don't need them for this; it's just part of the "other" use of the podcast:locked tag. I wonder if I can remove them completely.

Hi,
I really like this idea of quick claiming.
Quick idea here : I'm not 100% sure it fits with "podcast locking" term. If we complexify a bit the usage maybe we could rename the tag to something like podcast:guard :
<podcast:guard locked="yes|no" auth="[url]"/>
But most importantly, as I see the value behind this idea, the implementation we're currently discussing has some flaws IMHO.
First, it doesn't seem enough secure to me, as there is no way to authenticate the server response :
If we visit a directory with a claim button these are public informations : guid, claiming auth_url are in the feed, the token the directory is generating, and the return_url.
If it's not clearly in the source code, inspected page, it will be visible in the inspector network tab somehow at some point.
With the current implementation of the draft protocol, anyone can claim any feeds without having to log into the hosting provider.
The requirement for claiming is : to do a POST request to return_url with the directory token and podcast guid. All theses informations are public. That POST request could come from anyone authenticated or not.
Anyone could make a chrome extension scraping the data in the directory and firing POST requests claiming all feeds.
The second issue I see is "user path/worklow". What happens if the user can't login, or click a back link, or something has failed (e.g. the user has no access to this podcast) ? We need to mimick what payment platform like paypal uses : success_url, error_url, back_url. That's a bit verbose, but don't worry we can simplify, i have a few ideas.
Third issue is that we have no way to "identify" the service asking for permission. What works with OAuth is that apps are registered into the service provider, so it can show the user a name, icon and purpose. If we wan't to keep a decentralized approch, we need to add these informations somewhere.
I'll use the great doc wrote by @jamescridland and use it as a base to explain how I would implement this, as a podcast directory & podcast hosting company. I'll use the podcast:guard new name because I like it, but it works any way.

"Claiming" a podcast in a podcast directory means that your customer can be authorized as the owner of that podcast in a directory. You might claim a podcast in Podchaser to add host information; in GoodPods to be notified of comments; or in Spotify to add it to the Spotify dashboard for analytics.
A "quick-claim" is a programmatic way to claim a podcast, by taking your customer from a podcast directory to an authenticated page on their podcast host.
For podcast directories
Run a podcast directory, and want to check that someone owns this podcast?
Benefits of using "quick-claim" are that it's one-click within a browser or webview, rather than sending a potential user an email. Assuming they are logged-in to their podcast host (or can log in), they can approve your request instantly and come back to your website within seconds, thus significantly lowering your abandoned shopping cart or registration. Additional benefits are that anyone authorised to access the podcast host dashboard may claim the show; and the email address within the RSS feed need not be the one used by your user.
Check that quick-claiming is enabled in the RSS feed.
<podcast:guard locked="yes"<EMAIL_ADDRESS>auth="https://hostingprovider.com/claiming/" pub="MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9 q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg=="/>
As above, you should see an auth field within the <podcast:guard> tag, this means the feed support quick claiming. The pub attribute is a public key you will use later to check the autenticity of the hosting provider response.
Give them a "claim this with your podcast host" button
You will redirect your user to the auth url present in the podcaster's RSS feed, with 1 to 3 URL parameters :
consumer
Your directory/service base URL of the return_path.
It's recommanded to support open graph allowing the hosting provider to present a clean name and icon for your service while asking permission. If open graph is not supported, hosting provider will most likely fallback to hostname, path, favicon.
Splitting the return url into a consumer and a return_path gives us control of which part of the url is used for open graph data while ensuring the return path is tied to the hostname and identity presented to the user.
Examples:
consumer=https://podcastindex.org
PodcastIndex.org (podcastindex.org)
The Podcast Index is here to preserve, protect and extend the open, independent podcasting ecosystem.

This service would like to verify you are the owner of this podcast. Do you want us to confirm ?

consumer=https://podcastindex.org/quick_claim
🗼PodcastIndex Quick Claiming (podcastindex.org)
Claiming your podcast into The Podcast Index directory gives you cool stuff !

This service would like to verify you are the owner of this podcast. Do you want us to confirm ?

return_path
A path relative to consumer parameter, to redirect with the result of the authentication.
If the consumer is enough, you can omit it.
Examples:
consumer=https://podcastindex.org/quick_claim (no return path)
➡ full return url will be https://podcastindex.org/quick_claim?token=[token]
consumer=https://podcastindex.org/quick_claim&return_path=/claimed.php
➡ full return url will be https://podcastindex.org/quick_claim/claimed.php?token=[token]
consumer=https://podcastindex.org/quick_claim&return_path=../claim.php
➡ full return url will be https://podcastindex.org/claim.php?token=[token]
guid
If a podcast:guid is present in the RSS feed it SHOULD be included. If it's not we omit it or send an empty string.
We keep it simple, we should trust the users of our spec (in this case the hosting providers) : if they don't include a podcast:guid, I don't see the point to calculate it and give it to them, as they most likely don't have it on their hand and probably don't use it. If they would, it would be included in the feed.
If we don't have any podcast:guid, maybe the hosting provider has only partial support of the podcasting 2.0 spec, maybe they only support claiming and include the guid in the auth url, maybe it's a wordpress extension and there is only one podcast and no need to "select a podcast" when you're logged in. We can't know and guess all usages.
If we really want them to have a podcast:guid to use quick claiming, why not adding quick claiming into podcast:guid ?
<podcast:guid auth="https://hostingprovider.com/claiming/" pub="MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9 q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==">[here the podcast guid]</podcast:guid>
It kind of fits, as it's the feed identity control.
PHP Example
Here's an example in PHP of your button:
<a
   class="btn btn-default"
   href="<?php echo $feed_auth_url."?consumer=https://myservice.com/quick_claim&guid=".$feed_guid; ?>">
   Claim this now

Handle the response
If the user wants to claim the podcast, they will confirm it inside their hosting service. You will get a GET request to the return URL computed with the consumer and return_path.
The GET request will contain only one parameter : token.
This parameter will be a JSON Web Token including the following data :
type QuickClaimResponse = {
	guid?: GUID;
	accepted: true;
} | {
	guid?: GUID;
	accepted: false;
	failureReason: "back" | string;
};

Using JWT let us ensure the hosting provider wrote the response. It also allow us to define or not an expiration date and such. (More info)
The JWT must use an asymetric signing algorithm (ES256 for example). The response is signed by the hosting provider private key, and it can be verified using the pub attribute of the tag (put there by the same hosting provider).
You can verify the signature in PHP with a JWT library, if it fails to decode, it means the signature is wrong or the token has expired:
$result = JWT::decode($quickClaimResponse, $feed["podcast:guard"]["pub"]);
```

As a podcast directory/service you have now the confirmation the user was indeed authenticated, confirmed the operation, and that its the same entity giving you this information and producing the RSS feed.

 # For podcast hosts
Quick-claim is designed to allow your customers to demonstrate that they own their podcast on third-party services, like Podchaser or Goodpods, as an example.

The benefits of using "quick-claim" are that it's one-click for your customers from the service they wish to claim, direct to you. You can monitor the services your users are using, and can give multiple people access to claiming a podcast on a separate service based on your service's access levels.

The email in your RSS feed need not be the registration email of the user on this third-party service, thus lowering your customer support calls and streamlining access for your customers. Ease of use on third-party services retains the customer with your company, thus lowering churn, and possibly giving them more access and interaction, prolonging their activity with you.

If you're a podcast host wanting to add quick claiming for your customers, then here's how you can do it painlessly:

 ## Add a `podcast:guard` tag in your RSS feeds

The tag needs two attributes :

a. `auth` - a URL to a page that is protected on your server by customer login. It is highly recommended that this be an `https` address.
b. `pub` - the public key corresponding to the private key you'll use to sign claiming requests.

Example: `<podcast:guard auth="https://amazingpodcasthost.example.com/claiming" pub="MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9
q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==" />`

## Host a page for a user to agree to "claim" a podcast

Your claiming auth url will be called with 1 to 3 parameters :

#### `consumer`
The directory/service base URL.

This url must be used to present the permission asker to the user. It's recommanded for services to support open graph on this URL allowing the hosting provider to present a clean name and icon. If open graph is not supported, you will most likely fallback to title and favicon, hostname only, or full url.

Splitting the return url into a `consumer` and a `return_path` gives us control of which part of the url is used for open graph data while ensuring the return path is tied to the hostname and identity presented to the user.

#### `return_path`
A path relative to consumer parameter, to redirect with the result of the authentication.
If the consumer is enough, you can omit it.

Examples:

`consumer=https://podcastindex.org/quick_claim` (no return path)
➡ full return url will be `https://podcastindex.org/quick_claim?token=[token]`

`consumer=https://podcastindex.org/quick_claim&return_path=/claimed.php`
➡ full return url will be `https://podcastindex.org/quick_claim/claimed.php?token=[token]`

`consumer=https://podcastindex.org/quick_claim&return_path=../claim.php`
➡ full return url will be `https://podcastindex.org/claim.php?token=[token]`

#### `guid`
If a `podcast:guid` was present in the RSS feed.

### Here's an example in PHP:

 ```php
<?php
$HOSTING_PRIVATE_KEY = "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgevZzL1gdAFr88hb2
OF/2NxApJCzGCEDdfSp6VQO30hyhRANCAAQRWz+jn65BtOMvdyHKcvjBeBSDZH2r
1RTwjmYSi9R/zpBnuQ4EiMnCqfMPWiZqB4QdbAd0E7oH50VpuZ1P087G";

if (!$user['loggedin']) {
    // this user is not logged in. Take them to log in
    // Retain the consumer, return_path, guid, and bring them back here
	//
	exit;
}

// You might want to give confirmation that the podcast they are claiming
// is the correct podcast.
// Grab the podcast details in an array from your local systems.
// Check that the podcast is owned by this person, of course.

$consumer = $params["consumer"];
$return_path = $params["return_path"];
$podcast = lookup_from_guid($params['guid']);

// If podcast is not found on this user we redirect with an error message:

if(!$podcast) {
	  header(
		    "Location: ".
		    $consumer.
		    $return_path.
		    "?token=".
		    build_jwt_token(
			      [
				      "accepted" => false,
				      "error" => "Podcast could not be found for this user"
			      ],
			      $HOSTING_PRIVATE_KEY
		    )
	  );
	  exit();
}

$guid = $podcast["guid"];

// If we already shown the page and got user response
//
// checking csrf depends on your context, but is a strong recommendation for security
if(check_csrf()) exit("Bad request");

$action = $params["action"];
if($action == "accept") {
	header(
		"Location: ".
		$consumer.
		$return_path.
		"?token=".
		build_jwt_token(
			[
				"accepted" => true
			],
			$HOSTING_PRIVATE_KEY
		)
	);
	exit();
} else if ($action == "back") {
	header(
		"Location: ".
		$consumer.
		$return_path.
		"?token=".
		build_jwt_token(
			[
				"accepted" => false,
				"error" => "back"
			],
			$HOSTING_PRIVATE_KEY
		)
	);
	exit();
}

$service = opengraph($consumer);

$claim_fields = <<<TAGS
<input type="hidden" name="guid" value="$guid" />
<input type="hidden" name="consumer" value="$consumer" />
<input type="hidden" name="return_path" value="$return_path />
TAGS;

?>

Claiming your podcast

<img src="<?= $service["icon"] ?>">

	<?= $service["name"] ?>
	(<?= parse_url($consumer,PHP_URL_HOST) ?>)

This service wants us to confirm you have control over this podcast : <?= $podcast["name"]; ?>

<form method="post" action="/quick_claim">
<?= $claim_fields ?>
<?= put_csrf_protection() ?>
<input type="hidden" name="action" value="accept" />
<input type="submit" value="I do">
</form>
<form method="post" action="/quick_claim">
<?= $claim_fields ?>
<?= some_csrf_protection ?>
<input type="hidden" name="action" value="back" />
<input type="submit" value="cancel this request">
</form>
 ```

The above will successfully check that your user is authenticated and send back the token to the directory service if the user agrees.

## Full example workflow

This section will summarize everything into one big example.

Say DIRECTORY is a podcast directory, HOST is a podcast hosting service, PODCAST is a show and CREATOR is a member of this show, allowed to claim the PODCAST on directories.

HOST adds this to the RSS feed:

```xml
<podcast:guid>ead4c236-bf58-58c6-a2c6-a6b28d128cb6</podcast:guid>
<podcast:guard auth="https://host.com/studio/quick_claim/" pub="MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9
q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==" />
```

DIRECTORY presents a button "Quick claim".

When CREATOR clicks on it, they are redirected to HOST with this URL :
`https://host.com/studio/quick_claim/?guid=ead4c236-bf58-58c6-a2c6-a6b28d128cb6&consumer=https://directory.com/quick_claiming/ead4c236-bf58-58c6-a2c6-a6b28d128cb6&return_path=/return`

HOST can use consumer parameter to fetch some data (name, icon, description) through open graph. In this example DIRECTORY use a consumer URL including podcast guid and could use it to add some podcast info into the open graph description.

HOST asks for CREATOR confirmation in a logged only area after verifying on their own responsability if user has indeed access to this podcast.

When CREATOR accept the claim request, the HOST will generate a token, signed by their private key, authenticating the CREATOR decision.

Unsigned :
```json
{
  "guid": "ead4c236-bf58-58c6-a2c6-a6b28d128cb6",
  "accepted": true
}
```

Signed : `eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJndWlkIjoiZWFkNGMyMzYtYmY1OC01OGM2LWEyYzYtYTZiMjhkMTI4Y2I2IiwiYWNjZXB0ZWQiOnRydWV9.eOXYFi9uUSUAKWcI8GdJ15RIhjoCvR0l9TUCPsqhsTYqaGFTwbH6zXzYqIqhxmtSotvL8ZLumP64LRFBjHX5Mw`

<details>
<summary>Note : You can follow along and "translate" with https://jwt.io/</summary>

Private Key = ```
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgevZzL1gdAFr88hb2
OF/2NxApJCzGCEDdfSp6VQO30hyhRANCAAQRWz+jn65BtOMvdyHKcvjBeBSDZH2r
1RTwjmYSi9R/zpBnuQ4EiMnCqfMPWiZqB4QdbAd0E7oH50VpuZ1P087G
-----END PRIVATE KEY-----
```

Public Key = ```
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9
q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==
-----END PUBLIC KEY-----
```

</details>

CREATOR are redirected to the DIRECTORY with this URL:

```
https://directory.com/quick_claiming/ead4c236-bf58-58c6-a2c6-a6b28d128cb6/return?token=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJndWlkIjoiZWFkNGMyMzYtYmY1OC01OGM2LWEyYzYtYTZiMjhkMTI4Y2I2IiwiYWNjZXB0ZWQiOnRydWV9.eOXYFi9uUSUAKWcI8GdJ15RIhjoCvR0l9TUCPsqhsTYqaGFTwbH6zXzYqIqhxmtSotvL8ZLumP64LRFBjHX5Mw```

DIRECTORY can now check the token parameter to ensure it has been correctly signed with the private key corresponding to the public key seen in the RSS feed, and in this case, the claiming request has been accepted.

Other responses could be, for example :

```
https://directory.com/quick_claiming/ead4c236-bf58-58c6-a2c6-a6b28d128cb6/return?token=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJndWlkIjoiZWFkNGMyMzYtYmY1OC01OGM2LWEyYzYtYTZiMjhkMTI4Y2I2IiwiYWNjZXB0ZWQiOmZhbHNlLCJlcnJvciI6IlVzZXIgY2FuJ3QgYWNjZXNzIHRvIHRoaXMgc2hvdyJ9.MDkZanxlukjQRAj5zd2GoWetAwMWPZs1RU24HdSw8LJm3Z73kL2U4gHMOJUg62LtZdIoH3tktSR0w-1Ltuo4Ig
```

```json
{
  "guid": "ead4c236-bf58-58c6-a2c6-a6b28d128cb6",
  "accepted": false,
  "error": "User can't access to this show"
}
```

```
https://directory.com/quick_claiming/ead4c236-bf58-58c6-a2c6-a6b28d128cb6/return?token=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJndWlkIjoiZWFkNGMyMzYtYmY1OC01OGM2LWEyYzYtYTZiMjhkMTI4Y2I2IiwiYWNjZXB0ZWQiOmZhbHNlLCJlcnJvciI6ImJhY2sifQ.TP8h8Hwh7oRpcuTPXOeqrO46sNwlwC4RLdyMtdFqZQfsS0pUT71_ljoUWq3a0o_hUjuVvPoWnDXar7o2BbLw6w
```

```json
{
  "guid": "ead4c236-bf58-58c6-a2c6-a6b28d128cb6",
  "accepted": false,
  "error": "back"
}
```

Here are my thoughs on this idea and how to implement it, feel free to make any remarks about it. JWT seems to me to be the middle ground between complexity and simplicity for a decentalized authorization system. It only requires the hosting provider to add a private key somewhere and print the pub key on the feed. Signing JWT is quick and easy and there are libraries in almost any languages.

Open Graph is a nice bonus "out of the box" for permission asker identity.

We could also make this a kind of API spec, and add more data to the token.
Maybe mimick oauth and add a scope param asking specifically for some data, permissions about the feed. (`scope="stats,edit,delete,admin"` etc)

That's a big subject and a spec of its own. That could be a nice addition but it has to be done in a way we can trust the system and all information it conveys.

This is great work, @PofMagicfingers . The use of JWT seems good and sensible, given it's based on a standard which is already there.
I'd like to go so far as to suggest that, if done correctly, this would allow podcast hosts to publish RSS feeds without email addresses altogether, and thus avoid privacy and spam issues. That, though, needs the acceptance of someone like Apple or Spotify.

Does anyone volunteer to write this up into a proposal document?  If nobody raises their hand I'll do it.  This is sufficiently complex enough to really need it's own doc in the proposal-docs folder.

I love the idea of making this easier! And I have another possible way this could be handled.
Look at how something domain-authentication works with an email service provider: add a TXT record to your DNS, service-provider then polls the domain for the change to match what it's expecting.
We could apply this same kind of claim-code approach to podcasts. It could work like this:

Directory gives the tag code to insert in the feed (more on that below).
Podcaster can either insert it themselves or the directory auto-detects the hosting provider and can use an API endpoint to prepopulate that change. For example, https://captivate.fm/claim-feed/?feedUrl={feed-URL}&claimCode={claim-code}.
Feed gets updated with the tag and the directory checks for it automatically every 30 or 60 seconds until found, or else there's a "check now" button for the podcaster.

Now where to put the tag?
I think that, ideally, it should be a separate channel-level tag, like <podcast:claim platform='podcast-directory-slug' token='495t0df9sg434t3rga432t' />.
But what about for feed-generators that aren't updated or don't support the feature? I think, like Apple Podcasts and a couple other tools I've seen, we could advise putting that token in a standard, editable RSS field, or even some kind of link or emoji/unicode character in the description/content.
This method does, however, depend on the timeliness of the feed's refreshing. If the feed comes directly from the source, then any kind of cache is probably flushed nearly immediately. But if there's a third-party service, like FeedBurner or Podcast Mirror, it can take longer for the change to show up. However, the directory could continue looking for it until found, so the podcaster doesn't have to wait around or do anything further.

@theDanielJLewis
Well, actually that's what we've done on the catalog side of podCloud at first. Podcasters could add their show to our catalog and verification was done by looking for a token inside the feed. We had many issues and support requests asking for help with this.
Most of the time podcasters didn't really knew where to put a tag in their RSS feed, or they were using a service or a plugin that didn't let them do that. We moved to just looking for the token anywhere in the feed : episode or channel descriptions... And we still had some users confused about where to add the token, when they could remove it or not, and some didn't want to clutter their description with a garbage token.
We've really "eased" catalog registration since we switched to an email based verification like Spotify.
Also, if we have to add a separate tag for each directory, that means multiple tags to maintain for a solo podcaster, a new UI to let users configure it for a hosting platform... The podcaster need to add a new token for every new platform they register to, we have to maintain a slug list.
Given my experience with that, I'd rather go with our first approch with one tag, and a back and forth between the directory and a source of authority set up in the feed.

I agree with @PofMagicfingers that the added layer of security to authenticate the callback to the service as actually being from the hosting company is warranted.  This security layer adds some complexity to implementation...but the approach seems solid.
I had thought to bring up @theDanielJLewis's idea earlier as well, but I agree with the cacheing feeds problem.  Many hosts cache their feeds for at least a few minutes, so if the solution includes delay, it lacks the smoothness that this solution is looking to create.
Want to be straight with folks in saying that I don't think this feature would be prioritized very highly on our roadmap as long as Apple / Spotify require emails in the feeds.  Obviously could be a nice improvement for the user flows of 3rd party services, but I don't see this as a huge problem that podcasters are facing / complaining to us about.  Users are used to email auth flows.  That doesn't mean this doesn't have value; just noting that this probably wouldn't be super high on the list for us in case that's useful.

Want to be straight with folks in saying that I don't think this feature would be prioritized very highly on our roadmap as long as Apple / Spotify require emails in the feeds.

This is valuable feedback also Mike. I imagine most hosts feel that way. If we do this type of tag it probably would just be a future-proofing issue that lays road instead of prompting change.

It depends, I think, how bad the spam issue becomes. If Apple walks the walk about privacy (rather than just talking about it), then they should appreciate the benefit of a better service here.

Thanks @daveajones for creating the md doc. We discussed on podcastindex.social about specifying the key algorithm used inside the tag : actually we don't need to, I checked and the algorithm type is included inside the JWT generated by the server.

👍👍

Closing this, given we chose to go with an opaque podcast:txt service.


Getting error when building: failed to extract shortcode: template for shortcode "content-stip-left" not found

Hi.
I followed the instructions for the installation on my Mac (M1) with Hugo extended installed (Hugo v0.115.2+extended darwin/arm64 BuildDate=unknown)
When I enter
hugo
to create the site I get the error
Start building sites …
hugo v0.115.2+extended darwin/arm64 BuildDate=unknown

Total in 22 ms
Error: error building site: assemble: "/Users/me/Code/Skarp/hero-theme/content/pages/about/index.md:11:1": failed to extract shortcode: template for shortcode "content-strip-left" not found

Any idea what I'm doing wrong?

Hi!
I had the same problem. I deleted the file hugo.toml from the site root directory. After that everything works.

@meggenberger I can't reproduce the issue. I can see the shortcode does exist layouts/shortcodes/content-strip-left.html
@fschimpf  I'm not sure what file you are referring too, there is not hugo.toml file.
I need more information to continue debugging.

if you copy the files over from a new hugo site, the hugo.toml file exists. I can verify that, once that file is deleted, a hugo build works

Can someone provide exact steps? I dont see a hugo.toml file. Maybe you can link to it in the repo.

Yes, it you do not need to do the init and the cp -a does not remove it, I can submit a PR to remove the README.md line


Nav-Tab ink-bar not showing properly

Bug, feature request, or proposal:
Bug
What is the expected behavior?
Nav-Tab ink-bar should work as in normal tabs.
What is the current behavior?
The ink-bar is not displayed except for the last tab. Selecting the first tab (even on fresh load) the ink-bar does not appear until the last tab is selected, then it stays there even when navigating to a differnt tab.
What are the steps to reproduce?
Stackblitz Example
What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Currently latest versions. See Stackblitz example.
Is there anything else we should know?
When changing the router empty rout redirect to the last tab, the ink-bar also appears as supposed.

Your example names three distinct elements as the same template reference rla. Try renaming each to rla1, rla2, rla3
https://stackblitz.com/edit/angular-material2-issue-mvhnaw?file=app/app.component.html

@andrewseguin Thanks and sorry


Ig opts

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[X] a bug fix (Fix #341)

Description
If the option instagram.download_images_only is true the ripper will skip videos
Testing
Required verification:

[ ] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[ ] I've verified that this change works as intended.

[ ] Downloads all relevant content.
[ ] Downloads content from multiple pages (as necessary or appropriate).
[ ] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[ ] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Coverage increased (+0.2%) to 32.033% when pulling 8d625fd92066011c021e85c02728a4c15d2255fa on cyian-1756:ig-opts into e3f88a4f5c18f4b0464935d6f966312edc7a89b8 on RipMeApp:master.


bit_cast & reinterpret warning if src->dst type not equally sized.

bit_cast & reinterpret warning if src->dst type not equally sized.
Addresses #3331
Addresses #3983

Thank you for fixing this issue quickly!


Characters with accents are not well rendered in import (in titles)

Characters with accents do not appear in titles Characters such as ' é è ê, etc. do not appear in titles. These characters are widely used in the French language.
Exemples :

As a reminder, here are the characters you can't use for titles in Obsidian :

0.0.5 has a fix which should respect any non-english characters. please test and let me know, thank you!

Thanks for the update. Problem #7 is now solved. However: characters with accents are still missing.
In my files, here for example, they are missing:

é
ê
'
I assume the same will be true for : - è


Reset language to system language on uninstall

WIP because I need to validate this, but it seems that the app can appear to fail to detect the system language if it has been installed then reinstalled if another language was set previously - because the language is saved in SecureStore.
Expected behaviour without this PR: (expected true of all supported languages, not just Spanish):

Android device settings in Spanish, Uninstall app (was set to English in app) and install again = onboarding in Spanish
iOS device settings in Spanish, Uninstall app and install = onboarding in English

Expected behaviour with this PR: after uninstall, onboarding is always in the device language if it's one of the supported languages.

@AlanSl We should also cover the case where I choose a different lang than the device's one and I opt to "leave".
PS; uninstall works 🎉