Threadsafety issue in org.jsoup.nodes.Entities

We have seen some hung processes when using our (Google's) dackka, built on Jetbrains' dokka, using jsoup.
I believe the underlying issue we're running into is in org.jsoup.nodes.Entities, where:
private static final HashMap<String, String> multipoints = new HashMap<>(); // name -> multiple character references
is static but is not threadsafe, and that this issue would be fixed by using ConcurrentHashMap there.

For reference, the relevant thread dump excerpts:

I think the dackka process was probably

4556 org.jetbrains.dokka.MainKt /buildbot/dist_dirs/aosp-androidx-main-linux-androidx/11066813/dackkaArgs-docs-public.json -loggingLevel WARN -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant

The full stacktrace for that process is pretty long but I notice that most threads have a stacktrace that looks like this:

"DefaultDispatcher-worker-1" #28 daemon prio=5 os_prio=0 cpu=243.46ms elapsed=3478.27s tid=0x00007f99a09cc450 nid=0x122d in Object.wait()  [0x00007f986edeb000]
   java.lang.Thread.State: RUNNABLE
	at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt$parseHtmlEncodedWithNormalisedSpaces$1.invoke(parseWithNormalisedSpaces.kt:25)
	- waiting on the Class initialization monitor for org.jsoup.nodes.Entities
	at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt$parseHtmlEncodedWithNormalisedSpaces$1.invoke(parseWithNormalisedSpaces.kt)
	at org.intellij.markdown.lexer.Compat.forEachCodePoint(Compat.kt:14)
	at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt.parseHtmlEncodedWithNormalisedSpaces(parseWithNormalisedSpaces.kt:19)
	at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt.parseWithNormalisedSpaces(parseWithNormalisedSpaces.kt:49)
	at org.jetbrains.dokka.base.parsers.factories.DocTagsFromIElementFactory.getInstance(DocTagsFromIElementFactory.kt:46)
	at org.jetbrains.dokka.base.parsers.factories.DocTagsFromIElementFactory.getInstance$default(DocTagsFromIElementFactory.kt:16)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.textHandler(MarkdownParser.kt:243)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.visitNode(MarkdownParser.kt:391)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.evaluateChildren(MarkdownParser.kt:408)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.evaluateChildren$default(MarkdownParser.kt:407)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.defaultHandler(MarkdownParser.kt:355)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.visitNode(MarkdownParser.kt:398)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.evaluateChildren(MarkdownParser.kt:408)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.evaluateChildren$default(MarkdownParser.kt:407)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.markdownFileHandler(MarkdownParser.kt:201)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.visitNode(MarkdownParser.kt:392)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.visitNode$default(MarkdownParser.kt:358)
	at org.jetbrains.dokka.base.parsers.MarkdownParser.parseStringToDocNode(MarkdownParser.kt:40)
	at org.jetbrains.dokka.base.parsers.MarkdownParser$Companion$parseFromKDocTag$1.invoke(MarkdownParser.kt:514)
	at org.jetbrains.dokka.base.parsers.MarkdownParser$Companion.parseFromKDocTag(MarkdownParser.kt:526)
	at org.jetbrains.dokka.base.parsers.MarkdownParser$Companion.parseFromKDocTag$default(MarkdownParser.kt:508)
	at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.getDocumentation(DefaultDescriptorToDocumentableTranslator.kt:1029)
	at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.resolveDescriptorData(DefaultDescriptorToDocumentableTranslator.kt:904)
	at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.access$resolveDescriptorData(DefaultDescriptorToDocumentableTranslator.kt:135)
	at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor$resolveClassDescriptionData$2.invokeSuspend(DefaultDescriptorToDocumentableTranslator.kt:939)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

and I notice one thread whose stack looks like this:

"DefaultDispatcher-worker-15" #42 daemon prio=5 os_prio=0 cpu=697.27ms elapsed=3478.23s tid=0x00007f9824023400 nid=0x123b in Object.wait()  [0x00007f986d6f0000]
   java.lang.Thread.State: RUNNABLE
	at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:416)
	- waiting on the Class initialization monitor for org.jsoup.nodes.Entities$EscapeMode
	at org.jsoup.nodes.Document.<init>(Document.java:26)
	at org.jsoup.nodes.Document.createShell(Document.java:52)
	at org.jsoup.parser.Parser.parseBodyFragment(Parser.java:218)
	at org.jsoup.Jsoup.parseBodyFragment(Jsoup.java:241)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser$Parse.invoke(JavadocParser.kt:465)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser.convertJavadocElements(JavadocParser.kt:474)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser.convertJavadocElements$default(JavadocParser.kt:471)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser.getDescription(JavadocParser.kt:207)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser.parseDocComment$base(JavadocParser.kt:59)
	at org.jetbrains.dokka.base.translators.psi.parsers.JavadocParser.parseDocumentation(JavadocParser.kt:52)
	at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:243)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Note: there could be other similar static-but-not-threadsafe issues, this just appears to be the one we have run into. I believe some lint tools have lint against this case; I don't know if manual inspection of the codebase for it is viable.

However, given that we observe what looks like a deadlock, the problem might not be the HashMap (which usually just gets corrupted from concurrent access), but something else.
There was a related bug in the class involving the initializers, https://github.com/jhy/jsoup/issues/1910.
The fix to that was released in 1.6.1, and we are seeing this bug in 1.6.1.
Our exception looks similar to this bug in a different library, given 	- waiting on the Class initialization monitor for org.jsoup.nodes.Entities$EscapeMode, and the issue being related to static initializers ( private static void load is a static initializer).
I think this suggests that https://github.com/jhy/jsoup/commit/b6f652cef6dca7904d8ea0b971e4fc3812530015 might have just converted the NullPointerException case to a deadlock somehow?

Actually, upon inspection while our dependency has updated to 1.6.1, we haven't updated to the version of the dependency that has 1.6.1.
I will see if taking up  that fix fixes our issue.

For some context - the static hashmap multipoints in Entities is write once, read many. I don't immediately see how using ConcurrentHashMap would help anything here. We don't want to concurrently write to it. When the class is initalized, the EscapeMode enums in their static initialization will serially load the entities from packed data into the hashmap. Thereafter there are no writes to the map, and so multi-thread reading is safe.
As far as I can see I don't believe this is related to #1910 as that was a straight single-thread path to a null pointer.
And I can't see a deadlock path in those stack traces (or in the code). Do you have more thread dumps that shows two threads are waiting on each other?
My expectation for this is that if you have many threads running, and then they all suddenly want to load Entities for the first time, there will be a race to lock the static initializer, and one thread will win. It will quickly (like, a few millis) parse the entities data and write to the hashmap, then unlock and the other threads will resume. The times you have in that trace look awful!
Is something else causing the Entities to be evicted from permgen? Does this lock happen at startup or after running for some time? How many concurrent threads are there?

That they are waiting on different initializers is interesting and I wonder if there's a path there?
at org.jsoup.nodes.Document$OutputSettings.<init>(Document.java:416)
- waiting on the Class initialization monitor for org.jsoup.nodes.Entities$EscapeMode
at org.jsoup.nodes.Document.<init>(Document.java:26)

at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt$parseHtmlEncodedWithNormalisedSpaces$1.invoke(parseWithNormalisedSpaces.kt:25)
- waiting on the Class initialization monitor for org.jsoup.nodes.Entities
at org.jetbrains.dokka.base.translators.ParseWithNormalisedSpacesKt$parseHtmlEncodedWithNormalisedSpaces$1.invoke(parseWithNormalisedSpaces.kt)

@owengray-google do you have any further info for this? Without a way to repro I haven't been able to make any progress here.

Androidx is open-source, but this is a low-probability flake, less than 1%.
We recently tried to force the version we use to 1.16.2, but that landed shortly before thanksgiving when no builds ran, and we want to wait a bit to make sure this is still happening.

Thanks for the update. It's interesting. I have been able to craft a kind-of repro by adding a Thread.sleep(2000) as a static initializer in each of Entities and OutputSettings. And then a runner which spawns a few threads which run a Entities.escape and a Document.parseBodyFragment. It will threadlock in a similar manner to those threads above.
However, I find that only happens when I rollback the changes for #1910.
I can take a pass on refactoring to further decouple OutputSettings and Entities during initialization. Would you be able to evaluate a snapshot / branch version of jsoup with a tentative fix?

We recently tried to force the version we use to 1.16.2, but that landed shortly before thanksgiving when no builds ran, and

Can you confirm what version you are running that produced those dumps?

at org.jsoup.parser.Parser.parseBodyFragment(Parser.java:218)

That line must be from a version older than 1.16.2, because I added some lines for namespaces at the top of Parser which pushes it to line 227.
Is it possible that you are running a version earlier than 1.16.1?

Ping @owengray-google, are you able to check that?

Sorry about that. It turns out that our upstream dependency is jarjaring the old version of jsoup, so we're trying to upgrade to a newer version of it, but the version with a newer jsoup also includes an upgrade to the Kotlin K2 compiler that has a lot of breaking changes, so it's taking a bit.

Hi @owengray-google - just checking in. Is this still occurring with current versions of jsoup for you?

@owengray-google could you explain the status please. I don't want to drop it if there's still an underlying issue. Great if the updated version means that it no longer manifests.

That's great, thanks for confirming. And no trouble.

With b731fd772bb4c313e6582e1bd3e6298cd8ccec19 I have further decoupled OutputSettings and Entities.


Experiment with single Append Prometheus method is blocking us or not.

Ref: https://github.com/prometheus/prometheus/pull/8489#issuecomment-781442995

Did we already start working on this? Happy to help with it!

Nope 🤗
I think essentially we need to upgrade to latest Prometheus and check if we can, with the totally new Appender API!

Nope 🤗

I mean, nope that someone started working on it, feel free to help 🤗


add vector log shipper to clusters

A vector log shipper which ships into the logs.t2.stackable.tech cluster should be present on each T2 cluster unless opted out in the cluster definition.

Idea from @razvan: make it possible to add metadata from Jenkins (who started the job?) to the log entries.


Explicit import of the debug component

Due to the export of the debug component in the editor, the consuming app also imports modules only related to the debug component for no reason. The solution was to not export the debug component. The plugins that want to use the debug component need to explicitly import it first. This PR does that. Explicit importing is needed for ember-rdfa-editor v0.50.0-beta.8 and onward, but the explicit import won't break on older editor versions.

