Using postgres

Is it the intention for this project to also be able to use postgres? The docs highlight a SQLITE_DATABASE variable which seems to suggest that postgres is not indended?
Looking at the implementation, and docs, it seems like I can just pass DATABASES as well ... but figured I might double check if there is a reason not to use postgres here.

Yes, the goal is that nanodjango should support anything Django supports, including postgres.
Because a common use-case for this is quick experiments, I thought it made sense to default to an sqlite db; I added SQLITE_DATABASE as an easy way to give it a different filename when you have multiple scripts in the one dir. With hindsight that may have been better just picking up the app name, eg counter.py gets counter.sqlite3. Maybe I'll still do that at some point!
But, under the hood SQLITE_DATABASE just generates a standard settings.DATABASES object that uses sqlite. Although I've not got round to testing it, you should be able to pass a postgres DATABASES into Django() and have it work just as it would in a full Django project - for example, using the django docs postgres setting:
app = Django(
    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.postgresql",
            "OPTIONS": {
                "service": "my_service",
                "passfile": ".my_pgpass",
            },
        }
    }
)

I'll close this for now, but do feel free to reopen if you run into any issues


WIP - fix(dotfiles): fix setup script

TODO: add a 'work' option that will skip non-work related things such as transmission options etc.


DRC hits on implant layers

Environment

Klayout Version: 0.28.5
OS/Platform: Ubuntu 20.04

I have ran the above script as shown by the README.md in the repo using this command: "python3 run_drc.py --path=user_project_wrapper.gds --variant=C --verbose --mp=4 --topcell=user_project_wrapper --thr=8 --connectivity --density --antenna --no_offgrid" . I am still seeing the DRC as mentioned before. The majority of the DRC is stemming from NP.2, NP.5b, PP.5b, and PP.8a. All of which seem to be hitting on the implant layers that are automatically generated and placed into the GDS upon extraction from magic (See screenshot in the attached zip, the layer that is shown to be too close is a layer that we did not place manually in the standard cell layouts). Also inside the zip file is the gds and lyrdb files as needed.
implant_layers_issue_files.zip

Thanks @lrburle we will take a look.

@FaragElsayed2 could you please check this?

@lrburle Could you please check?

@atorkmabrains The changes found in the np_pp_fixup_efab branch here  fixed the PP.5b and NP.5b issues for me.


Table Columns Bold By Default

Can we kindly set all table columns to be bold by default. This is the general norm to create a visual hierarchy between the table and the information within it. Ant design uses bold table columns for their default components.

Hi @nthangeniphumudzo , could you please reduce the font weight to 600? The current implementation feels a bit too heavy. We’ve consulted with @AlexanderSlavchovUX , and he also recommended scaling it back to 600.


Give better error messages when parsing fails

if there is only one parser for a file, show the actual parse error instead of a generic message that all parsers failed.
updated dependencies

Tried this with a recent drop that had a parse error and there was a bad dereference in ilib-xliff rather than an explicit syntax error. We will have to fix ilib-xliff separately to give a better error.


ENH: Always adds batches to keys_ignored

Fixes https://github.com/dnouri/skorch/issues/284.

Thanks

Perhaps this should have removed 'batches' from lines 13 and 124.

@taketwo what do you mean?

I meant these functions in test_logging.py:
    def print_log_cls(self):
        from skorch.callbacks import PrintLog
        keys_ignored = ['batches', 'dur', 'text']
        return partial(PrintLog, sink=Mock(), keys_ignored=keys_ignored)

and
    def test_with_additional_key(self, history, print_log_cls):
        keys_ignored = ['batches']  # 'dur' no longer ignored

No need to have 'batches' in the ignored keys anymore.


Negative TIME array values, OK?

Working with people trying to run models which do backward predictions, the timesteps in the netcdf's are negative values: [0, -1, -2, ...].
So based on the data of t=0 == reference time, you can try to calculate data for t=-1 (1 hour ago)...
My issue is that I cannot find a viewer yet, which can handle that. Some do handle negative values in natural order: [..., -2, -1, 0]...
Wondering IF it should be possible, I tried ugrid-checks, and ugrid-checks is FINE with it both :-)
My question now: SHOULD it be fine or isn't it defined in the specs.
Any nc guru's around here? Thanks for any input, but feel free to close...

I guess your -ve values are in a time coordinate ?
It's not really a UGRID issue, more CF, but the regular way to record time in CF is as a time-offset value related to a start-time and calendar, which is given in the "units" attribute.
Here's the CDL of a (tiny) complete file  ...
netcdf tmp {
dimensions:
	time = 3 ;
variables:
	int64 unknown(time) ;
	double time(time) ;
		time:axis = "T" ;
		time:units = "days since 2001-01-01" ;
		time:standard_name = "time" ;
		time:calendar = "standard" ;

// global attributes:
		:Conventions = "CF-1.7" ;
data:

 unknown = 0, 1, 2 ;

 time = -2, -1, 0 ;
}

I don't think there is anything special about a time coordinate -- no reason it should not have negative values.
In any case, this isn't a UGRID issue at all.
But UGRID in any case doesn't check any CF conformance -- that's kind of a separate space.
So, you could try also running your data through the cf-checker (here, and in the online version) to see if there is some other problem lurking.

Failing that, try another viewer !
We are using Iris and Geovista, quick intro here.
That may well be total overkill for you, but if not we'd welcome any feedback !!

running your data through the cf-checker (here, and in the online version) t

I think the usual link is down.
There is this alternative : https://compliance.ioos.us/index.html
I don't know much about it

The regular way to record time in CF is as a time-offset value related to a start-time and calendar, which is given in the "units" attribute. Here's the CDL of a (tiny) complete file ...
netcdf tmp {
 time = -2, -1, 0 ;
}

Thanks for all the information! Viewers I used are Panoply and QGIS  (I'm into geo ...) We are combining all kind of realtime information on top of the netcdf data.
One of our issues is that time is 'reverse': you first calculate the t=0 situation (and write to nc), then you do t=-1 and write etc etc Which makes the time array not: [-2,1,0] like in the example above, but [0,-1,-2 etc]. Maybe that causes the most problems...
Again: thanks for anwering!

Just reviewing old issues -- looks like this is ok to close @rduivenvoorde ?
If not, please feel free to re-open.


Help for creating dataset

Thank you @SadeghKrmi , i wanted to know these about your dataset creation process :

how did you get transcription of rokhpodcast.ir audio tracks?
how did aligned voice with transcription?
Size of dataset?
tools you used for creating your dataset?

Sure, I would like to add more contributors on creating a close-to-perfect Persian/Farsi TTS. It is not easy to explain end-to-end everything.

how did you get transcription of rokhpodcast.ir audio tracks?
for voice transcription, I am using Subtitle Edit tools, to align text with voice, then I am splitting the audio, based on the aligned subtitle in xml format.

how did aligned voice with transcription?
I am usign the auto generated subtitle and also it's youtube channel.

Size of dataset?
10 hours.
tools you used for creating your dataset?
python script, Subtitle Edit

I'll try to record a video on how to gather data and train, and we can also set up meetings with other contributors online, willing to contribute to start creating something close-to-perfect.
Please join https://discord.gg/JerZTvVK if you'd like to get in touch and collaborate more :)


Spherical

Changes to allow for the decomposition to work on spherical geometry. The main changes are the addition of a new utility function, a new type of grid (i.e. spherical grid), and a new test function. The spherical geometry is computationally demanding and is therefore done in parallel.
The code is also Python 3 compatible, and there are few more parameters that can be given. For example, for model based application, I would suggest using model defined divergence and curl rather than calculating them from the velocity output (if the model is defined on a c-grid, the curl and divergence will not be correctly calculated).

@AleksiNummelin  just curious, if it was on a sphere, then it becomes naturally periodic. Then is it possible to just use fast Fourier transform to get the HHD decomposition?
https://en.wikipedia.org/wiki/Helmholtz_decomposition#Another_derivation_from_the_Fourier_transform

@pswpswpsw I should have been more specific. It is indeed rather straightforward to do the decomposition on a connected spherical domain as you point out (there are many excellent python implementations for that). However, here we were interested in the HHD on a spherical domain that is disconnected i.e. global ocean that has continents that break the periodicity.
This algorithm makes then an approximate HHD by using a Green's function on a sphere (see the papers by Harsh and others for details). Basically, the success of the method boils down to the fact that it is the local div and curl that are most important for the decomposition and the far-field not so much. However, this is still not truly accurate since the Green's function we use is meant for a connected spherical domain while one would actually need to derive the Green's function for a disconnected sphere by running an ocean model (basically, one would need to use the velocity field that one is about to decompose to derive the Green's functions). Anyhow, for our purposes the approximate decomposition produces accurate enough results, which we again attribute to the nature of the flow (i.e the local div and curl dominate).

@AleksiNummelin Yes! Exactly. Thanks for the quick reply! I agree with you on using geometry-specific Green function and the boundary conditions for the EXACT HHD decomposition.
However, I think the issue here is, even you have Green function (which is easy to get for any geometry since it is just solving a large linear system), if you follow the formula of convoluting over the whole domain, that becomes a O(N^3) computation which is not tractable in 3D large datasets (1024^3 for example), is it? But yes, if you application is 2D, then it is fine.

By the way, for your information, I found this paper currently describes they way of the state of the art in fluid mechanics community doing HHD in any large datasets:
https://www.cambridge.org/core/services/aop-cambridge-core/content/view/CFCAF1F7636B1A21654EB7268AB849FC/S0022112009993156a.pdf/on_the_dynamical_relevance_of_coherent_vortical_structures_in_turbulent_boundary_layers.pdf

Thanks for the reference. We were interested in 2D surface problem here - 3D would blow up the computation. Also, as far as I recall, there is no scalar streamfunction in 3D. For large scales in the ocean one could apply something similar on constant density surfaces and the errors should be still small (velocities across density surfaces are usually much smaller than along the density surfaces)

@AleksiNummelin. Thank you very much for adding this.
This PR needs some changes though, because the old code seems to break. I am going to handle this in two parts -- merge to a different base, then fix the issues, and merge to master again.

@AleksiNummelin. I have created a new commit to fix a few issues from this PR, and added to a branch "spherical".
I can get the old code to work, but for the new test, I see nan's in the scalar potentials. I do see a lot of divide by zero errors. I havent had a chance to look at the code in greater detail. Although the streamfunctions display correctly (see the new jupyter notebook). What is the purpose of the scaling by 1E6?


fix: use packument maintainers if available, fixes #261

maintainers  detected in the following locations, with the following priority:

packument#maintainers
package@latest
packages@<version>

