IOU Distance - Recent list disappears after clearing address field, leaving a big space

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/25990
Action Performed:

Go to staging.new.expensify.com
Go to + > Request money > Distance
Click Start > Use current location
Go to Start again
Highlight the address field
Clear the input

Expected Result:
The recent address list will not disappear
Actual Result:
The recent address list disappears, leaving a huge space between the address field and Use current location button
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.61-1
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/53035d02-bfbb-4f13-bfe1-a83d4cc45cac
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Proposal
Please re-state the problem that we are trying to solve in this issue.
On clearing the text list shows empty space
What is the root cause of that problem?
On input change within AddressSearch we set the displayListViewBorder to false when the text is empty.
https://github.com/Expensify/App/blob/main/src/components/AddressSearch/index.js#L337-L339
Based on displayListViewBorder value we are applying a style to scale down to 0 which is causing the issue.
https://github.com/Expensify/App/blob/5db24452f475e51226be1d12ef5e8d47878d8879/src/components/AddressSearch/index.js#L346
https://github.com/Expensify/App/blob/5db24452f475e51226be1d12ef5e8d47878d8879/src/styles/StyleUtils.js#L1190-L1192
What changes do you think we should make in order to solve the problem?
When predefinedPlaces is available we don't need to scale to 0, for that we need to update the condition
if (_.isEmpty(text) && _.isEmpty(props.predefinedPlaces)) {

@huzaifa-99 I think this issue is not due to your PR as we are passing predefinedPlaces earlier too.
cc: @grgia

It exists from this PR, but at that moment we don't have any other content below that so not easily caught. Since you added the current location option below that which highlights the issue.

We reverted the offending PR. Removing the blocker label.

@huzaifa-99 when you open the new PR, please link this issue there

@hayata-suenaga just to inform this issue is not from the reverted PR.
proposal - https://github.com/Expensify/App/issues/26482#issuecomment-1702967318
issue still persists - https://github.com/Expensify/App/issues/26482#issuecomment-1702999940
If you still think it needs to be considered with the @huzaifa-99 PR, I am fine but wanted to highlight it! :)

@huzaifa-99 I don't have much background why displayListViewBorder is needed and why UI flickering occurs in the first place without it.

Based on displayListViewBorder value we are applying a style to scale down to 0 which is causing the issue.

What are we scaling down? GooglePlacesAutocomplete? And how that is related to the gap that is observed?

@huzaifa-99 I don't have much background why displayListViewBorder is needed and why UI flickering occurs in the first place without it.

@hayata-suenaga displayListViewBorder is used to decide whether to show the hint below the textinput or not. It means when we are showing the list we hide the hint otherwise list starts after the hint.

What are we scaling down? GooglePlacesAutocomplete? And how that is related to the gap that is observed?

It seems scaling down was added to avoid showing the empty area which created through padding when user searches but there aren't any options. Now we don't require scaling down part as we have a separate ListEmptyComponent.
If we remove the ListEmptyComponent and take out the scaling down then this issue occurs.
https://github.com/Expensify/App/assets/14358475/9fd22b00-c739-477a-9edc-d93993b5feb3

ah yea I see that

@hayata-suenaga just to inform this issue is not from the reverted PR.
proposal - https://github.com/Expensify/App/issues/26482#issuecomment-1702967318
issue still persists - https://github.com/Expensify/App/issues/26482#issuecomment-1702999940
If you still think it needs to be considered with the @huzaifa-99 PR, I am fine but wanted to highlight it! :)

@huzaifa-99 still we need to make a change to get rid of displayListViewBorder for the styling part here
https://github.com/Expensify/App/blob/6b1a6679042c4fa9bb628360e028f93a5f27b2f2/src/components/AddressSearch/index.js#L350
https://github.com/Expensify/App/blob/6b1a6679042c4fa9bb628360e028f93a5f27b2f2/src/styles/StyleUtils.ts#L1044-L1057

We need still scaling for the smooth transition for hiding the hint and showing the list otherwise it flickers a bit. So @hayata-suenaga what @huzaifa-99 added in their PR seems fine to me.
https://github.com/Expensify/App/assets/14358475/7eb8e238-f867-4979-bd32-4125c1bc4a42

thank you for confirming!

are we good to close this issue?
seems like @huzaifa-99 fixed this issue in their PR?


Rename R figure files & plots

Currently, R files producing figures and the resulting plots are named in an inconcise manner.
Mostly, they just carry the name of the chunk and a consecutive number.
Since many files produce multiple figures, there is no way of unambiguously connecting a plot to an R file just by name.
Also, chunking is not gonna remain the same forever.

All R files and plots should be renamed with meaningful names
A sensible naming convention could be:

R files: chaptername_meaningfulname.R --> e.g., evaluation_overfitting_rf.R
Figure files accordingly, with an additional consecutive number if multiple plots are produced --> e.g., evaluation_overfitting_rf.PDF, or evaluation_overfitting_rf_1.PDF and evaluation_overfitting_rf_2.PDF

Tex files must be adapted to the new names then

@lisa-wm I would say this can be closed, unless you disagree?

yes, done 👍🏻


[RELEASE] MC RELEASE.2024-04-18T16-45-29Z

PRODUCT RELEASE.2024-04-18T16-45-29Z has changes that impact the docs:

[ ] major changes to SSE-encryption settings, do a full pass of all commands
[ ] New command mc idp ldap accesskey create-with-login 4894
[ ] mc admin bucket is now hidden, may need to mark as deprecated the entire tree here 4905

See also #1165 on the SSE encryption settings.


how to set tooltip position bottom?

how to set tooltip position bottom?

Just pass 'placement' props 'bottom'. By the way, you can find this in the documentation.

Andrew is correct about the documentation.
If you are attempting to modify where there tooltip arrow points (a.k.a the coordinates of the arrow tip),  there is not currently a way to customize that. PRs are welcome

where can i find the document? @jasongaare @AndrewDunice

https://github.com/jasongaare/react-native-walkthrough-tooltip#props
It is under "props -> placement"


Java Toolchain convention mapping

This PR updates available public methods so that convention mapping for Java plugin tasks can be done without internal APIs.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already cancelled the old build and triggered a new ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.


Cant play live stream from ffmpeg

Have you read the FAQ and checked for duplicate open issues?:
What version of Shaka Player are you using?:
Version 2.0
Can you reproduce the issue with our latest release version?:
Yes
Can you reproduce the issue with the latest code from master?:
Yes
Are you using the demo app or your own custom app?:
custom
If custom app, can you reproduce the issue using our demo app?:
What browser and OS are you using?:
Google-chrome and Linux
What are the manifest and license server URIs?:

What did you do?
A rendered application creates pipe images, which are encoded by ffmpeg and written as chunks in the form of webm video. The client with shakaplayer opens the image but cant see the video.
What did you expect to happen?
I expected the video to be played when loading the manifest file, but only the image is seen.
What actually happened?

</MPD

Can you please provide an example manifest URL that reproduces your problem?  You can send it privately to<EMAIL_ADDRESS>if you prefer.  We may also be able to work with an example FFmpeg command, but it would be preferable to have the manifest URL (and please send a URL, not the manifest text, we need to be able to play the content).
My guess is FFmpeg is converting a static image to a video stream and that is what we are playing.  What you may want to try is having FFmpeg output a static file instead to verify it is generating the video you want.  You may get more help on the FFmpeg mailing list (ffmpeg-user@ffmpeg.org).  If I run the following command, I can play the manifest fine.
ffmpeg -i sintel.mp4 -c copy -f dash manifest.mpd

The commands below is for creating chunks:
/home/user/bin/ffmpeg -f rawvideo -vcodec rawvideo -pix_fmt bgr24 -video_size 512x512 -threads 1 -probesize 32 -r 100 -i /home/user/raw_render/src/image_out -map 0 -vcodec libvpx  -b:v 5000k -keyint_min 60 -g 60 -f webm_chunk -header /var/www/html/tea_pot_360.hdr -chunk_start_index 1 -chunk_duration_ms 10000 /var/www/html/tea_pot_360_%d.chk
The following is for creating manifest file:
/home/user/bin/ffmpeg -f webm_dash_manifest -live 1 -i /var/www/html/tea_pot_360.hdr -vcodec libvpx  -map 0 -f webm_dash_manifest -live 1 -adaptation_sets "id=0,streams=v" -chunk_start_index 1 -chunk_duration_ms 10000  /var/www/html/tea_pot_live_manifest.mpd

I am using the local host and I dont have a URI for the manifest file,
instead have a local path. However, I have updated the thread with the
attachments of the manifest file, and ffmpeg commands.
Thanks,
Tilak
2018-06-19 23:08 GMT+02:00 Jacob Trimble<EMAIL_ADDRESS>
Can you please provide an example manifest URL that reproduces your
problem? You can send it privately to<EMAIL_ADDRESS>if
you prefer. We may also be able to work with an example FFmpeg command, but
it would be preferable to have the manifest URL (and please send a URL, not
the manifest text, we need to be able to play the content).
My guess is FFmpeg is converting a static image to a video stream and that
is what we are playing. What you may want to try is having FFmpeg output a
static file instead to verify it is generating the video you want. You may
get more help on the FFmpeg mailing list (ffmpeg-user@ffmpeg.org). If I
run the following command, I can play the manifest fine.
ffmpeg -i sintel.mp4 -c copy -f dash manifest.mpd
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/google/shaka-player/issues/1467#issuecomment-398546589,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAyj_imHEm0KVaJKLu8f-FiatH3XUMHPks5t-WhngaJpZM4UtYrz
.

To properly test this, I would need access to the media segments too, not just the manifest.  But could you try playing the generated media files?  You could do something like:
cat tea_pot_360.hdr tea_pot_360_1234.chk > my_video.webm

Then try playing the WebM file in any video player like VLC or just open in Chrome.  I suspect that file will be a still image.
What I think is happening is FFmpeg is taking the source image and converting it to a video of that one image.  FFmpeg first reads the input file of /home/user/raw_render/src/image_out, which I suspect is a still image.  Then FFmpeg converts that to a video by playing that image for the duration of the video.

Yes, the video my_video.webm is a still image. I tried to convert it to a feed the render with the mouse coordinates and the new image is created by the render software, but the client plays only a still image. I still need to check if ffmpeg makes a webm video with the images fetched from the renderer.
I had a working prototype with the real time streaming of the interactive streaming, where the server streams the new images in the form of webm file, with ffserver, ffmpeg, and played by HTML5 video tag.
Whereas in the DASH implementation, ffserver is not used, and the details like Port number and video file location are not transparent. Apparently, in case of  MP4, the MPD structure is different than webm,