Sorry, I pulled a sneaky, this is already done
https://github.com/lblod/ember-rdfa-editor/pull/220/files


Fix database locks

We forgot to close the connection most of the time, this caused #52 and made it hard to fix #51

It still doesn't work for me, I get the same error as before when trying to create a second user. :/


Information on key material storage?

Can there be more information on key material storage both on the client side and the AD side? It looks like the public key is stored on the computer object in the msDS-KeyCredentialLink attribute.

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

ID: 116f2435-8627-2501-f544-a80daee6b45d
Version Independent ID: 85bb9ed3-f106-5cdc-f8c9-4efa018929a6
Content: Domain-joined Device Public Key Authentication
Content Source: WindowsServerDocs/security/kerberos/domain-joined-device-public-key-authentication.md
Service: unspecified
GitHub Login: @michikos

We can ask our engineering partners for more info. For better context, is there a particular problem you are trying to solve or something you are trying to get done?

Closing this issue due to inactivity.  Please reopen if you have any further questions around this issue.


Fix play button functionality

Fix the play button so the speech synthesis starts when clicked

Should take ~1 hour


EXC_BAD_ACCESS when BottomSheet show

First of all, thanks for making this great library!
Describe the bug
This EXC_BAD_ACCESS is only happening on my iPhone 7 (15.7.8). I've tried all the possible versions of the simulator and it doesn't give me any problems. It only gives me problems on my real iPhone.
At first it worked perfectly on my iPhone. I added a few more things to the view and already the EXC_BAD_ACCESS started to occur when trying to open the BottomSheet. I have removed all the changes I made, but it still gives me the same error, however in the simulator it has always worked fine for me.
I'm going crazy, any help?
My Code
.bottomSheet(bottomSheetPosition: self.$bottomSheetPosition, switchablePositions: [
                    .dynamic,
                ], headerContent: {}) {

                    if showMatchResult {
                        matchResultView
                    } else {
                        publishCommentDialog
                    }

                }
                .showDragIndicator(true)
                .enableContentDrag()
                .showCloseButton(false)
                .enableSwipeToDismiss()
                .enableTapToDismiss()
                .enableBackgroundBlur(true)
                .backgroundBlurMaterial(.systemDark)
                .onDismiss {
                    selectedImage = nil
                    viewModel.comment = ""
                    viewModel.image = nil
                    showMatchResult = false
                }

I have this EXC_BAD_ACCESS

Target version

Environment: [iPhone real]
Version: [15.7.8]

I honestly have no idea what is happening there and I tested it, and I also can't reproduce this issue; I tested it in the simulator and everything works fine and I don't have a iPhone 7 on hand. It also sounds really specific, so I have to say that I will close this, as im not sure if it is related to this library at all and even if so, there would be nothing I can do about it. If you find more information or can identify its source please keep me updated!


Q: Tutorial

Could you make a tutorial out of the content of this repo? How to assemble each part step by step.

Hi @bm-stschneider - thanks for your interest. That's a good idea. I am currently tied up on another project, so it may be a while before I get to it. If you have any spefic questions in the meantime, feel free to ask

It is mainly the approach of building the parts and how to put them together. I'm thinking about somehow to use it to get rid of twig and have some kind of replacement so the frontend can manage the BFF part instead of the backend team.
So I'm really interested in the whole package :P

@bm-stschneider - so all of it :) I'll try to put some documentation together over the holidays, or maybe start a github-wiki and start the process of building that out. But, in short, some of the main structual goals were/are:

Combining typescript components to accomodate the main produciton needs, such as logging, migrations etc
Reuse code between the front and the backend where possible (to keep it DRY)
Build out a vertical slice for basic entity CRUD operations that required as little code on the part of the consumer as possible
Take a "security first" approach - so that authorization code has to be provided for all entity access (and when not present, access is denied)

Hope that helps!


LoMap marker categories

Categories for the markers of our LoMap apps