I confirm that it fixes my issue.
By the way you might want to put "fixes #000" in the description, not in the title, because GitHub doesn't use the title to link the issues
https://npmgraph-git-fix261-broofas-projects.vercel.app/?q=webext-storage-cache#select=exact%3Awebext-storage-cache%406.0.3

Original report also fixed:
https://npmgraph-git-fix261-broofas-projects.vercel.app/?q=%40bablr%2Fvm#select=exact%3A%40bablr%2Fvm%400.1.16


SVM: Move fee_structure to environment input

Problem
The TransactionBatchProcessor requires FeeStructure as a global config, but
its functionality is shared with Bank. As a result, it actually makes more sense for Bank
to provide its own FeeStructure instance to the transaction processor.
Summary of Changes
Move fee_structure: FeeStructure to the TransactionProcessingEnvironment input.

Sorry @dmakarov had to rebase on #1736.


Rewrite the import_hooks extension importer in C

Currently this adds unnecessary overhead to every import statement.

Doesn't seem to have a significant impack


#3600 Add sharding-scaling-distribution module

#3600 Add sharding-scaling-distribution module

hi @ssxlulu , This is a conflicting files, should deal with it.

OK.

@ssxlulu the PR has conflict, Can you solve it first?

Ok.

@ssxlulu , CI failed, Can you check and fix it?

@ssxlulu , CI failed, Can you check and fix it?

The CI shows success.


feat: toolbar path chips navigation

change path formation using path lib
added PathChips for path navigation
added home button
rework path toolbar

:tada: this issue has been resolved in version 1.1.0 :tada:
release is available on GitHub


DMABuffer.h：'malloc' was not declared in this scope

hi~
I encountered this error，where could I found declaration of malloc？
DMABuffer.h：'malloc' was not declared in this scope
thx~~

#include <stdlib.h>


[a11y] make page

https://spark-website--adobe.hlx.live/express/create/advertisement/cyber-monday
link aria attribute should include alt text from image eg. "edit this template" + alt-text
template image should be clickable

should also fix https://github.com/adobe/spark-website/issues/64


Update zio-prelude to 1.0.0-RC29

About this PR
📦 Updates dev.zio:zio-prelude from 1.0.0-RC23 to 1.0.0-RC29
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio", artifactId = "zio-prelude" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "dev.zio", artifactId = "zio-prelude" }
}]

labels: library-update, early-semver-pre-release, semver-spec-pre-release, commit-count:1

Superseded by #189.


Shortcut "v" loses task focus after moving a selected task to a section of the same project

How to reproduce:

Go to any project (e.g. Inbox)
Focus on any task in the project (with the blue vertical bar)
Hit "v" and select a section of the same project to send the task to
Notice that the blue vertical bar has disappeared from the page and it requires a page reload to bring it back

FYI the task focus works as expected if moving a task to another project, instead of another section in the same project.

Thanks for reporting!  Fixed in version 159.
Unfortunately having some issues with getting things updated in the chrome webstore, as I'd uploaded some prior zips with missing files, which were rightfully rejected.  Version 157 is still pending review, so I can't upload 159 yet.  So for now stuck on version 152 in chrome webstore


Fix @Nullable annotation at getName()

According to ADR-0022, our internal model should be relaxed. This PR fixes that.
Note that we do not return "" as this is not a valid NCName and the other parts in the data model are still returning null. In the long run, we should follow Java by Comparison's "Favor Optional over Null".

Travis/push failed because of removed deployment on S3.
Merge will not break master.


Decouple verification of ledger-builder diffs from application of them

Will be pairing with @deepthiskumar on this, since she has a better knowledge of this part of the code.

This was done!


Support Hybrid Configurations (12th, 13th Gen Core)

There must be a way to obtain the cache/core topology on 12th Gen Core Intel processors with hybrid configurations (of P/E cores) using CPUID.
The Optimizing Software for x86 Hybrid Architecture manual may have some info, but only finding bits for HARDWARE GUIDED SCHEDULING and INTEL® THREAD DIRECTOR.
It does indicate a leaf of 0x20, higher than the reference manual from June 2021 (latest at the time of writing) of 0x1f, and oddly the manual only references 0x21 and higher as being invalid.
It's in CPUID.1Fh, but I know no one with such processor.

Update: CPUID.20h is uninteresting

I believe I have to call GetLogicalProcessorInformationEx with RelationProcessorCore and maybe check PROCESSOR_RELATIONSHIP.EfficiencyClass to maybe get something useful.
Waiting until I get a processor of my own to do this kind of test.

cpufetch currently has this as I thought due to Intel's HybridDetect.
Pathetic Intel moment.


Op [old_add] X argument uses leaked workspace pointer from workspace [LOOP_EXTERNAL]

Issue Description
Please describe your issue, along with:

expected behavior
encountered behavior

Version Information
Please indicate relevant versions, including, if relevant:

Deeplearning4j version
platform information (OS, etc)
CUDA version, if used
NVIDIA driver version, if in use

Contributing
If you'd like to help us fix the issue by contributing some code, but would
like guidance or help in doing so, please mention it!

accidential duplicate


Config app crashes when pressing "Load config file" when no config path is defined

When loading a config app with nothing passed to config_path, the "Load config file" button is still active, and when pressed the app will crash.
There are a few possible solutions:

Hide/disable the button when no config file is passed via config_path.
Load config file fields automatically on startup when the user provides a file to this argument.
Have a file uploader pop up when the load config button is pressed.

added special case for crash condition in ce11ecc. Maintains consistent behavior with modal.


Increase the number of decimals available in the streamlit app when setting the pixel size.

Suggestion from Hejian to allow more decimals in the pixel size parameter in the streamlit app version:
"the pixel size may need include three digits. Like what we have now is 0.994 um per pixel."

Included in PR https://github.com/NTBEL/diffusion-fit/pull/19


Support for variable replacement

In Apache DeltaSpike we support configure some.key=http://${bla.server}/some/Endpoint
where bla.server is yet another config entry.
https://issues.apache.org/jira/browse/DELTASPIKE-1126
This is also covered in the original ConfigJSR proposal:
https://github.com/struberg/javaConfig/blob/configValue/api/src/main/java/javx/config/ConfigValue.java#L54
Do we want to support this kind of functionality in JSR-382?

I think yes.
If there a lot of derived keys, and
when you change the base key, you need to change all of derived keys manually.

some.base=foo
some.key1=foo/111
some.key2=foo/222
...

Although your editor may have the word replacing feature,
you need to check them.

Hi Kenji, txs for the feedback.
From my experience with DeltaSpike in big banking projects it was extremely helpful.
We were able to keep the default config but just tweak the base url for the whole cluster with one entry. All that by just overriding a single entry via our self provided DatabaseConfigSource.
I imagine that such a cluster wide ConfigSource could even be part of an AppServer which targets Clustering as first class citizen.

Agreed on this. We should definitely include some sort of string interpolation into config values while still keeping it simple.
In KumuluzEE we have the exact same system in place for variable replacements and its really useful especially since there the entire framework is configured through the config system, so reusing those values becomes really useful.
Support for this in the JSR would be great.

It might be worth considering also default values in the expression:
some.key=http://${blah.server:example.com}/some/endpoint

If a config property with the blah.server is found, it is used, otherwise the default value example.com is used.

To be honest, I don't like default values. Neither in this way nor in code.
With JavaConfig default values can easily be provided in a default property file (low priority). That way people also know that such a key even exists.

I agree with @struberg ! Let's keep it simply in our first version.

ok, let's skip default for expressions.
However I think we should ensure that any config that is in an expression has an actual value.
For example, if we have:
some.key=http://${bla.server}/some/Endpoint

but there is no bla.server property configured, it should not result in some.key being evaluated to http:///some/Endpoint
We have 2 options:

raise an exception when we evaluate an expressions that has unconfigured property
consider the expression unconfigured (as its value can not be properly resolved)

wdyt?

Option 1. is easier to debug.

Option 1 for Config#getValue
Option 2 for Config#getOptionalValue

This is already covered via the new ConfigAccessor feature resolved with #9


Option to disable tab close button

Let me start by thanking everyone involved for this project. Great to have hackable web tech drive our terminal!
The tab close button introduced in #58 (original issue #40) is a nice feature, thanks for that. However, sometimes on a small terminal window with many tabs, this can result in mis-clicks, closing important tabs unintentionally.
What do you think about introducing a configuration option to disable the close button if a user wants to?
cc @johanbrook

Hey all. I'd love to tackle this one if that's alright.

Is more than alright @bildepunkt 😄 Go ahead 🙌

We could hide the buttons on the tabs if they're small enough too :) One part of me thinks a configuration option is overkill, but I guess some users want hardcore configurability.

I guess some users want hardcore configurability

Yeah I don't want to click on a tab in the wrong place and lose some important process. Since this can potentially be quite damaging, I would suggest that a configuration option is a quite small price to pay.

We could hide the buttons on the tabs if they're small enough

@johanbrook I was thinking the same thing. The user can still close it with the keyboard once it's in focus. Maybe that can be a separate feature request.

Why not have a confirmation dialog ask if you're sure you want to close? I do this all the time... even with large tabs. The icon should always be visible so you know you're clicking it.

I think @knownasilya has the right idea.  Maybe make it possible for someone to disable the prompt if they want?

Why not have a confirmation dialog ask if you're sure you want to close?

This would be annoying to me to have to close a dialog every time I make a mistake. It would still be penalizing the user for making the mistake of clicking in the wrong place.

It would still be penalizing the user for making the mistake of clicking in the wrong place.

Agree.
On tors 29 sep. 2016 at 09:10 Karl Horky
<
mailto:Karl Horky<EMAIL_ADDRESS>
wrote:

a, pre, code, a:link, body { word-wrap: break-word !important; }
Why not have a confirmation dialog ask if you're sure you want to close?
This would be annoying to me to have to close a dialog every time I make a mistake. It would still be penalizing the user for making the mistake of clicking in the wrong place.
—
You are receiving this because you were mentioned.
Reply to this email directly,
https://github.com/zeit/hyperterm/issues/720#issuecomment-250388271
, or
https://github.com/notifications/unsubscribe-auth/AAasDR9eb8vkMpl2mOXMUYnREojB7N42ks5qu2RngaJpZM4KAR7L
.

should I (rebase and) commit this then, or are we scrapping this feature request? It seems to me we could keep it as a config option and add the confirmation as another config seeing as the votes are split.

This would be annoying to me to have to close a dialog every time I make a mistake. It would still be punishing the user for making the mistake of clicking in the wrong place. Albeit not as great a punishment, but a punishment nonetheless.

@karlhorky If the close button is always visible you'd be less likely to get the confirmation dialog.

