high centroid frequency causes overflow - giving incorrect results

See sample code. When centroid frequency goes into billions and approaches INT.MAX_VALUE, quantile method seems to go through an overflow and reports incorrect result.
Data-structure state seems to be consistent - but when evaluating quantile, incorrect results get returned.
[https://github.com/rohancs/t-digest-bug/blob/master/src/main/java/TDigestBug.java]

Thanks Rohan!
On Tue, Jul 25, 2017 at 11:52 AM, Rohan Sharma<EMAIL_ADDRESS>wrote:

See sample code. When centroid frequency goes into billions and approaches
INT.MAX_VALUE, quantile method seems to go through an overflow and reports
incorrect result.
Data-structure state seems to be consistent - but when evaluating
quantile, incorrect results get returned.
[https://github.com/rohancs/t-digest-bug/blob/master/src/
main/java/TDigestBug.java]
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tdunning/t-digest/issues/93, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPSet91royyb89llG5FWQSe3LWmd7Swks5sRjl2gaJpZM4Oi-ZH
.

@rohancs Did you have a proposed fix?
I am getting ready for a release.

@rohancs
I ran your code on the master branch. I don't understand the problem or it has been fixed. I get this output from your code:
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/tdunning/Apache/t-digest/target/test-classes:/Users/tdunning/Apache/t-digest/target/classes:/Library/Python/2.7/site-packages/rope-0.9.3-py2.7.egg:/Library/Python/2.7/site-packages/ropemode-0.1_rc2-py2.7.egg:/Library/Python/2.7/site-packages/ropemacs-0.6-py2.7.egg:/Library/Python/2.7/site-packages/readline-6.2.2-py2.7-macosx-10.7-intel.egg:/Library/Python/2.7/site-packages/paramiko-1.9.0-py2.7.egg:/Library/Python/2.7/site-packages/pycrypto-2.6-py2.7-macosx-10.7-intel.egg:/Library/Python/2.7/site-packages/PyYAML-3.10-py2.7-macosx-10.7-intel.egg:/Library/Python/2.7/site-packages/carbon-0.9.10-py2.7.egg:/Library/Python/2.7/site-packages/txAMQP-0.6.1-py2.7.egg:/Library/Python/2.7/site-packages/whisper-0.9.10-py2.7.egg:/Library/Python/2.7/site-packages/graphite_web-0.9.10-py2.7.egg:/Library/Python/2.7/site-packages/parquet-1.0-py2.7.egg:/Library/Python/2.7/site-packages:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC:/Users/tdunning/Library/Application Support/IntelliJIdea2016.3/python/helpers/python-skeletons:/Users/tdunning/.m2/repository/org/apache/mahout/mahout-math/0.9/mahout-math-0.9.jar:/Users/tdunning/.m2/repository/org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar:/Users/tdunning/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar:/Users/tdunning/.m2/repository/com/clearspring/analytics/stream/2.5.2/stream-2.5.2.jar:/Users/tdunning/.m2/repository/it/unimi/dsi/fastutil/6.5.7/fastutil-6.5.7.jar:/Users/tdunning/.m2/repository/com/carrotsearch/randomizedtesting/randomizedtesting-runner/2.1.11/randomizedtesting-runner-2.1.11.jar:/Users/tdunning/.m2/repository/junit/junit/4.10/junit-4.10.jar:/Users/tdunning/.m2/repository/com/carrotsearch/java-sizeof/0.0.5/java-sizeof-0.0.5.jar:/Users/tdunning/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar:/Users/tdunning/.m2/repository/com/google/guava/guava/19.0/guava-19.0.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain com.tdunning.math.stats.BigCountTest
******Iteration 1: ******
Count =<PHONE_NUMBER>	 Median = 3000.0003333333334
******Iteration 2: ******
Count =<PHONE_NUMBER>	 Median = 3000.0
******Iteration 3: ******
Count =<PHONE_NUMBER>	 Median = 3000.0
******Iteration 4: ******
Count =<PHONE_NUMBER>	 Median = 3000.0
******Iteration 5: ******
Count =<PHONE_NUMBER>	 Median = 3000.0

This seems OK to me. Can you comment?

Hi @tdunning - sorry i was out on vacation and just got back. You are right - looks like this is fixed in the current master. My test was pinned against your last release version 3.1

That's great new.
I will resolve this issue and not block the next release.
On Thu, Aug 3, 2017 at 12:52 PM, Rohan Sharma<EMAIL_ADDRESS>wrote:

Hi @tdunning https://github.com/tdunning - sorry i was out on vacation
and just got back. You are right - looks like this is fixed in the current
master. My test was pinned against your last release version 3.1
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tdunning/t-digest/issues/93#issuecomment-320072450,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPSegr6B1PsB4aFsNxRNTqrCTFtUxodks5sUiT2gaJpZM4Oi-ZH
.

sounds good. Thank you !


Fix Issue #532

This is a fix to avoid error when user access_token auth in weibo backend. Please review it

Merged, I've also added a couple simplifications.

Thanks!


Add CD Loga Highschool students email domain

CD Loga Highschool is already included as<EMAIL_ADDRESS>but this is for the administrator and teachers emails.
Students emails received the @e-cdloga.ro domain, therefore we need to add this domain too, so that our students can access the students offers.
Highschool website: http://cdloga.ro
Highschool mathematics-informatics (4 years - highschool): http://cdloga.ro/specializarea-matematica-informatica/
Thank you!

@AlexandruSava First stage of verification passed, official domain is cdloga.ro as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision. Proof of domain ownership: http://cdloga.ro/ecdl/

I have a screenshot from one of the students receiving an email, maybe it helps. It's in Romanian. Their @e-cdloga.ro domain is also connected with Google suite, they have access to Google Classroom etc. Thank you!

@AlexandruSava Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Include a shortcode for math equations

I think something like MathJax could be integrated to allow rendering math equations in the page content.

Fixed by cd73760d519b1b4fab83488b99f3345a1bdfb570


BERSERK and the Band of the Hawk [PCSE01034]

App summary

App name: BERSERK and the Band of the Hawk
App serial: PCSE01034
App version: 1.00

Vita3K summary

Version: v0.1.9
Build number: 3423
Commit hash: https://github.com/vita3k/vita3k/commit/23d02897
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: ?
OS: Windows 10/macOS/Linux Distro, Kernel Version?
CPU: AMD/Intel?
GPU: AMD/NVIDIA/Intel?
RAM: 3 GB

Issues

Screenshots

Log
Recommended labels

A?
B?
C?

the commit hash maybe android version, the compat report not for android


daemon mode and metrics

As a repository operator I want krill-sync to run as a daemon with prometheus metrics.
At the moment krill-sync is a one-shot process that keeps state on disk. In order to know that it runs successfully it would be helpful if it has prometheus metrics. This can be done externally in a supervisor process, optionally with screen-scraping, or internally in krill-sync.
One advantage of a daemon mode is that state can be kept in memory - saving 10-15s per update for large repositories.

After running it locally, I'm not sure the speed increase of in memory state is worth it. I would probably have to test it on a slower system. On my development system, even a large repository is fast:
$ docker run -v `pwd`/data:/data --rm -e RRDP_URL="https://rrdp.ripe.net/notification.xml" krill-sync
2021/04/22 09:13:50 INFO: Downloading RRDP notification file (if supported will not re-download if not modified)
2021/04/22 09:13:50 INFO: Parsing RRDP notification file
2021/04/22 09:13:50 INFO: Remote RRDP notification serial is 1078
2021/04/22 09:13:50 INFO: Downloading RRDP snapshot file https://rrdp.ripe.net/66221b75-cf14-4693-99e4-96ce9717c874/1078/snapshot.xml
2021/04/22 09:13:52 INFO: Updating Rsync repository
2021/04/22 09:13:54 INFO: Performing atomic update of the Rsync repository
2021/04/22 09:13:54 INFO: Writing RRDP snapshot file
2021/04/22 09:13:54 INFO: Checking for missing RRDP delta files
2021/04/22 09:13:54 INFO: Downloading 159 files
2021/04/22 09:13:55 INFO: Downloading 16 files concurrently: 74 remaining, 0 retried, 0 failed
2021/04/22 09:13:56 INFO: Performing atomic update of RRDP notification file

Closing this for now. If this is still needed then feel free to re-open the issue or create a new issue.


[WIP] Support for BaseIntermediateOutputPath

This is a follow up for #2642
I didn't go the "try to parse MSBuild variable for global restore" path, but instead decided to add option to disable paket global restore.
Given following Directory.Build.props file:
<Project>

  <PropertyGroup>
    <IsWindows Condition="...">true</IsWindows>
    <IsOSX Condition="...">true</IsOSX>
  </PropertyGroup>

  <PropertyGroup>
    <DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/obj/**/*</DefaultItemExcludes>
    <DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/bin/**/*</DefaultItemExcludes>

    <!-- THIS IS NEW -->
    <PaketDisableGlobalRestore>true</PaketDisableGlobalRestore>
    <!-- THIS IS NEW -->

  </PropertyGroup>

  <PropertyGroup Condition="'$(IsWindows)' == 'true'">
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/obj/windows/</BaseIntermediateOutputPath>
    <BaseOutputPath>$(MSBuildProjectDirectory)/bin/windows/</BaseOutputPath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(IsOSX)' == 'true'">
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/obj/osx/</BaseIntermediateOutputPath>
    <BaseOutputPath>$(MSBuildProjectDirectory)/bin/osx/</BaseOutputPath>
  </PropertyGroup>

</Project>

I read PaketDisableGlobalRestore property in Paket.Restore.targets :
...

    <!-- Do a global restore if required -->
    <Exec Command='$(PaketBootStrapperCommand)' Condition=" '$(PaketBootstrapperStyle)' == 'classic' AND Exists('$(PaketBootStrapperExePath)') AND !(Exists('$(PaketExePath)'))" ContinueOnError="false" />
    <Exec Command='$(PaketCommand) restore' Condition=" '$(PaketRestoreRequired)' == 'true'
        AND '$(PaketDisableGlobalRestore)' != 'true' " ContinueOnError="false" />

...

which basically makes I skip global restore.
Then for each project I pass BaseIntermediateOutputPath:

    <!-- Step 3 Restore project specific stuff if required -->
    <Message Condition=" '$(PaketRestoreRequired)' == 'true' " Importance="low" Text="Detected a change ('$(PaketRestoreRequiredReason)') in the project file '$(MSBuildProjectFullPath)', calling paket restore" />
    <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)"
     --output-path "$(BaseIntermediateOutputPath)" --target-framework "$(TargetFrameworks)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' == '' " ContinueOnError="false" />
    <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)"
     --output-path "$(BaseIntermediateOutputPath)" --target-framework "$(TargetFramework)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' != '' " ContinueOnError="false" />