Hello everybody, after talking with some of our teammates, such as @gonzalo-rr, I thought that we should define a concrete number of categories (and the values we'll save) in our PODs, so when we change from one app to another, the filters do still work.

As for now, in my team we have defined a total of 11 categories and one for the rest, called others, so in case anyone has the functionality which gives the user the possibility of adding new categories, the marker will still be shown after using the filters, the categories we have defined are:

Bars.
Restaurants.
Shops.
Supermarkets.
Hotels.
Cinemas.
Academic institutions.
Public institutions.
Sports clubs.
Museums.
Parks.
Others.

Right now, we just have this (which I think are a lot), but it could be better if we decide how to go through this and everyone can have the same number of categories and store the same value in our PODs.

If you have any better idea or you think of another category we should be adding, I'd be thankful if you share it and we can have this functionality finished as soon as its possible.

Omar Teixeira.

I like those categories, but in the user pod I think that must be stored in singular and camelcase like:

bar
restaurant
shop
supermarket
hotel
cinema
academicInstitution
publicInstitution
sportsClub
museum
park
other

And I also woulds add a category called landscape
Tell me what you think

Great @gitblanc! I also think we should add categories, such as the one you suggested.

Omar Teixeira.

Hello,  the ones you have proposed seem very correct to me.
I would also add:

clinic/hospital
-policeStation
-transportCentre (including with this airports, stations...)
-entertainment

Another issue would be whether we store the category names somewhere in the pod itself or commit to using those and retrieving them normally from point.
It is also important to decide if the categories are going to be fixed or are going to have modifications, in order to be able to put certain filters and not have to do them dynamically each time points are loaded (checking each load to see what categories there are and creating accordingly )

@uo282422

It is also important to decide if the categories are going to be fixed or are going to have modifications, in order to be able to put certain filters and not have to do them dynamically each time points are loaded (checking each load to see what categories there are and creating accordingly )

@uo282422 I believe that categories should be decided, fixed and, at least in the short term, not modified. That being said, I don't see why adding or removing categories would be a problem.

Another issue would be whether we store the category names somewhere in the pod itself or commit to using those and retrieving them normally from point.

Regarding this @uo282422 comment, I understand that the allowed categories are part of the specification, not the user's data, so it doesn't make sense to store them in the user's POD. Additionally, if we were to add it to the user's POD, the user could delete or modify the data. I came up with two solutions, each with their own pros and cons:

Agree to use certain categories and hardcode them into the application's code. This is simple, but violates the open-closed principle if we want to modify the categories of the common specification.
The other option is to create a single source of truth that everyone can consult to access the information. This option allows making changes to the categories to be transparent to the specific implementation of each group. One possible option would be to have a publicly readable POD, but without write permission.

I think that we can set a predefined categories (the ones we talked about @Omitg24 and me before). So if our app doesn't detect the new category that your app added would be set as other. It's not a big problem I think. In my case if my app doesn't detect the categories that I contemplate, they treat them like other.

I think that we can set a predefined categories (the ones we talked about @Omitg24 and me before). So if our app doesn't detect the new category that your app added would be set as other. It's not a big problem I think. In my case if my app doesn't detect the categories that I contemplate, they treat them like other.

Ok, I see it very correct. How about adding those categories I've said before (clinic, policeStation, transportCentre, entertainment)? They are very common places on a map, wherever you go.
-@uo282422

ok, I'm gonna set the common categories top recognize:

OFFICIAL CATEGORIES recognised by LoMap

bar
restaurant
shop
supermarket
hotel
cinema
academicInstitution
publicInstitution
sportsClub
museum
park
landscape
hospital
policeStation
transportCentre
entertaiment
other (any other category)


Add a license statement to README and add LICENSE-* files

Add a license statement to README and also add LICENSE-* files to the root of the repository.
I've copied the license files from the rustc repo. The statement in README bases on the statement from the rfcs repo.
I don't want this to be merged until at least a large portion of people has signed off in the issue, that's why it's still a draft.
issue with the sign-offs: #175
zulip topic.

Thank you for driving this @est31!

@calebcartwright thanks for merging. We are now at the last step: asking the authors of the currently open PRs who haven't given their consent yet, as they predate this PR being merged.
I would love to get a statement of agreement from:

[ ] @camsteffen
[ ] @varkor
[ ] @yaahc

To agree to the licensing terms, please comment in this thread with:

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.

Thank you! :sparkling_heart:

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option.


JupyterHub Server

Success on:

[x] JupyterHub server exists and is stable.
[x] Anyone can go and spin up a JupyterLab instance
[x] JupyterLab starts in the browser with the latest versions of mantaray notebooks
[x] Notebooks start with correct dependencies installed
[ ] Tested scaling, management of old instances, etc.
[ ] Security/cost analyisis

Done for Trilobite, released.


[test] flaky testcase TestCRIImagePullTimeout/HoldingContentOpenWriter

Description
Failed in https://github.com/containerd/containerd/pull/8023
URL: https://api.cirrus-ci.com/v1/task/4947000173527040/logs/cri_integration.log
log_hook.go:47: time="2023-01-29T04:28:26.110951886Z" level=debug msg="event published" func="exchange.(*Exchange).Publish.func1" file="/root/go/src/github.com/containerd/containerd/events/exchange/exchange.go:115" ns=k8s.io topic=/snapshot/remove type=containerd.events.SnapshotRemove
    default:     image_pull_timeout_test.go:196:
    default:         	Error Trace:	/root/go/src/github.com/containerd/containerd/image_pull_timeout_test.go:196
    default:         	Error:      	Received unexpected error:
    default:         	            	failed to pull and unpack image "ghcr.io/containerd/volume-ownership:2.1": context canceled
    default:         	Test:       	TestCRIImagePullTimeout/HoldingContentOpenWriter
    default: === CONT  TestCRIImagePullTimeout/NoDataTransferred

Steps to reproduce the issue
Unknown
Describe the results you received and expected
Should be happy.
What version of containerd are you using?
main branch
Any other relevant information
No response
Show configuration if it is related to CRI plugin.
No response

REF: https://api.cirrus-ci.com/v1/task/5764106930618368/logs/cri_integration.log


Processing data in models

Summary
Create models

Create model classes for all entities as shown in the ERD diagram.
Set up associations between models.

Use models to insert data

Familiarize yourself with 'rails c' command.
Open rails console for your project.
Create at least one user by running the following code:   first_user = User.create(name: 'Tom', photo: 'https://unsplash.com/photos/F_-0BxGuVvo', bio: 'Teacher from Mexico.')
   second_user = User.create(name: 'Lilly', photo: 'https://unsplash.com/photos/F_-0BxGuVvo', bio: 'Teacher from Poland.')

Create at least 4 posts written by one of the users you created by running the following code:   first_post = Post.create(author: first_user, title: 'Hello', text: 'This is my first post')

Create at least 6 posts comments for one of the posts you created by running the following code:   Comment.create(post: first_post, author: second_user, text: 'Hi Tom!' )

Use other CRUD methods to find, update and delete entities.

Create custom methods
Your models should include some additional methods.

Users

A method that returns the 3 most recent posts for a given user.

Posts

A method that updates the posts counter for a user.
A method which returns the 5 most recent comments for a given post.

Comments

A method that updates the comments counter for a post.

Likes

A method that updates the likes counter for a post.

@mikethreels Thank you for your awesome suggestions. I'll implement them right away.

@mikethreels Thank you for your review.

Note: All optional & required changes have been implemented.


Confusing use of both storage-opts and storage-opt

A couple of pages contain both 'storage-opts' and 'storage-opt'. Are both correct?  Anyway, it's confusing to see both spellings since there's no doc on they being aliases of each other.
File: engine/reference/commandline/dockerd.md and
storage/storagedriver/device-mapper-driver.md
Kind regards
Erik S

Thanks for sharing the issue. The content is maintained in an upstream repo.
My interpretation is that storage-opts is a key in files and storage-opt is a flag in the CLI. If that sounds wrong or you'd like to get an answer from the source, please help create an issue in the source repo at https://github.com/docker/cli/tree/master/docs/reference/commandline


Add message to formatter SyntaxError

Summary Add a static string error message to the formatter syntax error so we can disambiguate where the syntax error came from
Test Plan No fixed tests, we don't expect this to occur, but it helped with transformers syntax error debugging:
Error: Failed to format node

Caused by:
    syntax error: slice first colon token was not a colon

Current dependencies on/for this PR:

main

PR #5881   👈

This comment was auto-generated by Graphite.


SqlException: Invalid object name 'Schedule'.

https://github.com/aspnet/Docs/blob/5f80e2d66d23aa158672f8c651924a313d51f344/aspnetcore/tutorials/razor-pages/razor-pages-start/sample/RazorPagesMovie/Pages/Schedules/Index.cshtml.cs#L28
HI, I'm Sorry!
But, I heve some problem in my App :( I need some help.
System.Data.SqlClient.SqlCommand+<>c.b__108_0(Task result)
RazorPagesMovie.Pages.Schedules.IndexModel+d__10.MoveNext() in Index.cshtml.cs
            Schedule = await _context.Schedule.AsNoTracking().ToListAsync();

Indeed, the created migration did not add the table to the database. I had to completely delete the database and create it again. Thanks for the help, I need to be more attentive🤔


Support integer literals of different radices and decimal numeric literals

This PR adds the support for various literals.

Hexadecimal integer literals: 0xCAFE, etc.
Octal integer literals: 0o4567, etc.
Binary integer literals: 0b0010, etc.
Decimal numeric literals in floating-point style: 1e100, 3.141592653589793, etc.
Support separators to be interleaved in all digits: 0x0010_1101, 12_34.56_78E+9_0, etc.
Lastly, the support for string escapes \\, \b, and \f. (I forgot this so it's not indicated by my commit messages. 🤦♂)

[!NOTE]
This PR does not support numeric literals starting with decimal points, for example, .5, because it conflicts with selecting tuple indices. We can check the accumulated tokens to determine the meaning of tokens such as .1, but I don't have time to summarize various situations and add tests right now, so I will leave it for future work.

6182f20 failed for some reasons. Strange.

6182f20 failed for some reasons. Strange.

Random-happened time-out problem lol.


GUI: list but grey out devices incompatible with address verification

Some hardware signing devices do not support address verification via USB. Currently post #819 those would not be listed when a user clicks on "Verify address on hardware device". This can be quite confusing for the user. Instead we should list them but grey them out. Maybe with a tooltip telling them to derive it manually on the device themselves using the provided derivation index.
We could also grey out devices which aren't part of our descriptor, but that should be part of a wider issue to do so in all cases (signing, desc import, etc..). See https://github.com/wizardsardine/liana/issues/831 about this.

i think we should grey out, but as specter has a manual address verification feature, we should display the derivation index of each address on the receive page

The derivation index is displayed on the address verification screen precisely for this purpose.

on the UX POV, isn't it better if we avoid 2 click there?

maybe we can display it here?


The type 'ILoggerFactory' exists in both 'Microsoft.Framework.Logging.ILoggerFactory, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' and 'Microsoft.Framework.Logging.Interfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null

in project.json
if i use:
"Microsoft.Framework.Logging": "1.0.0- * ",
"Microsoft.Framework.Logging.Console": "1.0.0- * "
instead of:
"Microsoft.Framework.Logging": "1.0.0-beta2",
"Microsoft.Framework.Logging.Console": "1.0.0-beta2"
i'm getting error:
The type 'ILoggerFactory' exists in both 'Microsoft.Framework.Logging.ILoggerFactory, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' and 'Microsoft.Framework.Logging.Interfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null

@vijayantkatyal are you using just the latest NuGet packages, or also the latest XRE/KRE? You can't mix and match builds, so if you're using beta2 NuGet packages, you have to use the beta2 XRE/KRE. If you want to use the latest NuGet packages, get the latest XRE as well.

all of nuget packages and kre version are set to beta2 version.
i think when i use * instead of beta2, this will fetch new versions(beta3, beta4) instead of beta2.
there should be a way to check the compatibility.

Correct, * will pull in the absolute latest, which is a lot newer than beta2. These compat problems are mostly a problem while the whole project is in pre-release. Once it hits the stable version, these types of issues will be much rarer.

:+1:


change default value of accepted_clock_skew_seconds to 300 ?

one of the changes introduced by PR #82 was to change the default value of accepted_clock_skew_seconds from 0 to 300 (see https://github.com/italia/spid-php-lib/pull/82/files#diff-4decba2f885c92c26c0cc126383dcafaR21)
it is not clear why we should do that
@i1990jain can you comment ?

It is the time in seconds skew that is acceptable between client and server when checking OnBefore and NotOnOrAfter. I think it will be better to at least make it to 300 so that in case the user doesn't set it in the config. It will be taken as 300 rather than 0, given the processing time for higher spid levels.

Yes, it's also used to validate IssueInstant.
The skew is there to allow tolerance for clock misalignment between servers (SP and IdP). The best practices for server admin include running an NTP daemon which will keep the skew at such low levels (i.e. less than 50 ms) that it's comparable with the network delays.
AFAICT in the SAML ecosystem opinions about what is a reasonable clock skew differ:

https://github.com/onelogin/ruby-saml#clock-drift (1 s)
https://github.com/simplesamlphp/simplesamlphp/blob/master/config-templates/config.php#L213 (180 s)

My opinion is that the defaults we provide should steer library users (SP implementers) towards working in accordance with the best practices. If we provide as default a non-zero skew, we're relaxing security by default. So I believe the default skew should be zero. Users can increase it if they wish, but it's their responsibility.

I agree with you given the point of view presented regarding implementers who have the possibility to skew it accordingly


Build errors on nightly

The Component API has changed slightly. We'll need to change the way we inject services.
Here is an example:
https://github.com/DenisKolodin/yew/blob/master/examples/dashboard/src/lib.rs

Narrowed this to fetch/http requests, and the callback we need to pass into fetch. The signature for that closure is giving me some trouble.

I think we need to fold asynchronous requests back into the apps main event loop, perhaps in the manner shown here:
https://github.com/DenisKolodin/yew/blob/master/examples/npm_and_rest/src/lib.rs#L53-L59

Note: I was getting a panic at compile time in ui until I cloned, built and cargo installd the latest cargo-web. Hopefully a release is cut soon.


lmdbxx: change repo location

Motivation for this change
Owner changed from bendiken to drycpp
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

Success on x86_64-linux (full log)
Attempted: lmdbxx
Partial log (click to expand)
these paths will be fetched (0.01 MiB download, 0.04 MiB unpacked):
  /nix/store/dp91xb7blvhlymkwanrilgb879v4cdrk-lmdbxx-<IP_ADDRESS>
copying path '/nix/store/dp91xb7blvhlymkwanrilgb879v4cdrk-lmdbxx-<IP_ADDRESS>' from 'https://cache.nixos.org'...
/nix/store/dp91xb7blvhlymkwanrilgb879v4cdrk-lmdbxx-<IP_ADDRESS>

Success on aarch64-linux (full log)
Attempted: lmdbxx
Partial log (click to expand)
installing
install flags: SHELL=/nix/store/fqm2x6kiay1q4vg7pqp4wp17bdijlyc3-bash-4.4-p23/bin/bash PREFIX=\$\(out\) install
mkdir -p /nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>/include
install -c -m 644 lmdb++.h /nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>/include
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>
checking for references to /build in /nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>...
/nix/store/l2hxc60p4qvkwj5wbbmb19sr331bnycb-lmdbxx-<IP_ADDRESS>


updates for media references -5.

If this PR needs approval, or if the commits need to be pulled into the private repo, contact @ManikaDhiman. Thanks.

#assign: @ManikaDhiman
@ManikaDhiman

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@LouisBerner - let me know if this is ready for review / merge by taking it out of draft mode and tagging me in a comment. Thanks.

@Jak-MS: This PR is ready to merge. #sign-off

@Jak-MS: This PR is ready to merge. #sign-off

will merge. note that logos and diagrams generally shouldn't have a gray border (which is for screenshots).


ci: merge staging to master

This is an automatic PR generated by the pipeline CI/CD. This will be automatically fast-forward merged if successful.

Pipeline Attempt on 921174870 for 12538e579f70a0819a02985057a4105cb1b969a2
https://gitlab.com/MatrixAI/open-source/js-table/-/pipelines/921174870

Pipeline Succeeded on 921174870 for 12538e579f70a0819a02985057a4105cb1b969a2
https://gitlab.com/MatrixAI/open-source/js-table/-/pipelines/921174870


Update create-a-phone-system-call-queue.md

Legacy Portal NOT support Voice Service — Toll-Free

Microsoft Teams admin center > Voice > Phone numbers > ADD >, and the Number type will be listed as Service — Toll-Free

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

Thanks @JohanFreelancer9

@CarolynRowe PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


add nginx snippet for extra tor cert

I recall having commented on an issue/a question recently but can't find it right now.
The reason that e.g. LNbits is listening on both 5001 and 5003 with TLS is that in some cases using separate certificates might be useful.
With this PR the default is that there are two symlinks for each of the cert+key pairs which point to the same files (the LND generated cert+key). By pointing the /mnt/hdd/app-data/nginx/tor_tls.cert and /mnt/hdd/app-data/nginx/tor_tls.key links to e.g. the right files in /mnt/hdd/app-data/letsencrypt/certs/ I can use a different domain/SAN to access the tor hidden service.
Makes sense?

So the procedure would be this
Step 1)
Get the certificate using ACME DNS-01 (DuckDNS supports this):
export DuckDNS_Token="<redacted>"

Subdomain="your-name"
FQDN="${Subdomain}.duckdns.org"

acme.sh --issue --dns dns_duckdns -d ${FQDN} --keylength ec-256

sudo rm /mnt/hdd/app-data/nginx/tor_tls.cert
sudo rm /mnt/hdd/app-data/nginx/tor_tls.key

sudo ln -s /mnt/hdd/app-data/letsencrypt/certs/${FQDN}_ecc/fullchain.cer /mnt/hdd/app-data/nginx/tor_tls.cert
sudo ln -s /mnt/hdd/app-data/letsencrypt/certs/${FQDN}_ecc/${FQDN}.key /mnt/hdd/app-data/nginx/tor_tls.key

sudo nginx -t
sudo systemctl restart nginx

Step 2)
Setup the IP2Tor subscription to the onion address (e.g. address: sudo cat /mnt/hdd/tor/lnbits/hostname  and port 443 for LNbits).
Step 3)
Point the A-Record for your-name.duckdns.org to the IP2Tor bridge host IP.
Tor_Port=5003
Bridge_Host_IP=$(cat /mnt/hdd/app-data/subscriptions/subscriptions.toml | grep -B 20 ":${Tor_Port}" | grep -e "^ip" | sed 's/[ "]//g' | cut -d"=" -f2)
echo url="https://www.duckdns.org/update?domains=${Subdomain}&token=${DuckDNS_Token}&ip=${Bridge_Host_IP}" | curl -k -K -