should I (rebase and) commit this then, or are we scrapping this feature request? It seems to me we could keep it as a config option and add the confirmation as another config seeing as the votes are split.

@bildepunkt probably worth asking someone who'd be merging it, but yes they could live together.

are we scrapping this feature request?

In my perspective, the other recommendations on this thread don't address the use case, so the original feature request still stands.
For the other alternatives, I would suggest opening new feature requests.

In my perspective, the other recommendations on this thread don't address the use case,

Sounds like it handles the use case exactly. 👇

However, sometimes on a small terminal window with many tabs, this can result in mis-clicks, closing important tabs unintentionally.

If the close button is always visible you'd be less likely to get the confirmation dialog.

I don't believe this to be the case. Regardless, we are splitting hairs now, trying to measure the hypothetical possibility that someone misclicks. I opened this issue because misclicks happen on small targets like this (example: clicking on a tab quickly to switch to it). In the case of a misclick I would argue that a confirmation dialog is not an improvement. A configuration option to disable the close button is a low cost, effective solution.
A confirmation dialog is a different feature request (and not necessarily a bad one). It does not solve the use case.

@bildepunkt did you open a pull request for this?

It was rejected here: #737

Created a plugin for this: https://github.com/karlhorky/hyper-no-close


fix(rhel): Various Improvements

There's a couple things going on in this PR:

explicitly pin FROM tags and the kong package URL such that the semi-useless RHEL_VERSION can be done away with
pinning to an explicit sha256 also opens the door potentially for dependabot updates
ensure that the bash logic causes the build to fail if the package checksum doesn't match; previously the build would continue even if the checksum verification would fail
fixup the currently not run release-rhel make target

The problem doesn't appear to effect the ubi8/ubi-minimal image from the redhat registry, let's use that.


Try.of() shouldn't soften exceptions by changing exception category for rethrown (fatal) exceptions

Try.of() currently catches all exceptions and rethrows them if fatal in a wrapper exception. The wrapper for fatal exceptions is javaslang.control.Try.FatalException, which extends java.lang.RuntimeException, this way it changes exception categories and softens Errors (possibly java.lang.VirtualMachineError and subclasses) to RuntimeExceptions.

See for example google guava introduced ExecutionError as a counterpart of JDK's ExecutionException to wrap Errors to keep the semantics of the exception type categories. Also UncheckedExecutionException for wrapping RuntimeException.

I thought you meant including 'NotImplementedError' into the set of fatal exceptions when you said to create a ticket for Try.Fatal :)
This issue will be solved when we solve #1722.

No, why would I want to make it fatal? I was arguing for great lengths to make TODO() use a softer exception, not a more severe one :)


pkg/archive/changes_posix_test.go: un-comment code line "defer os.RemoveAll(src)"

- What I did
- How I did it
- How to verify it
- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)
This leave a lot of
docker-hardlink-test-src-243298510
docker-hardlink-test-src-532013093

on my /tmp when I run docker unit test
Signed-off-by: Lei Jitang<EMAIL_ADDRESS>

cool, LGTM

LGTM


increase logging verbosity of istioctl command

Jenkins job istio/presubmit passed

Jenkins job istio/presubmit passed

@ayj please rebase.

Jenkins job istio/presubmit passed

Jenkins job istio/presubmit passed


rpc metrics in opentelemetry not populating for armeria grpc server/ client

Armeria Opentelemetry Instrumentation: https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/v1.15.0/instrumentation/armeria-1.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/armeria/v1_3
Grpc Opentelemetry Instrumentation https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/v1.15.0/instrumentation/grpc-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grpc/v1_6/GrpcServerBuilderInstrumentation.java#L28
Here they expect to implement   io.grpc.ServerBuilder, but i believe armeria grpc server has another implementation grpc server/ client ?
Expected Behavior
Rpc Client & Server Metrics to be populated as per https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/rpc.md

but i believe armeria grpc server has another implementation grpc server/ client ?

Armeria provides its own gRPC server and client implementations so Opentelemetry's gRPC Instrumentation can not understand Armeria's gRPC services.
But we strongly desire to support RPC metrics for Armeria's gRPC and Thrift services.

We are observing the same issue. While we were able to get the default metrics with Netty generated stub, we aren't able to get the same metrics published by default after moving to Armeria generated stub.


Intermittent error "Could not find build environment"

I am seeing intermittent failures of GetWorkspace. The frequency seems proportional to the number of projects in a solution:

5 projects and it doesn't happen
10 projects and it's 50% of the time
13 projects and it always happens.

Given the parallelization in the stack trace, it might be relevant that I am on a 12 core machine.
Example test
[Test]
public void test()
{
    var manager = new AnalyzerManager("Test.sln");
    var workspace = manager.GetWorkspace();
}

Versions
Buildalyzer: 2.5.0
Buildalyzer.Workspaces: 2.5.0
dotnet: 3.1.101
OS: ubuntu 18.04

Exception trace:
System.AggregateException : One or more errors occurred. (One or more errors occurred. (Could not find build environment)) (Could not find build environment)
  ----> System.InvalidOperationException : Could not find build environment
   at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose)
   at System.Linq.Parallel.SpoolingTask.SpoolStopAndGo[TInputOutput,TIgnoreKey](QueryTaskGroupState groupState, PartitionedStream`2 partitions, SynchronousChannel`1[] channels, TaskScheduler taskScheduler)
   at System.Linq.Parallel.DefaultMergeHelper`2.System.Linq.Parallel.IMergeHelper<TInputOutput>.Execute()
   at System.Linq.Parallel.MergeExecutor`1.Execute()
   at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId)
   at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream)
   at System.Linq.Parallel.WhereQueryOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings)
   at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream)
   at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient)
   at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient)
   at System.Linq.Parallel.QueryOperator`1.GetOpenedEnumerator(Nullable`1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings)
   at System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery()
   at System.Linq.Parallel.QueryOpeningEnumerator`1.MoveNext()
   at System.Linq.ParallelEnumerable.ToList[TSource](ParallelQuery`1 source)
   at Buildalyzer.Workspaces.AnalyzerManagerExtensions.GetWorkspace(AnalyzerManager manager)
   at CallGraphTest.TestParsing.test() in /home/duncan/Projects/snug/tools/CallGraph/CallGraphTest/TestParsing.cs:line 260
   at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.GetResult()
   at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
   at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__0()
   at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
--InvalidOperationException
   at Buildalyzer.Environment.EnvironmentFactory.GetBuildEnvironment(String targetFramework, EnvironmentOptions options)
   at Buildalyzer.Environment.EnvironmentFactory.GetBuildEnvironment(String targetFramework)
   at Buildalyzer.ProjectAnalyzer.Build(String targetFramework)
   at Buildalyzer.ProjectAnalyzer.Build()
   at Buildalyzer.Workspaces.AnalyzerManagerExtensions.<>c.<GetWorkspace>b__0_0(ProjectAnalyzer p)
   at System.Linq.Parallel.SelectQueryOperator`2.SelectQueryOperatorResults.GetElement(Int32 index)
   at System.Linq.Parallel.QueryResults`1.get_Item(Int32 index)
   at System.Linq.Parallel.PartitionedDataSource`1.ListContiguousIndexRangeEnumerator.MoveNext(T& currentElement, Int32& currentKey)
   at System.Linq.Parallel.WhereQueryOperator`1.WhereQueryOperatorEnumerator`1.MoveNext(TInputOutput& currentElement, TKey& currentKey)
   at System.Linq.Parallel.StopAndGoSpoolingTask`2.SpoolingWork()
   at System.Linq.Parallel.SpoolingTaskBase.Work()
   at System.Linq.Parallel.QueryTask.BaseWork(Object unused)
   at System.Linq.Parallel.QueryTask.<>c.<.cctor>b__10_0(Object o)
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)

Thanks for the report. The error “Could not find build environment” typically happens in a couple specific cases:

A project does not use the SDK and it can’t figure out where to find the .NET Framework version of MSBuild
A project uses the SDK and we can’t get a parseable response from dotnet --info

The fact this is only happening intermittently though is interesting. Any idea if it’s always the same project that triggers the error? One thing I could do is make that clearer: “could not find build environment for someproject.csproj”.
Are all the projects in the solution .NET Core or are there a mix of projects? It’s possible trying to make a bunch of dotnet --info call’s one parallel could be failing.

Any idea if it’s always the same project that triggers the error?

No idea I'm afraid. I was actually removing projects expecting to find one of them was the cause but instead I just found a point where it worked intermittently.

One thing I could do is make that clearer: “could not find build environment for someproject.csproj”.

I'll try and do that today.

Are all the projects in the solution .NET Core

Yes they are all .net core. The only unusual things that I will test today:

one of the projects has to specify two frameworks because of the aspnet core / .netstandard incompatibility that was added in 3.1 <TargetFrameworks>netstandard2.0;netcoreapp3.1</TargetFrameworks>
the solution was open in jetbrains rider - possible interference maybe?

Great - thanks for following up. Let me know what you find. Both your thoughts about multi-targeting and Rider sounds plausible - or could be something totally different. To good news is that the problem does seem to be happening at the dotnet --info stage which should help narrow it down. I'll sit tight until you report back and then I'll see if I can replicate if you don't pin it down.

Quick note; I tried running with latest head and also the 2.5 version but I get a run-time exception about MsBuildPipeLogger. Removing out the packing shenanigans in Buildalyzer.Logger.csproj let me run.
Unhandled exception. One or more errors occurred. (One or more errors occurred. (Could not load file or assembly 'MsBuildPipeLogger.Logger, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
)) (Could not load file or assembly 'MsBuildPipeLogger.Logger, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
)
System.AggregateException: One or more errors occurred. (Safe handle has been closed.
Object name: 'SafeHandle'.)
 ---> System.ObjectDisposedException: Safe handle has been closed.