End game for my use case is I can build same project simultaneously on OSX and Windows and paket doesn't interfere.
I have few projects in solution, that's why skipping global restore optimisation is reasonable for me.
I'm aware my proposed solution isn't ideal, but at least it works for me and requires an explicit opt-in.
Please let me know what you think @forki @matthid @0x53A -  if this is OK then I'll proceed with adding some docs and an integration test

@matthid  ??

This doesn't scale for more projects and introduces a perf regression, for example this most likey makes fake solution unworkable.
While this is opt in I'm not a fan, in fact this pseudo fixes the issue until one with a huge solution needs this... Personally I wouldn't merge this. But it solves someone's problem. It will be an option practically nobody has enabled and therefore we will not catch regressions easily...
Well that's my 2cents

Do you have other ideas how to otherwise add support for BaseIntermediateOutputPath?
In #2642 you mentioned using https://github.com/enricosada/dotnet-proj-info - do you still think that's the way to go?

Alternatively I'm thinking of finding Directory.Build.props and appending all nodes before parsing each ProjectFile

Alternatively I'm thinking of finding Directory.Build.props and appending all nodes before parsing each ProjectFile

MsBuild is a full programming evironment in xml, that approach is going to fail for anything but the simplest files.
That's also why any "outside" parsing of project files will fail - you need msbuild. https://github.com/enricosada/dotnet-proj-info does use MsBuild and so should work correctly.

My opinion is that the perf hit would be acceptable for anything but the largest solutions with literally hundreds of projects, the restore is cached anyway.

My opinion is that the perf hit would be acceptable for anything but the largest solutions with literally hundreds of projects, the restore is cached anyway. But as always with performance, it needs to be timed and profiled.

Sadly this is not the problem. In fact the problem is that even while Microsoft caches its stuff Paket does not and basically last time I checked even if Microsoft cache was up to date it would still call Paket.exe and calling paket.exe is the most expensive thing in the whole process, it doesn't even matter what paket does because spawning the process and parsing command line is already too slow. So as you can see caching doesn't even matter at all.

Looking at this PR again, maybe it is acceptable:
The most important thing is to not call paket.exe a second time after the project has been restored successfully.
I think this PR still holds this property. I feel like if we add a fast-path for command line parsing for this particular call it is fine by me.
So this option will slow down the initial restore by a lot, but future restores are still fine.

I feel like if we add a fast-path for command line parsing for this particular call it is fine by me.

Do you mean restore with --output-path argument?
If so, shall I simply remove Output_Path case from RestoreArgs and parse it directly in main ?

Like in https://github.com/fsprojects/Paket/pull/3527/commits/25b1e8be32c2d9b4044689a6d9d981c19f3f2e93 ?

If so, shall I simply remove Output_Path case from RestoreArgs and parse it directly in main ?
Like in 25b1e8b ?

Yes, however please leave it in the argu arguments such that --help and users giving a different ordering works as expected.

Ok - done. Added also a short note to docs
I'll add an integration tests next week (hopefully)

@matthid This is now ready for review

can you please merge with master?

There you go

Seems CI is telling me I broke one existing integration tests - will investigate

The integration test fails probably due to breaking change in restore cli arguments:
I added --output-path parameter to restore in Paket.Restore.targets, but apparently integration tests are using an older build of paket.
Can I trick the netcore integration tests to use a freshly built paket?

Think I finally got it right

thanks. this is released


Add example about std.process

This example actually makes it look harder than it should be.  My favorite std.process example is execute, which automatically forks, execs a new process, redirect its output into a buffer, and returns said buffer. So you can just write:
auto result = execute(["echo", "hello", "world"]);
assert(result.output == "hello world\n");

Of course, you can also check return codes and what-not, but this shows the basic functionality.

+1 @quickfur. At most something like this:
auto result = execute(["echo", "hello", "world"]);
enforce(result.output == "hello world\n");
enforce(result.status == 0);

We can add a more advanced example after we get an example selection box (#1777).

Subjective but I'd put an enforce here instead of writeln :)
(and move the status check before reading output)

Sounds good to me. It just wanted to avoid an empty result page - that's a bit boring for a reader.
Btw what do you think about using D to generate the arguments?
void main()
{
    import std.algorithm, std.conv, std.exception, std.range, std.stdio, std.process;

    auto result = "echo".only.chain(5.iota.map!(to!string)).array.execute;
    result.output.write; // 0 1 2 3 4
    enforce(result.status == 0);
}

Unfortunately it's not that elegant, so it's probably very confusing for newcomers?

For convenience:

I think it's fine as it is. Maybe it would be worth it if someone thinks of a still concise but more interesting example than echo.
BTW, where are we stylistically regarding optional parens on the last function of a UFCS chain? I know we're officially not doing optional parens within the chain. With no parens the line doesn't look like it has a function call in it, not sure if that would be confusing or not.

Maybe it would be worth it if someone thinks of a still concise but more interesting example than echo.

How about whoami - we could leave the solution out and thus force people to play with the snippet to find out.
Spoiler

BTW, where are we stylistically regarding optional parens on the last function of a UFCS chain? I know we're officially not doing optional parens within the chain. With no parens the line doesn't look like it has a function call in it, not sure if that would be confusing or not.

Not sure. I have seen Andrei commenting on a couple of PRs in favor of avoid parenthesis for function calls with zero arguments (e.g. foo() -> foo), so I guess that's the semi-official style guideline. Should we make it official?

Not sure. I have seen Andrei commenting on a couple of PRs in favor of avoid parenthesis for function calls with zero arguments (e.g. foo() -> foo), so I guess that's the semi-official style guideline. Should we make it official?

I think only @andralex can answer that :)

I have seen Andrei commenting on a couple of PRs in favor of avoid parenthesis for function calls with zero arguments (e.g. foo() -> foo),

Were the function calls sub-expressions, or entire statements?

How about whoami - we could leave the solution out and thus force people to play with the snippet to find out.

I think whoami is a great idea. It's even available on Windows, a rarity among shell commands!

Placing parens after a function name is a sacred cow. It will take time to convince people to eat burgers.

I think whoami is a great idea

Rebased (due to the other changes).

It's even available on Windows, a rarity among shell commands!

Wow.

result.output.write; // so, who are you?
I think the comment is a bit over the top :) Someone non-technical might get confused or insulted (it happens).

Couldn't think of a good, neutral way, so I simply removed the comment.

Ping @CyberShadow - I think we are all set here :)


remove hardcoded texts

@Njoguu I am new to open source Can u pls assign this issue to me

hello @Mutant-Slayer, it has been a while since I've worked on this project, but sure, you can work on the issue

@Njoguu I have raised the PR. Please review and merge


valid html

Thanks for the pull request. Could you sign the contributor agreement as described at https://github.com/google/lovefield/blob/master/CONTRIBUTING.md?

I did that. Under the github username peterbe but I think under a different email address than the one I have on GitHub.

Thanks, I see it now. Will be merging this pull request shortly.

Merged as https://github.com/google/lovefield/commit/0276ec8934626862c87b35dee9bebccfbf94521a.


Cherrytree for KO and RequireJS example

Hello Nathan,
I was trying to use cherrytree using require but I am having some problems. I was wondering if you could help me out.
the versions I am running are:

cherrytree 2.3.1
cherrytree-for-ko 0.5.2

this is my main class
requirejs(['knockout', 'cherrytree', 'pages/home/home',
'components/greeting', 'cherrytree-for-knockout'], function (ko, cherrytree, homeComponent, greetingComponent, cherrytreefoko) {

    ko.components.register('home', homeComponent);
    ko.components.register('greeter', greetingComponent);

    router = cherrytree();

    router.map(function (route) {
        route('home', homeComponent);
    })

    router.use(ko.bindingHandlers.routeView.middleware);
    router.listen();

    ko.applyBindings({ router: router }, document.querySelector('main'));
});

<main data-bind="routeView: router"></main>

the problem that is on the console says:
Uncaught (in promise) TypeError: Cannot read property 'name' of undefined(…) in this line:
middlewareName = router.middleware[i].name || 'anonymous'; of cherrytree.js
It seems that I am not able to load the middleware.
Thanks a lot Nathan.

We use requirejs with cherrytree-for-knockout, as well as bower, so we have a requirejs.config.js file that looks like this:
require.config({
  baseUrl: '/',
  paths: {
    cherrytree: 'bower_components/cherrytree/build/standalone',
    'cherrytree-for-knockout': 'bower_components/cherrytree-for-knockout/cherrytree-for-knockout',
    knockout: 'bower_components/knockout/dist/knockout.debug',
  }
})