/home/user/bin/ffmpeg -f rawvideo -vcodec rawvideo -pix_fmt bgr24 -video_size 512x512 -threads 1 -probesize 32 -r 100 -i /home/user/raw_render/src/image_out -map 0 -vcodec libvpx  -b:v 5000k -f webm output.webm
THe above command creates the video with the new
output.webm.zip
mouse co-ordinates

This looks like a problem with your FFmpeg command.  I am not that familiar with the FFmpeg command line, so I can't really help.  I would suggest asking this on the FFmpeg mailing lists (ffmpeg-user@ffmpeg.org); you can read more about them on their website.  From our perspective, we are doing the right thing.  The manifest you gave us contains video segments that show a still video, so that is what we play.
My guess would be that FFmpeg is not re-opening the image_out file as it streams.  So it opens it at the beginning and streams until it reaches the end of the file, but it won't see any updates your renderer makes after it starts because it won't re-open the file.  But again, I am not that familiar with the FFmpeg command-line.

To create a video from a sequence of images, you might try this guide: https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence

When I cat the .hdr video and the .chk file, the output video contains new images. The client however does not play the cumulative chunks. This means that fffmeg reads the new images from the pipe and updates them.
For eg:       cat tea_pot_360.hdr tea_pot_360_*.chk   | ffplay -
This plays the video with new images. I am not sure how shaka player interprets the chunks. Does it cumulatively play all the chunks in order with/after a certain timestamp value?

Without a playable manifest to test with, we can't reproduce the problem.  Could you setup a live stream that we can access that reproduces your problem?  Or if you could produce a VOD manifest that causes a similar problem, we could help with that.
Could you also explain exactly what you are seeing in the browser?  You said but only the image is seen in the original post, but could you elaborate?  Is the video playing or paused?  If you open up the JavaScript console, do you see any logs (you'll need to use the debug version of the library)?  What is the value of video.currentTime, and is it changing?  What about video.paused and video.playbackRate?  Can you seek in the video?  If you use the demo page, while playing, what does the seek bar and playhead do?

I have done some tests and have identified the following:
The issue is with the chunk size and duration. FFMPEG creates a webm chunk of size equal to the GOP, and each chunk starts with a Key frame. To reduce the delay, I used a GOP of 1, and this creates chunk for every frame. For, 60 fps, 60 chunks are created per second, and respectively 30 chunks for 30 fps.
There is a delay of at-least one chunk ( 1 GOP size ). Which means, a GOP of 120 leads to 4 seconds of delay for 30 fps. The Manifest file loads the chunks periodically at a lower frequency(Approximately each chunk every 2 seconds?). I don't know if this can be configured on the Shaka player ?
In a real time streaming scenario, there is initially a delay of 1 GOP and if there are more chunks created than it can be loaded by the player, the current stream lags by several frames.
The question is if the Shaka player can be loaded or configured to retrieve the next chunks as soon as it is created? I played a bit with the "minimumUpdatePeriod" interval, but I could not notice any difference in the frequency chunks are loaded. Instead, the Manifest file is updated more regularly.
If the GOP is approximately 3 to 4 seconds, then the client loads the next chunks as soon as it is created, otherwise the client player is lagging.
Thanks!

I'm not sure what you mean by "chunks", but you are definitely not creating 30 segments (i.e. files) per seconds, because I doubt we could download and play segments that fast.  I think the segment duration is defined by the -chunk_duration_ms flag, which is 10 seconds in your above example.  Setting this too small requires us to download a lot of segments which can cause slowdowns.
As for low-latency options, anything you change can cause buffering problems.  We use conservative defaults for settings to ensure that we avoid buffering (stopping because we don't have enough downloaded).  If you try to play too close to the live edge, we can start buffering and fall behind if we don't get a segment in time.  But if you are fine with that, there are a few options to try:

Reduce  rebufferingGoal, this makes us need less content to continue playing.

player.configure({rebufferingGoal: 1});

Add a suggestedPresentationDelay attribute to the manifest.
Use a segment size of 1 second; less and we have trouble downloading all the segments, more increases the delay.

You may also want to increase the minimumUpdatePeriod.  This may seem weird, but your manifest uses SegmentTemplate with duration, meaning we don't actually need manifest updates unless you add new Periods.  So a larger update period means we are downloading less so the network can download segments faster.
Also setting an extremely small GOP interval will make your files much larger since you basically won't be compressing anything.  A GOP size of 1 second is the usual value.

@shaka-bot Thanks for the suggestions! Sorry for the delay to respond. I have tested some settings which are tagged in the previous comments like large minimumupdate_period set to 7200 sec.. I added the element  suggestedPresentationDelay by tweaking the ffmeg source code (hardcoded to zero), as the option is not available to set in ffmpeg command.
I have set a GOP of 1 sec and a bit more (34 for 30 fps). I have noticed the following:
Sometimes the live session hangs at roughly about downloading 80 chunks. In the beginning of the session, when the client starts, the chunks are requested fast and in synchronization with the generation rate at the server. After playing roughly 40 chunks, the client starts to lag with the server side and the difference can go up to 20-30 chunks depending on the duration of the session. For eg. at time T+80th chunk at the server, the client plays T+60th Chunk.
Is this a common phenomenon in case of live streaming?
Thanks,
Tilak

It is common for live streams to suffer from drift when the encoder and the clients become different over time.  But it is usually the other direction; the encoder is encoding at 0.99x realtime, so the encoder falls behind over time and can't generate fast enough.  In your case, I think FFmpeg is encoding content faster than realtime, so it generates more content than the player is playing.
You could try passing the -re input option.  Since you are reading from a file, this option causes FFmpeg to wait before producing the next input data so it can simulate a live stream.  I think it would cause it to only generate segments at realtime.

Our history live stream is also generated from a pipe, and uses ffmpeg with the -re option.  I think that is a requirement for generating live streams from a pipe.


archiveEvery does not include all archives since the last date

Type  Bug
NLog version: 4.5.4
Platform: NET Core
Current NLog config
  <target xsi:type="File" name="ownFile-trace" fileName="logs\${machinename}-trace-${shortdate}.log"
            layout="${longdate}|${aspnet-request-ip}|${aspnet-User-Identity}|${pad:padding=-5:${uppercase:${level}}}|${assembly-version}|${pad:padding=-3:${threadid}}|${aspnet-mvc-controller}|${callsite:className=True:includeNamespace=False:fileName=False:includeSourcePath=False:methodName=True}|${message}|${exception}"
            maxArchiveFiles="14"
            archiveFileName="logs\archive\${machinename}-trace.{#}.zip"
            archiveNumbering="Date"
            archiveEvery="Saturday"
            archiveDateFormat="yyyyMMdd"
            enableArchiveFileCompression ="true"
            />

In case of a BUG:

What is the current result?
On the first write on Satury, the log file from Friday is put in an archive file. It is also removed from the log directory
What is the expected result?
Using archiveEvery="Saturday", I expected 7 log files to be moved to an archive file, that is, the files from the previous Saturday to Friday, not just one log file. I assume it has to do with having a date on the log file name. I would like to have a daily log file, rather than one big one, an combine these in one archive. Since the configuration target specifies that there is a date, it should be able to handle this case.
Are there any workarounds? yes/no
no
Is there a version in which it did work?
no
Can you help us by writing an unit test?
no

archiveEvery="Saturday"   means that you use the same file for the entire week, until saturday where you start on a new file.
There could certainly be made some improvements to the compression-part of the file-target. One is to remove the compression-logic from the the file-target. Instead have a file-target-wrapper, that monitors the file-target for archive-events. See also ideas here https://stackoverflow.com/questions/46569005/nlog-with-enablearchivefilecompression-doesnt-work

Thanks, I assume it is implemented that way, but it is not clear from the documentation, nor logical in my humble view.
I think archiveEvery="Saturday" should me move all the file or files to an archive every Saturday. Perhaps there should be a filemask in the target to determine what files are moved to the archive.
archiveFileMask="logs${machinename}-trace-*.log"
Meaning all files that comply with this mask will be added to the archive.

I think it was a mistake to put the compression-logic directly into the FileTarget directly. Instead it should be something that can be configured separately which receives archive-notification-events from the FileTarget.
You are very welcome to create a PullRequest (PR) to improve this area. So your ideas of logical behavior becomes true.

I'm gonna close this one, as in my opinion this is solved.
For a feature request, please create a new issue, so it is more clear what to implement.


Top level statements are not supported

Always spits out blank for [{ClassName}]

@AlaskanDruid I will look into that tonight. Thank you for reporting.

@AlaskanDruid Can you provide an example ?
I've tried with following code:
HelloWorld.csproj
<Project Sdk="Microsoft.NET.Sdk">
	<PropertyGroup>
		<OutputType>Exe</OutputType>
		<TargetFramework>net8.0</TargetFramework>
		<BaseOutputPath>..\..\bin</BaseOutputPath>
		<ImplicitUsings>enable</ImplicitUsings>
		<PublishSingleFile>true</PublishSingleFile>
		<SelfContained>true</SelfContained>
		<RuntimeIdentifier>win-x64</RuntimeIdentifier>
		<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
	</PropertyGroup>
	<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
		<DebugType>none</DebugType>
		<DebugSymbols>false</DebugSymbols>
	</PropertyGroup>
	<ItemGroup>
		<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
		<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
		<PackageReference Include="Serilog" Version="4.0.1" />
		<PackageReference Include="Serilog.Enrichers.ClassName" Version="0.2.0" />
		<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
		<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
		<PackageReference Include="Serilog.Enrichers.Environment" Version="3.0.1" />
	</ItemGroup>
</Project>

Main.cs
using Microsoft.Extensions.Logging;

namespace HelloWorld.Program;

internal class Main
{
    private readonly ILogger<Main> _logger;

    public Main(ILogger<Main> logger)
    {
        _logger = logger;
    }

    public async Task RunAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("Hello, World!");
        await Task.Delay(1000, cancellationToken);
    }
}

Program.cs
// Created with JandaBox 0.8.1 http://github.com/Jandini/JandaBox
using HelloWorld.Program;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Enrichers.ClassName;
using Serilog.Sinks.SystemConsole.Themes;

using var serviceProvider = new ServiceCollection()
    .AddLogging(builder => builder.AddSerilog(new LoggerConfiguration()
        .Enrich.WithMachineName()
        .Enrich.WithClassName()
        .WriteTo.Console(
            theme: AnsiConsoleTheme.Code,
            outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u4}] [{SourceContext}] [{MachineName}] [{ClassName}] {Message}{NewLine}{Exception}")
        .CreateLogger()))
    .AddTransient<Main>()
    .BuildServiceProvider();