@rootzoll should we make a FAQ entry out of my last comment here?

@frennkie I try to automate this and put this into the subscription implementation

@frennkie if I use the ACME script that gets installed in /home/admin/.acme.sh the certs dont get stored in /mnt/hdd/app-data/ but in /home/admin/.acme.sh/ ... do I need to change a path or something?

@frennkie I was able to setup a duckdns lets encrypt thru my IP2TOR bridge and the start site of LNbits showed up :) But then I wanted to create a wallet with LNbits and firefox gave me this error:

I guess that's the same thing I ran into. LNbits strips the port away: https://github.com/lnbits/lnbits/pull/51

do I need to change a path or something

Ah.. Yes.. I forgot that.. You need to include one or two parameters.. You can refer to the crontab entry for the syntax.

@rootzoll Not sure whether the home part is needed - but config-home refers to the dir with the config (/mnt/hdd/app-data/letsencrypt/account.conf):
/home/admin/.acme.sh/acme.sh --home "/home/admin/.acme.sh" --config-home "/mnt/hdd/app-data/letsencrypt" --issue --dns dns_duckdns -d ${FQDN} --keylength ec-256


Which is the 'true' Zero category?

Consider the following:
  Zero′ : Category o ℓ e
  Zero′ = record
    { Obj = Lift o ⊥
    ; _⇒_ = λ _ _ → Lift ℓ ⊤
    ; _≈_ = λ _ _ → Lift e ⊤
    ; id = lift tt
    ; _∘_ = λ _ _ → lift tt
    }

  Zero′-⊥ : Initial
  Zero′-⊥ = record
    { ⊥ = Zero′
    ; ! = record
      { F₀ = λ { (lift x) → ⊥-elim x }
      ; F₁ = λ { {A = lift () } }
      ; identity = λ { {A = lift () } }
      ; homomorphism = λ { {()} }
      ; F-resp-≈ = λ { {()} }
      }
    ; !-unique = λ f → record
      { F⇒G = record { η = λ {()} ; commute = λ { {()} } }
      ; F⇐G = record { η = λ {()} ; commute = λ { {()} } }
      ; iso = λ ()
      }
    }

which shows that Agda is just as happy with this definition of 'the' initial object of Cats. This feels vaguely suspicious. What am I missing?

Update: I can complete the proof that Zero and Zero′ are strongly equivalent. So I guess nothing is amiss after all. Nevertheless, I continue to not quite understand what's going on.

initial objects are unique only up to isomorphism, so strongly equivalent should be an evidence of that.

Categorically-speaking, I understand that. I guess the question I'm asking is much more of a CS question, since the difference seems to rely on call-by-value (i.e. forcing some of the ⊥ types to reveal themselves as uninhabited).
It's still a little odd to me that, once Obj is empty, you get a 'choice' of what to stick in for Hom and that choice does not actually matter.

It's still a little odd to me that, once Obj is empty, you get a 'choice' of what to stick in for Hom and that choice does not actually matter.

I think @ppedrot may have something to say about this.

Since there is no code to fix related to this issue, I'll close it, even though I feel that there is still a question to be answered.


Updating protos to latest, adjusting examples where necessary

Latest protos added import of protoc-gen-openapiv2/options/annotations.proto.
Adjusted examples to incorporate this change.

Thank you @aamirbutt. I have rebased to main and addressed your comments.


forego

It seems that there might be a problem with how forego deals with the Procfile and nginx.  nginx at startup will fork itself to create a daemon process which in turn will cause the parent process to exit.  So the parent is replaced by the child which in turn will dup the stdout and stderr to /dev/null. However forego is unaware of this logic and interprets the parent shutting down as a signal to restart it. So when the parent exits forego will restart the parent process.  I feel this is not required and causes some issues during startup.

It should be run with daemon off;


PIP-19: Initial implementation of Pulsar SQL

Motivation
We are trying to create a method in which users can explore, in a natural manner,  the data already stored within Pulsar topics.  We believe the best way to accomplish this is to expose SQL interface that allows users to query existing data within a Pulsar cluster.
Modifications
Add a module for pulsar sql.  Added two submodules underneath. One containing the code for the presto pulsar connector which will be the backbone of pulsar sql.  The other containing a mojo to build the presto-pulsar connector plugin so that you can deploy to an existing presto cluster.
This is only the initial implementation of Pulsar SQL and the presto pulsar connector.  We can iterate on the design and implementation until we think its is mature.
The final goal is to push the connector into the actual presto github repo.
I will add documentation on how to build the connector plugin and deploy it with an existing presto cluster
For more about this please read the Pulsar SQL Design doc:
https://docs.google.com/document/d/1t4xp91kalnMGRVcOXqgfuv1sq4vH7eHPR_ALOa0yk1Y/edit?usp=sharing
This is the implementation for PIP-19

rerun integration tests

rerun cpp tests

rerun cpp tests

rerun cpp tests

rerun cpp tests

rerun integration tests

rerun cpp tests

rerun java8 tests

rerun integration tests

@merlimat @srkukarni @jerrypeng : since this is an initial change for Pulsar SQL, if there is no major concerns, I would suggest moving forward with merging this PR. so once it is merged, other stuffs can happen in parallel, such as packaging, integration tests, documentation, release plan and such.


Topic refactor

Add namespace
Revisit cameras, users , tags, etc
Thoughtline MVP
(Nuno and Anthony)

CLosed in #652


Raise an error on missing distributed seed

close https://github.com/huggingface/datasets/issues/5696

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


[ENH update viz]

Codecov Report
Attention: 12 lines in your changes are missing coverage. Please review.

Comparison is base (f31381a) 74.87% compared to head (2e6926c) 74.84%.

Files
Patch %
Lines

cohort_creator/_utils.py
50.00%
10 Missing :warning:

cohort_creator/plotting.py
0.00%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #131      +/-   ##
==========================================
- Coverage   74.87%   74.84%   -0.04%
==========================================
  Files           7        7
  Lines         776      783       +7
==========================================
+ Hits          581      586       +5
- Misses        195      197       +2

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


Setting up the Kanban board

Link to the project's repo

https://github.com/jlvFlores/JavaScript-Group-Capstone/projects/1

Team members

Jose Luis Vazquez Flores
Néstor Fabián Oro Álvarez

Hi team,
✔ Status: APPROVED 🏆 🎉 🎊
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights

All cards were assigned 👍

Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Allow to move quick open and quick input

I'd like to move down the command palette (toggled by ctrl+shift+p / ctrl+p) to make the list center of the whole window (also center of the whole screen), so that I don't need to raise my head and adjust my glasses to see it clearly. The result might be like this:

Maybe I can achieve the same effect by creating a new theme, but it seems too heavy to apply an new theme.

NEED THIS


response(Post::paginate()); do not work

Get Call to a member function toArray() on array
In controller
    public function index()
    {
        //
        return response(Article::paginate());
    }

api.php
Route::middleware(['ApiRequest', 'ApiResponse'])->get('/articles', 'ArticleResourceController@index');

Wrap with Resource work fine
php -v
 7.3.7-2
Laravel Framework 5.8.30
            "name": "stephenlake/laravel-shovel",
            "version": "v2.1.1",

Error at stephenlake/laravel-shovel/src/Http/Middleware/ApiResponse.php line: 61

Thanks for the report. Added unit tests to cover this. Please update to 2.1.2.


What format is the userPassword stored and how can I configure it?

I would like to know the format in which userPassword is stored and how can I change it e.g., how can I tell it to store userPassword as salted SHA256

If you want SSHA256, you would need to load the pw-sha2 contrib module, and then set the password hash to be {SSHA256}.  Unfortunately, this docker image seems to depend on a library that doesn't implement proper password changes, so the server side hash setting is currently ignored.
OpenLDAP's default hashing mechanism is {SSHA}

Your question seems to have zero to do with this issue and be utterly unrelated.  If you need help understanding how LDAP functions in general, I would utilize existing resources.  For example, you could sign up to the<EMAIL_ADDRESS>email list and ask your question there, where it would be much more appropriate as your question is not specific to Osixia.