so it's odd you are calling requirejs instead of require there (typo)? but cherrytree-for-knockout uses a UMD wrapper so you can easily use it as a regular script, or with require.js, webpack, browserify, and the like.


[CODE QUALITY]

Async/Await Syntax instead of .then()/.catch()

Any updates on this? Or any changes?

Make a branch with your desired changes and would review it. Closing the issue right now. Open it again once it's back on.


Validate NullReferenceException

Hi,
I got this error each time, with lack of information of exception details.
StackTrace looks like this:   at lambda_method(Closure , CreateAddressRequestForm )
at FluentValidation.Internal.Extensions.<>c__DisplayClass9_02.<CoerceToNonGeneric>b__0(Object x)    at FluentValidation.Validators.PropertyValidatorContext.<>c__DisplayClass24_0.<.ctor>b__0()    at System.Lazy1.CreateValue()
at System.Lazy1.LazyInitValue()    at System.Lazy1.get_Value()
at FluentValidation.Validators.NotEmptyValidator.IsValid(PropertyValidatorContext context)
at FluentValidation.Validators.PropertyValidator.Validate(PropertyValidatorContext context)
at FluentValidation.Validators.DelegatingValidator.Validate(PropertyValidatorContext context)
at FluentValidation.Internal.PropertyRule.InvokePropertyValidator(ValidationContext context, IPropertyValidator validator, String propertyName)
at FluentValidation.Internal.PropertyRule.d__60.MoveNext()
at System.Linq.Enumerable.d__172.MoveNext()    at System.Linq.Enumerable.WhereEnumerableIterator1.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at FluentValidation.Results.ValidationResult..ctor(IEnumerable1 failures)
at FluentValidation.AbstractValidator1.Validate(ValidationContext1 context)
at FluentValidation.AbstractValidator1.Validate(T instance)    at FluentValidation.AbstractValidator1.FluentValidation.IValidator.Validate(Object instance)
at Activities.Validate1.ValidateData(CodeActivityContext context) in Activities\Validate.cs:line 63    at Activities.Validate1.Execute(CodeActivityContext context) in Activities\Validate.cs:line 17
at System.Activities.CodeActivity`1.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Hi, you're going to need to provide more information than that for me to help.
How is your validator defined? How are you calling it?

i think that call and definition of validator is OK, problem appears somewhere deeper. Cant tell if it helps anywhay but that is all i have

It suggests to me that there's a problem with how the validator is defined or being executed. I really can't help though if you don't post the code...

private ValidationResult ValidateData(CodeActivityContext context)
{
var dataToValidate = DataToValidate.Get(context);
        var validator = GetValidator(context, dataToValidate);
        if(validator == null)
            throw new ArgumentException(string.Format("Validator for type: '{0}' could not be create by Factory.",
                typeof (TData)));

        **return validator.Validate(dataToValidate);**
    }

    private static IValidator GetValidator(CodeActivityContext context, TData dataToValidate)
    {
        return context.GetExtension<IValidatorFactory>().GetValidator(dataToValidate.GetType());
    }

As I said before, I need to see how the validator is defined. Thanks.

Hi, I need the code for the validator itself

And why are you invoking the constructor with reflection? You should be either be instantiating it directly or using a DI container.


feat: update to auto-launch 0.3 with arbitrary args support

looks like the upsteam crate is using anyhow instead of thiserror, will open a PR upstream and update later when they release a new version.

wouldn't this mean the plugin needs to depend on anyhow too ?

upstream PR to switch to thiserror has been merged but not sure when it is gonna be published.


Update dependency pdm-backend to v2.3.1

This PR contains the following updates:

Package
Type
Update
Change

pdm-backend
build-system.requires
patch
==2.3.0 -> ==2.3.1

Release Notes

pdm-project/pdm-backend (pdm-backend)
v2.3.1
Compare Source
🐞 Bug Fixes

Handle unexpected hg repo when parse scm version  -  by @huxuan in https://github.com/pdm-project/pdm-backend/issues/237 (d6fec)
Treat PDM_BUILD_SCM_VERSION empty string as unset  -  by @ryukinix in https://github.com/pdm-project/pdm-backend/issues/238 (596f1)
Honor the current working directory when importing pdm_build.py Close #245  -  by @frostming in https://github.com/pdm-project/pdm-backend/issues/245 (ba98c)
Errors when using the editables backend with the includes field. Fixes #242  -  by @frostming in https://github.com/pdm-project/pdm-backend/issues/242 (59396)
Vendor editables  -  by @frostming (95da7)

View changes on GitHub

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

covered in #18


DllImport with WASM library does not work

I'm trying to integrate an externally built wasm library, built using the emscripten sdk that comes with VS 2022 (17.2.6) through CMake.
Using a sample Test.cpp file from the Blazor native example as a native file dependency, works as expected.
However when trying to integrate my library, I'm unable to import the symbol from the externally built wasm static library (.a), I end up with a System.DllNotFoundException exception.
I can see the symbol I'm trying to import in the .a/.o file and I've tried various names for the dll, based on source file, library name etc. with no luck.
How am I supposed to do this using DllImportAttribute? Is it possible or am I missing some steps?

After a bit of investigation, it turns out that using the full library name libXYZ in the DllImport attribute corresponding to the library file libXYZ.a from the project file, does in fact work as expected. Awsome :-)


Enable GitHub Pages

I suggest to enable GitHub Pages in the settings to serve the docs directory as a website.

I almost did it, but that would require some significant changes behind the scenes without much benefit.
GitHub is only suitable for developing Tatin. For using it the user should go to https://tatin.dev, where the documentation is available.


Improve Named && Path params by using updaters

[772] - https://transfer.sh/orA8D/jdi-dark-tests.tar.gz

[772] - Allure report on Netlify: https://5e691160546b2365c0f0800f--jdi-dark.netlify.com


Successful vncproxy calls do nothing

Trying to use vncproxy results in nothing being done although all the api calls seemed successful.
Needs investigation

The problem is that any get_record and get_all_record call is broken and fails with Exception: Not_found


Change method name 'decapitalize' to 'toLowerCaseName'

This class is used to represent TypeUtils.  This method named 'decapitalize' is to convert to lowercase name. Thus, the method name 'toLowercaseName' is more intuitive than 'decapitalize'.

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

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

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

Hello. I already signed the CLA contributor agreement.

Changing method's name, class name or constant name may not be recommended in this case, considering the consistency of usage of this library.


Obtain a detailed list of properties for a single facility.

Obtain a detailed list of attributes for a single healthsite.
https://docs.google.com/document/d/1O0uWYTIWUMDJgERYBpU3GBFgMXNoFDakO_F-966qkGk/edit?usp=sharing

https://staging.healthsites.io/api/v1/healthsites/facility/details?guid=25fc46e6a0d44a7ca6690916cfe25cea

https://staging.healthsites.io/api/v1/healthsites/facility/details?guid=46c660866f104859b4e36be1f7057db6


bot error

help me figure out what happened
got error when !play song title
OS : ubuntu-16.04-x86_64
~/jMusicBot# java -jar JMusicBot-0.1.1.jar -nogui [INFO] Loading config: /root/jMusicBot/config.txt [main] INFO net.dv8tion.jda.core.JDA - Login Successful! [JDA MainWS-ReadThread] INFO net.dv8tion.jda.core.requests.WebSocketClient - Connected to WebSocket [JDA MainWS-ReadThread] INFO net.dv8tion.jda.core.JDA - Finished Loading! [JDA MainWS-ReadThread] INFO net.dv8tion.jda.core.managers.AudioManager - Audio System successfully setup! [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager - Problematic YouTube player script /yts/jsbin/player-vflBjp0_H/en_US/base.js detected (issue detected with script: no actions match). Dumped to /tmp/lavaplayer-yt-player-script2716551496537840012.js. [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of YyfmajcIZtM com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track.         at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:40)         at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:102)         at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348)         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)         at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalStateException: Must find action functions from script: /yts/jsbin/player-vflBjp0_H/en_US/base.js         at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.extractTokensFromScript(YoutubeSignatureCipherManager.java:185)         at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getCipherKeyFromScript(YoutubeSignatureCipherManager.java:141)         at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getValidUrl(YoutubeSignatureCipherManager.java:100)         at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:99)         at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:60)         at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:90)         ... 4 more

This is an underlying lavaplayer issue, it will be fixed in the next release

My bot does not touch anything anymore, does anyone there have the same problem?
when I use the play command it adds the song after it exits the room

What version are you using? This should all be fixed in the latest release, 0.1.2

0.1.1
[main] INFO net.dv8tion.jda.core.JDA - Login Successful! [JDA MainWS-WriteThread] INFO net.dv8tion.jda.core.requests.WebSocketClient - Connected to WebSocket [JDA MainWS-ReadThread] INFO net.dv8tion.jda.core.JDA - Finished Loading! [JDA MainWS-ReadThread] INFO net.dv8tion.jda.core.managers.AudioManager - Audio System successfully setup! [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager - Problematic YouTube player script /yts/jsbin/player-vflBjp0_H/pt_BR/base.js detected (issue detected with script: no actions match). Dumped to C:\Users\Pedro\AppData\Local\Temp\lavaplayer-yt-player-script6814070627134823916.js. [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of gEPmA3USJdI com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track. 	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:40) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:102) 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 	at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalStateException: Must find action functions from script: /yts/jsbin/player-vflBjp0_H/pt_BR/base.js 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.extractTokensFromScript(YoutubeSignatureCipherManager.java:185) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getCipherKeyFromScript(YoutubeSignatureCipherManager.java:141) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getValidUrl(YoutubeSignatureCipherManager.java:100) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:99) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:60) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:90) 	... 4 more [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of gEPmA3USJdI com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track. 	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:40) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:102) 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 	at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalStateException: Must find action functions from script: /yts/jsbin/player-vflBjp0_H/pt_BR/base.js 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.extractTokensFromScript(YoutubeSignatureCipherManager.java:185) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getCipherKeyFromScript(YoutubeSignatureCipherManager.java:141) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getValidUrl(YoutubeSignatureCipherManager.java:100) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:99) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:60) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:90) 	... 4 more [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of mThqhAT2Irk com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track. 	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:40) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:102) 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 	at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalStateException: Must find action functions from script: /yts/jsbin/player-vflBjp0_H/pt_BR/base.js 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.extractTokensFromScript(YoutubeSignatureCipherManager.java:185) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getCipherKeyFromScript(YoutubeSignatureCipherManager.java:141) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getValidUrl(YoutubeSignatureCipherManager.java:100) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:99) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:60) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:90) 	... 4 more [lava-daemon-pool-playback-1-thread-1] ERROR com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor - Error in playback of mThqhAT2Irk com.sedmelluq.discord.lavaplayer.tools.FriendlyException: Something broke when playing the track. 	at com.sedmelluq.discord.lavaplayer.tools.ExceptionTools.wrapUnfriendlyExceptions(ExceptionTools.java:40) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:102) 	at com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager.lambda$executeTrack$1(DefaultAudioPlayerManager.java:348) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 	at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalStateException: Must find action functions from script: /yts/jsbin/player-vflBjp0_H/pt_BR/base.js 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.extractTokensFromScript(YoutubeSignatureCipherManager.java:185) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getCipherKeyFromScript(YoutubeSignatureCipherManager.java:141) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeSignatureCipherManager.getValidUrl(YoutubeSignatureCipherManager.java:100) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.loadBestFormatWithUrl(YoutubeAudioTrack.java:99) 	at com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack.process(YoutubeAudioTrack.java:60) 	at com.sedmelluq.discord.lavaplayer.track.playback.LocalAudioTrackExecutor.execute(LocalAudioTrackExecutor.java:90) 	... 4 more

Please update to 0.1.2

ok


Is it possible to change ports on apiext deployment?

https://github.com/emissary-ingress/emissary/blob/5f01e923a297182a08217b7651bfc1a77735391f/cmd/apiext/main.go#L54

context:
we are migration ambassador edge stack from 1.14 to 2.2 and this port is blocking the webhooks in a EKS cluster with calico. I need to use hostNetwork for my webhooks due to calico and I need to chose a different port for the setup. If I use raw as is deployments from this tutorial: https://www.getambassador.io/docs/edge-stack/latest/topics/install/upgrade/yaml/edge-stack-1.14/edge-stack-2.2/  I get the following error:
kubectl -n ambassador logs -f aes-9598676c-56cv9

E0417 20:41:05.376019       1 reflector.go:138] pkg/kates/client.go:439: Failed to watch *unstructured.Unstructured: failed to list *unstructured.Unstructured: conversion webhook for getambassador.io/v2, Kind=Mapping failed: Post "https://emissary-apiext.emissary-system.svc:443/webhooks/crd-convert?timeout=30s": Address is not allowed

sorry @jbdacruz , I was not able to solve it

Kubernetes is what talks to apiext, and it expects to use standard HTTPS. So… you could tweak the service definition a bit, maybe, but it's unclear from our perspective what the point would really be.  Is it possible the firewall in EKS is blocking things?

Same issue here in EKS just following the examples in the emissary-ingress documentation

@cindymullins-dw the configuration is required so that when hostNetwork: true is chosen that we could choose the ports to use. Currently the ports 8080, 8443 could be taken up by another item on the host. By being able to configure it, we could set it ourselves if there are conflicts.
I'm happy to create a PR for this. I'm just not sure how best to set the values? ENV variables seem the easiest

hit the same issue with EKS cluster & Calico. The main reason is mentioned at Calico's website: https://projectcalico.docs.tigera.io/getting-started/kubernetes/managed-public-cloud/eks

Note: Calico networking cannot currently be installed on the EKS control plane nodes. As a result the control plane nodes will not be able to initiate network connections to Calico pods. (This is a general limitation of EKS’s custom networking support, not specific to Calico.) As a workaround, trusted pods that require control plane nodes to connect to them, such as those implementing admission controller webhooks, can include hostNetwork:true in their pod spec. See the Kubernetes API pod spec definition for more information on this setting.

Basically the only thing we can do is to use hostNetwork:true, then apitext by default will only use 8080, 8443 which obviously is not ideal. It should be configurable.
For reference, cert-manager has a nice documentation exactly about this https://cert-manager.io/docs/installation/compatibility/ and it provides a nice configurable value webhook.securePort in their helm chart

@matdehaast and @aspexdaniel thanks for that context.  I'll ask about this at our next Emissary Contributors meeting in Jan.  You're also welcome to attend.  If this is something we can do and you're still interested in contributing it'd be helpful if you could join our #emissary-dev channel in our Slack.

@EvertonSA @aspexdaniel @jbdacruz hey guys, were you able to work around this issue? We had to update ambassador to a new version due to a cluster upgrade and ended up facing this same issue.

@matdehaast if this is still posing problems for you, are you still interested in contributing to this change?

I have not figure out @gutozntt, I left the company, but afaik this problem still exists on aws. on gcp seems to be all good

We encountered this issue today. We tried to solve it by configuring the deployment to use hostnetworking and then configuring the Emissary CRDs to use different port for the conversion webhook. The default configuration for every CRD looks like this:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: emissary-apiext
          namespace: emissary-system

According to Kubernetes Documentation, we should be able to hardcode the port by simply configuring it like this:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: emissary-apiext
          namespace: emissary-system
          port: 9443

But after creating the CRDs with this modified config, describing the CRD shows that the hardcoded port is not used:
        Service:
          Name:       emissary-apiext
          Namespace:  emissary-system
          Path:       /webhooks/crd-convert
          Port:       443

So for me this looks like a bug. Something seems to override the config during apply, which shouldn't happen.

It looks like I was able to fix this by deleting all the apiext-emissary resources and applying everything again. Now the port-config seems to applied correctly!
It seems that it was not enough to delete only the CRD's and creating them again. So the configuration I provided above should work for others too

Seems like the port will be overwritten by emissary-apiext. The 443 port is hardcoded here: https://github.com/emissary-ingress/emissary/blob/19f9e0069e38beb87320e465cc8377335c15b2f9/cmd/apiext/inject.go#LL52C27-L52C27


Incorrect Indenting Behavior in VS

Ported from https://github.com/dotnet/roslyn/issues/44607 by @DanielRosenwasser
This issue has been moved from a ticket on Developer Community.

Found this problem was reported before, appears to have been reported as fixed.  But it is happening again…   The title info for the original report is:
TITLE:  Wrong indenting
DATE:  Olaf van der Spek reported 12/7/2018, 12:54:20 PM
Problems is effectively the same.   Running VS 2019 v16.6.0.  When you select the editor’s  setting for “Indenting” which can be one of  [NONE|BLOCK|SMART], selecting ‘BLOCK’  the cursor, most of the time, upon present ENTER goes to column 1 on the next line.   Appears “INDENTING is behaving as “NONE” is selected.
Not sure when started, bouncing between VS 2017 and 2019, never have seen the problem in 2017, can’t say it ever worked in 2019 for that matter.

Original Comments
Visual Studio Feedback System on 5/27/2020, 03:16 AM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.

Original Solutions
(no solutions)

Tagging  @ZooDoo4U

@ZooDoo4U wrote

Hope i didn't add confusion,  Adding the comment i left on the "Developer Community"...
I'm working in a few languages and file types. C#, javascript, html, jsx, css. Normally i turn off all auto formatting and will normally fix up the code as desired. First thing i'll do is go in to Tool::Options then Languages and set "Indenting to" "BLOCK". I'm thinking what might be happening, and makes the most sense to me, most everyone leaves all the "Auto Formatting" on and they have "On Enter" reformat, just find it too distracting.
In C# files the intending can be really inconsistent, i've seen it happen a lot, but right now, can't get a good repro, but guarantee i've seen it happen a lot, i'm wondering fiddling with some of the setting investigating I got it working right for a little while in C#. Actually when it happened earlier today in C# that is what prompted me to open this issue. Normally I work 70% in C#, then the other languages.
Javascript/JSX files, this i can repro 100%. Start off with, hope i don't confuse it but will try showing where press enter/tab, for example {ENTER} is where the enter key was pressed.
(New Empty file) Then start typing:
function testMe() {{ENTER}
// Here the cursor will be in column 1. Fair enough one might argue it follows block formatting rules here technically
Now continuing on i'll tab in:
function testMe() {
{TAB}const x = 5;{ENTER}
// Ah now the cursor again is in column 1, expected column 4, or the appropriate tab indent in case you might have started in column 20...
Interesting if using a code snippet for a function in javascript, not sure why but it acts different but the wandering cursor back to column 1 will appear again but not as easy.
funct{TAB}
//will get:
function snippetPlaceHolder ()
{
// Cursor will be in column 1
}
Continuing on...
function snippetPlaceHolder ()
{
{TAB}if(x===3){ENTER}
}
Then here the cursor seeks to the right location under the 'if' but then, adding both the open/closing '{}' then {ENTER}...
function snippetPlaceHolder ()
{
if(x===3)     // these two lines should be one tab width in.
{{enter}}    //  appears the formatter here is normalizing lines...
}
The code will end up as:
function snippetPlaceHolder ()
{
if(x===3)    // again should be the right tab with in...
{
} // the cursor and the closing brace are both back at column 1...
}
Hope this is clear. Sorry couldn't get the C# repro but i've seen it happen a fair amount :(

@ZooDoo4U I tried disabling all automatic formatting for TS/JS and set my indentation behavior to BLOCK but I was not able to reproduce the issue of the cursor jumping to the beginning of the line.
Would you be able to provide us with TSServer logs so we can dig into what's happening? You can find the instruction below. You would need to enable logging before performing the behavior that reproduces the issue.
https://github.com/microsoft/JSTSdocs/blob/master/articles/troubleshooting/index.md

Would you be open to getting a copy of the ".vssettings" file.   Some reason if/when i update each update i'll usually need to import my old settings.   Might be easier for both of us?  I attached a copy.  Let me know if this works :)
Thanks.
dan
VS_2019_May_24_2020.zip

That helps. I can get it to happen now but only when typing at the end of the file.
That is, I can reproduce the issue by pressing enter here:

But including the final newline on line 4 prevents the issue.

Turning on automatic brace completion also avoids the issue. Is that the behavior you see?

Thanks,
Seems to help some but going through more scenarios even with the auto complete tag, and notice the lovely formatting with the setting i have set, i get some really "creative" formatting.  While if you look at the blah.js file.  If you have my setting still loaded try a document reformat, lovely eh?   This now gets us two different issues.
(call this check point #1 -- will reference to show the difference later)
With auto-close tag "ON"  go to line 20 between the "<>" and )  now type (in column 20 -- think with i post this the spacing will be removed):
if( x===15)
{{ENTER}} // -- closing tag auto inserted and cursor will be between the {}
Pressing enter to get the closing brace onto the next line, the entire section gets reformatted.   Did have auto reformat on EVERYTHING disabled...?   Would expect the reformat, and for me it did a rather poor job even at that.
Undo to get back to where i mentioned check point 1, so the cursor will be back between the "<>" and ) on line 20.  This time set auto-complete "OFF" start typing in column 20
// -- in the lines following i'm using | to indicate were the curor is.
if(x===15)
{|{ENTER}}
So looks like in general as you mentioned, it will normally only seek to column 1 if at the end of the file.  While this last scenario it should have matching correspond braces/parens  trailing the cursor again goes to column 1.
Thanks for you attention.  The sample/example file i was using is attached in the blah.zip, sorry not too creative with the name.
blah.zip

I'm not sure I am able to follow your steps 100% correctly but I was unable to get an auto format to trigger by typing at the location you indicated. Before and after code snippets or a .gif are more helpful in these cases.
I did notice the closing brace jumping back to the beginning of the line after the return statement (Once I cleaned up the tags to get rid of the parsing errors). Interestingly including a space between  the braces before hitting enter changes the behavior. I'll continue looking into it.

It did seem to make a difference between being having a trailing space on the line to the right of the cursor or not.  I thought as i was typing the file it was syntactically correct, sorry guess something got messed up by me accidentally undoing something one too many times.  But does show when the editor decides to reformat stuff in such a weird way, just add confusion, one reason i'm not a big fan of auto formatting stuff....

@ZooDoo4U here's a useful way to write repros to make them easier to understand.  First, use ```ts to indicate a code block, like so:
function foo() {
}