Object name: 'SafeHandle'.
   at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success)
   at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success)
   at Interop.Sys.Read(SafePipeHandle fd, Byte* buffer, Int32 count)
   at System.IO.Pipes.PipeStream.ReadCore(Span`1 buffer)
   at System.IO.Pipes.PipeStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.<>c.<BeginReadInternal>b__43_0(Object <p0>)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location where exception was thrown ---
   at System.IO.Stream.EndRead(IAsyncResult asyncResult)
   at System.IO.Pipes.PipeStream.EndRead(IAsyncResult asyncResult)
   at System.IO.Stream.<>c.<BeginEndReadAsync>b__48_1(Stream stream, IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait(CancellationToken cancellationToken)
   at MsBuildPipeLogger.PipeBuffer.Buffer.<>c__DisplayClass11_0.<FillFromStream>b__0()
   at MsBuildPipeLogger.CancellationTokenExtensions.Try[TResult](CancellationToken cancellationToken, Func`1 action, Func`1 cancelled)
   at MsBuildPipeLogger.PipeBuffer.Buffer.FillFromStream(Stream stream, CancellationToken cancellationToken)
   at MsBuildPipeLogger.PipeBuffer.FillFromStream(Stream stream, CancellationToken cancellationToken)
   at MsBuildPipeLogger.AnonymousPipeLoggerServer.Connect()
   at MsBuildPipeLogger.PipeLoggerServer`1.<.ctor>b__12_0()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

Info so far:

it's definitely not happening on the same project
on a 15 project solution, I typically get 3 projects failing (sometimes only 1) but a different three each time

The cause is a race condition between the Process.Exited and Process.OutputDataReceived events. This results in ProcessRunner.Output.Count == 0 causing the failure despite the process successfully completing because the stdout hasn't been appended yet.
I tried adding some synchronisation around the ProcessRunner.Output in OutputDataReceived but it still didn't resolve the race condition because I believe that exit is signalled before the OutputDataReceived is even called.
The solution is kind of insane. See the remarks at the bottom of here for the problem:
https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.waitforexit?redirectedfrom=MSDN&view=netframework-4.8#System_Diagnostics_Process_WaitForExit_System_Int32_

When standard output has been redirected to asynchronous event handlers, it is possible that output processing will not have completed when this method returns. To ensure that asynchronous event handling has been completed, call the WaitForExit() overload that takes no parameter after receiving a true from this overload.

So the fix is to change ProcessRunner.WaitForExit(int timeout) from:
        public bool WaitForExit(int timeout) => Process.WaitForExit(timeout);

to
        public bool WaitForExit(int timeout)
        {
            bool result = Process.WaitForExit(timeout);

            Process.WaitForExit();

            return result;
        }

I can confirm this works.

Lol. That's...goofy. Thanks a bunch for running this to ground! Making the change now and will release momentarily.

I think I probably have a lot of projects that need to be patched now :)

Thanks @daveaglick much appreciated!

2.5.1 rolling out now, should show up in NuGet in about 10 minutes (unless NuGet is slow indexing, which happens often)


Deverbosify the documentation

Dude no one wants to read all that 😂

Dude no one wants to read all that 😂

Good riddance, I second that!

Dude no one wants to read all that 😂

Good riddance, I second that!


forms and data example does not work

This issue was originally filed by @johanhenselmans

What steps will reproduce the problem?

Look at the examples, eg Slambook
Click on Try it!
Nothing

What is the expected output? What do you see instead?
An example
What version of the product are you using? On what operating system?
The Live version on https://www.dartlang.org/docs/tutorials/forms/
Please provide any additional information below.
I have tried it by downloading the example, and running it in Chrome and Safari, and Chromium. Neither of them work.

The forms tutorial has been rewritten to Angular; this issue is obsolete.


HWKAPM-478 Support caching information in a clustered environment

Review nodes - this PR contains some minor changes relates to serialization of some events to deal with null strings. The main change is how cached data (Producer Information and Communication Details) is stored. The initial implementation assumed when clustering the servers a distributed cache would be used - however due to problems getting the distributed cache working lead me to rethink this approach - as the data being cached is distributed via JMS anyway, rather than redistribute it again via infinispan, it seemed better to leverage local caches (to help with memory management) that are initialised via the JMS published data.
There are some potential issues, discussed in https://issues.jboss.org/browse/HWKAPM-479, which may mean a distributed cache will eventually be used, but while the main focus is on monitoring short lived transaction/trace instances, this seems like a viable solution. So the main changes are to introduce some non-durable subscribing topic MDBs to receive the data and store it in the local caches.

I think it certainly makes sense to pick the data from the Topic, if it is sent there anyway, to update all local caches.

The initial implementation assumed when clustering the servers a distributed cache would be used - however due to problems getting the distributed cache working lead me to rethink this approach...

This is also disturbing as we're depending on ispan caches in a couple of other places. Can you elaborate?

I had two wildfly 10 servers running in a cluster, with a distributed cache defined in the standalone-ha.xml. Logs showed the cluster was being established, but for some reason no data was being shared between the nodes.
Its most likely I got some config wrong, but once I thought about the current solution (based on JMS), I didn't investigate further.

@pilhuhn Added the extra test, and changed MDBs so now use durable topic subscription based on a clientId associated with the 'jboss.node.name'.

@pilhuhn ok to merge?


Categorizing by implementation