try
{
    using var cancellationTokenSource = new CancellationTokenSource();

    Console.CancelKeyPress += (sender, eventArgs) =>
    {
        serviceProvider.GetRequiredService<ILogger<Program>>()
            .LogWarning("User break (Ctrl+C) detected. Shutting down gracefully...");

        cancellationTokenSource.Cancel();
        eventArgs.Cancel = true;
    };

    await serviceProvider.GetRequiredService<Main>().RunAsync(cancellationTokenSource.Token);
}
catch (Exception ex)
{
    serviceProvider.GetService<ILogger<Program>>()?
        .LogCritical(ex, "Program failed.");
}

@AlaskanDruid I've discovered that top level statement does not generate SourceContext property.
I'm not sure if that is your case until you provide the example.
Meanwhile I'm preparing simple solution which will add SourceContext based on the caller:
 public static LoggerConfiguration WithClassName(this LoggerEnrichmentConfiguration enrich, [CallerFilePath] string caller = "")
 {
     _ = enrich ?? throw new ArgumentNullException(nameof(enrich));

     enrich.WithProperty("SourceContext", Path.GetFileNameWithoutExtension(caller));
     return enrich.With<ClassNameEnricher>();
 }

Please let me know if that is your case...

Good Morning!
I apologize for the long time since my submission. I should have replied sooner :( I discovered the SourceContext option and went that direction after posting. However, it has to be manually set and it can get a bit wordy, which I don't like at all.
... ... I wrote out a huge monster post with examples and everything as I was using the AppSettings.json file for configuration (I hate having hard coded config settings).... when... I could just do what you did above and hard code it heh. Same results though.. this is a Console app with "Do not use top-level statements" checked.
My apologies for all the images. code and quote tags are not working here for some reason :(

So this works IF I set the ForContext... but it does not work otherwise... I would have thought it'll work automatically? Did I assume wrong?

@AlaskanDruid  So to clarify, this is not an issue of Serilog version? I will rename the issue to Enricher does not support top level statements.

Since the default parameter might be confusing I propose following solution.
public static LoggerConfiguration WithClassName(this LoggerEnrichmentConfiguration enrich)
{
    _ = enrich ?? throw new ArgumentNullException(nameof(enrich));

    var stackFrame = new StackTrace().GetFrame(1);
    var declaringType = stackFrame?.GetMethod()?.DeclaringType;

    enrich.WithProperty("SourceContext", declaringType?.FullName ?? "Unknown");
    return enrich.With<ClassNameEnricher>();
}

This will work the same as the previous solution and also support following case:
using Serilog;
using Serilog.Enrichers.ClassName;
using SerilogDemo;

namespace Demo;

class MyProgram
{
    public static void Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .Enrich.WithClassName()
            .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] [{ClassName}] [{SourceContext}] {Message:lj}{NewLine}{Exception}")
            .CreateLogger();

        Log.Information("Application starting...");

        // Log from another class
        var demoClass = new DemoClass();
        demoClass.DoWork();

        Log.Information("Application ending...");
        Log.CloseAndFlush();
    }
}

Are you happy with it ?
[15:22:46 INF] [MyProgram] [Demo.MyProgram] Application starting...
[15:22:47 INF] [DemoClass] [SerilogDemo.DemoClass] Doing some work...
[15:22:47 INF] [MyProgram] [Demo.MyProgram] Application ending...

Ah sorry, I'm more at the level of using libraries and tools and not coding them :( I'm good with whatever you choose, really. Either way looks like there is no need for the line "logger.ForContext" any more. Which is great!

It's published... https://github.com/Jandini/serilog-enrichers-classname/releases/tag/0.3.0
https://www.nuget.org/packages/Serilog.Enrichers.ClassName
@AlaskanDruid if you're happy with it.
btw, I've reduced one move line :) #5

Thank you! I have updated. It looks like for the main class "Program", this works great. But any other class in the project, I need to use var Logger = Log.ForContext<(class name)>.  That is ok. I'm reverting back to using a logger instance per class with ForContext per class.  TY for the try though!

If you can send me the full code, so I can understand the problem. The confusing bit is "I need to use var Logger = Log.ForContext<(class name)>. ".