Then, in order to indicate where the caret should be, just use $$.  We can remove that sigil and understand where to put the caret.  i.e.:
function foo() {
   if (x == 15) {$$

"press enter.  that results in: ..."

Also, feel free to include the text in such a ```ts codeblock and optionally include an image to help make sure that we're seeing what you're seeing.  animated gifs work well too, but are more of a last-resort if all else is failing.

Thanks.
      if(  meEntering )
      {
           willDo === true;
      }

One more  case for this.  Also what is interesting, starting up VS from a cold boot and getting into VS, w ith the same text, i get two behaviors with the cursor at $$1 or $$2.  Most often starting up VS my font and colors settings are messed up in some way.
If I now  press {ENTER} at $$1,  the cursor heads to column 1...
But now to get the color theme fixed up going into Tools::Options::Environment->General  changing the Color Theme to a stock color theme,  now pressing {ENTER} at $$1,  the indenting seeks to the correct location.  But also my fonts and colors are messed up...  Ignoring the font/colors or a second, if now i move to the $$2 spot and press {CTRL+ENTER} to delete the first blank lines, the cursor seeks to column 1.
Now try fixing the font/color issues selecting the Color Theme used most of the colors, most, but not all colors go back to what is expected but fonts are all messed up, below 12 point sorry i can't read and many fonts go down to 8pt.   If now i import only the "Font And Colors" from "Import Export Settings" most often stuff is restored (sometimes) about 20% of the time i'll get errors on the import.  If the setting import,  seems something will be messed up.  Like the attached bitmap shows, worse part can't find where that font color can be changed.   Don't want this to creep in to how into how to solve world peace, i'll assume opening another issue for the color/import issues would be something else.  Just interesting selecting a different color theme and importing only the font & colors has side effect effecting this, as they should be unrelated...?
import React from 'react';
import TodoItem from './TodoItem';
import ContactCard from './ContactCard';

function MainContent()
{
    return (
        <div className="todo-List">
            <ContactCard { name="PlaceHolderName",
                imageUrl="http://placeKitten.com/300/200",$$1
                $$2

                phone="888-425-1212"<EMAIL_ADDRESS>
        </div>
    );
}

![vs_bad_text](https://user-images.githubusercontent.com/11509268/83336702-6e5c5780-a26a-11ea-9e5c-90de2265dcdd.png)


Limit 3.0.x to <= php 7.3

Could you please publish a new version 3.0.x to update the dependencies
"spatie/laravel-sluggable": "~2.2.0",
Since<EMAIL_ADDRESS>requires php 7.4, but our 3.0.x didn't.

The new release v4.x already supports latest versions of dependencies, but also requires PHP v7.4 as a minimum requirement. I hope this helps.
If you're still on an older version of PHP, feel free to fork this package and lower the PHP dependency, and it should work smoothly for you 👍

Unfortunately, my server doesn't support php 7.4.
So if there's a version to support<EMAIL_ADDRESS>under php 7.3, it would be of great help.


fix "signed" typo

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

#sign-off


Cannot properly close loop when a second Thread is introduced?

I followed the _https://websockets.readthedocs.io/en/stable/intro.html_ using the "Synchronization Example and merging it with the Consumer/Producer Example".
That works fine within one thread. I am able to properly close the loop.run_forever().
However, when I introduce a second thread, running its own independent loop, the first loop no longer works. What gives? I have been trying to resolve this for the past couple of days and am stuck.
import asyncio
import json
import websockets
from threading import Thread

USERS = set()

def users_event():
    return json.dumps({"type": "users", "count": len(USERS)})

async def notify_users():
    if USERS:  # asyncio.wait doesn't accept an empty list
        message = users_event()
        await asyncio.wait([user.send(message) for user in USERS])

async def register(websocket):
    USERS.add(websocket)
    await notify_users()

async def unregister(websocket):
    USERS.remove(websocket)
    await notify_users()

async def consumer_handler(websocket, path):
    async for message in websocket:
        process_message = await consumer(message)
        if process_message == "onClose":
            asyncio.get_event_loop().stop()
            asyncio.get_event_loop().close()

async def producer_handler(websocket, path):
    while True:
        message = await producer()
        await websocket.send(message)

async def consumer(message):
    print(message)
    if message == "onClose":
        return "onClose"

async def producer():
    await asyncio.sleep(1.0)
    return "sending out message"

async def counter(websocket, path):
    await register(websocket)
    try:
        consumer_task = asyncio.ensure_future(consumer_handler(websocket, path))
        producer_task = asyncio.ensure_future(producer_handler(websocket, path))
        done, pending = await asyncio.wait(
            [consumer_task, producer_task], return_when=asyncio.FIRST_COMPLETED
        )
        for task in pending:
            task.cancel()
    finally:
        await unregister(websocket)

def func_websocket_open():
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(websockets.serve(counter, "localhost", 6789))
    loop.run_forever()

def func_background_process():
    loop2 = asyncio.new_event_loop()
    asyncio.set_event_loop(loop2)
    loop2.stop()

Thread(target=func_websocket_open()).start()
Thread(target=func_background_process()).start()

Probably you want Thread(target=func_websocket_open) instead of Thread(target=func_websocket_open()).


[Chat] Receive read receipt on presentation layer

Purpose
Add changes on presentation layer for receiving read receipt
Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

Pull Request Checklist

[ ] Public API changes
[ ] Verified for cross-platform
[ ] Synced with iOS, Web team
[ ] Internal review completed
[ ] UI Changes

[ ] Screen captures included
[ ] Tested for Light/Dark mode
[ ] Tested for screen rotation
[ ] Tested on Tablet and small screen device (5")
[ ] Include localization changes

[ ] Tests

[ ] Memory leak analysis performed
[ ] Tested on API 21, 26 and latest
[ ] Tested for background mode
[ ] Unit Tests Included
[ ] UI Automated Tests Included

How to Test
join chat thread, send message, from other participants' side to read some message sent by local user, then verify if the correct message being marked as read.

please review comments, currently I do not see icon
I think currently, we keep cache in redux for participant read receipts: { [participant1, lastReadMessageTime1] [participant2, lastReadMessageTime2] [participant3, lastReadMessageTime3] [participant4, lastReadMessageTime4] }
then we get min lastReadMessageTime from above and compare it with every message createdon || editedon.
if createdon | editedon < min lastReadMessageTime -> then we mark message as read
Peixin Liu Leah Xia I think we need to remove self and admin user from above map?  when we add participant to cache, what timestamp we set? (probably last message created or edited on before participant join)?

For the admin user part, we will handle it in this ticket https://skype.visualstudio.com/SPOOL/_workitems/edit/3044060. So for now, unless we hard code the admin user to test, we won't see the read icon

I agree that we should exclude self from above map

We use the messageId as the timeStamp. MessageId is epoch time itself.


BasicSpecParameter: fix compatibility of persisted state

Support old-style persisted state, by implementing readResolve()

@ahgittin @neykov could you take a look please?

How does readResolve work, is it called from somewhere?
Still think we need a way to bundle transformers with our code for cases like this.

Now is see it's used by xstream. That's a neat fix. Worth mentioning it in the comments, otherwise good to merge.

Thanks @neykov - added comment saying "Automatically called by xstream (which is used under the covers by XmlMementoSerializer)."
Merging now.


Shorten line length

@CriaHu  plz update the pr

Please feel free to reopen and address the feedbacks.
/close


[bug]: react hooks gets executed two times

as i clicked on button only once,

call stack

after continue, it gets called again without clicking on button
gets called again

so updating value not once but twice
here

you can see value 7 instead of 5
reproduction steps:
goto url http://localhost:3000/myApp
code url https://github.com/kambleaa007/TrainingReactJS
the same code works for first time, not from second time onwards
trying for first time this works,

then
in debug

here worked

for first time
not problem in my code logic as it works first time second time onwards error persist

Duplicate of https://github.com/facebook/react/issues/21048


All Freya ports cannot access Link Training

None of Freya ports has HLI for link training somehow.

Fixed by https://github.com/xenanetworks/open-automation-python-api/commit/815e4a0dd79ebbe9ec2fa90791afc58d9ab756c6


macOS 12.3 Beta deprecated Python 2 makes Poedit not able to work anymore

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Poedit [24418]
Path:                  /Applications/Poedit.app/Contents/MacOS/Poedit
Identifier:            net.poedit.Poedit
Version:               3.0.1 (6415)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2022-02-04 11:19:01.9837 +0800
OS Version:            macOS 12.3 (21E5196i)
Report Version:        12
Anonymous UUID:        D8802CC6-A958-58B6-7477-7F4B3BE351CC

Sleep/Wake UUID:       E5CEEAFC-A40C-42E7-9269-443B0029D4A9

Time Awake Since Boot: 120000 seconds
Time Since Wake:       1975 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: /System/Library/Frameworks/Python.framework/Versions/2.7/Python
Referenced from: /Applications/Poedit.app/Contents/MacOS/Poedit
Reason: tried: '/System/Library/Frameworks/Python.framework/Versions/2.7/Python' (no such file)
(terminated at launch; ignore backtrace)

Application Specific Information:
Library not loaded: /System/Library/Frameworks/Python.framework/Versions/2.7/Python
Referenced from: /Applications/Poedit.app/Contents/MacOS/Poedit
Reason: tried: '/System/Library/Frameworks/Python.framework/Versions/2.7/Python' (no such file)

Thread 0 Crashed:
0   dyld                          	       0x103adf818 __abort_with_payload + 8
1   dyld                          	       0x103ae699c abort_with_payload_wrapper_internal + 104
2   dyld                          	       0x103ae69d0 abort_with_payload + 16
3   dyld                          	       0x103a9e920 dyld4::halt(char const*) + 328
4   dyld                          	       0x103a99fb8 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3644
5   dyld                          	       0x103a9906c start + 488

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000006   x1: 0x0000000000000001   x2: 0x000000016d59aa40   x3: 0x0000000000000083
    x4: 0x000000016d59a640   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000000
    x8: 0x0000000000000020   x9: 0x0000000000000009  x10: 0x0000000000000001  x11: 0x000000000000000a
   x12: 0x0000000000000000  x13: 0x0000000000000032  x14: 0x0000000252e60fc3  x15: 0x0000000000000000
   x16: 0x0000000000000209  x17: 0x0000000103a9714c  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x000000016d59a640  x21: 0x0000000000000083  x22: 0x000000016d59aa40  x23: 0x0000000000000001
   x24: 0x0000000000000006  x25: 0x000000016d59b388  x26: 0x0000000000000000  x27: 0x000000001f070004
   x28: 0x0000000000000000   fp: 0x000000016d59a610   lr: 0x0000000103ae699c
    sp: 0x000000016d59a5d0   pc: 0x0000000103adf818 cpsr: 0x00001000
   far: 0x00000001037f4000  esr: 0x56000080  Address size fault

Binary Images:
       0x103a94000 -        0x103af3fff dyld (*) <a052b5c3-51e3-3163-8a7f-a0ca09174fc6> /usr/lib/dyld

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=14.2M resident=0K(0%) swapped_out_or_unallocated=14.2M(100%)
Writable regions: Total=9312K written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=9312K(100%)

                                VIRTUAL   REGION
REGION TYPE                        SIZE    COUNT (non-coalesced)
===========                     =======  =======
STACK GUARD                       56.0M        1
Stack                             8176K        1
VM_ALLOCATE                         16K        1
__DATA                             240K        4
__DATA_CONST                      1200K        3
__LINKEDIT                         752K        4
__TEXT                            13.6M        3
dyld private memory               1024K        1
shared memory                       16K        1
===========                     =======  =======
TOTAL                             80.7M       19

-----------
Full Report
-----------

{"app_name":"Poedit","timestamp":"2022-02-04 11:19:02.00 +0800","app_version":"3.0.1","slice_uuid":"89449323-3a9e-3891-beab-b318030ef832","build_version":"6415","platform":1,"bundleID":"net.poedit.Poedit","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.3 (21E5196i)","incident_id":"1CDFB995-19B5-4FF9-A59B-4DE07619194A","name":"Poedit"}
{
  "uptime" : 120000,
  "procLaunch" : "2022-02-04 11:19:01.9644 +0800",
  "procRole" : "Default",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro17,1",
  "procStartAbsTime" :<PHONE_NUMBER>849,
  "coalitionID" : 107956,
  "osVersion" : {
    "train" : "macOS 12.3",
    "build" : "21E5196i",
    "releaseType" : "User"
  },
  "captureTime" : "2022-02-04 11:19:01.9837 +0800",
  "incident" : "1CDFB995-19B5-4FF9-A59B-4DE07619194A",
  "bug_type" : "309",
  "pid" : 24418,
  "procExitAbsTime" :<PHONE_NUMBER>684,
  "translated" : false,
  "cpuType" : "ARM-64",
  "procName" : "Poedit",
  "procPath" : "\/Applications\/Poedit.app\/Contents\/MacOS\/Poedit",
  "bundleInfo" : {"CFBundleShortVersionString":"3.0.1","CFBundleVersion":"6415","CFBundleIdentifier":"net.poedit.Poedit"},
  "storeInfo" : {"deviceIdentifierForVendor":"B572E170-C82D-5DD9-B5DD-A48CEF8BAF00","thirdParty":true},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "net.poedit.Poedit",
  "crashReporterKey" : "D8802CC6-A958-58B6-7477-7F4B3BE351CC",
  "wakeTime" : 1975,
  "sleepWakeUUID" : "E5CEEAFC-A40C-42E7-9269-443B0029D4A9",
  "sip" : "enabled",
  "isCorpse" : 1,
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
  "termination" : {"code":1,"flags":518,"namespace":"DYLD","indicator":"Library missing","details":["(terminated at launch; ignore backtrace)"],"reasons":["Library not loaded: \/System\/Library\/Frameworks\/Python.framework\/Versions\/2.7\/Python","Referenced from: \/Applications\/Poedit.app\/Contents\/MacOS\/Poedit","Reason: tried: '\/System\/Library\/Frameworks\/Python.framework\/Versions\/2.7\/Python' (no such file)"]},
  "asi" : {"dyld":["Library not loaded: \/System\/Library\/Frameworks\/Python.framework\/Versions\/2.7\/Python","Referenced from: \/Applications\/Poedit.app\/Contents\/MacOS\/Poedit","Reason: tried: '\/System\/Library\/Frameworks\/Python.framework\/Versions\/2.7\/Python' (no such file)"]},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":3700326,"threadState":{"x":[{"value":6},{"value":1},{"value":6129560128},{"value":131},{"value":6129559104},{"value":0},{"value":0},{"value":0},{"value":32},{"value":9},{"value":1},{"value":10},{"value":0},{"value":50},{"value":9980743619},{"value":0},{"value":521},{"value":4356403532,"symbolLocation":392,"symbol":"__simple_bprintf"},{"value":0},{"value":0},{"value":6129559104},{"value":131},{"value":6129560128},{"value":1},{"value":6},{"value":6129562504},{"value":0},{"value":520552452},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4356729244},"cpsr":{"value":4096},"fp":{"value":6129559056},"sp":{"value":6129558992},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":4356700184,"matchesCrashFrame":1},"far":{"value":4353638400}},"frames":[{"imageOffset":309272,"symbol":"__abort_with_payload","symbolLocation":8,"imageIndex":0},{"imageOffset":338332,"symbol":"abort_with_payload_wrapper_internal","symbolLocation":104,"imageIndex":0},{"imageOffset":338384,"symbol":"abort_with_payload","symbolLocation":16,"imageIndex":0},{"imageOffset":43296,"symbol":"dyld4::halt(char const*)","symbolLocation":328,"imageIndex":0},{"imageOffset":24504,"symbol":"dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)","symbolLocation":3644,"imageIndex":0},{"imageOffset":20588,"symbol":"start","symbolLocation":488,"imageIndex":0}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" :<PHONE_NUMBER>,
    "size" : 393216,
    "uuid" : "a052b5c3-51e3-3163-8a7f-a0ca09174fc6",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  }
],
  "sharedCache" : {
  "base" :<PHONE_NUMBER>,
  "size" :<PHONE_NUMBER>,
  "uuid" : "5b626ac1-89a1-378c-a9bb-b3bfeccc5c2f"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=14.2M resident=0K(0%) swapped_out_or_unallocated=14.2M(100%)\nWritable regions: Total=9312K written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=9312K(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nSTACK GUARD                       56.0M        1 \nStack                             8176K        1 \nVM_ALLOCATE                         16K        1 \n__DATA                             240K        4 \n__DATA_CONST                      1200K        3 \n__LINKEDIT                         752K        4 \n__TEXT                            13.6M        3 \ndyld private memory               1024K        1 \nshared memory                       16K        1 \n===========                     =======  ======= \nTOTAL                             80.7M       19 \n",
  "legacyInfo" : {
  "threadTriggered" : {

  }
},
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "5fc94383418129005b4e9ae0",
      "factorPackIds" : {

      },
      "deploymentId" : 250000219
    },
    {
      "rolloutId" : "6112dda2fc54bc3389840642",
      "factorPackIds" : {
        "SIRI_DICTATION_ASSETS" : "61ef023f29647d3949339fb3"
      },
      "deploymentId" : 250000044
    }
  ],
  "experiments" : [

  ]
}
}

Are there any workarounds in the interim?

Yes. Don't use beta versions in production.

There's now an update in the beta channel with a fix.

I've Poedit Pro, how can I retrieve the Beta update without the access to current version?

Mea culpa, I didn't think this through 🤦♂
Sorry, here's the download link: https://download.poedit.net/Poedit-<IP_ADDRESS>16.zip

Mea culpa, I didn't think this through 🤦♂
Sorry, here's the download link: https://download.poedit.net/Poedit-<IP_ADDRESS>16.zip

It works, thanks!

Same issue with macOS 12.3

Same issue with macOS 12.3

Please don't spam already closed issues with pointless "me too" comments. The issue was fixed, corrected version was released weeks ago, both through updates and on the download page.


Example on semi-supervised learning with SimCLR

This example demonstrates the usage of contrastive pretraining combined with supervised finetuning on the STL10 dataset. The performance of the pretrained + finetuned model exceeds that of its supervised baseline counterpart.
Other features include:
-custom image augmentation layers
-sampling differently-sized batches from the zipped labeled and unlabeled datasets simultaneously
A current issue is that the example exceeds the allowed line-count (386 vs 300). The implementation could be made somewhat shorter by removing training curve visualization and print() and model.summary() statements, they are however helpful for comparison with the baseline solution.

@googlebot I signed it!

Thanks for your comments! I tweaked the text based on your suggestions, and also overhauled the data augmentation pipeline. Using RandomTranslation + RandomZoom for cropping now, RandomColorJitter has been replaced with a random affine transformation in color space. I might have to tune the parameters of the data augmentation pipeline a bit further.

In this round: I added dataset-related hyperparameters (such as image size) as global variables, replaced steps_per_epoch with batch_size, refactored the metrics so that the losses are tracked by a mean metric tracker, and refactored the visualization code to save some lines. I also wrapped all markdown text to 80 chars.

@beresandras Bear with me, I'll get back to asap 👍

Thanks! I have fixed that as well.

Yes, I think it's ready!


Add Comments in all PS Scripts for all Functions

The log lists all functions being applied and the wiki together will help debug


Add test coverage to grid GUI

We whitelisted the grid GUI related code in the coverage reports because it is completely untested. That's bad and we feel bad. But also just needed to get the GUI done. Need to circle back around and add some meaningful testing so that it doesn't break all the time.

Hi, I am interested in contributing. Is help still needed here?
A few clarifying questions from me:

armi/utils/gridEditor.py is the code to be tested, right?
Do you already have a testing framework in mind, so should I propose that? (autopilot seems like a suitable candidate, since it supposedly simulates mouse clicks, works with Gtk, and tests are written in python. I haven't worked with it before, though.

Hi, I am interested in contributing. Is help still needed here?
A few clarifying questions from me:

armi/utils/gridEditor.py is the code to be tested, right?
Do you already have a testing framework in mind, so should I propose that? (autopilot seems like a suitable candidate, since it supposedly simulates mouse clicks, works with Gtk, and tests are written in python. I haven't worked with it before, though.

Yes, we could still use some help on this! I originally wrote the grid editor code, but as mentioned above, I don't have any experience testing GUIs, but know enough to know that I would have to do some head-scratching before I could do it "right". If you are familiar with any tools for that kind of thing, we are open to suggestions. Looks like autopilot uses DBus, so probably only supports linux-y environments. This is fine (especially since our CI is running under Linux), but the test would need skip gracefully on Windows, or other platforms that don't support it. Also, I'm not seeing any proper documentation of it, so it looks a bit sketchy. PyAutoGUI looks somewhat promising, though. Open to suggestions.
There isn't a whole lot of documentation of what the GUI should do, so if you need any guidance, let me know. Thanks for the interest in helping out!

Yes, we could still use some help on this! I originally wrote the grid editor code, but as mentioned above, I don't have any experience testing GUIs, but know enough to know that I would have to do some head-scratching before I could do it "right". If you are familiar with any tools for that kind of thing, we are open to suggestions. Looks like autopilot uses DBus, so probably only supports linux-y environments. This is fine (especially since our CI is running under Linux), but the test would need skip gracefully on Windows, or other platforms that don't support it. Also, I'm not seeing any proper documentation of it, so it looks a bit sketchy. PyAutoGUI looks somewhat promising, though. Open to suggestions.
There isn't a whole lot of documentation of what the GUI should do, so if you need any guidance, let me know. Thanks for the interest in helping out!

Thanks for the quick reply! I don't have any experience with desktop UI testing either (though I have worked with projects that have webdriver tests). I was looking for an interesting open source project to work on, this project sounds pretty cool, and I'm hoping to learn more about this project over time, starting here!
I'll admit I hadn't actually spent too much time looking into Autopilot myself; I wanted to make sure that this issue is still open. Yeah, Autopilot isn't looking so good if we can't test it on Windows (since it seems like most users use ARMI on Windows? Please correct me if I'm wrong), and I haven't found anything better myself, so I'm happy to start by trying out PyAutoGUI.
My first step would be to write a skeleton test case that verifies something simple, like changing "Num. Rings" to 1, selecting (i,j), clicking "Apply", and validating that the grid is indeed 2 x 2 (this would involve taking a screenshot of the 2 x 2 grid with some white background around it, saving it as an image file, and attempting to locate that image file using pyautogui.locateOnScreen). Once I get the skeleton code working, I can make a PR to start a discussion on how the code should be structured, before we dive into the concrete test cases. Once we get to that point, I'll definitely have more questions about what the GUI is expected to do.
Does this approach seem reasonable to you?

Thanks for the quick reply! I don't have any experience with desktop UI testing either (though I have worked with projects that have webdriver tests). I was looking for an interesting open source project to work on, this project sounds pretty cool, and I'm hoping to learn more about this project over time, starting here!
I'll admit I hadn't actually spent too much time looking into Autopilot myself; I wanted to make sure that this issue is still open. Yeah, Autopilot isn't looking so good if we can't test it on Windows (since it seems like most users use ARMI on Windows? Please correct me if I'm wrong), and I haven't found anything better myself, so I'm happy to start by trying out PyAutoGUI.
My first step would be to write a skeleton test case that verifies something simple, like changing "Num. Rings" to 1, selecting (i,j), clicking "Apply", and validating that the grid is indeed 2 x 2 (this would involve taking a screenshot of the 2 x 2 grid with some white background around it, saving it as an image file, and attempting to locate that image file using pyautogui.locateOnScreen). Once I get the skeleton code working, I can make a PR to start a discussion on how the code should be structured, before we dive into the concrete test cases. Once we get to that point, I'll definitely have more questions about what the GUI is expected to do.
Does this approach seem reasonable to you?

That would definitely be a good place to start! We have used ARMI on windows and Linux, but yeah we mostly are one Windows; especially when we are tweaking inputs/using the GUI. That doesn't necessarily mean that the tests have to function on windows, since we have linux CI anyways, but they can't fail spectacularly in Windows. My guess is any Python-centric GUI test tools will be platform independent. Your approach seems reasonable, but again I've never tested GUIs before, so I couldn't tell you if it is the best way. For sure it would be nice if the tests can be run in a headless environment, so rendering offscreen in a way that you can interrogate color values or the like as you suggest, without having to draw to a screen.
This is also a rare opportunity for someone completely new to the space trying to poke ARMI, so if there is anything that you find confusing or non-obvious, we would welcome documentation improvements. The GUI is pretty much not documented at all

That would definitely be a good place to start! We have used ARMI on windows and Linux, but yeah we mostly are one Windows; especially when we are tweaking inputs/using the GUI. That doesn't necessarily mean that the tests have to function on windows, since we have linux CI anyways, but they can't fail spectacularly in Windows. My guess is any Python-centric GUI test tools will be platform independent. Your approach seems reasonable, but again I've never tested GUIs before, so I couldn't tell you if it is the best way. For sure it would be nice if the tests can be run in a headless environment, so rendering offscreen in a way that you can interrogate color values or the like as you suggest, without having to draw to a screen.
This is also a rare opportunity for someone completely new to the space trying to poke ARMI, so if there is anything that you find confusing or non-obvious, we would welcome documentation improvements. The GUI is pretty much not documented at all

Unfortunately PyAutoGUI isn't going to support headless mode any time soon: https://stackoverflow.com/a/42882644
But good news, I learned that wxPython itself comes with ways to write tests:

Unit tests can be written like this.
UI tests can be driven by wx.UIActionSimulator(). Instead of comparing screenshots, we can directly query the attributes of the widgets to write our asserts.

I think it might be better to start this way (as opposed to starting with PyAutoGUI). What do you think?
(Also, feel free to assign this issue to me.)

Unfortunately PyAutoGUI isn't going to support headless mode any time soon: https://stackoverflow.com/a/42882644
But good news, I learned that wxPython itself comes with ways to write tests:

Unit tests can be written like this.
UI tests can be driven by wx.UIActionSimulator(). Instead of comparing screenshots, we can directly query the attributes of the widgets to write our asserts.

I think it might be better to start this way (as opposed to starting with PyAutoGUI). What do you think?
(Also, feel free to assign this issue to me.)

You've been assigned! Headless or no, the main hope is that the tests can run on Travis. Not absolutely necessary, but a huge plus. I think starting with the built-in wxPython facilities makes a lot of sense. Thanks for signing on :+1:

You've been assigned! Headless or no, the main hope is that the tests can run on Travis. Not absolutely necessary, but a huge plus. I think starting with the built-in wxPython facilities makes a lot of sense. Thanks for signing on :+1:

(Copying from a comment in PR#231)
Now that we have set up the scaffolding for local UI testing, I believe the next step is getting the test to pass in the Travis environment. This is not easy to do, because there isn't a display that allows me to see what the test is doing to the UI.
I think it's worth investing in a less frustrating debugging experience first. I propose to video capture the virtual display when the test is running, and store the video in some place we can access. This has several side benefits as well: Imagine if the GuiTestCase has a tearDown method that saves the screen recorded video to disk whenever the test fails. That would make bug reporting so much easier! I can also imagine using this tool to record demos (to make promotional materials or seek user feedback) and video tutorials (which would make the documentation superb).
I think I'm not too far from figuring out how to record the screen and save the video locally (Will make another PR when I get it to work). If this works, does it seem feasible to set up some location in S3 where test outputs can be dumped and viewed by non-Terrapower-employees?
There is some documentation here on how to upload artifacts from Travis to S3.

(Copying from a comment in PR#231)
Now that we have set up the scaffolding for local UI testing, I believe the next step is getting the test to pass in the Travis environment. This is not easy to do, because there isn't a display that allows me to see what the test is doing to the UI.
I think it's worth investing in a less frustrating debugging experience first. I propose to video capture the virtual display when the test is running, and store the video in some place we can access. This has several side benefits as well: Imagine if the GuiTestCase has a tearDown method that saves the screen recorded video to disk whenever the test fails. That would make bug reporting so much easier! I can also imagine using this tool to record demos (to make promotional materials or seek user feedback) and video tutorials (which would make the documentation superb).
I think I'm not too far from figuring out how to record the screen and save the video locally (Will make another PR when I get it to work). If this works, does it seem feasible to set up some location in S3 where test outputs can be dumped and viewed by non-Terrapower-employees?
There is some documentation here on how to upload artifacts from Travis to S3.

I think you have some good ideas here! If you are still willing to keep pushing on this, it would be nice to get this stuff going under travis, for sure. Regarding S3, i think this could be an interesting thing to try, but I'm not sure if we will be able to stand up an S3 instance from TerraPower's side; the legal aspects would take some head scratching. However, I think linking travis to a personal aws account or the like would be reasonable, especially if we do not intend for that connection to be permanent (seems like we could hook them up, get travis configured properly, then unplug them?) Idk... thoughts? @ntouran?

I think you have some good ideas here! If you are still willing to keep pushing on this, it would be nice to get this stuff going under travis, for sure. Regarding S3, i think this could be an interesting thing to try, but I'm not sure if we will be able to stand up an S3 instance from TerraPower's side; the legal aspects would take some head scratching. However, I think linking travis to a personal aws account or the like would be reasonable, especially if we do not intend for that connection to be permanent (seems like we could hook them up, get travis configured properly, then unplug them?) Idk... thoughts? @ntouran?

A hacky workaround I just thought of that doesn't involve AWS would be to base64 encode the video, print it to the logs, and I can download the raw logs and decode it. If Travis doesn't truncate the logs, that might just work...

A hacky workaround I just thought of that doesn't involve AWS would be to base64 encode the video, print it to the logs, and I can download the raw logs and decode it. If Travis doesn't truncate the logs, that might just work...

haha, madness... worth a try!

haha, madness... worth a try!

I wouldn't mind moving the GUI to a static JavaScript web browser tool.  We could keep the current workflow, where it is spawned via the same commandline, and it doesn't require a running service.
But it seems like it would be easier to build and test a UI via browser. Just an idea.

For one, UI testing in a browser would have a lot more resources on stack
overflow and have better support in Travis :) It might be a good thing to
do in the long term, provided users are fine with requiring a browser
installation to run the GUI.
But wouldn't that involve rewriting everything that's currently written in
wxPython, though? The HTML5 canvas API might be similar enough, but it
would be in JavaScript/Typescript. It seems like a big change to me.
On Mon, Nov 29, 2021, 8:03 PM John Stilley @.***> wrote:

I wouldn't mind moving the GUI to a static JavaScript web browser tool. We
could keep the current workflow, where it is spawned via the same
commandline, and it doesn't require a running service.
But it seems like it would be easier to build and test a UI via
browser. Just an idea.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/terrapower/armi/issues/133#issuecomment-982182783,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABN6VYMOE37G24POSHYIC6LUOQPHBANCNFSM4QFM2FGQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@scottyak  Yes, the switch to a browser-based solution would be a complete re-write. That's definitely the down-side.
I am just looking at this "test the GUI" PR that's been open for ages: https://github.com/terrapower/armi/pull/244
And we do want to be able to test the GUI.  Is it unmaintainably hard to test as-is?  I don't know. If so, that's a problem.
Just thinking aloud.

Working on a notebook-based approach for rewriting the GUI. Stay tuned.

We are considering adding NotebookJS (MIT license) as a dependency. It essentially allows Javascript callbacks to call Python functions, which is exactly what we want. From reading the code, I find the NotebookJS approach pretty elegant. Even though it's a one-person project, I feel okay with it, since the code looks rather straightforward (~500 lines). In the worst case scenario that some bug arises and the owner has abandoned the project, we could always copy the code into this repo along with its license header and figure it out.

We are considering adding NotebookJS (MIT license) as a dependency.

You're right that it's a very small project. But I like that it is well documented. It has an IEEE article and a blog post. It's MIT licensed, which I like. And as long as we only use it to import MIT licensed tools, we're good.
On balance, it seems like a good choice. Can't wait to see what happens!

Sneak preview:

grideditor-2022-10-27-1605.webm

That's awesome, @scottyak !

Thanks! Here's a recording of the Fuel Path mode:
grideditor-2022-10-28-1536.webm

Demonstrating an in-notebook grid editing workflow that takes advantage of the two-way data-binding capabilities.
In this demo, we show the following:

Use armi.utils.asciimaps to load an ASCII map. Notice that the middle cells are initially "IC".
Load the ASCII map into the HTML+SVG+d3 based grid editor GUI.
Edit the grid using the GUI. Here, we edit a few middle cells to "US".
Export the edited grid cell data back to the notebook.
Use armi.utils.asciimaps to convert the grid cell data back into ASCII map. Observe that the ASCII map now has "US" in the middle, as intended in a grid editing workflow.

grideditor-2022-10-28-1752.webm


AttributeError: 'StanModel' object has no attribute 'fit_class'

Trying to run the forecast.py on Ubuntu 18.04 (Mate desktop)- following error:

loading bitcoin from cache
loading nano from cache
loading ripple from cache

Using TensorFlow backend.
/root/anaconda3/envs/crypto_env/lib/python3.6/site-packages/tensorflow/python/util/tf_inspect.py:75: DeprecationWarning:
inspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()
INFO:fbprophet.forecaster:Disabling yearly seasonality. Run prophet with yearly_seasonality=True to override this.
Traceback (most recent call last):
File "forecast.py", line 20, in
df_prophet.fit(df)
File "/root/anaconda3/envs/crypto_env/lib/python3.6/site-packages/fbprophet/forecaster.py", line 1003, in fit
dat, init=stan_init, iter=1e4, **kwargs)
File "/root/anaconda3/envs/crypto_env/lib/python3.6/site-packages/pystan/model.py", line 512, in optimizing
fit = self.fit_class(data, seed)
AttributeError: 'StanModel' object has no attribute 'fit_class'

I can't reproduce this error on my ubuntu 16.04, but it seems like a problem with pystan, try reinstall pystan (or downgrade to v<IP_ADDRESS>, they realese a update recently) and run a simple code with only fbprophet because the bug occours when you're calling fbprophet code.

I push'd https://github.com/Draichi/cryptocurrency_prediction/commit/0f2ec54d4c86f2bd86ef172908634d2e26d1d65b a yml with a "stable" enviroment.
Try create a brand new env following the readme and tell me if works.


languageCode cannot be changed dynamically

    googleCloudRecognitionConfig: {
      languageCode: language || 'en-US',
    },

This does not work

Sorry for the noise, making a zustand wrapper, and I was using an old function instance.


StuntRally.StuntRally version 2.7

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Since it uses the github cdn it at least doesn't have the reliability issues that crop up with sourceforge.

Unfortunately, the download has a similar throttle, and stalls around 400 MB. Unlike SourceForge, the throttle can't be alleviated by opening the download page and letting it rotate ads in a VM.

...Or maybe it does? The stalled download has completed.


Loss curves

Hi, thanks everyone for the great work !
I am trying to train BYOL on a custom dataset but struggling to get good results. Loss during training is very noisy (while still going down quite a bit), and I can't find anywhere what BYOL loss curves should look like.
Would it be possible to add the loss curves for the different benchmarks in order to compare with custom trainings ?
Thanks !

You may first try to reproduce the results on ImageNet. When training on a custom dataset, you may need to change the default hyper-parameters.