A slightly different approach to categorizing package managers than outlined in the Glossary that I've been thinking about with regards to IPFS implementations specifically.
File-system based
This maps closely to the Multi-Registry category.
Many system package managers (APT, apk, RPM pacman, portage), plus some of the older language package managers (Maven, CPAN, CRAN) are literally a network attached folder full of files and other folders, often exposed over http, ftp etc.
Metadata is also stored as files so everything is quite self-contained and easily mirrored using rsync.
This style of registry maps nicely onto IPFS MFS and unixfs, it also seems like most sourcecode and binaries are stored within tar/zip/ar files to preserve any file permissions when downloaded over http, which conveniently means we don't need to wait for unixfs-v2 before implementing things.
Essentially, from IPFS point of view, all of these package managers end up having a very similar API (unixfs) that needs to be implemented, then the clients decide how they want to organise the files and metadata within that top level folder. A number of existing attempts take this approach (arch-mirror, apt-transport-ipfs, Gentoo-distfiles-IPFS)
Database based
This maps closely to the Centralized Registry category.
Many newer language package managers (rubygems, npm, Packagist, PyPI, NuGet, Cargo, bower)  run a database-backed web application that handles authentication, uploading, provides APIs for the clients to list packages and versions and other metadata on demand.
Actual package contents is often hosted on s3 and requests to download packages may be proxied through the application to track download statistics, or redirected to a CDN link.
Mirroring these package managers usually requires either trawling package list APIs and recursively downloading packages and their metadata, or, if the registry provides it, downloading a dump of the registries database and running a copy of the web application or a slimmed down alternative that provides a similar API.
Unlike the file-system based package managers, almost every database based registry implements it's own, unique API for querying metadata and publishing packages.
This may explain why there are generally less public mirrors available for Centralized/database-backed package managers as there's a lot more overhead and complexity in keeping a mirror up to date than in the file-system based registries.
The one shared attribute they all share is that clients communicate with registries remotely via https urls, which can be proxied locally and backed by IPFS. A few existing implementations take this approach (npm-on-ipfs, dpip), as well as general purpose artifact stores like Sonatype Nexus and Artifactory.
Git based
This maps to the Portable Registry and the Registry-less categories.
Portable Registries
A number of Portable registries (Homebrew, CocoaPods) use Git (usually GitHub) as a database rather than a traditional centralized database, often as a way to avoid becoming a full time, on-call DBA for their community.
One notable exception is Cargo's main registry, https://crates.io, which has parts of both a portable registry in https://github.com/rust-lang/crates.io-index and central database in https://github.com/rust-lang/crates.io
With Homebrew, PRs can be opened directly on their GitHub repository database to add and update Formula files, which contain the metadata for a package, including links to the source and compiled binaries with integrity hashes.
With CocoaPods, you used to be able to send PRs to their GitHub repository database but after they merged a PR publishing a new version by someone who shouldn't have been able to, they implemented a separate web service called Trunk to handle adding new version to the git database.
Similarly with Crates.io, their GitHub repository database is updated automatically whenever someone publishes a new version via the crates.io website.
In all three of these cases, the end user only ever uses data from the latest commit that they have locally, tags and branches are not utilized and in the case of Cocoapods and Cargo, the history of the repository is not used for previous versions, in fact end users often do a shallow clone (git clone --depth 1 so don't even have history data to go back on.
Homebrew only keeps the latest version of a Formula in it's database, but does clone the full repository (243.22 MiB as of February 2019) so users can check out previous revisions of the repository to install old versions of a Formula, although it's not encouraged (Formula cannot declare a particular version of a dependency) because the speed of operations on the large repo are slow.
When it comes to mapping these registries onto IPFS, git is used both as a transport protocol and storage mechanism, git-remote-ipld should be able to help with integration.
There is a restriction that files stored in those repositories can't be larger than 2MiB but it doesn't look like any of those three databases store metadata files larger than a few Kb.
But none of the git repository databases actually contain the code of the releases, usually they have  URIs (homebrew can reference SVN, CVS, Git and other protocols, not just http), which are hosted elsewhere, often GitHub, but could be arbitrary.
For IPFS to host both the registry and source code, each one of these remote URIs will need to be referenced either along side an IPFS CID (see https://github.com/protocol/package-managers/issues/12) or loaded via some kind of http proxy extension added to the client.
Registry-less
Some package managers (Go, Carthage, Swiftpm) do away with hosted registries all together, instead preferring to declare dependencies as fully qualified http urls or shortcuts for GitHub urls (owner/repo-name for example).
These package managers often have support for checking to see if the url is a git repository and then querying for git tags as the list of published, named versions, and git commits as a full list of all possible versions (named by git commit sha and/or branch).
The end result is instead of a single registry, these package managers have thousands of single project registries, and rely on APIs in Git and/or GitHub for metadata on releases.
When it comes to mapping these package managers onto IPFS, putting any individual repository on IPFS is relatively easy with git-remote-ipld, again with the restriction of 2MiB files, luckily none of the registry-less package managers support sharing binaries in the same way.
Rather the problem comes when declaring dependencies, which are often simple URIs within source code:
import("github.com/golang/dep/internal/fs")

this can be swapped out with an IPFS CID, as seen with gx :
import(pstore "gx/ipfs/QmaCTz9RkrU13bm9kMB54f7atgqM4qkjDZpRwRoJiWXEqs/go-libp2p-peerstore")

But the original metadata of the package, such as upstream source and version number) is lost.
In addition, this import functionality is baked into the language implementation itself, making changes much more difficult than in external tooling.

@andrew What would you think about moving this, as an addendum to https://github.com/ipfs/package-managers/blob/master/glossary.md, into the docs directory?

👍

This now lives in the docs folder of the repo: https://github.com/ipfs/package-managers/blob/master/docs/categories.md

This comment (https://github.com/ipfs/package-managers/issues/14#issuecomment-471646464) is really valuable and didn't make it into the docs. Think we can find a way for these useful thoughts to live on?

@momack2 Do you mean what’s in the docs directory at https://github.com/ipfs/package-managers/blob/master/docs/categories.md or are you referring to a different piece of content?

I'm specifically referencing the https://github.com/ipfs/package-managers/issues/14#issuecomment-471646464 with the approaches and problems for each area. AFAIK that isn't covered in the docs you linked.

Separated this comment into a new document and referenced it in the docs index.  @andrew -- feel free to append/amend as you see fit.


Contrastive loss of generator and msp module do not converge

Hi~ I'm trying to do something like CAST. But in my network, the contrastive loss of generator and msp module do not converge, and the value of these two losses are very similar, have you ever encountered a similar situation? The loss curves is as follows, and they are still the same when training is done (200epoch).

Hi~I did not encounter this situation.
Here are some of my guesses, hope they are useful to you:

Contrastive-related parameters such as temperature (0.07 in CAST), or queue length, i.e. the number of negative samples (4096 in CAST) can be adjusted.
The weight of the contrastive loss when training G can be adjusted (0.2 in CAST).
The learning rate and descent strategy can be changed.
Double-check the related  codes.

Thanks very much! I adjusted the setting of the query, key, and negative samples. Though the losses still do not converge, the testing results are much better than before.


Add a way to receive push notifications for a specific event

Maybe possible via service workers and saving the event page to the start screen?

It would also be totally fine to just get an email headsup that summarizes recent activity and just have some input for email address for each event and an unsubscribe link in each email itself. We could use something like easyaudit to automatically track changes to things and then have some custom management command aggregate those within the last hour or day or so (https://gist.github.com/cb109/c6e5631b7a24a12113fc65cfaaabd78f). Then submit email to subscribers if there was some activity.


Axes origin/direction in 3d plots, advice?

Hi, all, looking for some advice.
In all examples I've seen, origin is top right, y grows "down" and "x" grows left, as shown here:

I am looking of an example that shows how to configure the x and y axes in a 3d plot so that:

(0,0) is at bottom left of the diagram
z axis grows "towards the observer" (this is already correct)
y axis grows "up"
x axis grows "right"

Thanks,
Nico

Oh yeah, that seems like it should be the default?

You can move the camera using rotate_cam! and translate_cam!

Huh? Does camera movement flip the axes?

Ah, my bad - I think I misinterpreted what you were asking for.  In 3D axes, without fiddling with the code, I don't think this is possible because of some scaling issues we have with negative scale - but you could try scale!(scene, -1, -1, 1)...otherwise you could change your input data to the desired orientation, and assign ticks manually.

Uhm, fiddling with the data is a no go. Guess this is kind of a showstopper for now if scaling does not work.
What is the rationale behind the nonstandard axis direction?

@asinghvi17 is this just some kind of oversight, or am I thinking wrongly about this? I don't ever believe I've seen flipped axes by default for 3d in other plotting packages.

This is very old now so I'll close this.
The coordinate system as it is (and was) is right handed as it should be. You can get to

* (0,0) is at bottom left of the diagram
* z axis grows "towards the observer" (this is already correct)
* y axis grows "up"
* x axis grows "right"

through rotations/explicitly setting update_cam!(scene, cameracontrols(scene), eyeposition, lookat, up). The axes are not made for this though.

Also scale!(scene, -1, -1, 1) doesn't really mess with your data. It sets a transformation that applies to everything in the scene, meaning every piece of data and the coordinate system. It's no different that the transformation the camera applies at that point.


[operational-tool] Make Key file reads trim whitespace

Motivation
Embarrassingly enough, I spent a half hour trying to figure out why my copied key didn't work, and it was because there was a new line at the end.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Manual testing

/land


Stepper does not follow the material guidelines.

Bug, feature request, or proposal:
Request
What is the expected behavior?
Stepper should follow the material guidelines.

What is the current behavior?
Stepper does not follow the material guidelines.

What is the use-case or motivation for changing an existing behavior?
Stepper should follow the material guidelines.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
2.0.0-beta.11
Is there anything else we should know?
https://material.io/guidelines/components/steppers.html

Grey background is on hover only (currently active steps have grey backgroud?)
Grey ripple on click (currently there is no ripple)
Steps' labels default color is 87% black (currently unfocused labels are 38% black which means 'disabled text' according to material guidelines)
Focused steps' labels should be bold according to images (which helps differentiate active steps from focused steps)
Cursor on active steps' labels should be set to 'pointer' when hovering (currently it's set to default 'grab' on label)

Can you be more specific? Which guidelines in particular does it fail to address?

Edited with 5 issues so far for horizontal non-linear stepper & horizontal linear stepper.

Thanks. It's hard to "complete" an issue like this without explicit goals to measure against.

I need to get this out:
I understand the amount of work needed for such an awesome library of components, but coming from Google I expect it to follow their own guidelines, it's not the first time I open an issue because a component is not following the guidelines. Also I do understand that it's a beta but no one seem to report them so I have to be that person.

@crisbeto I see that the issue will be closed but I can't find where your fixed the text color [Steps' labels default color is 87% black (currently unfocused label are 38% black which means 'disabled text' according to material guidelines)]. Did you fixed it? Thank you.
@benjamincharity I'd like to know what's so wrong about my report and comment?

@Ploppy3 I didn't change it, because the spec seems to indicate that the inactive steps are supposed to be 38% black:

Inactive steps
14sp Roboto Regular
38% black

38% black means 'disabled text' but you can click on those right? Unless it is a linear stepper.

The way I interpret it is that disabled text is 38%, but that color isn't reserved only for disabled text. Also AFAIK aside from the orientation, the styling of vertical and horizontal steppers is exactly the same.

See images bellow:
Linear:
https://storage.googleapis.com/material-design/publish/material_v_12/assets/0B7WCemMG6e0VOFVjMHV2TWdOMnM/components-acux-stepper-linear.png
Non Linearl:
https://storage.googleapis.com/material-design/publish/material_v_12/assets/0B7WCemMG6e0VaXlOV1dLTk11dnc/components-acux-stepper-nonlinear.png

@crisbeto updated my latest comment with a lot more info so I think I should give you another notification ^^

@crisbeto Did you fix the last thing we talked about?

I didn't have time to get around to it, before it got merged @Ploppy3.

Should I reopen or open a new issue?

Let's reopen it.


GPUImageMovieWriter cuts off prematurely for short videos

I've noticed an issue where trying to write a movie with a duration of anything < 0.5 seconds causes the writer to output a blank and possibly corrupted file.
(I've also noticed that around 0.5 seconds is cut off from the end of any long video as well.)
I'm using the same exact code as from the SimpleVideoFileFilter to write the movie.
Changing the completion block from:
[movieWriter setCompletionBlock:^{
        [filter removeTarget:movieWriter];
        [movieWriter finishRecording];
    }];

to:
[movieWriter setCompletionBlock:^{
        double delayInSeconds = 1.0;
        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
             [filter removeTarget:movieWriter];
             [movieWriter finishRecording];
        });
}];

solves this issue, but is only a hacky workaround. Any idea what the underlying problem is?

+1 same here, significant time loss with small movies..


Upgrade DALI to 1.30 and DALI_Extra to ToT

CI MESSAGE: [10002540]: BUILD STARTED

CI MESSAGE: [10002540]: BUILD FAILED

CI MESSAGE: [10036988]: BUILD STARTED

CI MESSAGE: [10036988]: BUILD PASSED


CoAP standalone support from NetXDuo

Hi All,
Recently I have started using NetxDuo to write few IoT applications and I was successful in writing MQTT standalone application by referring the sample provided in git repo.
Now my requirement is CoAP standalone support. If I search for CoAP its point to LWM2M which is based on CoAP.
Could you please help me that how can I proceed with to get standalone CoAP implementation? Any pointers would be helpful to me.
Thanks,
Srinivas.

@srinivas1506 thanks for reaching out to the Azure RTOS team.  Standalone CoAP is not yet available.

@yuxin-azrtos,
Thanks for the information. By any chance are your team planning to integrate CoAP near time?
If I have to try CoAP on NetXDuo, how can I proceed? Please let me know if there are any pointers or inputs or git repo links to go ahead.
Thanks in advance,
Srinivas.

I just came across this comment here https://github.com/azure-rtos/netxduo/issues/3#issuecomment-632793953 where CoAP was announced to be available by December 2020. Is there an update of the release date?

@srinivas1506, @hwmaier we don't have plans for CoAP at this point (there were some discussions a while back but CoAP was not prioritized).  Please reach out to<EMAIL_ADDRESS>and we can further help you with your needs.