Ah yes! That would be useful. I should have thought of that :( Here they are below:
Project:

Class1.cs:

Class2.cs:

Program.cs

Console Results:

It seems you are expecting something form Serilog that is not there. You are using a static "global" logger  in Serilog instead of injecting logger into your classes.  The class name is built of SourceContext.
Your classes should have Logger injected into it.
public class Class1
{
    private static readonly ILogger _logger = Serilog.Log.ForContext<Class1>();

    public void DoWork()
    {
        _logger.Information("Class1 is doing work.");
    }
}

Why don't you use dependency injection ?
Try this...  https://github.com/Jandini/JandaBox
See how simple it is... you can write your own but here is something out of the box...
dotnet new install JandaBox
dotnet new consolebox -n HelloWorld -b

Hmm okay. I was trying to remove the need of ForContext in order to spit out the class name as that is currently built into Serilog. I suppose the good news is that when using ForContext with this library, the ClassName variable is filled with the ClassName (without the class path), which is great!


Attachments from iPhones don't always populate the Attachments collection

Noticed today that an email sent from an iPhone containing an image had the Attachments count set to zero, when I debugged I saw this:

The email per se:

Debug info:

Content-Type: multipart/mixed; boundary=Apple-Mail-12698C66-389B-4B2C-B704-257C23120CFC
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (1.0)
Date: Thu, 28 Mar 2019 09:47:24 -0400
X-Mailer: iPhone Mail (16D57)
--Apple-Mail-12698C66-389B-4B2C-B704-257C23120CFC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
--Apple-Mail-12698C66-389B-4B2C-B704-257C23120CFC
Content-Type: image/jpeg; name=IMG_4780.JPG; x-apple-part-url=264D8752-4076-4227-ADAF-72C6C38054F7
Content-Disposition: inline; filename=IMG_4780.JPG
Content-Transfer-Encoding: base64
--Apple-Mail-12698C66-389B-4B2C-B704-257C23120CFC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sent from my iPhone
--Apple-Mail-12698C66-389B-4B2C-B704-257C23120CFC--
Is this a known issue or limitation?
Thank you

Inline files are not attachments, but instead alternateviews (if I'm not misstaken)
I'm sure you can find other issues about this as well.
But due not that this project have been abandoned for quite some time at this point.

Inline files are not attachments, but instead alternateviews (if I'm not misstaken)
I'm sure you can find other issues about this as well.
But due not that this project have been abandoned for quite some time at this point.

I checked and there was just one alternateview containing the message body (text) but I guess I'll have to move to another project, do you recommend any?

I would recommend MailKit.


Search path for executables

My afl-fuzz, afl-whatsup, etc. live in /usr/bin/, not /usr/local/bin, and it's annoying to specify a bunch of arguments. I'd prefer if bun searched $PATH by default.

bos handles that nicely but spawn doesn't (you're meant to use the higher-level and heavier shexp for stuff like that, I think); I'll change the defaults for whatsup and gotcpu in the meantime, so PATH resolution will handle them at least.

fixed in 6cc7e2f6bf9cc19020ea698d5cd80fbdf102c1ca .


[5.5] SILGen: Copy the block before detaching a task for async methods called from ObjC.

Explanation: Completion handler blocks passed from ObjC to Swift async method would fail to get copied before creating a task to run the Swift method, causing the block contents to get corrupted.
Scope: Fixes a memory corruption bug when ObjC completion-handler-based APIs are implemented as Swift async methods in overrides or protocols.
Issue: rdar://76871310.
Risk: Low.
Testing: Swift CI
Reviewed by: TBD

@swift-ci Please test


Sync up RegExPlus with functionality added in Java 7 / 8

For example, Pattern flag UNICODE_CHARACTER_CLASS
This allows \w and other built-in types to work with unicode characters. You can still pass the java.util.regex.Pattern int value, since RegExPlus uses Java's regex engine behind the scenes. However, adding this constant to RegExPlus directly will be much preferred.

This done as part of 2.0.0 release, but need to verify


Log spam since version 2.0.1

Currently for each request I am seeing my log get a lot of output added to it. Below is an example:
Is there a way to disable this as it's causing my application to slow down as it tries to output all the logging data.
docker-container    | > GET /an/example/url HTTP/1.1
docker-container    | Host: example.com
docker-container    | User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
docker-container    | Accept: */*
docker-container    |
docker-container    | < HTTP/1.1 200 OK
docker-container    | < Cache-Control: public, max-age=38
docker-container    | < Content-Type: text/html; charset=utf-8
docker-container    | < Expires: Sun, 07 Apr 2019 10:55:59 GMT
docker-container    | < Last-Modified: Sun, 07 Apr 2019 10:53:59 GMT
docker-container    | < Vary: *
docker-container    | < X-Content-Type-Options: nosniff
docker-container    | < Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google.com/recaptcha/api.js https://ssl.google-analytics.com/ga.js https://www.gstatic.com/recaptcha/ https://www.googletagmanager.com/ https://www.google-analytics.com/ https://az416426.vo.msecnd.net/scripts/ https://tagmanager.google.com; connect-src 'self' wss://*.example.com/signalr/ wss://example.com/signalr/ wss://*.vualto.com/signalr/ https://dc.services.visualstudio.com/v2/; img-src 'self' http://*.ukparliament.groovygecko.com/ https://*.kaltura.com/ http://*.kaltura.com/ https://ssl.google-analytics.com/ https://vodplayer.example.com/ https://www.googletagmanager.com/ https://www.google-analytics.com/ https://stats.g.doubleclick.net/r/ https://www.google.com/ads/ https://www.google.co.uk/ads/ https://ssl.gstatic.com https://www.gstatic.com data:; font-src 'self'; frame-ancestors 'self' *.example.com/; frame-src https://*.vualto.com http://*.vualto.com https://www.google.com/ https://*.example.com/ http://*.example.com/; style-src 'self' 'unsafe-inline' https://www.googletagmanager.com/ https://tagmanager.google.com https://fonts.googleapis.com;
docker-container    | < X-XSS-Protection: 1; mode=block
docker-container    | < X-Frame-Options: SAMEORIGIN
docker-container    | < Date: Sun, 07 Apr 2019 10:55:20 GMT
docker-container    | < Content-Length: 262
docker-container    | <
docker-container    | * Curl_http_done: called premature == 0
docker-container    | * Connection #0 to host example.com left intact
docker-container    | <IP_ADDRESS> - - [07/Apr/2019:10:55:20 +0000] "GET /api/1/get_data.php HTTP/1.0" 200 735 "-" "-"
docker-container    | * Hostname example.com was found in DNS cache
docker-container    | *   Trying <IP_ADDRESS>...
docker-container    | * TCP_NODELAY set
docker-container    | * Connected to example.com (<IP_ADDRESS>) port 443 (#0)
docker-container    | * ALPN, offering http/1.1
docker-container    | * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
docker-container    | * successfully set certificate verify locations:
docker-container    | *   CAfile: /etc/ssl/certs/ca-certificates.crt
docker-container    |   CApath: /etc/ssl/certs
docker-container    | * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
docker-container    | * ALPN, server accepted to use http/1.1
docker-container    | * Server certificate:
docker-container    | *  subject: C=GB; postalCode=EX4 4MP; ST=Manchester; L=Manchester; street=A Street; O=Example Org; OU=Web; OU=Enterprise SSL Pro Wildcard; CN=*.example.com
docker-container    | *  start date: Jan  2 00:00:00 2019 GMT
docker-container    | *  expire date: Jan  2 23:59:59 2020 GMT
docker-container    | *  subjectAltName: host "example.com" matched cert's "example.com"
docker-container    | *  issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO RSA Organization Validation Secure Server CA
docker-container    | *  SSL certificate verify ok.

To answer my own issue, it would appear that curl_setopt($ch, CURLOPT_VERBOSE, true); is the issue in /src/PHPHtmlParser/Curl.php setting this to false fixed the logging issue. It would appear I need more caffeine!


Allow to override message.from via send options

Please allow to pass message.from on send options and this should override the this.config.message.from

@peterpetre care to submit a pull request + test?

@niftylettuce https://github.com/niftylettuce/email-templates/pull/319 its ok?

Since this would be a breaking change, I think I'll publish with major semver version, agreed?

@peterpetre I have just merged your work.  I updated the README and added a new section here https://github.com/niftylettuce/email-templates#v5-breaking-changes (might need a bit more explaining with an example - if you care to submit a PR to update this README with a code example that shows before/after issue that would be great<EMAIL_ADDRESS>has been published to NPM.  Let me know if you have any issues, and thank you for your contributions to this project 👏 🎉


Remove Python virtual environment from Dockerfile

Closes: #4333
Tested final-dev image with nautobot-plugin-circuits-maintenance next-2.0 branch. All tests passed there.
What's Changed

Removed Python virtual environment from Docker image.

Changed ownership for system-wide site-packages directory to nautobot user.

Added more specific caching for pip and poetry.
Added invoke cli --root argument to run CLI as root.
Added invoke build --service argument to be able to specify a service to build.

Tests fail, going to create a new PR


Erroneous Group Requirement on Rack Endpoint

Environment

Python version:  2.7
NetBox version:  2.4.1

Steps to Reproduce
Create a rack in the API yields a 400 that says group is required.

Expected Behavior
Create the rack without a group association.

Observed Behavior
curl -XPOST -H "Content-type: application/json" \
	-H "Authorization: Token 1234" \
	-d '{"name": "1234", "site":11}' \
	http://localhost:8000/api/dcim/racks/

{"group":["This field is required."]}

This is related to #238. The UniqueTogetherValidator on the Rack serializer is registering group as a required field:
UniqueTogetherValidator(queryset=Rack.objects.all(), fields=('group', 'name'))

This is due to a bug where unique validation for some reason can't happen against null fields.


Format dates in a single place, Display build date instead of full commit hash in version info

[ ] Breaking change? (if so, please describe the impact and migration path for existing application instances)

What changes did you make? (Give an overview)

fixes #2566
fixes #1933

Is there anything you'd like reviewers to focus on?
How Has This Been Tested? (put an "x" (case-sensitive!) next to an item)

[ ] No need to
[x] Manually (please, describe, if necessary)
[ ] Unit checks
[ ] Integration checks
[ ] Covered by existing automation

Checklist (put an "x" (case-sensitive!) next to all the items, otherwise the build will fail)

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation (e.g. ENVIRONMENT VARIABLES)
[x] My changes generate no new warnings (e.g. Sonar is happy)
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged

Check out Contributing and Code of Conduct
A picture of a cute animal (not mandatory but encouraged)

is ready


Unifying parameter constraints

Currently we are dealing with parameter constraints in module independently. In some instances, we are using the softplus function in utils.py to ensure the parameters are positive. In other places, we are using the pytorch distribution constraints. I'm proposing that we add a new module called transforms, which collects the parameterizations that are used in the repo. It can largely be a thin wrapper around the torch.distributions.constraints. Each "transformation" should have a __call__ method that turns raw parameters into parameterised parameters and a inv method that does the reverse.
For example, in transforms.py we can have
import torch.distributions as dists
positive = dists.transform_to(dists.constraints.greater_than(0)
nonnegative = dists.transform_to(dists.constraints.greater_than_eq(0)
lower_cholesky = dists.transform_to(dists.constraints.lower_cholesky)

sounds good to me -- I think you've played around with these constraints more than I have so I'm happy with whichever solution you prefer


ensure doc building fails when a notebook fails

we must ensure that all the projects built on jupyter-book fail on readthedocs whenever a notebook fails (by default, this isn't the case - this build succeeded but a notebook failed).
We already enabled this on sklearn-evaluation by setting the fail_on_warning. However, we haven't set this in other projects since there are still other warnings that we haven't fixed and will cause the docs to fail. So we should change the settings, see what happens to the readthedocs build and check if we fix the warnings (or add the ignored warnings list, note that some projects have _conf.yml instead of conf.py, so ignoring warnings will be different)

[ ] jupysql
[ ] ploomber-engine
[ ] ploomber-core

@edublancas ploomber-engine is working fine without any changes

cool,  I see we already have the flag, so all good: https://github.com/ploomber/ploomber-engine/blob/209d012c0f529f61189dd9edb35eed6e53041cf9/.readthedocs.yml#L17
we can close this then


Update Plunker link to a working reference

Reverts Firebase version to 3.4.0 to work around #576.

@katowulf You are the man :)


Force check all config files on install or update yiisoft/config

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Fixed issues
#36

👍


Thoughts on validation

Just collecting some initial brainstorming ideas on validation in advance of Monday's meeting:
Validating the overall MultiTargetDesign sampler
Comparing alchemical hydration free energies with relative hydration free energies
We can test the overall sampler by having the sampler compute relative solvation free energies between linear alkanes (methane, ethane, propane, n-butane, ...) with something like
target_samplers = { solvent_sampler : 1.0, vacuum_sampler : -1.0 }
designer = MultiTargetDesign(target_samplers)
designer.run()

and comparing the relative free energies to differences in absolute solvation free energies.  The reference values could either be computed with YANK or could be computed inside perses using the NCMC module to switch bidirectionally between solvent and vacuum.
Validating alchemical NCMC
There are already two tests in there:
Alchemical deletion / reinsertion
Deleting and reinserting the same sets of atoms should give a free energy difference (computed via EXP) within a few statistical errors of zero.  I have this threshold set to 6*sigma for right now.
NCMC switching for a harmonic oscillator
The NCMC integrator currently drags a harmonic well around in a bidirectional switching experiment and checks that the BAR estimate of free energy differences is zero.
Validating AbsoluteAlchemicalFactory
There are already a battery of tests in alchemy, but we could add a test to perses which makes sure that when atoms are alchemically eliminated, the only contributions to the energy when these atoms are moved comes from valence energy terms.
Validating the geometry engine
Null transformations
Null transformations---such as napthalene-to-napthalene with manually-encoded atom mappings---will be useful for making sure that there is no unexpected asymmetry.  We should get equal samplings of both napthalenes.  While a cool demonstration (and one we should include int he paper), this is unfortunately not the most demanding test since there could still be bugs and yet the result will still be symmetric because some contribution cancel out for both states.
Marginal distributions of internal coordinates
If we just run a SAMSSampler or properly-weighted ExpandedEnsembleSampler without using dynamics to propagate in between chemical switches and using instantaneous Monte Carlo (rather than NCMC) in the chemical switches, provided we randomly choose from the list of potential atomic alignments, we should get ergodic sampling of a series of small alkanes in vacuum.  The marginal distributions of internal coordinates (bonds, angles, torsions) for a given molecule should match up with marginal distributions sampled for that molecule using GHMC.  I'm unclear on whether or not this should also result in equal visits all chemical species---I think it should if we get all of the contributions correct, but I'm not convinced that I can prove it.
Analytical forward and reverse probabilities
For a linear chain of beads W-X-Y-Z with a forcefield that includes only bonds, angles, and torsions with a single Fourier component, placing or deleting Z should have an analytically computable Cartesian probability density function (which we already have code to compute) that can be compared to the numerical probability density function we actually use.
ExpandedEnsembleSampler
Harmonic oscillators
If we have a series of states that differ in Hamiltonian by the spring constant of a harmonic oscillator, we can impose analytically-computed weights and make sure we sample each state uniformly.  We can use openmmtools.testsystems.HarmonicOscillator for this purpose; I can add the analytical free energy and normalizing constant to the list of analytically-available properties.
SAMSSampler
Harmonic oscillators
We can initialize the SAMS sampler with all zeros and make sure that multiple simulations converge to the analytically-computed free energies of harmonic oscillators.

Avoiding eternal issues, closing now. Will still be available for reference.


Is getActiveCPUs works on VM ?

Describe the bug
A clear and concise description of what the bug is.
running on VM env (Ubuntu)
getActiveCPUs
klog.V(5).Infof("---activecpu---%d----%s", activeCPUs, ct.CPUTime)
I printed log like this  after the line and since we are in attacher.EnableCPUFreq
else logic, should this have some data anyway? but I got an empty array and all 0 value..
looks like this is defined in C.CPU_VECTOR_SIZE (128) and all 0, is this expected to be running on BM only?
and got following
I0928 09:37:55.760271       1 reader.go:150] ---activecpu---[]----[%!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0) %!s(uint16=0)]

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

If the eBPF program is successfully running, the CPU time should be accounted...
Can you check if the eBPF is running?

@sustainable-computing-io/kepler-core @sustainable-computing-io/kepler-deployment

Can you check if the eBPF is running?

bpf: Failed to load program: Permission denied

Can you give more lines of the log?
It seems that ebpf is not running

I saw some logs like
bpf: Failed to load program: Permission denied
; int sched_switch(switch_args *ctx)
0: (bf) r6 = r1
; u64 pid = bpf_get_current_pid_tgid() >> 32;
1: (85) call bpf_get_current_pid_tgid#14
; u64 pid = bpf_get_current_pid_tgid() >> 32;
2: (77) r0 >>= 32
; u64 pid = bpf_get_current_pid_tgid() >> 32;
3: (7b) *(u64 *)(r10 -8) = r0
; u64 time = bpf_ktime_get_ns();
4: (85) call bpf_ktime_get_ns#5
5: (bf) r7 = r0
; u64 time = bpf_ktime_get_ns();
6: (7b) *(u64 *)(r10 -16) = r7
; u32 cpu_id = bpf_get_smp_processor_id();
7: (85) call bpf_get_smp_processor_id#8
; u32 cpu_id = bpf_get_smp_processor_id();
8: (63) *(u32 *)(r10 -20) = r0
; old_pid.pid = ctx->prev_pid;
9: (61) r1 = *(u32 *)(r6 +24)
; old_pid.pid = ctx->prev_pid;
10: (63) *(u32 *)(r10 -32) = r1
; u64 *last_time = bpf_map_lookup_elem((void *)bpf_pseudo_fd(1, -3), &old_pid);
11: (18) r1 = 0xffff952a5a8b0000
13: (bf) r2 = r10
....
I1014 00:28:55.945051       1 bcc_attacher.go:111] failed to attach perf module with options [-DNUM_CPUS=8 -DCPU_FREQ]: failed to load sched_switch: error loading BPF program: permission denied

I see error printed in my log
https://github.com/sustainable-computing-io/kepler/blob/9762279ba65fdddc81d5ec60c8b8adb9dc05ded7/pkg/attacher/bcc_attacher.go#L117
but I didn't se error printed
https://github.com/sustainable-computing-io/kepler/blob/9762279ba65fdddc81d5ec60c8b8adb9dc05ded7/pkg/attacher/bcc_attacher.go#L122
so I Think eBPF runs correctly as the module loaded? what's the criteria of detecting whether eBPF runs smoothly or not in kepler context? Thanks

Right, the logs aren't saying much....We need to improve it.
We should have a log saying in the end if the bpf is running or not....
But regarding the first failure.
Actually the -DCPU_FREQ parameter is related to CPU time, which is used to calculate the frequency later...
So the first attempt to attach the bpf program is with the support to collect cpu time....
If it fails for some reason, it will run a program without the CPU time....
Btw, can you pastebin the full log?
In fact, I want to deprecate the CPU time since the cpu time is also reported by cgroup...
And then, I will update the logic to calculate the frequency later.... This is in my TODO list...

Closing it because we don't have this problem anymore.


Support additional HTTP exceptions

Description
HTTP 408 is currently not included in the expections and should be supported

exceptions.py should be expanded to also include HTTP 502 and 503 because these are returned by the API but not covered by the current classes


move welcome message to new welcome bot

This PR is moving the functionality of the welcome bot to https://github.com/apps/welcome and will deprecate https://github.com/bundler/bundlerbot.

@bundlerbot r+


ML 7.9: Hidden Markov Model (V)

Description
📌  Issues for Week 7
Welcome to 'ML' Team, good to see you here
:arrow_forward: This issue will helps readers in acquiring all the knowledge that one needs to know about ----
Hidden Markov Model.
:red_circle: To get assigned to this issue, add your Batch Numbers mentioned in the spreadsheet of "Machine Learning", the approach one would follow and choice you prefer (Documentation, Audio, Video). You can go with all three or any number of options you're interested to work on.
✔ Domain : Machine Learning
:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.

"Issue Title" and "PR Title should be the same. Include issue number along with it.

Changes should be made inside the Machine Learning/Machine_Learning/Bayesian_ML_&_Ensemble_based_Learning Branch.

Follow Contributing Guidelines & Code of Conduct before start Contributing.

This issue is only for 'GWOC' contributors of 'Machine Learning' domain.

:white_check_mark: To be Mentioned while taking the issue :

Full name
Batch Number
GitHub Profile Link
Which type of Contribution you want to make :

[ ] Video

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎
Domain
Machine Learning
Type of Contribution
Video
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Name - Kishlay Kumar
Batch - 4
Serial No - 673
GithubLink :- https://github.com/kishlayaug15
Approach: A detailed explanation with Audio

happy contributing @kishlayaug15

@kishlayaug15  What's the update on this issue ❓

Working on another issue right now. Give me some time, I'll finish it quickly @abhisheks008

Actually , can I provide audio contributuion here for Hidden Markov Model?

@kishlayaug15 It's up to you, whether you have 10 assigned issues or 20, it doesn't matter. Whenever you are taking up some responsibility, make sure you'll be able find yourself in a better position to complete that within the deadline. Anyways make sure you complete your task by EOD. And secondly, this is a video contribution, not an audio contribution.

@abhisheks008 Instead of machine learning I have branch name revert 1062 machine learning . Do I have to commit changes to that??

i want to contribute through audio


stepLVc

Add C extension for fast simulation from the LV transition kernel.

Need to wait until #8 is complete, or package will break on windows.

This is probably still worth doing, but is much less important now that jax-smfsb exists and everything runs very fast.


Tryout ctor injection (WIP)

@snakefoot
Please your feedback.
This is real DI, but nice breaking change ;) (I only updated one target and one test for now)

Like the idea of being able to register a type to have constructor-dependency-injection.
But don't think it should be enabled by default. Ex. we have constructors that takes Name as parameter.
We could have cyclic loop if type-constructor takes its own type as constructor-parameter.

replaced with https://github.com/NLog/NLog/pull/3667


[ DEMO ] Create footprint for CD4028BE Quadrature to I2C converter IC

@SJSURoboticsTeam/electrical Hey when will this be triaged or put sprint?

This is no longer relevant due to the introduction of the RMD-X7 motors.


Disables scrolling function

Defective ToolKit Feature Name:
It seems to be just the act of installing and selecting the tool-kit to be used in the preferences list on Safari.  It used to work fine but now if I allow Safari to use Tool-kit I can no longer scroll up and down in my budget.  My budget is larger so I'm only able to see about 1/2 of the budget.
Expected Behavior
Being able to scroll up and down in the budget
Actual Behavior
Not able to scroll up and down in the budget
Steps to Reproduce the Behavior

Go to preferences menu of Safari
Select Tool-kit
Reload YNAB

*The only way to get the scrolling feature back is to go back to the preferences and de-select toolkit then reload YNAB again.
Export of Toolkit Settings (Bottom Left of Settings Page)
[{"key":"enableRetroCalculator","value":true},{"key":"highlightNegativesNegative","value":true},{"key":"budgetQuickSwitch","value":false},{"key":"runningBalance","value":true},{"key":"googleFontsSelector","value":"0"},{"key":"accountsEmphasizedOutflows","value":true},{"key":"privacyMode","value":"0"},{"key":"splitKeyboardShortcut","value":true},{"key":"incomeFromLastMonth","value":"0"},{"key":"changeEnterBehavior","value":true},{"key":"accountsClearSelection","value":false},{"key":"importNotification","value":true},{"key":"colourBlindMode","value":false},{"key":"toBeBudgetedWarning","value":true},{"key":"categoryActivityPopupWidth","value":"0"},{"key":"l10n","value":"0"},{"key":"editButtonPosition","value":"0"},{"key":"accountsSelectedTotal","value":true},{"key":"reports","value":false},{"key":"accountsStripedRows","value":true},{"key":"warnOnQuickBudget","value":true},{"key":"seamlessBudgetHeader","value":true},{"key":"accountsRowHeight","value":"0"},{"key":"collapseExpandBudgetGroups","value":true},{"key":"toggleTransactionFilters","value":"0"},{"key":"printingImprovements","value":true},{"key":"splitTransactionAutoAdjust","value":true},{"key":"largerClickableIcons","value":false},{"key":"popupCalculator","value":true},{"key":"rightClickToEdit","value":true},{"key":"goalIndicator","value":true},{"key":"pacing","value":"0"},{"key":"showIntercom","value":true},{"key":"removePositiveHighlight","value":true},{"key":"checkCreditBalances","value":true},{"key":"accountTransactionSearch","value":true},{"key":"monthlyNotesPopupWidth","value":"0"},{"key":"budgetProgressBars","value":"0"},{"key":"hideAOM","value":false},{"key":"accountsDisplayDensity","value":"0"},{"key":"squareNegativeMode","value":true},{"key":"goalIndicatorWarningColor","value":true},{"key":"budgetBalanceToZero","value":true},{"key":"enterInRegisterNow","value":true},{"key":"budgetRowsHeight","value":"0"},{"key":"enlargeCategoriesDropdown","value":true},{"key":"daysOfBufferingHistoryLookup","value":"0"},{"key":"currentMonthIndicator","value":true},{"key":"daysOfBuffering","value":true},{"key":"collapseSideMenu","value":false},{"key":"checkNumbers","value":true},{"key":"activityTransactionLink","value":true},{"key":"swapClearedFlagged","value":false},{"key":"toggleSplits","value":true},{"key":"reconciledTextColor","value":"0"},{"key":"removeZeroCategories","value":true},{"key":"resizeInspector","value":true}]```
[paste settings here]

### System Settings

ToolKit Version:
Operating System (Mac/Windows/Etc):  Mac
Browser (Chrome/Firefox/Safari): Safari
Browser Version:
Other Extensions:Pinterest, honey, price blink, keeps

Hey, @rwolfert!
Unfortunately, we've chosen to drop support of Safari. Not only is Safari quite behind in terms of the web technologies we've chosen to use in many features of the toolkit, YNAB has implemented some security policies making it impossible for us to run the toolkit properly on their website barring a huge rewrite.
Until that rewrite happens (if it does) Safari will no longer be support.
Sorry for the inconvenience but in the meantime I suggest using Chrome or Firefox. Note that Chrome is the better of the two options since our releases happen near-instantly on Chrome and Firefox often takes a few weeks to approve and release.
Thank you and once again, sorry for the inconvenience.


Can't seem to compile

Rust newbie here. :slightly_smiling_face:
I figured out that cargo-web needs to be installed, based on the presence of Web.toml. However, when I run cargo web build, I get this error:
error: error: failed to get `lvgl` as a dependency of package `lvgl-example v0.1.0 (/tmp/lvgl-rs-wasm)`

Caused by:
  failed to load source for dependency `lvgl`

Caused by:
  Unable to update /tmp/lvgl-rs/lvgl

Caused by:
  failed to read `/tmp/lvgl-rs/lvgl/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

@embeddedt Hey!
Try this command:
cargo +nightly web start

I forgot to include that you need the nightly version of Rust.
Also you need to clone this version of lvgl-rs: https://github.com/rafaelcaricio/lvgl-rs/pull/31 next to this repo, because of this https://github.com/rafaelcaricio/lvgl-rs-wasm/blob/master/Cargo.toml#L15

Ok, I've updated the code here to make it easier. Please follow the README to install emscripten compiler and then run:
cargo +nightly build --target=wasm32-unknown-emscripten

It went further this time. I did need to run rustup target add wasm32-unknown-emscripten --toolchain nightly first.
   Compiling lvgl-sys v0.4.0 (https://github.com/rafaelcaricio/lvgl-rs.git?branch=emscripten#76d485b6)
error: failed to run custom build command for `lvgl-sys v0.4.0 (https://github.com/rafaelcaricio/lvgl-rs.git?branch=emscripten#76d485b6)`

Caused by:
  process didn't exit successfully: `/tmp/lvgl-rs-wasm/target/debug/build/lvgl-sys-4625ae5c299b8762/build-script-build` (exit code: 101)
  --- stderr
  thread 'main' panicked at 'The environment variable DEP_LV_CONFIG_PATH is required to be defined', .cargo/git/checkouts/lvgl-rs-27f20f23afade818/76d485b/lvgl-sys/build.rs:16:13
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

You need to set this environment variable:

The environment variable DEP_LV_CONFIG_PATH is required to be defined

For that, you can run:
export DEP_LV_CONFIG_PATH=`pwd`/include

In the /lvgl-rs-wasm project root.

Okay; that got it even further. Now I get:
.cargo/git/checkouts/lvgl-rs-27f20f23afade818/76d485b/lvgl-sys/vendor/lvgl/src/lv_hal/../lv_misc/lv_task.h:20:10: fatal error: 'stdbool.h' file not found
.cargo/git/checkouts/lvgl-rs-27f20f23afade818/76d485b/lvgl-sys/vendor/lvgl/src/lv_hal/../lv_misc/lv_task.h:20:10: fatal error: 'stdbool.h' file not found, err: true

I've seen this error before on a non-Rust project; I often have to fight Emscripten/Clang to get standard headers to appear properly. Hopefully I can figure it out.

Hey @embeddedt ! Please pull the latest version and try again. I have updated the README with more instructions, may be easier now.
Could you please share what commands you're running to get this error?

Unfortunately, it still doesn't work with the latest version. These are the commands I ran:
source <path to emsdk>/emsdk_env.sh
make web # failed because I forgot to set `DEP_LV_CONFIG_PATH`
export DEP_LV_CONFIG_PATH=`pwd`/include
make web

I get the same error as my last post.
When I was working on the Emscripten port of MicroPython, I ran into issues with needing to install Emscripten's Clang package as well. Newer Emscripten versions seemed to give me more trouble (I ended up sticking with a 1.38 version). Do you know what Emscripten version you have installed?

❯ emcc --version
emcc (Emscripten gcc/clang-like replacement) 2.0.4 (3047b77ed244ea8f3cb3ee7b18c0f89079ae6554)
Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt)
This is free and open source software under the MIT license.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I'll give that version a try.

Alright; it works with Emscripten 2.0.4. That was the problem.

Awesome! 🥳


Adds different color to metric according to the status

Summary

If the metric is failing it adds a x and red color
If the metric is success it adds a tick and a green color

Screenshots

Resolve #44

👍


[Yet another simple suggestion] Box ESP :)

Hey! I think it will be cool for you to add a simple Box ESP since every other cheat has it.
I don't think it's that hard either as I've heard from other coders.
Now I'm not sure but you might need World2Screen or some function like that I really don't know, as I wanna help but I'm not a good coder :D

Duplicate #61

I'm going to push this feature on a branch on my fork within the next day, once I clean up the code. I've only got 2D box (enemy and friendly toggles), name, health. Not sure if it will get merged with Daniel's repo, mines probably going to deviate quite a bit to suit my own wants.

@TrackyBunny It's available on my feature branch now. Added in one commit, so it should be easy to see what I've changed/added if you wanted to paste it into your copy of Daniels branch.


add docs for handling with browser popup windows

Looks like this issue is already fixed: https://splinter.readthedocs.io/en/latest/browser.html#managing-windows


Global debug flag, better error messages

Adds messages to all asserts. Also adds a convenience method for adjusting assert messages when asserts should only signify internal bugs.
Additionally, adds checks to a global debug flag called _G.ROACT_DEBUG, which will toggle whether or not we do asserts in our most performance sensitive code paths.
So far, speed gains are fairly noticeable in most cases:
                         New Reconciler    New Reconciler (Skip Asserts)
fancy (x2000)            2.0655s           1.9213s (-7.0%)
hello (x100000)          1.3674s           1.2378s (-9.5%)
lifecycle (x100000)      0.9420s           0.7436s (-21.1%)
nested-mount (x100000)   8.6984s           7.0043s (-19.5%)
nested-update (x100000)  7.6934s           6.3267s (-17.8%)
update (x100000)         0.8067s           0.8025s (-0.5%)

Conversely, flagging the asserts on results in measurably worse performance than before, more so than might be expected.
                         New Reconciler    New Reconciler (Asserts On)
fancy (x2000)            1.9524s           2.2470s (+15.1%)
hello (x100000)          1.4198s           1.7719s (+24.8%)
lifecycle (x100000)      0.9240s           0.9697s (+5.0%)
nested-mount (x100000)   8.7757s           9.3777s (+6.9%)
nested-update (x100000)  7.4663s           7.8955s (+5.7%)
update (x100000)         0.8610s           1.0437s (+21.2%)

Checklist before submitting:

[ ] Added entry to CHANGELOG.md
[ ] Added/updated relevant tests
[ ] Added/updated documentation

I dunno if this is the approach we want to align on, it seems... okay, but I wonder if it's just a little too messy/intrusive?

Some thoughts on this:

First of all, I should probably remove/clean up GlobalConfig in this same commit. We'll probably make it no-op and issue a warning when interacted with.
There's one debug flag that controls all features: prop validate, argument type checks of both internal and external apis, and element tracing. It probably makes sense to break this up into separate buckets

I opened LPGhatguy/rojo#160 for the tooling side implications of changes like this that we might be able to port and take advantage of.


Perfume and Webdriver

https://stackoverflow.com/questions/47966321/how-to-get-loading-time-of-data-at-frontend-for-any-web-application-by-using-web

Using Perfume with Webdriver doesn't seem the right purpose for this library, which aims instead to help collect Real User Measurements (RUM).


UnsatisfiedLinkError against OpenIMAJGrabber.startSession(IIILorg/bridj/Pointer;)

Opening Webcam cause this error on Linux machine:
21:02:21.519 [SwingWorker-pool-2-thread-1] DEBUG com.github.sarxos.webcam.Webcam - Webcam exception when opening
com.github.sarxos.webcam.WebcamException: Cannot execute task
	at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.process(WebcamProcessor.java:72) ~[classes/:na]
	at com.github.sarxos.webcam.WebcamProcessor.process(WebcamProcessor.java:140) ~[classes/:na]
	at com.github.sarxos.webcam.WebcamTask.process(WebcamTask.java:46) ~[classes/:na]
	at com.github.sarxos.webcam.ds.cgt.WebcamOpenTask.open(WebcamOpenTask.java:20) ~[classes/:na]
	at com.github.sarxos.webcam.Webcam.open(Webcam.java:295) [classes/:na]
	at com.github.sarxos.webcam.Webcam.open(Webcam.java:250) [classes/:na]
	at com.github.sarxos.webcam.Webcam.open(Webcam.java:236) [classes/:na]
	at com.github.sarxos.webcam.WebcamPanel$1.doInBackground(WebcamPanel.java:840) [classes/:na]
	at com.github.sarxos.webcam.WebcamPanel$1.doInBackground(WebcamPanel.java:1) [classes/:na]
	at javax.swing.SwingWorker$1.call(SwingWorker.java:295) [na:1.8.0_201]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_201]
	at javax.swing.SwingWorker.run(SwingWorker.java:334) [na:1.8.0_201]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_201]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_201]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
Caused by: java.lang.UnsatisfiedLinkError: com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.startSession(IIILorg/bridj/Pointer;)Z
	at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.startSession(Native Method) ~[classes/:na]
	at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDevice.open(WebcamDefaultDevice.java:332) ~[classes/:na]
	at com.github.sarxos.webcam.ds.cgt.WebcamOpenTask.handle(WebcamOpenTask.java:38) ~[classes/:na]
	at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81) ~[classes/:na]
	... 3 common frames omitted

Hi @kkieffer
This issue is caused by a method parameter signature being changed from double to int in your commit here:
https://github.com/sarxos/webcam-capture/pull/765/files#diff-492ecf2a3cddaf20cf2f0e1a230fa31d.
I initially thought it's a valid change since it's only normal to assume that FPS is int, but it looks like BridJ needs it to be double to link correct function exported in native library, thus I'm reverting it back to how it was before.
Can you please test newest 0.3.13-SNAPSHOT on your MacOS machine to verify if this change works well? I have no access to Apple boxes and can't verify it.

It won't compile correctly if it's a double.  The native code wants an int.  See the native source here, where reqMillisPerFrame is an int:

@kkieffer
Ok, I understand now why you had to change it. Let me check why it's not linking on my Linux box. I suppose there is a bug somewhere else in the code or pom since OpenIMAJ also have int in OpenIMAJGrabber class.

@kkieffer
Nailed it. The so files for x64 and x86 Linux are outdated (others probably as well). I will update them.

@kkieffer Thank you for your help. Everything should be working now. Can I ask you one more time to verify if the 0.3.13-SNAPSHOT is working well on Mac? I suppose it should be working but better be safe than sorry :) The latest snapshot is already deployed in Sonatype and available here.

Working!

Great. Thank you!


100% test coverage 💯

coverage: 100.0% (+2.7%) from 97.291% when pulling 4f9efe99c0120a22e851e9baa0d7955312c95037 on 100testCoverage into<PHONE_NUMBER>daf6ad6401f2f375f4847746a67359 on main.


Add a local test workflow

Fix a failing test

I am still at loss about what to write in the why part (except that tests are a good thing in general).  If you think this is not a good reason, you may just reject this request.

I hope this looks better now.  Please instruct me what to do next.

@yecril71pl the first thing would be to let us know which test is failing for you. And how the failure is reproducable. Because for me locally (and also for travisCI) there is no failure in the current unittests.
So having a problem description (which is the why) would be nice.

https://github.com/yecril71pl/py2pack/commit/8367c1c66c68cd6e8854cf887ffc29463b8b6d5a/checks?check_suite_id=336782261#step:5:22

You run flake8 with python3. Then please update our tox.ini to use python3 so we see the problem in the travis CI and the we can create a fix for that.


where's the jsonl files when calculate the scores

code\MT-Eval\calculate_score.py", line 209, in <module>
    for row in open(
FileNotFoundError: [Errno 2] No such file or directory: '/kfdata05/kf_grp/wckwan/Multi-Turn-Benchmark/our_data/global-inst_conv_v1.0.jsonl'

Is the corresponding relationship right?
/kfdata05/kf_grp/wckwan/Multi-Turn-Benchmark/our_data/global-inst_conv_v1.0.jsonl
to
recollection_multi_global-inst.jsonl
/kfdata05/kf_grp/wckwan/Multi-Turn-Benchmark/our_data/global-inst-single_conv_v1.0.jsonl
to
recollection_single_global-inst.jsonl

Hi, that's actually some unnecessary code that I forgot to delete after refactoring the code. It's fixed in the latest commit.


[WIP] Update JEP, support for JDK >11 and general integration of python code

[x] update jep to 3.9.0 #529
[ ] remove workaround for loading the native libraries which will fail with JDK > 11
[ ] study how to apply additional integration of python code [bonus]

Coverage increased (+0.01%) to 38.431% when pulling 4147c62cd68bd0e07ad70db7553eca70d9d1f0cc on feature/update_jep into 162e83da4c845be314aa3b0fd2ac98fd93c135b5 on master.

This is obsolete as the implemented features are already implemented and the non-implemented features are already reported as issues.


Add Dockerfile and docs on how to run with docker when node10 isn't available

Add Dockerfile suitable for running multimeter locally
Add docs to README regarding node 10 dependency and how to use docker.

I think this is unnecessary. We just need to get screeps-api to update their bufferutil dependency. It actually still seems to work anyway - see my comments on https://github.com/screepers/screeps-multimeter/issues/33.


.NET 6 testing

This PR replaces net5.0 testing with net6.0 and netcoreapp2.0 testing of mgmt libraries with netcoreapp3.1.

/azp run net - core - ci

We may need to bump the NUnit version as part of this; it looks like there's a potential overload resolution issue when our current version is used with .NET 6:
https://github.com/Azure/azure-sdk-for-net/issues/24232
Running the Metrics Advisor tests should help validate.

I think it's a compiler bug https://github.com/dotnet/roslyn/issues/56807

Should we take this opportunity to refresh central package versions as well? Things like the NUnit packages and Microsoft.NET.Test.Sdk, for example, are a few versions behind.

Definitely but in separate PRs. This one is getting large.

E.g. https://github.com/Azure/azure-sdk-for-net/pull/24260/files#diff-9af698f6b812d750e3e50f4cdcd08dca94a62cbaf8cc0b106bdd1626356c2752R908-R912

/check-enforcer override

The net - mgmt - ci (Build) is communicated to the management team. The agreement is to ignore it for now.


Make --strict the default in TypeScript 3.0

Search Terms
strict default
Suggestion
Congrats on getting towards a 3.0 release. I'm always in constant amazement by the work you are all doing, both in features released and discussions on Github so thank you for that.
Now that you are planning on releasing 3.0 I was wondering if it would be a good idea to make --strict default.
While anyone has the option of turning --strict on or off as they please, I think defaults matter, especially for newcomers. Sadly I fear many are missing out on the advantages that --strict brings as they don't realise that they can turn it on. Even the handbook generally assumes that it is turned off.

As a note: we encourage the use of --strictNullChecks when possible, but for the purposes of this handbook, we will assume it is turned off.

Given that you're planning a major version release I was wondering if now is a good time to consider making --strict default to true. Obviously anyone could change the setting back off if they don't want it turned on.
Checklist
My suggestion meets these guidelines:

[ ] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

strict is at least already the default for new tsconfig.json files.

As noted, it is the default under tsc --init.
One of the reasons we don't adhere to semver is that we don't make giant boil-the-ocean breaking changes between any two versions - our policy is that you should feel safe upgrading from one TS version to the next and only get a handful of new warnings that should be mostly useful. There's a 0% chance turning on strict in an existing codebase won't generate a huge number of warnings. And this is all to say nothing of the fact that a large proportion of DefinitelyTyped definitions aren't yet updated for strictNullChecks compliance, so any given codebase's ability to turn on all of strict is kind of in the air.
If people want strict on, it's usually trivial to do so, and we encourage them to do so with tsc --init. If they want their build to keep working on upgrade, we'd really like to help them with that. Throwing up a giant wall of errors (which won't have any clear explanation as to why they're suddenly appearing!) on the next TypeScript upgrade is not going to change anyone's mind about the relative usefulness of strict in a positive way.

I hadn't realised that tsc --init turns --strict on. That is definitely nice.
I think for me it's more a question of "If I read some TypeScript code online, can I assume --strict is turned on?". When I read TypeScript's documentation or some random blog post the answer is generally "no" which I think is a shame.
It's an interesting point about DefinitelyTyped not necessarily supporting --strict although to be honest I'm not sure if that means we should make it default so people start writing type definitions with --strict in mind or if we should leave it off. It seems a bit of a chicken and egg problem and the longer we leave it the worse it would become. I personally definitely use DefinitelyTyped definitions with --strict on and have just assumed that this is fine. Maybe I shouldn't be?
I wasn't meaning to suggest anyone upgrading to 3.0 would need to fix all type errors that --strict emits. I was simply assuming that anyone upgrading would turn --strict off if they don't want it on for whatever reason just like when upgrading to 2.7 I had to turn --strictPropertyInitialization off (as I'm using Angular).


after update

Describe The Bug
[19/11/2023, 11:28:03] [tapo-camera] Error at 'getStatusAndUpdateCharacteristics'. TypeError: Cannot read properties of undefined (reading 'find')
at TAPOCamera.getStatus (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/tapoCamera.ts:256:47)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CameraAccessory.getStatusAndUpdateCharacteristics (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:228:27)
at Timeout._onTimeout (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:206:7)
Logs
[19/11/2023, 11:25:03] [tapo-camera] Error at 'getStatusAndUpdateCharacteristics'. TypeError: Cannot read properties of undefined (reading 'find')
    at TAPOCamera.getStatus (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/tapoCamera.ts:256:47)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at CameraAccessory.getStatusAndUpdateCharacteristics (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:228:27)
    at Timeout._onTimeout (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:206:7)
[19/11/2023, 11:26:03] [tapo-camera] Error at 'getStatusAndUpdateCharacteristics'. TypeError: Cannot read properties of undefined (reading 'find')
    at TAPOCamera.getStatus (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/tapoCamera.ts:256:47)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at CameraAccessory.getStatusAndUpdateCharacteristics (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:228:27)
    at Timeout._onTimeout (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:206:7)
[19/11/2023, 11:27:03] [tapo-camera] Error at 'getStatusAndUpdateCharacteristics'. TypeError: Cannot read properties of undefined (reading 'find')
    at TAPOCamera.getStatus (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/tapoCamera.ts:256:47)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at CameraAccessory.getStatusAndUpdateCharacteristics (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:228:27)
    at Timeout._onTimeout (/var/lib/homebridge/node_modules/homebridge-tapo-camera/src/cameraAccessory.ts:206:7)

Config
No response
Homebridge UI Version
homebridge-config-ui-x v4.52.3
Homebridge Version
1.7.0
Node.js Version
18.18.2
Operating System
Raspberry Pi OS / Raspbian
Environment Info

[ ] Using Docker?
[ ] Using Hyper-V?
[ ] Using hb-service?

Raspberry Pi Model
Raspberry Pi 3 B+

Hi @entoryFB, since this is an issue specific to a homebridge plugin, you would need to seek advice from the plugin maintainer.
Please search on the plugin's github repo and if necessary create an issue there.

https://github.com/kopiro/homebridge-tapo-camera

Out of interest, is this sending homebridge into a constant restart loop?

Thank you very much for the information. I asked the question with the plugin Team
The homebridge runs perfectly. The error message only comes every two minutes

Thanks


Updated Mumble.proto to support Channel Listeners (from mumble git)

Updated Mumble.proto to support Channel Listeners (from mumble git)

Thanks for your commits :)
It will take some time to review this changes (I think at least about a week, we got finals at uni atm...).
Can you give some more information on what you changed and explain why?
I see your commit message says something about a Proxy Talk mode, can you explain this a bit?
Also, please make sure to add your name to the LICENSE file, so people know you have contributet to this project and to acknowledge the BSD2 style of this project ;)

The latest (git) Mumble.proto allows for a client to "listen" to multiple channels if the server is 1.4+
To implement this feature in dumble, I needed to pull in the latest Mumble.proto and generated dart files, I needed to add the proper commands to the Selfe class in user.dart:
  void addListeningChannel({@required Channel channel}) => _client.writeMessage(
      new Proto.UserState()..listeningChannelAdd.add(channel.channelId));

  void removeListeningChannel({@required Channel channel}) =>
      _client.writeMessage(
          new Proto.UserState()..listeningChannelRemove.add(channel.channelId));
}

Additionally, Mumble server 1.4+ adds a new TalkMode that has a value of 3. Therefore in audio.dart
enum TalkMode { normal, whisperToChannel, whisperToUser, proxyListen }

I named the value proxyListen because 1.4+ refers to these additional listeners as "proxy" listeners.
Finally, I figured that the booleans under the User object should always have a value, so I'm proposing a change to make the getters return false when the actual value is null.
  bool get mute => _mute ?? false;
  bool get deaf => _deaf ?? false;
  bool get suppress => _suppress ?? false;
  bool get selfMute => _selfMute ?? false;
  bool get selfDeaf => _selfDeaf ?? false;

This is my personal preference, and if you don't like it, I will change it back.

So, as anounced, I finally had time to review the changes.
I just noticed 2 things:

The license file, I think it should be

Copyright 2020 Eric Prokop und Nils Wieler Hard- und Softwareentwicklung GbR
Copyright 2020 Jeffrey Mikels

You added a  dev_dependency on opus_dart
This should not be necessary since all test code is in the example folder, and opus_dart is referenced there.
I guess you added it to do some tests, but forgot to remove it 😅?

To again summarize your changes, in order to be sure I forgot something:

You corrected the file names of generated files. Dart files should be named lowercase, so all the generated files from mumble.proto should have been lower case as well
You added the proxyListen TalkMode
You fixed a issue with serializeVoiceTarget where the id field in the proto messages was not set
You changed the default bool values to false instead of null

About that last point: I don't see a reason why a default value of false could be a problem so, ok, let's change this.
I created a new develop branche in this repo, could you direct future pr's (I hope you'll do some 😁 ) there?
I think it might be good practice if we implement changes in the develop and keep the master consinstent with the pub hosted version.
Once you have revised the to points mentioned above I will accept the pr, increase the package version and push to pub!
Thanks again for your contribution 😊
P.S.: Could you provide a link to the proxy talk mode? I couldnt't find anything about it through google...
I'd assume it was designed as the user perspective equivalent to linked channles?

Channel listeners were added in 0.8.0 so this PR is obsolete.


StaticBatchInstallEventListener被实例化多次时防止重复部署

Summary by CodeRabbit

Refactor

Improved code readability by renaming isBatchdDeployed to isBatchedDeployed.

Tests

Enhanced test coverage for batch installation process by adding a new instance in the test suite.

还有格式化要做下，只要本地执行下 mvn clean package -DskipTests 命令就会自动格式化的


hi, where download db.sql??

Hi, this is an old student project not maintained you should not use it.
That being said, db.sql is an ip location database found on MaxMind website.

Hi, this is an old student project not maintained you should not use it.
That being said, db.sql is an ip location database found on MaxMind website.


Fix FastDateParser#getStrategy(char, int, Calendar) javadoc

The javadoc refers to a formatField parameter, which the method doesn't
have.
Reading the description and the method's code, this documentation
clearly refers to the f parameter.
This patch fixes the javadoc and aligns it with the method's parameters.

Coverage increased (+0.04%) to 94.567% when pulling ce2a224f8e61ae9ceaa10de4e145ab95aa2f1170 on mureinik:FastDateParser-javadoc into 4bd982d1a1df87724682c17c39bf27b5cbe389be on apache:master.

Coverage increased (+0.04%) to 94.567% when pulling ce2a224f8e61ae9ceaa10de4e145ab95aa2f1170 on mureinik:FastDateParser-javadoc into 4bd982d1a1df87724682c17c39bf27b5cbe389be on apache:master.

Thanks!


Incorrect "Unreachable code" warning in a for loop

[I searched "unreachable code" in open issues and didn't find anything related.]
Godot version:
3.2.1.stable.official
OS/device including version:
Windows 10
Issue description:
The gdscript analyzer reports an "unreachable code" warning when a for loop has a return statement after a continue. (See code example below.)
Steps to reproduce:
This code produces an unreachable code warning for line 10 (the one after the for loop):
extends Control

func _ready():
	var numbers = [1, 2, 3]
	for i in numbers:
		if i > 0:
			continue
		$Label.text = "in the loop"
		return
	$Label.text = "escaped the loop"

Minimal reproduction project:
bug.zip

This no longer happens in 3.2.2.stable onwards. That is to say it seems to have been fixed already. I suggest you upgrade to the most recent stable version, 3.2.3.stable.

Ha, that's what I get for not checking for upgrades. Sorry for the churn.


I have some errors... Could you help me?

I am really interested in your work. I tried to use this tool, However, I had troubles and could not solve these.
ArtLabel_errors.pdf
Here are my results. I could replicate the results until [14]. But then some warnings occurred and null results for the trainings. Finally, I got errors with "Blas GEMM launch failed".
How can I solve it?
Thank you.

Hi Jinyong,
Thanks for your interest. It looks like a package compatibility issue. Are you following the package versions suggested in the notebook? I would recommend you create a new virtual environment and run again.
Please try again using the following codes, which I just tested and had no problem. I am runing on Windows Anaconda platform.
conda create --name gnn
activate gnn
conda install tensorflow-gpu==1.15.0 nb_conda jupyter
pip install graph_nets matplotlib scipy "tensorflow>=1.15,<2" "dm-sonnet<2" "tensorflow_probability<0.9"
run the notebook

Thank you for your help. I could solve the error, but still have problems.
As addressed in the previous issue, I also have nan results for training and test loss.

Sorry, I still cannot reproduce the nan error. Please contact zqaz999 to see how that was solved.


Technically can Kompute be modified to support data visualization?

Since kompute is based on Vulkan, am I able to modify the manager class to pick and render a tensor on screen directly by mapping it to a texture and bypass the data synchronization between GPU and CPU?

@Biobots your thinking is along the correct path - Kompute augments the computing capabilities of Vulkan, and works with a "Bring your own vulkan" approach, which means that if you have a graphical Vulkan application that is rendering graphics, you are able to leverage Kompute into that application to simplify any particular computations. Namely you are able to initialise a Manager with an existing Vulkan Application, Instance and Device. That means that any rendering would still be done by your graphical rendering logic, as opposed to Kompute. Hope that helps.

@Biobots your thinking is along the correct path - Kompute augments the computing capabilities of Vulkan, and works with a "Bring your own vulkan" approach, which means that if you have a graphical Vulkan application that is rendering graphics, you are able to leverage Kompute into that application to simplify any particular computations. Namely you are able to initialise a Manager with an existing Vulkan Application, Instance and Device. That means that any rendering would still be done by your graphical rendering logic, as opposed to Kompute. Hope that helps.

Thank you! I will try this later.


Newbie Read question

My device is a watch that has many sensors sending data over BLE to the phone. My goal is to listen for anything received from the BLEdevice and produce an MQTT message to send the value to the cloud.
Currently I see how to getServices, get their characteristics, and call read for each one.  But that only happens once when I call read.
Is it possible to achieve my goal? Or is my goal wrong? What is the process for ensuring that I get all data from the watch as it is generated by the sensors?
I'd appreciate any guidance as to how best to architect the BLE side.  I have an handle on the MQTT producing side.
Thanks,
Donnie

This depends on the watch and what the services and characteristics offer that it implements. Typically, these characteristics that hold sensor values also support notifications and you can use startNotifications to subscribe to changes of the value of a characteristics. This way you get all the values as long as you are connected without having to use read.
The other question is whether the watch has internal storage where it saves the values and offers a way to read out historical data as well as the current value. The reading out of historical data is usually implemented by writing to a control characteristic and receiving the data over notifications, but this depends on the watch and you should check its documentation on how and if that's possible.

Cool. Thanks! Light bulb went off with the StartNotifications.  Appreciate the help!
Unfortunately, the H-Band docs are in Chinese and not helpful to learn if they have a control characteristic. I do know they store data on watch and sync when you pull down in their app. I can't tell from getServices list of characteristics. I'm reaching out to the H-bands guys.  But again I appreciate you taking the time to educate me!


Update changelog.md

[This message is created by hyperf-bot]
Hi @yasarluo, this is a READ-ONLY repository, please submit your Pull Request to hyperf/hyperf repository, this Pull Request will close automatically.


Application must be closed manually before update

https://social.technet.microsoft.com/Forums/windows/en-US/4c8fad53-d7ad-4e9a-9569-454d9c793bd3/powershell-to-close-a-running-program-gracefully-without-uses-interact?forum=w7itprogeneral
Maybe something like this would work:
https://social.technet.microsoft.com/Forums/windows/en-US/4c8fad53-d7ad-4e9a-9569-454d9c793bd3/powershell-to-close-a-running-program-gracefully-without-uses-interact?forum=w7itprogeneral
Get-Process Myprogram |   Foreach-Object { $_.CloseMainWindow() | Out-Null } | stop-process –force

https://groups.google.com/d/msg/chocolatey/MlTq-fJfld8/ZCJbxQ9_AAAJ I will provide chocolateyBeforeModify.ps1


animation classes not working

'animate-spin','animate-bounce' etc.....

they will work in tailwind v2


Wrong documentation

You reffereing to the wrong dependency injection in your guide. You pasted the filename,not the name of the module.

@drlh What should be injected instead ?

var app = angular.module('myApp',['angular.circular.datetimepicker']);

Please, edit Readme.md and fix
var app = angular.module('myApp',['angular.circular.datetimepicker']);


Error: pigpio error -1 in gpioInitialise

I've setup Johnny-Five on a Raspberry Pi Zero running on Raspbian and it works very well with an Arduino connected.
I'm trying to achieve the same without the Arduino by running Johnny-Five directly on the Pi thanks to RaspIO library
This is the simple code I'm trying to execute:
var five = require("johnny-five");
var Raspi = require("raspi-io").RaspiIO;
var board = new five.Board({
  io: new Raspi()
});

board.on("ready", function() {
  var led = new five.Led("GPIO4");
  led.blink();
});

I've installed the library and got the following error after installation:
npm install raspi-io

sudo reboot

sudo npm run start

><EMAIL_ADDRESS>start
> node index.js

2023-08-21 22:56:08 initCheckPermitted:
+---------------------------------------------------------+
|Sorry, you don't have permission to run this program.    |
|Try running as root, e.g. precede the command with sudo. |
+---------------------------------------------------------+

/home/chopper/Sites/arduino-websocket/node_modules/pigpio/pigpio.js:17
    pigpio.gpioInitialise();
           ^

Error: pigpio error -1 in gpioInitialise
    at initializePigpio (/home/chopper/Sites/arduino-websocket/node_modules/pigpio/pigpio.js:17:12)
    at new Gpio (/home/chopper/Sites/arduino-websocket/node_modules/pigpio/pigpio.js:42:5)
    at new DigitalOutput (/home/chopper/Sites/arduino-websocket/node_modules/raspi-gpio/dist/index.js:70:24)
    at Object.createDigitalOutput (/home/chopper/Sites/arduino-websocket/node_modules/raspi-gpio/dist/index.js:129:16)
    at GPIOManager.setOutputMode (/home/chopper/Sites/arduino-websocket/node_modules/j5-io/dist/managers/gpio.js:43:36)
    at J5IO.pinMode (/home/chopper/Sites/arduino-websocket/node_modules/j5-io/dist/index.js:355:39)
    at new J5IO (/home/chopper/Sites/arduino-websocket/node_modules/j5-io/dist/index.js:208:22)
    at new RaspiIO (/home/chopper/Sites/arduino-websocket/node_modules/raspi-io/dist/index.js:122:12)
    at Object.<anonymous> (/home/chopper/Sites/arduino-websocket/robot/index.js:4:7)
    at Module._compile (node:internal/modules/cjs/loader:1119:14)

Node.js v18.9.1
npm ERR! Lifecycle script `start` failed with error:
npm ERR! Error: command failed
npm ERR!   in workspace<EMAIL_ADDRESS>npm ERR!   at location: /home/chopper/Sites/arduino-websocket/robot

In order to help to debug I'm putting more information
which node
/usr/local/bin/node

node -v
v18.9.1

npm -v
8.19.1

Any idea that might help?

I get the issue, I'm an idiot...
Running
sudo npm run start with "start": "node index.js"
is different from running:
npm run start with "start": "sudo node index.js"