@quanah  - Thanks for the response.
To be more clear, I was having issue on changing the ldap user password in osixia/openldap docker container. So,I was going through some already existing issues, to find a suitable match and ask my query rather than creating a new duplicate issue if it is already existing.
I understand that this issue is all about ldap user Password format, and not changing the ldap user password.
Will take a note next time before raising queries on existing issues.
And I got the answer myself on how to change the ldap user password for the ldap user created inside the  osixia/openldap docker container and got it working now.  .

@premaind ah ok.
As an aside, I would note that the latest OpenLDAP release includes a new user password hashing mechanism, argon2.


Include spike_train_synchrony in the init of elephant

This fixes an issue where
import elephant

did not automatically import the spike_train_synchrony module reported by @essink .

Coverage decreased (-0.09%) to 87.221% when pulling 6ccfa19a061fc9e7782fc01f78b0e8eed2905c60 on INM-6:fix/import_spike_train_synchrony into b384a4f8474d573b53d11c4cdf0ec18002c72782 on NeuralEnsemble:master.


Expose protocol factory and logger so ThriftProcessor can be used directly by 3rd party code

Requirement - what kind of business use case are you trying to solve?
Expose ways to get protocolFactory and logger to leverage ThriftProcessor by 3rd parties.
Problem - what in Jaeger blocks you from solving the requirement?
While building a Jaeger receiver for OpenCensus Agent I can leverage much of the code already exposed by Jaeger (see below). However, since Jaeger uses Thrift and Zap logger from vendor it is not possible for a project to provide either the protocol factory or zap logger by direct importing either one.
// Run starts the Jaeger interceptor, i.e.: mimicks the Jaeger agent, on the given port.
func Run(cfg *Config, sr spanreceiver.SpanReceiver) (func() error, error) {
	transport, err := thriftudp.NewTUDPServerTransport(cfg.Address)
	if err != nil {
		log.Fatalf("Failed to create UDP Thrift transport for Jaeger. Error: %v", err)
	}

	srv, err := servers.NewTBufferedServer(transport, cfg.MaxQueueSize, cfg.MaxPacketSize, nil)
	if err != nil {
		log.Fatalf("Failed to create Thrift buffered server for Jaeger. Error: %v", err)
	}

	protocolFactory, ok := app.GetProtocolFactory(cfg.Protocol) // <- This actually is what is missing.
	if !ok {
		log.Fatalf("Invalid protocol %q for Jaeger.", cfg.Protocol)
	}

	logger, err := app.GetDefaultLogger() // <- This actually is what is missing.
	if err != nil {
		log.Fatalf("Failed to create logger for Jaeger: %v", err)
	}

	handler := &jaegerHandler{spanSink: sr}
	processor := jaeger.NewAgentProcessor(handler)
	thriftProcessor, err := processors.NewThriftProcessor(srv, cfg.NumProcessors, nil, protocolFactory, processor, logger)
	if err != nil {
		log.Fatalf("Failed to create the Thrift Processort for Jaeger. Error: %v", err)
	}

	go thriftProcessor.Serve()

	closeFn := func() error {
		thriftProcessor.Stop()
		return nil
	}

	return closeFn, nil
}

Proposal - what do you suggest to solve the problem or improve the existing situation?
Add and functions and/or default values that wraps the protocol factory and logger from vendor in Jaeger so the ThriftProcessor can be used by 3rd parties. For the protocol factory a simple small function wrapping the protocolFactoryMap does the job. Quick and without thinking too much adding the snippet below to github.com/jaegertracing/jaeger/cmd/agent/app/builder.go solves the problem for me:
// GetProtocolFactory is a helper function that wraps the thrift.TProtocolFactory dependency that comes via vendoring.
// This way public exposed construction of an agent processor with custom reporter is possible.
func GetProtocolFactory(protocol Protocol) (thrift.TProtocolFactory, bool) {
	factory, ok := protocolFactoryMap[protocol]
	return factory, ok
}

// GetDefaultLogger is a helper function that wraps the zap.Logger dependency that comes via vendoring.
// This way public exposed construction of an agent processor with custom reporter is possible.
func GetDefaultLogger() (*zap.Logger, error) {
	// TODO: Allow configuration of logger.
	logger, err := zap.NewProduction()
	return logger, err
}

Any open questions to address
For the logger it will be nice if it could work with some default logger or, like metrics factory, correctly handle the code when logger is nil.

Could you please elaborate on what you're trying to do? What is OpenCensus receiver? Why does it need thrift format?

Ah first a clarification receiver is the tentative new name in OpenCensus for what is right now called an interceptor. What I am trying to do is add an interceptor/receiver for Jaeger to the OpenCensus agent per https://github.com/census-instrumentation/opencensus-service/issues/153. Note that the agent is not the collector, following the same terminology used in Jaeger.

This is reasonable. It was not clear to me if there was the intent of exposing that (and making it "embeddable") or not. Closing...

The Thrift issue was be solved by ensuring that the version of Thrift-Go being used is v0.10.0 . Thus, with modules go get<EMAIL_ADDRESS>as Thrift commit https://github.com/apache/thrift/commit/5785279e2e809f6c56dbbe0eb41d13fb17c88bdd added context.Context to thrift.TProtocol.Flush yet Uber uses a version from v0.10.0


About the deprecation of loadProgress

While joethei said that loadProgress is "no longer accessible from a plugin context" since Obsidian 1.6.0, there is still a very similar, minified function in app.js:
var QK = function() {
            function e(e) {
                void 0 === e && (e = activeDocument);
                var t = this;
                this.showTimeout = 0,
                this.doc = e;
                var n = this.el = createDiv({
                    cls: "progress-bar"
                });
                this.messageEl = n.createDiv({
                    cls: "progress-bar-message u-center-text"
                }),
                n.createDiv("progress-bar-indicator", (function(e) {
                    e.createDiv("progress-bar-line"),
                    t.lineEl = e.createDiv("progress-bar-subline"),
                    t.line1El = e.createDiv("progress-bar-subline mod-increase"),
                    t.line2El = e.createDiv("progress-bar-subline mod-decrease")
                }
                )),
                n.addEventListener("click", (function(e) {
                    e.preventDefault()
                }
                )),
                this.setUnknownProgress()
            }
            return Object.defineProperty(e, "instance", {
                get: function() {
                    return e._instance || (e._instance = new e),
                    e._instance
                },
                enumerable: !1,
                configurable: !0
            }),
            e.prototype.delayedShow = function() {
                var e = this;
                if (!this.el.isShown())
                    return this.doc.body.appendChild(this.el),
                    this.el.style.opacity = "0",
                    this.showTimeout = this.doc.win.setTimeout((function() {
                        return e.show()
                    }
                    ), 300),
                    this
            }
            ,
            e.prototype.show = function() {
                return window.clearTimeout(this.showTimeout),
                this.showTimeout = 0,
                this.doc.body.appendChild(this.el),
                this.el.style.opacity = "",
                this
            }
            ,
            e.prototype.hide = function() {
                return window.clearTimeout(this.showTimeout),
                this.showTimeout = 0,
                this.el.remove(),
                this
            }
            ,
            e.prototype.setMessage = function(e) {
                return this.messageEl.setText(e),
                this
            }
            ,
            e.prototype.setUnknownProgress = function() {
                return this.lineEl.hide(),
                this.line1El.show(),
                this.line2El.show(),
                this
            }
            ,
            e.prototype.setProgress = function(e, t) {
                this.lineEl.show(),
                this.line1El.hide(),
                this.line2El.hide();
                var n = (e / t * 100).toFixed(4);
                return this.lineEl.style.width = "".concat(n, "%"),
                this
            }
            ,
            e
        }();

I'm not sure about the significance of this, nor what this method is called. I just thought you might be interested.

Sadly, any variable or method that is defined with two characters is, unless specifically exposed in the Obsidian module or assigned in some class that can be accessed, not accessible for plugins.
In this case QK is never assigned to a class method, nor exported, so there won't be any way to access it sadly. Unless the devs revert the change, it might be easiest to just recreate the element via TS:
(NOTE: I'm not entirely sure if the translation is correct)
class LoadProgressBar {
             constructor(doc: Document) {
                 if (!doc)
                     doc = activeDocument;
                 this.showTimeout = 0;
                 this.doc = doc;
                 this.el = createDiv({ cls: "progress-bar" });
                 this.messageEl = this.el.createDiv({ cls: "progress-bar-message u-center-text" });
                 this.el.createDiv("progress-bar-indicator", (el) => {
                     el.createDiv("progress-bar-line");
                     this.lineEl = el.createDiv("progress-bar-subline");
                     this.line1El = el.createDiv("progress-bar-subline mod-increase");
                     this.line2El = el.createDiv("progress-bar-subline mod-decrease");
                 });
                 this.el.addEventListener("click", (e) => { e.preventDefault(); });
                 this.setUnknownProgress();
             }

            @enumerable(false)
            @configurable(true)
            get instance() {
                 return this._instance || (this._instance = new this());
            }

            delayedShow() {
                if (!this.el.isShown())
                    this.doc.body.appendChild(this.el);
                    this.el.style.opacity = "0";
                    this.showTimeout = this.doc.win.setTimeout(() => {
                        return this.show();
                    }), 300);
                    return this;
            }

            show() {
                indow.clearTimeout(this.showTimeout);
                this.showTimeout = 0;
                this.doc.body.appendChild(this.el);
                this.el.style.opacity = "";
                return this;
            }

            hide() {
                window.clearTimeout(this.showTimeout);
                this.showTimeout = 0;
                this.el.remove();
                return this;
            }

            setMessage(text: string) {
                this.messageEl.setText(text);
                return this;
            }

            setUnknownProgress() {
                this.lineEl.hide();
                this.line1El.show();
                this.line2El.show();
                return this;
            }

            setProgress(current_progress, total_progress) {
                this.lineEl.show(),
                this.line1El.hide(),
                this.line2El.hide();
                const progress = (current_progress / total_progress * 100).toFixed(4);
                return this.lineEl.style.width = "".concat(progress, "%"),
                return this;
            }

}

In this case QK is never assigned to a class method, nor exported, so there won't be any way to access it sadly. Unless the devs revert the change, it might be easiest to just recreate the element via TS