CoAP is built into the lwM2M stack. However it is not exposed as a standalone module.
From: Henrik Maier @.>
Sent: Wednesday, October 13, 2021 7:27 PM
To: azure-rtos/netxduo @.>
Cc: Yuxin Zhou @.>; State change @.>
Subject: Re: [azure-rtos/netxduo] CoAP standalone support from NetXDuo (#51)
It's still listed here: https://docs.microsoft.com/en-us/azure/rtos/netx-duo/overview-netx-duo#coaphttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Frtos%2Fnetx-duo%2Foverview-netx-duo%23coap&data=04|01|yuxzho%40microsoft.com|33320cc016cf475ff5d908d98eba2935|72f988bf86f141af91ab2d7cd011db47|1|0|637697752503090153|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=GUYGb03W%2B2gUl8bQYxLsVaMWnQkUoiI8ADtMr%2BM9J1Q%3D&reserved=0 as a supported protocol.

You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fazure-rtos%2Fnetxduo%2Fissues%2F51%23issuecomment-942888875&data=04|01|yuxzho%40microsoft.com|33320cc016cf475ff5d908d98eba2935|72f988bf86f141af91ab2d7cd011db47|1|0|637697752503100095|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=dhTgELOJVbf4ku9rMuWogxYgi03lBcTRBInK5SMPkAA%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAPEAIDX6NDWOI5QUQCSIGPLUGY5Y3ANCNFSM5FELDSEA&data=04|01|yuxzho%40microsoft.com|33320cc016cf475ff5d908d98eba2935|72f988bf86f141af91ab2d7cd011db47|1|0|637697752503100095|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=BWYwPi3sSx%2BDKEabsw5Li0nHr%2F7WSt9RzPpTicfapzQ%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|yuxzho%40microsoft.com|33320cc016cf475ff5d908d98eba2935|72f988bf86f141af91ab2d7cd011db47|1|0|637697752503110046|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=FCkNjZjCLwOPkjNnzMRtys2NPsjOL5n2gszuVqhWjow%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|yuxzho%40microsoft.com|33320cc016cf475ff5d908d98eba2935|72f988bf86f141af91ab2d7cd011db47|1|0|637697752503110046|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=v0J1Ert6XUQHZKEUZpI7FjjPBY4AqWVFYP9bPUK4A9I%3D&reserved=0.


k8s dashboard: Not found issue

Organization Name:
Advantech

Short summary about the issue/question:
Cannot login k8s dashboard
Brief what process you are following:

Follow the installation guide on https://openpai.readthedocs.io/en/release-1.0.0/manual/cluster-admin/installation-guide.html to deploy openpai cluster.
Follow the step on https://openpai.readthedocs.io/en/release-1.0.0/manual/cluster-admin/basic-management-operations.html to get k8s dashboard login token information
404 Not found after pass k8s dashboard login session

How to reproduce it:
Follow the 1. ~ 3. in the process flow

OpenPAI Environment:

OpenPAI version: v1.0.0
Cloud provider or hardware configuration: Private OpenStack VM
OS (e.g. from /etc/os-release): Ubuntu 16.04.6 LTS
Kernel (e.g. uname -a): 4.4.0-150-generic
Hardware (e.g. core number, memory size, storage size, GPU type etc.): Master 8CPU/64GB RAM
Others:

Anything else we need to know:

could you try to login through https://masterip/kubernetes-dashboard/?
what's the error log in browser console, you could find by pressing F12

@abuccts
Please refer to

In addition, the  kubernetes-dashboard-openpai pod log while connecting http://${master-ip}/cluster-view/k8s.html is listed below:

2020/05/29 08:31:34 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.
2020/05/29 08:31:40 [2020-05-29T08:31:40Z] Incoming HTTP/1.0 GET /api/v1/csrftoken/login request from <IP_ADDRESS>:35520: { contents hidden }
2020/05/29 08:31:40 [2020-05-29T08:31:40Z] Outcoming response to <IP_ADDRESS>:35520 with 200 status code
2020/05/29 08:31:40 [2020-05-29T08:31:40Z] Incoming HTTP/1.0 POST /api/v1/login request from <IP_ADDRESS>:35522: { contents hidden }
2020/05/29 08:31:40 [2020-05-29T08:31:40Z] Outcoming response to <IP_ADDRESS>:35522 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/login/status request from <IP_ADDRESS>:35530: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35530 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/csrftoken/token request from <IP_ADDRESS>:35532: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35532 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 POST /api/v1/token/refresh request from <IP_ADDRESS>:35534: { contents hidden }
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35534 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/login/status request from <IP_ADDRESS>:35536: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35536 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/csrftoken/token request from <IP_ADDRESS>:35538: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35538 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 POST /api/v1/token/refresh request from <IP_ADDRESS>:35540: { contents hidden }
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35540 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/overview/default?filterBy=&itemsPerPage=10&name=&page=1&sortBy=d,creationTimestamp request from <IP_ADDRESS>:35542: {}
2020/05/29 08:31:42 Getting config category
2020/05/29 08:31:42 Getting discovery and load balancing category
2020/05/29 08:31:42 Getting lists of all workloads
2020/05/29 08:31:42 the server could not find the requested resource
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35542 with 404 status code
2020/05/29 08:31:42 No metric client provided. Skipping metrics.
2020/05/29 08:31:42 No metric client provided. Skipping metrics.
2020/05/29 08:31:42 No metric client provided. Skipping metrics.
2020/05/29 08:31:42 No metric client provided. Skipping metrics.
2020/05/29 08:31:42 Getting pod metrics
2020/05/29 08:31:42 No metric client provided. Skipping metrics.
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/login/status request from <IP_ADDRESS>:35544: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35544 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/systembanner request from <IP_ADDRESS>:35550: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35550 with 200 status code
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Incoming HTTP/1.0 GET /api/v1/rbac/status request from <IP_ADDRESS>:35552: {}
2020/05/29 08:31:42 [2020-05-29T08:31:42Z] Outcoming response to <IP_ADDRESS>:35552 with 200 status code
2020/05/29 08:32:04 Metric client health check failed: the server could not find the requested resource (get services heapster). Retrying in 30 seconds.

@JosephKang could you please provide your k8s-dashboard yaml. You could run kubectl get deployment kubernetes-dashboard-openpai -n kube-system -oyaml to get the output.
And do you enable https for PAi cluster?

@JosephKang  could you provide full dashboard pod logs. That's will be helpful

@Binyang2014
I did not start openpai service on https. Could you please let me know how to set the configuration and start openpai cluster on https?
Please refer to the the following dump yaml file.
dash.yaml.txt
In addition, the log is attached below.
dash.log

@JosephKang k8s-dashboard v1.0.0 could only be accessed after you enable https. I think the latest k8s-dashboard fix this issue, but we don't try.
You can refer to https://openpai.readthedocs.io/en/release-1.0.0/manual/cluster-admin/how-to-manage-users-and-groups.html#pylon-prepare-your-certificate-for-https-self-sign-cert-as-an-example to set up https. Push the new config, then restart pylon, rest-server and k8s-dashboard.

Four files are generated after following  the step in  https://openpai.readthedocs.io/en/release-1.0.0/manual/cluster-admin/how-to-manage-users-and-groups.html#pylon-prepare-your-certificate-for-https-self-sign-cert-as-an-example.

ubuntu@devbox0529-996541-iaas:~/pai⟫ ls -al ~/cert
total 24
drwxrwxr-x  2 ubuntu ubuntu 4096 May 29 10:37 .
drwxr-xr-x 15 ubuntu ubuntu 4096 May 29 10:51 ..
-rw-rw-r--  1 ubuntu ubuntu  733 May 29 10:37 {<IP_ADDRESS>}.crt
-rw-rw-r--  1 ubuntu ubuntu  590 May 29 10:37 {<IP_ADDRESS>}.csr
-rw-rw-r--  1 ubuntu ubuntu  887 May 29 10:37 {<IP_ADDRESS>}.key
-rw-rw-r--  1 ubuntu ubuntu  963 May 29 10:37 {<IP_ADDRESS>}.origin.key

The configuration in ~/pai-deploy/cluster-cfg/services-configuration.yaml are listed below:

pylon:
port: 80
uri: "http://<IP_ADDRESS>:80"
ssl:
# self-sign
crt_name: "{<IP_ADDRESS>}.crt"
crt_path: /home/ubuntu/cert/
key_name: "{<IP_ADDRESS>}.key"
key_path: /home/ubuntu/cert/

However, the following pylon pod error log is captured after pushing the configuration and restart [ pylon rest-server k8s-dashboard] services:

cp: cannot stat '/https-config/{<IP_ADDRESS>}.crt': No such file or directory
cp: cannot stat '/https-config/{<IP_ADDRESS>}.key': No such file or directory
chmod: cannot access '/root/{<IP_ADDRESS>}.crt': No such file or directory
chmod: cannot access '/root/{<IP_ADDRESS>}.key': No such file or directory
2020/05/29 10:46:34 [emerg] 13#0: directive "ssl_certificate" is not terminated by ";" in /etc/nginx/nginx.conf:82
nginx: [emerg] directive "ssl_certificate" is not terminated by ";" in /etc/nginx/nginx.conf:82

All above steps are done on dev-box host.
Should I fix the above errors by copying the *.crt and *.key to the corresponding directories on master? (Currently nginx is not started at master node host..)

Should I fix the above errors by copying the *.crt and *.key to the corresponding directories on master?

no
could you first try to remove the { and } in your file names? rename {<IP_ADDRESS>}.* to <IP_ADDRESS>.*.

The pylon pod error

cp: cannot stat '/https-config/<IP_ADDRESS>.crt': No such file or directory
cp: cannot stat '/https-config/<IP_ADDRESS>.key': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.crt': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.key': No such file or directory
2020/05/29 15:45:59 [emerg] 13#0: BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

could you check whether the configurations have been updated correctly?
# should have the new pylon config
kubectl describe configmap pai-configuration | grep -C 3 crt

# should have the certs
kubectl describe configmap https-config

ubuntu@devbox0529-996541-iaas:~/pai⟫ kubectl describe configmap pai-configuration | grep -C 3 crt
uri: "http://<IP_ADDRESS>:80"
ssl:
# self-sign
crt_name: <IP_ADDRESS>.crt
crt_path: /home/ubuntu/cert/
key_name: <IP_ADDRESS>.key
key_path: /home/ubuntu/cert/
ubuntu@devbox0529-996541-iaas:~/pai⟫ kubectl describe configmap https-config
Error from server (NotFound): configmaps "https-config" not found

how did you restart pylon service? it should be
python paictl.py service stop pylon
python paictl.py service start pylon

then check the config map again
kubectl describe configmap https-config

@abuccts
The start, stop steps and the https config map are listed below

./paictl.py service stop -n pylon rest-server k8s-dashboard
./paictl.py service start -n pylon rest-server k8s-dashboard
kubectl describe configmap https-config
Name:         https-config
Namespace:    default
Labels:
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"ConfigMap","metadata":{"annotations":{},"creationTimestamp":null,"name":"https-config","namespace":"default"}}
Data
====
Events:

@JosephKang Can you check if the certs is copied to pai/src/pylon/https-config folder?
If there is no file under that folder, please copy the cert and key to that folder, then, restart the pylon.
If there are files in that folder, please run kubectl create configmap https-config --from-file=https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f - || exit $? in pai/src/pylon folder.
After that, please check the data in kubectl describe configmap https-config output. If the data is not empty, restart the pylon/rest-server/k8s-dashboard will work

@Binyang2014 ,
The ~/pai/src/pylon/https-config/ or ~/pai-deploy/pai/src/pylon/https-config/ don't exist so I create the directories and copy *.crt and *.crt to those directories and the nuse paictl.py to restart pylon service.
However, the data section in https-config configmap is still empty and the pylon error log is still the same as before after restarting pylon service.

ubuntu@devbox0529-996541-iaas:~/pai⟫ kubectl describe configmap https-config
Name:         https-config
Namespace:    default
Labels:
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"ConfigMap","metadata":{"annotations":{},"creationTimestamp":null,"name":"https-config","namespace":"default"}}
Data
====
Events:
ubuntu@devbox0529-996541-iaas:~/pai⟫ kubectl get pods  | grep pylon
pylon-ds-wqxsv                           0/1     CrashLoopBackOff   5          4m9s
ubuntu@devbox0529-996541-iaas:~/pai⟫ kubectl logs pylon-ds-wqxsv
cp: cannot stat '/https-config/<IP_ADDRESS>.crt': No such file or directory
cp: cannot stat '/https-config/<IP_ADDRESS>.key': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.crt': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.key': No such file or directory
2020/05/31 10:03:23 [emerg] 13#0: BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

what's the output of
ls -l https-config

and
kubectl create configmap https-config --from-file=https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f -

@abuccts

ls ~/pai/src/pylon/https-config/
<IP_ADDRESS>.crt  <IP_ADDRESS>.key
kubectl create configmap https-config --from-file=/home/ubuntu/pai/src/pylon/https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f -
configmap/https-config configured
kubectl logs pylon-ds-nkcn4
cp: cannot stat '/https-config/<IP_ADDRESS>.crt': No such file or directory
cp: cannot stat '/https-config/<IP_ADDRESS>.key': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.crt': No such file or directory
chmod: cannot access '/root/<IP_ADDRESS>.key': No such file or directory
2020/06/01 05:26:47 [emerg] 14#0: BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] BIO_new_file("/root/<IP_ADDRESS>.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/root/<IP_ADDRESS>.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

what's the output of
kubectl create configmap https-config --from-file=https-config/ --dry-run -o yaml

kubectl create configmap https-config --from-file=/home/ubuntu/pai/src/pylon/https-config/ --dry-run -o yaml
apiVersion: v1
data:
<IP_ADDRESS>.crt: |
-----BEGIN CERTIFICATE-----
MIIB6zCCAVQCCQC7LJNUZi04XzANBgkqhkiG9w0BAQsFADA6MQswCQYDVQQGEwJV
UzETMBEGA1UECAwKV2FzaGluZ3RvbjEWMBQGA1UEAwwNMTkyLjE2OC4yMTEuOTAe
Fw0yMDA1MjkxNTQxMzVaFw0zMDA1MjcxNTQxMzVaMDoxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIDApXYXNoaW5ndG9uMRYwFAYDVQQDDA0xOTIuMTY4LjIxMS45MIGfMA0G
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzvjBBsDoREV2xioN7M+Co7jMxI5Wb51Po
KhbNGZcMO6MD7TtpbSsjISAqQnNoqBBv2l0quAtUVz5F5DjYDg4k0LsgpmcmSNNt
hvAVJYhELv0TSiqWGnLGoV4TnTTshth/Tz7tzYuXX/QeQL+I27Rg2t0v9VmMjg3d
EP38X/csPQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAG4NAxlEHTkBwecjGhuJ/sxg
nc8+bx2atG5i2/lFhjBZrYGsnINcUeuqogOQMQUO4J1to+29N3ueg4XKmyOZNeTx
jNqYCJATRzf4yeXnPn5gFN1OT3zEnJ9oCCSJBNbjUnAKDJplzlnDiLe1LUNrlZQC
C913HE25kDH5Tp7/8sQy
-----END CERTIFICATE-----
<IP_ADDRESS>.key: |
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCzvjBBsDoREV2xioN7M+Co7jMxI5Wb51PoKhbNGZcMO6MD7Ttp
bSsjISAqQnNoqBBv2l0quAtUVz5F5DjYDg4k0LsgpmcmSNNthvAVJYhELv0TSiqW
GnLGoV4TnTTshth/Tz7tzYuXX/QeQL+I27Rg2t0v9VmMjg3dEP38X/csPQIDAQAB
AoGAJJS+iX/uMW8RXILOQ5LJVFg2Pvf5COPJpeR7A38DyM+SW8g6YTiAoQOq4i7o
AhLCVaFheMJAPAgNenf6Qa6KnggwuljoH7XsNKW1ub1i703C2xjXfUQGTT+u9O55
k7I1fbBYze2IKaCQLlyGkL5xRmvo4NZNicXVdMYyaxLOMkECQQDakNNFWpVm476r
KInn7+U5lb8emWu676jfl2LgA3tY7aPDVHqcq3ivQPJiW0Z98NtjqRRvojY5y8/f
4LrNoQbJAkEA0ocmJ7DFlh/Y5Ldky1gFlNHpbEaKO9IrCfoxf5x/u2Mzke7b8P+c
7gHE8NZ5KbYRyMADH8rptQubkwP5MIDP1QJARLNxNUOb4pODw1kiv/zwGIGxaXTg
IAplEqMLOU7e3r0T1LohME3VyYCor7HxHnUvAMyM1+otEU23Ma/6B9itwQJAH2nh
LJz47qyz3XTsCleJBarIzMo9yC1VFLkLd8IvYROtV0Iv+Wb60Jzc+R7Xl3y+bJkS
HkVV2BjyTt6R6UXfPQJAWg3mWAkuw5nc0rsoT6b/1Xe9BgJCpRHhUcr1eH7Q55is
QchIDvR0TTuhUsCvYOBQhNvI3z/PvXEu6bfsjwyNPA==
-----END RSA PRIVATE KEY-----
kind: ConfigMap
metadata:
creationTimestamp: null
name: https-config

so will you have data in configmap by running:
kubectl create configmap https-config --from-file=https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f -
kubectl describe configmap https-config

kubectl create configmap https-config --from-file=/home/ubuntu/pai/src/pylon/https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f -
configmap/https-config configured
kubectl describe configmap https-config
Name:         https-config
Namespace:    default
Labels:
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","data":{"<IP_ADDRESS>.crt":"-----BEGIN CERTIFICATE-----\nMIIB6zCCAVQCCQC7LJNUZi04XzANBgkqhkiG9w0BAQsFADA6MQswCQYDVQQGE...
Data
====
<IP_ADDRESS>.crt:

-----BEGIN CERTIFICATE-----
MIIB6zCCAVQCCQC7LJNUZi04XzANBgkqhkiG9w0BAQsFADA6MQswCQYDVQQGEwJV
UzETMBEGA1UECAwKV2FzaGluZ3RvbjEWMBQGA1UEAwwNMTkyLjE2OC4yMTEuOTAe
Fw0yMDA1MjkxNTQxMzVaFw0zMDA1MjcxNTQxMzVaMDoxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIDApXYXNoaW5ndG9uMRYwFAYDVQQDDA0xOTIuMTY4LjIxMS45MIGfMA0G
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzvjBBsDoREV2xioN7M+Co7jMxI5Wb51Po
KhbNGZcMO6MD7TtpbSsjISAqQnNoqBBv2l0quAtUVz5F5DjYDg4k0LsgpmcmSNNt
hvAVJYhELv0TSiqWGnLGoV4TnTTshth/Tz7tzYuXX/QeQL+I27Rg2t0v9VmMjg3d
EP38X/csPQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAG4NAxlEHTkBwecjGhuJ/sxg
nc8+bx2atG5i2/lFhjBZrYGsnINcUeuqogOQMQUO4J1to+29N3ueg4XKmyOZNeTx
jNqYCJATRzf4yeXnPn5gFN1OT3zEnJ9oCCSJBNbjUnAKDJplzlnDiLe1LUNrlZQC
C913HE25kDH5Tp7/8sQy
-----END CERTIFICATE-----
<IP_ADDRESS>.key:
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCzvjBBsDoREV2xioN7M+Co7jMxI5Wb51PoKhbNGZcMO6MD7Ttp
bSsjISAqQnNoqBBv2l0quAtUVz5F5DjYDg4k0LsgpmcmSNNthvAVJYhELv0TSiqW
GnLGoV4TnTTshth/Tz7tzYuXX/QeQL+I27Rg2t0v9VmMjg3dEP38X/csPQIDAQAB
AoGAJJS+iX/uMW8RXILOQ5LJVFg2Pvf5COPJpeR7A38DyM+SW8g6YTiAoQOq4i7o
AhLCVaFheMJAPAgNenf6Qa6KnggwuljoH7XsNKW1ub1i703C2xjXfUQGTT+u9O55
k7I1fbBYze2IKaCQLlyGkL5xRmvo4NZNicXVdMYyaxLOMkECQQDakNNFWpVm476r
KInn7+U5lb8emWu676jfl2LgA3tY7aPDVHqcq3ivQPJiW0Z98NtjqRRvojY5y8/f
4LrNoQbJAkEA0ocmJ7DFlh/Y5Ldky1gFlNHpbEaKO9IrCfoxf5x/u2Mzke7b8P+c
7gHE8NZ5KbYRyMADH8rptQubkwP5MIDP1QJARLNxNUOb4pODw1kiv/zwGIGxaXTg
IAplEqMLOU7e3r0T1LohME3VyYCor7HxHnUvAMyM1+otEU23Ma/6B9itwQJAH2nh
LJz47qyz3XTsCleJBarIzMo9yC1VFLkLd8IvYROtV0Iv+Wb60Jzc+R7Xl3y+bJkS
HkVV2BjyTt6R6UXfPQJAWg3mWAkuw5nc0rsoT6b/1Xe9BgJCpRHhUcr1eH7Q55is
QchIDvR0TTuhUsCvYOBQhNvI3z/PvXEu6bfsjwyNPA==
-----END RSA PRIVATE KEY-----
Events:

It seems that pylon is running, but the https://{masterip} is still unavailable
<IP_ADDRESS> - - [01/Jun/2020:09:30:12 +0000] "GET /healthz HTTP/1.1" 200 12 "-" "kube-probe/1.16"
<IP_ADDRESS> - - [01/Jun/2020:09:31:12 +0000] "GET /healthz HTTP/1.1" 200 12 "-" "kube-probe/1.16"
<IP_ADDRESS> - - [01/Jun/2020:09:32:12 +0000] "GET /healthz HTTP/1.1" 200 12 "-" "kube-probe/1.16"

What's error when you try to access  https://masterip. Can you provide pylon log? You can run kubectl get po | grep pylon to get pylon pod name.
 Can you restart it? If still has such issue. Please paste the rest-server log here.

@Binyang2014
I restart pylon rest-server k8s-dashboard together. The openpai https is ok but the k8s dashboard is unavailable. The rest_server log seems OK but there are some error in pylon.log

rest_server log: rest_server1.log.txt
pylon log: pylon1.log.txt

In addition, the https-config is deleted upon paictl service stop pylon and is not created upon
paictl service start pylon , It seems that the user might need to execute kubectl create configmap https-config --from-file=https-config/ --dry-run -o yaml | kubectl apply --overwrite=true -f - after pylon termination and next pylon activation. Could the configmap generation be embedded in pyctl service start procedure?

@JosephKang,
Let's fix dashboard issue first. Can you find cert folder under src/k8s-dashboard/deploy? There should be two files inside certs folder: tls.crt,  tls.key.
And what's the result when you exec
kubectl describe secret kubernetes-dashboard-certs-openpai -n kube-system
For me it shows:

Name:         kubernetes-dashboard-certs-openpai
Namespace:    kube-system
Labels:       <none>
Annotations:
Type:         Opaque

Data
====
tls.crt:  3551 bytes
tls.key:  1708 bytes

@Binyang2014 ,
No cert files in ~/pai/src/k8s-dashboard/deploy/cert/ directory.

Cert is generated by sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/pai/src/k8s-dashboard/deploy/certs/ca.key -out ~/pai/src/k8s-dashboard/deploy/certs/ca.crt
python paictl.py service stop -n k8s-dashboard
python paictl.py service start -n k8s-dashboard
kubectl describe secret kubernetes-dashboard-certs-openpai -n kube-system
Name:         kubernetes-dashboard-certs-openpai
Namespace:    kube-system
Labels:
Annotations:
Type:         Opaque
Data
====
ca.key:  1704 bytes
ca.crt:  1261 bytes