Yeah, that's probably right. Not that I will miss it in this case, since it was me who opened the FR to toggle off the loading screen 😅  https://github.com/mokeyish/obsidian-enhancing-export/issues/117
But of course, it means more work before Enhancing export fully operational again.

Also, thanks for sharing your knowledge about all this, it's very new to me.


Never use cached download when cask uses :latest

Refs #6087.

Started taking a look at implementing this, even though my Ruby knowledge is pretty minimal.
The file to change is lib/hbc/download.rb
Under the perform def, add in a simple conditional check above the existing code.
  def perform(force=false)
    downloader.clear_cache if cask.version == :latest
    {snip... rest of code as already exists)
  end

Sounds about right. Actually, we could make the change further down to downloader.clear_cache if force || cask.version == :latest.

Opened up a PR, do any tests need to be written?

Shouldn’t be needed, but always a good idea to let @jawshooah have a look.


pr checks

Description
Changes proposed in this pull request:

PR checks

Related issue(s)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


🐛 Autocomplete: updated deps & refactor floating-ui refs

Does not resolve any issues
I have not been able to recreate this bug (where dropdown sometimes does not render when using portal). So, I have updated downshift, floating-ui and tanstack-virtual and changed to using new ref setters with floating ui.

Although it didn't fix the reported issue, I'll merge this pr as it updates dependencies and includes an important refactor.


mat: VecDense equivalent for f32 (or non-internal asm/f32 access)

What are you trying to do?
I would like to perform some vector operations in float32.
What did you try?
Directly use blas32.Vector.
How does Gonum not allow you to achieve your goal?
Some operations (such as SubVec) are not implemented for blas32.Vector. This is solved for mat.VecDense by using hand-coded assembly in internal/asm/f64.
I attempted to port SubVec to float32, which is fairly straightforward by changing f64.AxpyUnitaryTo -> f32.AxpyUnitaryTo (and a few very similar steps).
However f32 is an internal module which I am not allowed to import. This was previously discussed in #559, where the issue creator was pointed to mat. However mat is strictly float64 which does not help me.
What version of Go and Gonum are you using?
1.16.2, 0.9.0
Is this feature absent from the current master?
Yes
Are you able to help contribute the feature?
Sure, I would be happy to do VecDense32, but it would add a lot of code (and for consistency probably needs to be done for all in mat, which I am not sure is practical).
Alternatively, f32 could be made non-internal. There is hardly any gonum usage of it (the only place where it's currently used is: https://github.com/gonum/gonum/blob/master/blas/gonum/gemv.go#L9 ) so this would actually enable a sensible interface to it.

You can use tensor.Dense , which supports a majority of functions for float32

@chewxy Thanks, I'll try that out :)
I previously tried https://github.com/gorgonia/vecf32 but found it significantly slower than the float64 ops in gonum. Perhaps it's outdated compared to gorgonia/tensor?
I'm happy to close this issue if float32 isn't on the books for gonum.

Adding float32 to mat is non-trivial, so its addition is not likely to happen soon.


Add DG645

Qcodes driver for SRS DG645 digital delay/pulse generator.

If you have the time, adding docstrings to the parameters would be very helpful. Thanks.


Implement gwctl get gateways

What type of PR is this?

/kind feature
/area gwctl
/cc @gauravkghildiyal
What this PR does / why we need it:
Implement gwctl get gateways.

Output Columns
Description
Visibility

NAME
Name of the Gateway

CLASS
Class of the Gateway

ADDRESSES
Addresses of the Gateway (displayed using +n more)

PORTS
Ports exposed by the Gateway

PROGRAMMED
Whether the Gateway is programmed

AGE
Age of the Gateway

POLICIES
Count of policies affecting this Gateway
-o wide

HTTPROUTES
Count of HTTPRoutes that are attached to this Gateway
-o wide

The -o wide format is not yet implemented, so the columns POLICIES, HTTPROUTES are excluded.
Which issue(s) this PR fixes:

Fixes #2778
Does this PR introduce a user-facing change?:

Implement `gwctl get gateways`

This looks great! Thanks @jongwooo!
/lgtm
/approve


Generalize numeric primitive types on Json

Instead of what we have now:
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub enum Json {
    I64(i64),
    U64(u64),
    F64(f64),
    String(string::String),
    Boolean(bool),
    Array(self::Array),
    Object(self::Object),
    Null,
}

do something like:
#[derive(Clone, PartialEq, PartialOrd, Debug)]
pub enum Json<I: SignedInt, U: UnsignedInt, F: Float> {
    Int(I),
    UInt(U),
    Float(F),
    String(string::String),
    Boolean(bool),
    Array(self::Array),
    Object(self::Object),
    Null,
}

Forgive me if this is a terrible idea. I was thinking about some of my large JSON datasets and it'd be nice to be able to control the precision for each numeric type.

This would definitely become more ergonomic when default parameters are implemented for generics. e.g.
pub enum Json<I=i64: SignedInt, U=u64: UnsignedInt, F=f64: Float> {
    ...
}

(assuming this is how these would work)

I'm going to close this now that this crate is deprecated in favor of serde. We're discontinuing feature development in rustc-serialize but will still continue to merge bug fixes if they arise.


quick start?

Hi, I'm extremely interested in ruck, but is there a quick way to get started (without copy these code from the README)?

Glad to hear that, welcome :)
If you just want to quickly have a Ruck project running on your local machine to play around with, the fastest way is to clone one of the Ruck projects listed in the readme “Examples” section, and follow the (brief, don't worry) installation instructions in the specific project readme.
If you want to actually start a real Ruck project from scratch, I recommend following the Ruck readme “Installation” instructions step by step to create the required files. This way you will understand the purpose of each file, and how Ruck works as a system. It's actually simpler than all the writing may seem at first, because each file is explained in quite a bit of depth.
Ruck has a bit of a different philosophy to some other web app frameworks; there is not supposed to be any mysterious boilerplate a quick start script sets up on your behalf or black box magic about how any of it works. It's realistic for someone who is curious to be able to read the Ruck source code and learn how everything works, although that is not necessary to make apps.
If you have any further questions feel free to keep commenting here!

just cloned ruck-website, and created a ./env.sh as stated in readme, but got the following error 😂:
➜  ruck-website git:(main) ./scripts/dev.sh
Missing environment variable `ACCESS_TOKEN_GITHUB`.

I'll just try from scratch, and (maybe) make a github template later. :)

You should be able to just set ACCESS_TOKEN_GITHUB="" in the scripts/.env.sh file and I think the only consequence will be loading errors if you visit routes that query GitHub data.
The simplest one to try would be the SVG symbol viewer app, as it doesn't have any dynamic routes or require env var tokens:
https://github.com/jaydenseric/svg-symbol-viewer#installation
The other side of the coin of the example being simple, is that you won't learn as much about how to do realistic things like query external APIs.

I've finally made an app starter: https://github.com/weiran-zsd/ruck-starter.  🎉
just a few feedback:

docs improvement. some components were imported, but not defined, e.g. public/components/{Heading,Para}.mjs
importMap. it's quite awful to write the 4 importMap.json - esp. most of them are the same.
I do like the buildless way, but, without the jsx, the DX is 🤪 . I think most react devs just won't write so many h(). :)


Avoid Chrome to autocomplete in search field

In the last months I have seen a lot of users of the platforms we build and use datatables where Chrome browser starts to autofill the input search field of all datatables as it is a login field.
I have been successfully replicated this behaviour with next steps:

Enable autocomplete functions in Chrome
Using the web application where datatables is installed, I create an account for a new user filling a standard user form.
Chrome ask to save the credentials for future logins, and I click Yes
From that moment all datatables with a search form inside the web application are autocompleted wit the email I use to create the account.
The result is always an empty table, because the search box is already filled with data (the email address) that don't correspond to the table

The only way I found to prevent this is to wrap the input html filed with a form tag and autocomplete="off" attribute directly on the datatables.js source code. I found some articles that suggest to to this with jquery inside the "initcomplete" function when datatablles finished rendering, but it still fails. I think Chrome is autofilling the field before initcomplete function is triggered, and at that moment it is too late.
I tested the search functionality after wrapping the field with the form tag and it works ok, I don't detect any problem trying to search elements in the table, and the problem with Chrome is gone.
Is it possible to wrap the input field with the form tag?

Thanks for posting this.
Would adding autocomplete="off" to just the input element do it? Or possibly assigning a name based on the table id so it is unique on the page? I'd rather not put a form element around it if possible.

I tried different approaches, and just adding the autocomplete="off" to the filed does not work. For some strange reason Chrome takes the first input field without form tag and use it as autocomplete login field.
Check out this tests:

Without any change, showing the original problem:

If I add a simple  tag, without  at the end of my html, Chrome stops using the search box and use the new input field

If I just wrap the search box with a simple  ''  Chrome skips using it for login autocomplete

I know that the origin of the problem is Chrome, but it is a way to workaround the problem.

Thank you for your insights on this. Is there a Chrome bug for this do you know?

@juanhuerta I realise I'm very late to the party, but the developers of Chrome have decided that autofill directives in HTML should be ignored over user experience, even when it makes a complete mess of the suggestions.

I have been using this at the top of each page (i.e. before any other form controls) for now for a while, which seems to alleviate a lot of issues.
<!-- dummy fields to defeat autocomplete -->
<input id="x_username" type="text" style="display:none;" />
<input id="x_password" type="password" style="display:none;"/>

Hope this helps

Why Print Preview it means for the print button is not working for the mobile devices. this is major issue for the my .net Project how to solve this issue..?

@Sundargit1 I'm not sure why you posted your question here - the original thread has no relevance. Please ask support requests in the DataTables.net forums and ensure you link to a test case showing the issue.


Initial Units app

Many of the FHIR data structures rely on units from https://ucum.org/ucum.
Provide the units app and a command which populates the units model from https://github.com/ucum-org/ucum/blob/main/ucum-essence.xml.
This is analogous to #5 and related to #4.

TIme Spent: 6 hours


Rel/1.0.0 ea5

:tada: Ambassador 1.0.0-ea5 :tada:
Ambassador is an open source, Kubernetes-native microservices API gateway built on the Envoy Proxy.
Upgrade Ambassador - https://www.getambassador.io/reference/upgrading.html
View changelog - https://github.com/datawire/ambassador/blob/master/CHANGELOG.md
Get started with Ambassador on Kubernetes - https://www.getambassador.io/user-guide/getting-started

Internal: Improved the reliability of CI
Internal: Improved the release process

Doc-only, so not waiting for CI.


The Digital Standard website should require HTTPS.

http://thedigitalstandard.org/ should redirect to https://thedigitalstandard.org/ and should add itself to browsers' HSTS preload lists.

Hi Eric,
Maria here, from Consumer Reports.  Good catch!  You bring up an excellent
point, and we're working on getting that implemented.  Thanks for your
interest!
On Mon, Mar 6, 2017 at 2:14 PM, Eric Lawrence<EMAIL_ADDRESS>wrote:

http://thedigitalstandard.org/ should redirect to
https://thedigitalstandard.org/ and should add itself to browsers' HSTS
preload lists.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/TheDigitalStandard/TheDigitalStandard/issues/2, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AY8GbfoNoUmvWt-l47o40iaAXnLPpIneks5rjFsKgaJpZM4MUkaO
.

--

This e-mail message is intended only for the designated recipient(s) named above. The information contained in this e-mail and any attachments may be confidential or legally privileged. If you are not the intended recipient, you may not review, retain, copy, redistribute or use this e-mail or any attachment for any purpose, or disclose all or any part of its contents. If you have received this e-mail in error, please immediately notify the sender by reply e-mail and permanently delete this e-mail and any attachments from your computer system.

This should be resolved.

Hi, Yvo Verschoor from Consumentenbond here :-) (my first appearance btw).
I just discovered that https://www.thedigitalstandard.org/the-standard  does not open on computers with Internet Explorer. I tried this on two different Windows 10 computers.
Everyone should use better browsers, but here at the office IE is the unchangeable default when someone clicks a link (Which you can criticize). Anyhow I have trouble to spread the word :-)
I think it should be fixed.