However, the  k8s dashboard still returns 404 status

pylon log: pylon2.log.txt
rest_server log: rest_server2.log.txt
kubernetes-dashboard-openpai log: kubernetes-dashboard-openpai1.log

Any missing configuration?

@JosephKang, you need to rename cert file to tls.crt and tls.key. Other filename is not work

Hello,
I changed the cert filename and restart the k8s-dashboard and the kubernetes dashboard still returns 404 status after token login phase.

kubectl describe secret kubernetes-dashboard-certs-openpai -n kube-system
Name:         kubernetes-dashboard-certs-openpai
Namespace:    kube-system
Labels:
Annotations:
Type:         Opaque
Data
====
tls.crt:  1261 bytes
tls.key:  1704 bytes
pylon log: pylon3.log.txt
rest_server log: No log during k8s dashboard login phase.
k8s dashboard log: kubernetes-dashboard-openpai3.log

Any suggestion?

Seems it's a k8s-dashboard issue https://github.com/kubernetes/dashboard/issues/4332
Can you show your k8s version by run kubectl version
Seems v1.x not support for kubernetes 1.16.0

kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3" ...}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8",..}

I deploy openPAI v1.0.0 with kubespray v1.12.4 instead of default release-2.11.  Should I downgrade the kubernetes to v1.15.11 with kubespray release-2.11?

We don't test PAI 1.0 version on k8s 1.16. For k8s-dashboard issue, seems you can upgrade dashboard to a new version to solve this (k8s-dashboard v2.0.0-rc3 seems support 1.16 ).
But I am not sure if other services compatible with k8s 1.16. @abuccts @ydye Any idea about this?

It seems that the the k8s dashboard is available through token login method when I sync kubespray version to release-2.11 and kubernetes version v1.15.11 during openPAI  v1.0.0 deployment.
The token method login might not be user friendly and I would like to know how to set the /src/k8s-dashboard/deploy/rbac.yaml so the openPAI default admin can access k8s Dashboard without kubeconfig/token on demand. Should I create another ticket or keep discussion in this thread?

@JosephKang You can create an other issue to track. Actually, it's another feature and we don't support it. We need to investigate if k8s-dashboard allow other authentication methods except using token.
I think we can not modify rbac.yaml to achieve this...

Got it and thanks.


[bug] modify disableIS08601 to disableISO8601

modify disableIS08601 to disableISO8601

Nice! Thanks for your contribution! Look forward to  your more contributions!


feat: Add URL paste handler

I added this with this PR, but it was removed with this commit.
This PR hooks onto the paste event, if text is highlighted, and there is a valid URL in the clipboard, then the editor will use markdown syntax to turn the highlighted text into a hyperlink with the URL in the clipboard.  This matches the behavior of GitHub.  This especially makes it easier to paste URLs on mobile.

we supported automatically turn URLs into links. That means if you type https://www.usememos.com, it will automatically be turned into a link even though you haven’t used brackets.

FYI, so the Markdown standard link syntax is optional.
https://www.usememos.com/docs/getting-started/content-syntax#links

Screencast from 2024-01-15 17-33-07.webm
This addresses a different issue I show in the screencast.  This is where you want to paste a URL, but want it to be a hyperlink to an existing typed string


Exception for onClickOutside(calendar) when upgrading react from 16.4 to 16.5

Expected behavior
for version 1.6.0
select the date as usual when upgrading from react 16.4 to 16.5
Actual behavior
it throws an exception for onClickOutside(calendar):
The above error occurred in the <OnClickOutside(t)> component:
in OnClickOutside(t)
in div
in e
in div
in e
in t
in t
in div
in DatePickerInput
in App
in React::TopLevelRailsComponent
Steps to reproduce
upgrade react 16.4 to 16.5

Can confirm, had the same issue. When I updated to the latest react version (16.6.3) it works fine.

same here

Same error here with
    "react-datepicker": {
      "version": "1.4.1",


OmniSharp won't start after upgrading to VS Code 1.66

Issue Description
OmniSharp won't start after upgrading to VS Code 1.66
Steps to Reproduce
Open the project folder ( c:\Users\Jason Livingston\Dropbox\FixMyCrypto ) in VS Code 1.66
OmniSharp: Select Project -> select FixMyCrypto.csproj
Tried opening other C# directories or project files, same results.
Tried uninstalling & reinstalling OmniSharp to no effect.
Attempting to use OmniSharp: Select Project, or OmniSharp: Restart OmniSharp, gives the log:
[ERROR] Attempt to restart OmniSharp server failed because another server instance is starting.
[ERROR] Error: OmniSharp server load timed out. Use the 'omnisharp.projectLoadTimeout' setting to override the default delay (one minute).
Logs
OmniSharp log
Starting OmniSharp server at 4/2/2022, 12:40:57 PM
Target: c:\Users\Jason Livingston\Dropbox\FixMyCrypto
OmniSharp server started with .NET 6.0.101
.
Path: c:\Users\Jason Livingston.vscode\extensions\ms-dotnettools.csharp-1.24.3-win32-x64.omnisharp\1.38.2-net6.0\OmniSharp.dll
PID: 16512
System.ArgumentException: OmniSharp only supports being launched with a directory path or a path to a solution (.sln, .slnf) file. (Parameter 'path')
at OmniSharp.Services.OmniSharpEnvironment..ctor(String path, Int32 hostPid, LogLevel logLevel, String[] additionalArguments) in D:\a\1\s\src\OmniSharp.Host\Services\OmniSharpEnvironment.cs:line 38
at OmniSharp.CommandLineApplicationExtensions.CreateEnvironment(CommandLineApplication application) in D:\a\1\s\src\OmniSharp.Host\CommandLineApplicationExtensions.cs:line 12
at OmniSharp.Stdio.Driver.Program.<>c__DisplayClass0_1.b__1() in D:\a\1\s\src\OmniSharp.Stdio.Driver\Program.cs:line 49
at OmniSharp.CommandLineApplication.<>c__DisplayClass12_0.b__0() in D:\a\1\s\src\OmniSharp.Host\CommandLineApplication.cs:line 92
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass146_0.b__0(CancellationToken _)
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
at OmniSharp.CommandLineApplication.Execute(String[] args) in D:\a\1\s\src\OmniSharp.Host\CommandLineApplication.cs:line 65
at OmniSharp.Stdio.Driver.Program.<>c__DisplayClass0_0.b__0() in D:\a\1\s\src\OmniSharp.Stdio.Driver\Program.cs:line 84
at OmniSharp.HostHelpers.Start(Func`1 action) in D:\a\1\s\src\OmniSharp.Host\HostHelpers.cs:line 30
C# log
(blank)
Environment information
VSCode version: 1.66.0
C# Extension: 1.24.3
Dotnet Information
.NET SDK (reflecting any global.json):
 Version:   6.0.101
 Commit:    ef49f6213a
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19044
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\6.0.101\
Host (useful for support):
Version: 6.0.1
Commit:  3a25a7f1cc
.NET SDKs installed:
6.0.101 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions

Extension
Author
Version

back-n-forth
nick-rudenko
3.1.1

csharp
ms-dotnettools
1.24.3

githistory
donjayamanne
0.6.19

gitlens
eamodio
12.0.5

vscode-graphviz
joaompinto
0.0.6

vscode-opencl
galarius
0.7.3

I will close this as a duplicate of https://github.com/OmniSharp/omnisharp-vscode/issues/5150.
The problem is a space in your path, as a workaround, you can move your code to a folder without spaces.


Typo when debugger times out

Issue Type: Typo

VS Code Version: 1.54.3
OS Version: Windows 10 20H2 (Windows NT x64 10.0.19042)

Steps to Reproduce:

Install Python extension (If you don't you can't debug python code)
Debug Python code
Make debugger time out

Typo:

Does this issue occur when all extensions are disabled?: No

@Pavlos-Efstathiou I do not see a typo. What do you think is a typo?

@weinand It says waiting for debugee to spawn

@weinand Click the image to see it with a bigger resolution

Yes, that's correct and the "debuggee" is the  program to debug, not the "debugger".

@weinand Sorry for wasting your time

np


Support aliases for convert --from-index option

Support the ability to use aliases for the pypi index URL, e.g.:
whl2conda convert --from-index myindex mypackage

The alias could be taken from standard locations by default, specifically:

[ ] ~/.pypirc
[ ] pyproject.toml (should these depend on what build backend is registered?)

[ ] tool.poetry.source entries
[ ] tool.pdm.source entries
[ ] hatch publish.index.repos.private entries
[ ] a new tool.whl2conda config option

Since this type of conversion may occur outside a project, the pyproject.toml options are less useful. Technically the ~/.pypirc file is only for uploads, so you might not have an entry for a private index that you only pull from.
Another option would be to add a user settings file for whl2conda that could contain these alias definitions.

Maybe just support the ~/.pypirc file to start with


chore: polish UI

Added more icons to assets
Added kRecordUserInteractions configuration option
Added kForceDriverUI configuration option
Added check to capture session only on record mode
Polished UI
Updated DriverUI to load only UIEvents
Temporary disabled masking NetworkEvents
Replaced example app with Bookshelf app

DEMO SESSION
https://github.com/FilledStacks/session_mate/assets/1505545/ddd9d8ee-f68e-4c56-ac55-0e30edda6185

Very nice PR. The list view is a bit slow so we'll reduce the number of images and the size of them so there's only a few in the view. I think we can do 3 in a row. It's too many like this.


Sublime locks up on any file edits

When I open any javascript file and make an edit, or sometimes just when I open it, ST becomes nonresponsive. I can kill plugin_host to revive it, but then I have no plugins running. Disabling TernJS via Package Control makes the problem go away.
This gist contains an Apple error report taken during the problem: https://gist.github.com/sparr/38279738a6f5f4d8ade19a24563ad0df

Having similar issue, tracked it down to webpack plugin.
Here what my .tern-project looks like:
{
	"libs": [
		"ecma5",
		"ecma6",
		"browser",
		"react"
	],
	"dontLoad": [
	    "./dist/**"
	],
	"plugins": {
		"webpack": {
			"configPath": "./webpack.config.js"
		}
	}
}

Initially, i have completion working (suggestions pop up on []. input), but it hangs editor on pretty much any import statement being typed (trying import mobx from 'mobx' it hangs on f in from).


fix: remove use-node-version + update devops docs

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

@raisedadead while I was experimenting locally, the only way I could change the node version for the api was to pnpm pm2 update.
Is that worth documenting?

Sure.