Thanks for the notification Yvo! This has been fixed.


Added optional verbose logging for agency write operations (#12793)

Scope & Purpose
Added optional verbose logging for agency write operations.
This logging is configurable by using the new log topic "agencystore".
The following log levels can be used for for the "agencystore" log topic to log writes to the agency:

DEBUG: will log all writes on the leader

TRACE: will log all writes on both leaders and followers
The default log level for the "agencystore" log topic is WARN, meaning no agency writes will be logged.
Turning on this logging can be used for auditing and debugging, but it is not recommended in the general case, as it can lead to large amounts of data being logged, which can have a performance impact and will lead to higher disk space usage.

Backport of https://github.com/arangodb/arangodb/pull/12793

[ ] :hankey: Bugfix
[x] :pizza: New feature
[ ] :hammer: Refactoring
[x] :book: CHANGELOG entry made
[x] :muscle: The behavior in this PR was manually tested
[ ] :computer: The behavior change can be verified via automatic tests

Backports:

[ ] No backports required
[ ] Backports required for: 3.7

Testing & Verification

[x] This change is a trivial rework / code cleanup without any test coverage.

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/12234/

Tests blue.


cannot open dotnet cli projects

I'm trying to follow this post http://www.tattoocoder.com/setting-up-asp-net-core-debugging-in-vs-code/
trying to see if I can start tto use vs code, but I'm having problems.
I tried this in 2 configuration: a windows 10 insider build 14328 with vs 15 preview, and mac mini: I installed dot net cli 1.0.0-beta-001598 (the one from the github site), installed the omnisharp extension inside vs code 1.0 and tried to open the HelloMvcApi and I receive an error message "Some projects have troble loading..." this is the omnishapr log
[INFO] Starting OmniSharp at 'c:\test\cli-samples-master\HelloMvcApi'...
[INFO] Started OmniSharp from 'C:\Users\luca\.vscode\extensions\ms-vscode.csharp-0.3.7\bin\omnisharp.cmd' with process id 3324...
[INFORMATION:OmniSharp.Dnx.DnxPaths] Looking for sdk version in 'c:\test\cli-samples-master\global.json'.
[INFORMATION:OmniSharp.Startup] Omnisharp server running using stdio at location 'c:\test\cli-samples-master\HelloMvcApi' on host 6100.
[ERROR:OmniSharp.Dnx.DnxPaths] The specified runtime path 'default' does not exist. Searched locations C:\Users\luca\.dnx\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.dnx\runtimes\kre-clr-win-x86.default
C:\Users\luca\.dnx\packages\KRE-CLR-x86.default
C:\Users\luca\.k\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.k\runtimes\kre-clr-win-x86.default
C:\Users\luca\.k\packages\KRE-CLR-x86.default
C:\Users\luca\.kre\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.kre\runtimes\kre-clr-win-x86.default
C:\Users\luca\.kre\packages\KRE-CLR-x86.default.
Visit https://github.com/aspnet/Home for an installation guide.
[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] Scanning 'c:\test\cli-samples-master\HelloMvcApi' for DNX projects
[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] Found project 'c:\test\cli-samples-master\HelloMvcApi\project.json'.
[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] No default runtime found
The specified runtime path 'default' does not exist. Searched locations C:\Users\luca\.dnx\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.dnx\runtimes\kre-clr-win-x86.default
C:\Users\luca\.dnx\packages\KRE-CLR-x86.default
C:\Users\luca\.k\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.k\runtimes\kre-clr-win-x86.default
C:\Users\luca\.k\packages\KRE-CLR-x86.default
C:\Users\luca\.kre\runtimes\dnx-clr-win-x86.default
C:\Users\luca\.kre\runtimes\kre-clr-win-x86.default
C:\Users\luca\.kre\packages\KRE-CLR-x86.default.
Visit https://github.com/aspnet/Home for an installation guide.

[INFORMATION:OmniSharp.MSBuild.MSBuildProjectSystem] No solution files found in 'c:\test\cli-samples-master\HelloMvcApi'
[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem] Detecting CSX files in 'c:\test\cli-samples-master\HelloMvcApi'.
[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem] Could not find any CSX files
[INFORMATION:OmniSharp.Startup] Solution has finished loading

this happens with both the windows and mac installation_ Am I missing something?

You are using the version of the C# extension from the VS Code Gallary. TatooCoder's instructions are to use not-yet-released version from the releases page on this repo.
BTW: Here is our version of the instructions for this. I don't see anything wrong with TatooCoder's instructions, but sometimes a second source can be useful -- http://aka.ms/vscclrdogfood

Hi @lucamorelli, I just wanted to follow up since this bug has gotten stale over the past couple of months. Since the last contact with us, .NET Core has release 1.0 and we've shipped several versions of the C# extension for Visual Studio Code. I'm curious to know if you're working successfully now.

I checked out Mvc and I'm fighting VSCode over OmniSharp logs that are very comparable - at least the last four lines and I get no IntelliSense whatsoever.
On top of that just looking up a few definitions this endless Processing [ProjectState] and the fact 1.0 seems to have regressed for the time it takes to do a restore is all together I believe much worse than it was not too long ago. I just fired up code to find some files really...I've done the same, for the same files and the same reasons before - it's a while ago but back then it was doable.
I tried updating from 1.2.0 to 1.2.1, but after that I'm just wondering there is a tic in the vinyl of sorts...it's stil doing Begin restoring project...I'm serious, it just starting popping up 'There are unresolved dependenciesa massive number of times while I had the impression it was doingdotnet restore` all that time...

@ericwj: Would you be willing to try the latest beta of the extension and see if that works any better for you?

It's certainly better but I think there can be done some things to vscode and/or to OmniSharp to make the experience better.
I am now using vscode 1.6.1 and OmniSharp 1.4.1 and it'll at least still open up many popups opening a .NET Core solution with some projects in it. That's not a good experience. They also animate constantly. Pressing the buttons on them to restore packages appears to produce a lot of work and takes a long time. Not sure that is the issue why I commented here to begin with. At least you have to click dismiss or restore on lots and lots of them. So that's a VSCode issue.
The OmniSharp log also hints that the restore can be done automatically, albeit the setting is disabled (it logs Auto Package Restore: false and there is mention of a command line argument to OmniSharp) If it is possible to start a restore manually (e.g. after a git checkout) once but it does it for all projects discovered, that'd be great.

@ericwj: Could you give our latest release (1.5.2) a spin? In this release we've added a new csharp.suppressDotnetRestoreNotification setting that can be used to control the popups to restore packages. In big projects, it's generally better to just run dotnet restore manually.

@DustinCampbell I'm on C# 1.5.3 now. I think OmniSharp should just be smarter about this.
The problem is that to avoid the popup spam, there is only one option that is to put that setting in the User settings. I think adding this option is missing the point of the issue.
Trying to restore even a few projects using the (evidently important and recommended) buttons on the popup notifications, it very quickly becomes tedious. As is the fact of having to follow up on 20 popups.
The spam should be dependent on which project is selected, specifically, whether that is a solution file or the root directory as opposed to an individual project.
There's 16 of the latter in my current solution for example. Picking one will make OmniSharp spam a popup for that project and each of its (source) dependencies. That's somewhat reasonable, but it's still too much in my opinion.
It'd be better to popup just one restore notification, for the project selected. Perhaps add a button Restore all so that the user can be explicit about what is needed or wanted. Id be an improvement if clicking Restore would then result in more popups - one for each direct source dependency that needs to be restored. Restore all would simply walk all dependencies and run restore recursively.
If on the other hand the solution folder or a solution file is selected, the needs to be exactly one restore popup, since on the command line running simply dotnet restore in the solution root will restore all projects.
I'm not sure what happens if a folder is opened that OmniSharp sees for the first time. If in that situation there is no project selection, OmniSharp should popup about that, not about restore. Restore only comes into play after picking a project.
That'd however mean that there is no IntelliSense, or weak IntelliSense, for code files that either don't belong to the project selected, or for any code file as long as no project is selected. Hopefully OmniSharp would be able to deal with that.
I think it doesn't do such a good job putting red squigglies under about everything, for missing predefined types. I think in that situation OmniSharp would be better when it would do what it does during loading: just show syntax highlighting.
In that last situation it'd be better not to use (global) popups for not being able to provide full IntelliSense, but a lightbulb or some other hook that is context specific to the file or its containing project instead of global.

@ericwj: Thanks for the feedback. The plan is to just fix this so that it doesn't spam but provides a single popup. We're tracking this with https://github.com/OmniSharp/omnisharp-vscode/issues/141.

Id be an improvement if clicking Restore would then result in more popups

This would still be cheap, as clicking Restore a few times you'd still end up with massive spam and mixing pre-existing and new popups in random order. Going project-by-project is a user decision. They could have picked a solution or the directory. So it'd be OK to let the user pay for that for having to pick the project that still needs to be restored manually.
They'd need to wait for a popup to do the restore there, then switch back to the project they wanted to have selected in the first place. This could still be made somewhat easier by providing a lightbulb in code files belonging to the project needing restore to do it, or another context-specific hook, instead of popups.
This is tedious yes, but my guess is that in the fast majority of cases, people will work on a folder or a solution file all at once (for which exactly one restore suffices) or temporarily pick one specific project in which case most of the time most projects are already restored and only require a restore when their project file is edited.

I'm closing this issue in favor of https://github.com/OmniSharp/omnisharp-vscode/issues/141. We never did hear back on the actual original issue and the old DNX is definitely no longer relevant.


Address review comments

rename id to policy_id
set policy_id as primary key
add leaf_hub_name into event.local_policies
remove btree which is default settting for postgres

/LGTM


Implemented usage of NetworkCredential.SecurePassword

Changed TimerJob class from using NetworkCredential.Password to NetworkCredential.SecurePassword to prevent using insecure string as storage for passwords.

Hi @jensotto, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@jensotto, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Thanks. Will have a look at this PR today


Dasv4-series and nested virtualization

Fix to "Not supported"

@juanandmsft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

@lauradolan and @mimckitt who can conform nested virt support for this?
Investigating/working on this in AB#1957545

@cynthn correct. It is Not Supported.


Setting up Kanban

we are a group of four, naming

@lucas-crodrigues
@jevazquezb
@AbrahaKahsay
@aizjicod

link to the project
Kanban board screenshot:

Hi Team,
In my opinion, you are ready to move on to the next step! ⏭
Good luck! 🎉
Feel free to leave any questions or comments in the Issue thread if something is not 100% clear.

Hi guys, I accidentally listed the project as "REQUIRES CHANGES".
You can reference this and ask that the review be changed to APPROVED.

It's been approved.


Popup before deleting a file

I want add a popup stating, 'are you sure you want to delete this file', after clicking delete button, so that the file don't get deleted accidently.

Hi @Yashika-Agrawal , you can work on this.

Hey @srivastavaritik, If it's not done yet, Can I work on this issue under GSSOC'23?


Fix NuGet downloading script

When I run .\build.cmd locally I receive the following error:
Downloading NuGet.exe ...
Invoke-WebRequest : Could not find a part of the path 'C:\Users\<user>\Source\build\tools\nuget.exe'.
At line:1 char:1
+ Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/v4.3.0/n ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Invoke-WebRequest], DirectoryNotFoundException
    + FullyQualifiedErrorId : System.IO.DirectoryNotFoundException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

'build\tools\nuget.exe' is not recognized as an internal or external command,
operable program or batch file.
...
C:\Users\<user>\Source\autofixture [master ≡]>

Please note that the script tries to locate nuget.exe using path
C:\Users\<user>\Source\build\tools\nuget.exe
... while the valid path is expected to be
C:\Users\<user>\Source\autofixture\build\tools\nuget.exe.

@sergeyshushlyapin Thanks for the improvement 🍺 Left you a tiny suggestion 😉

@sergeyshushlyapin Thanks, merged 👍


Idea: setup a basic GUI for eascase

Yes, im currently working on a minimal cross platform gui for windows, linux and mac based on this library
https://github.com/fyne-io/fyne
Also for android im working on a minimal demo tun2socks project based on trojan-gfw-go but a fully operational and usable android version will be plugin for hiddify and nekobox that its also in planning stage...
there isn't any active planning for ios because im not familiar (and unwilling to learn) ios development so a maintainer for future ios version is verymuch needed

Flawless :) yesterday I was thinking to that and tried something about minimal GUI exactly using fyne but i noticed something that I was confused 🤔 about how using the core, as a single external binary dependecy and bind it or use to call the core as a library and bind it...
Hmm, Android.... let's me just try a little a changes and bind it using gomobile, wish it won't bother a lot😁
Someone made a version using Python/TK, if you are interested in testing it you can dm me on telegram to give you the binary and the creator channel


Improve evolution object corruption checking

The problem
Currently we assume evolution objects are guaranteed to have correct format as long as they have correct keys in the Association. Of course, it is not correct, as the user can manually modify them, which yields cryptic internal messages:
In[] := WolframModelEvolutionObject[<|"CreatorEvents" -> 0,
   "DestroyerEvents" -> 0, "Generations" -> 0, "AtomLists" -> 0,
   "Rules" -> 0, "MaxCompleteGeneration" -> 0,
   "TerminationReason" -> 0, "EventRuleIDs" -> 0|>]["CausalGraph"]

Expected behavior
We should not assume the evolution object is correct when evaluating properties, and should produce WolframModelEvolutionObject::corrupt if we detect something is wrong.
Note, complete checking should not happen preemptively, because that could be very slow.
Version
In[] := SystemInformation["Small"]

In[] := $SetReplaceGitSHA

9620568bf18c009a472399a27f0bc546dfeb8fe0

Should be useful (from #wolfram-language discord channel):
getFooData[Foo[_,_,assoc_]] := assoc;

Foo[assoc_Association] ? System`Private`HoldNoEntryQ := (
    (* check that assoc is valid *)
    System`Private`ConstructNoEntry[Foo, assoc]
)

myAPIFunction[foo_Foo ? System`Private`NoEntryQ] :=
    getFooData[foo]

Also: https://mathematica.stackexchange.com/questions/198378/custom-atomic-expressions-modern-tutorial


Provide UI walkthrough to enable VM/VMSS auto-instrumentation

[Enter feedback here]
It is very difficult for customers to follow this page. Separating with language tabs will help. There is no document for onboarding application insights VM extensions through Azure Portal UI, please add UI onboarding experience.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 02cd947d-30c3-2551-4dd6-9762db6869f7
Version Independent ID: 4e5a974c-686c-2005-c036-55dac3107573
Content: Monitor performance on Azure VMs - Azure Application Insights - Azure Monitor
Content Source: articles/azure-monitor/app/azure-vm-vmss-apps.md
Service: azure-monitor
Sub-service: application-insights
GitHub Login: @lgayhardt
Microsoft Alias: lagayhar

Hi @rajkumar-rangaraj we have switch to the model where we ask internal employees, especially those on the product team, to email us when they want us to create a work item to update the docs, instead of opening a GitHub issue.
So I'm closing this issue for now, I created a internal work item for it.
#please-close


Spherical harmonic indirect lighting appears to be inverted along Y axis compared to Skybox

Diffuse lighting from indirect lighting appears to be inverted along the Y axis, compared to the Skybox cube map from which the spherical harmonic values were derived.
To test this (using library version 1.4.5), we used the debug cube map found in section 8.6.3 (Figure 89) of the "Physically Based Rendering in Filament" documentation.  We used cmgen to create the SH values.
The diffuse lighting for surfaces facing the +/-X and +/-Z axes look correct, but +/-Y faces are getting the opposite lighting.  The cube map in the skybox appears to render correctly, and the specular reflections from the skybox seem correct.  The problem seems to be the SH values (or how they are interpreted by Filament).
Given that there are several steps to set up this lighting/skybox combo, it is possible that we are doing something wrong, but I have tried to confirm each step of the process.

OS: Windows 10
GPU: AMD FirePro D500 (FireGL V)
Backend: OpenGL

I can't repro your issue. I just tested with the same env map (from assets/environments/debug) and it looks correct (blue light coming from above, green from below).
How did you use cmgen? Here are the commands I used:
./out/cmake-release/tools/cmgen/cmgen -x ~/Desktop/ assets/environments/debug/debug.png

and
./out/cmake-release/samples/material_sandbox -i ~/Desktop/debug/ assets/models/sphere/sphere.obj

Result:

BTW you don't have to use SH anymore with Filament 1.4.5. If you don't specify SH Filament will pull diffuse lighting from the 16x16 mip level instead. It is useful with extremely high dynamic range IBLs (30 stops for instance) as it better encodes strong directional lighting but the result may not always be as good as with SH on untextured, high roughness objects like a white sphere.

Our command line is this:
cmgen.exe --sh=bands --sh-output=SHOUT.txt debug.png
Maybe I shouldn't be using --sh=bands?

Ah no it's because FIlament expects its SH to be pre-optimized by folding as many constant computations as possible in them. Use --sh-shader when invoking cmgen (implied by -x). A good way to test if you are using the right flags is to test with assets/environments/white_furnace. If you use the right flags the SH should be similar to these:
( 1.000000000000000,  1.000000000000000,  1.000000000000000); // L00, irradiance, pre-scaled base
(-0.000000029081750, -0.000000029081750, -0.000000029081750); // L1-1, irradiance, pre-scaled base
( 0.000000000000000,  0.000000000000000,  0.000000000000000); // L10, irradiance, pre-scaled base
(-0.000000060320701, -0.000000060320701, -0.000000060320701); // L11, irradiance, pre-scaled base
( 0.000000000000000,  0.000000000000000,  0.000000000000000); // L2-2, irradiance, pre-scaled base
(-0.000000149214443, -0.000000149214443, -0.000000149214443); // L2-1, irradiance, pre-scaled base
( 0.000001189041427,  0.000001189041427,  0.000001189041427); // L20, irradiance, pre-scaled base
( 0.000000000274918,  0.000000000274918,  0.000000000274918); // L21, irradiance, pre-scaled base
( 0.000000683613393,  0.000000683613393,  0.000000683613393); // L22, irradiance, pre-scaled base

The first band is set to 1, all the other bands to 0. If you are not using the right flags, the first band will be set to something around 3.5.
./out/cmake-release/tools/cmgen/cmgen --sh-shader --sh=3 assets/environments/white_furnace/white_furnace.exr

Ok.  Good to know!  I will test this out soon and let you know.  We are in the middle of a test cycle, so it might be a couple of days before I can get back to it.
Thanks for the heads-up on using SH vs 16x16 mips, too.


Generate the src/common/version.ts file from the package.json

Fixes #183

Side note: Should we drop node 10 compatibility? Official "end of life" for node 10 is going to be end of this month. (April 30th 2021)