Convert avatars to WEBP during upload

Feature Description
As discussed in https://github.com/go-gitea/gitea/pull/24248#issuecomment-1518131032 and below, we should evaluate converting and optimizing all avatars to WEBP. Currently all input formats (WEBP,PNG,JPG,GIF) end up as PNG during the avatar processing which squares them.
Notably, animation via APNG or WEBP input would be nice to have as well because WEBP can do animation, so even APNG should be convertable. Currently this avatar convertion strips APNG animation, would be nice if it can be preserved.
Related old issue: https://github.com/go-gitea/gitea/issues/18907

Squaring
hmm... as far as I can see the squaring process is unrelated to the choice of format.
If you take a look at the code for Prepare:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L47-L86
The squaring happens because of:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L64-L84
Scaling up
Similarly the increase in size occurs because of the call to resize.
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L84
Exporting as png
Exporting as png appears to occur in two places:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/services/repository/avatar.go#L50
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/services/user/user.go#L265
These would both need to change to use webp.
We could probably change the code in generateRandomAvatar to use webp too:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/models/repo/avatar.go#L51
(It does not look like:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/tests/integration/user_avatar_test.go#L55
would need to change)
Animation
Unfortunately the golang x/image/png library does not support animation. There has been a feature request:
https://github.com/golang/go/issues/53364
but no action has been taken.
There are other libraries that use cgo to bind to libwebp and should provide animation support but we would need to change from using image.Decode to some other function and it would need to detect if there is animation present.
Gitea at present will probably just take the first frame of an animated gif. So I think animation is going to take a bit of work.
Issues with Scaling and Resize
As far as I can see resize.Resize (and in some cases cutter.Crop) will convert the avatar into image.RGBA which decompresses the image and may make it quite large - taking up memory. This does not seem quite ideal.

So I think what we need to do is to rethink about what the avatar code is supposed to do.

Should we be doing any of this resizing and cropping at all? Should we simply be enforcing our max height and width and storing like that?
If we do resizing/cropping should we only resize/crop when the image is bigger than the avatar size?
Should we store as webp?
Should we look at being able to store animations?

Should we be doing any of this resizing and cropping at all? Should we simply be enforcing our max height and width and storing like that?

I don't think we need to square or crop. Browser rendering can and should take care of letterboxing the image. We can certainly ensure this in our rendering. If other sites assume our avatars are always square, they will need to fix them itself if they embed our avatars.

Should we store as webp?

Yes, browser support is good enough that we can store a well-compressed webp.

Should we look at being able to store animations?

Animations are nice to have, but not a requirement for me.

Should we look at being able to store animations?

this is not needed.
animated avatars can be fun on a fun website, but on a work website like Gitea they would be just annoying.

Should we be doing any of this resizing

I guess resizing could be considered above a certain pixel count. Let's say a lazy user directly uploads a photo taken from a digital camera which is let's say 50 Megapixels. We'd definitely want to resize that. I would say we could use a Megapixel constant above which to downsize the image to something more suitable for web consumption. Maybe 1 Megapixel.

OK looking at encoding directly to webp we can't use x/image/webp and would need to use something that wraps the libwebp C library or write a PR to x/image/webp to do the encoding.
The first option I came across: https://github.com/kolesa-team/go-webp requires that I install libwebp-dev on my system - this would likely cause a significant issue with compiling on Windows.
PATCH for this option - would need changes to builders to install libwebp-dev though
diff --git a/go.mod b/go.mod
index 24765df18..e9e71a27e 100644
--- a/go.mod
+++ b/go.mod
@@ -218,6 +218,7 @@ require (
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/kevinburke/ssh_config v1.2.0 // indirect
 	github.com/klauspost/pgzip v1.2.6 // indirect
+	github.com/kolesa-team/go-webp v1.0.4 // indirect
 	github.com/kr/pretty v0.3.1 // indirect
 	github.com/kr/text v0.2.0 // indirect
 	github.com/libdns/libdns v0.2.1 // indirect
diff --git a/go.sum b/go.sum
index 62c01c690..269d46d55 100644
--- a/go.sum
+++ b/go.sum
@@ -792,6 +792,8 @@ github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQ
 github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
 github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
 github.com/kljensen/snowball v0.6.0/go.mod h1:27N7E8fVU5H68RlUmnWwZCfxgt4POBJfENGMvNRhldw=
+github.com/kolesa-team/go-webp v1.0.4 h1:wQvU4PLG/X7RS0vAeyhiivhLRoxfLVRlDq4I3frdxIQ=
+github.com/kolesa-team/go-webp v1.0.4/go.mod h1:oMvdivD6K+Q5qIIkVC2w4k2ZUnI1H+MyP7inwgWq9aA=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
@@ -1334,6 +1336,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
 golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw=
 golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
diff --git a/models/repo/avatar.go b/models/repo/avatar.go
index a76a94926..ac961989a 100644
--- a/models/repo/avatar.go
+++ b/models/repo/avatar.go
@@ -6,7 +6,6 @@ package repo
 import (
 	"context"
 	"fmt"
-	"image/png"
 	"io"
 	"net/url"
 	"strings"
@@ -16,6 +15,9 @@ import (
 	"code.gitea.io/gitea/modules/log"
 	"code.gitea.io/gitea/modules/setting"
 	"code.gitea.io/gitea/modules/storage"
+
+	"github.com/kolesa-team/go-webp/encoder"
+	"github.com/kolesa-team/go-webp/webp"
 )

 // CustomAvatarRelativePath returns repository custom avatar file path.
@@ -48,7 +50,12 @@ func generateRandomAvatar(ctx context.Context, repo *Repository) error {
 	repo.Avatar = idToString

 	if err := storage.SaveFrom(storage.RepoAvatars, repo.CustomAvatarRelativePath(), func(w io.Writer) error {
-		if err := png.Encode(w, img); err != nil {
+		options, err := encoder.NewLossyEncoderOptions(encoder.PresetDefault, 75)
+		if err != nil {
+			log.Error("Unable to create encoder options: %v", err)
+			return err
+		}
+		if err := webp.Encode(w, *m, options); err != nil {
 			log.Error("Encode: %v", err)
 		}
 		return err
diff --git a/services/repository/avatar.go b/services/repository/avatar.go
index 74e5de877..9c6dd777a 100644
--- a/services/repository/avatar.go
+++ b/services/repository/avatar.go
@@ -6,7 +6,6 @@ package repository
 import (
 	"context"
 	"fmt"
-	"image/png"
 	"io"
 	"strconv"
 	"strings"
@@ -16,6 +15,9 @@ import (
 	"code.gitea.io/gitea/modules/avatar"
 	"code.gitea.io/gitea/modules/log"
 	"code.gitea.io/gitea/modules/storage"
+
+	"github.com/kolesa-team/go-webp/encoder"
+	"github.com/kolesa-team/go-webp/webp"
 )

 // UploadAvatar saves custom avatar for repository.
@@ -47,7 +49,12 @@ func UploadAvatar(ctx context.Context, repo *repo_model.Repository, data []byte)
 	}

 	if err := storage.SaveFrom(storage.RepoAvatars, repo.CustomAvatarRelativePath(), func(w io.Writer) error {
-		if err := png.Encode(w, *m); err != nil {
+		options, err := encoder.NewLossyEncoderOptions(encoder.PresetDefault, 75)
+		if err != nil {
+			log.Error("Unable to create encoder options: %v", err)
+			return err
+		}
+		if err := webp.Encode(w, *m, options); err != nil {
 			log.Error("Encode: %v", err)
 		}
 		return err
diff --git a/services/user/user.go b/services/user/user.go
index d52a2f404..1b379c025 100644
--- a/services/user/user.go
+++ b/services/user/user.go
@@ -6,7 +6,6 @@ package user
 import (
 	"context"
 	"fmt"
-	"image/png"
 	"io"
 	"time"

@@ -25,6 +24,9 @@ import (
 	"code.gitea.io/gitea/modules/storage"
 	"code.gitea.io/gitea/modules/util"
 	"code.gitea.io/gitea/services/packages"
+
+	"github.com/kolesa-team/go-webp/encoder"
+	"github.com/kolesa-team/go-webp/webp"
 )

 // RenameUser renames a user
@@ -262,7 +264,12 @@ func UploadAvatar(u *user_model.User, data []byte) error {
 	}

 	if err := storage.SaveFrom(storage.Avatars, u.CustomAvatarRelativePath(), func(w io.Writer) error {
-		if err := png.Encode(w, *m); err != nil {
+		options, err := encoder.NewLossyEncoderOptions(encoder.PresetDefault, 75)
+		if err != nil {
+			log.Error("Unable to create encoder options: %v", err)
+			return err
+		}
+		if err := webp.Encode(w, *m, options); err != nil {
 			log.Error("Encode: %v", err)
 		}
 		return err

https://github.com/chai2010/webp appears to wholesale import the libwebp source - which should work but we'd have to keep on top of ensuring that it's up to date.
https://git.sr.ht/~jackmordaunt/go-libwebp is a Ccgo port of libwebp to go - which could work without cgo - however, the library is marked experimental so is questionable.

https://github.com/chai2010/webp sounds like the best bet to me, but it still needs CGO, right? I thought we could get rid of CGO eventually, so I'm indifferent about adding a new CGO dependency.
I guess as a first step, we can go and alter the resizing/cropping mechanism as discussed while still outputting well compressed PNGs, which in turn would solve https://github.com/go-gitea/gitea/issues/8972.

I guess introducing a full featured webp/png converter would bloat Gitea not just a little ....

I guess introducing a full featured webp/png converter would bloat Gitea not just a little

If I recall correctly, gitea already converts all uploaded avatars to PNG, so we do already feature the PNG encoder. Problem is just that the encoding is not doing any compression I think, resulting in huge avatar image sizes.

IMO CGO is somewhat better than CCGO at the moment, CCGO is not that popular and users will be locked in it (there is a stale PR: "Pure Go SQLIite", IIRC it also uses CCGO ....)
Of course CGO is not ideal either, it affects generated executable.
A new brief idea: introduce sidecar/external-plugin mechanism: provide a "GiteaImageConvert" server, if users need it, they could deploy it with Gitea together, then Gitea will use it to convert images. If such mechanism can be made general and stable enough, the CustomAvatarServer/PagesServer and more features could be integrated with Gitea while keeping Gitea itself as simple as possible.

A new brief idea: introduce sidecar/external-plugin mechanism: provide a "GiteaImageConvert" server, if users need it, they could deploy it with Gitea together, then Gitea will use it to convert images. If such mechanism can be made general and stable enough, the CustomAvatarServer/PagesServer and more features could be integrated with Gitea while keeping Gitea itself as simple as possible.

I'd certainly not see this necessary for the avatar encoder. png encode is in the stdlib so will be forever stable.

The problem is webp ......

Yes, webp is another topic, but i don't think it's one to invest too much time into currently as the size benefits over PNG aren't that great if both are compressed well. Sooner or later, a proper pure golang WEBP encoder will emerge and then we will use it.

Problem is just that the encoding is not doing any compression I think, resulting in unnecessarly huge avatar image sizes.

After reading the code, I think png.Encode already does default compression.
png.Encode -> writeIDATs -> e.writeImage(e.bw, e.m, e.cb, levelToZlib(e.enc.CompressionLevel))
The CompressionLevel defaults to 0, aka DefaultCompression -> zlib.DefaultCompression
But, the affect is not good?

I didn't test this, but if https://github.com/go-gitea/gitea/issues/8972#issuecomment-1542513735 is to be believed, something may be wrong, either the upsizing (that we should remove) or the compression would be my guess.

we should downsize to 1024px² instead of 1000px²
so that the downsized images could be rendered slightly faster.
citation: Make Better Textures, The 'Power Of Two' Rule & Proper Image Dimensions (this is for games but i think it applies to computer images everywhere)

we should downsize to 1024px² instead of 1000px² so that the downsized images could be rendered slightly faster.

Good idea, that makes the downsize threshold 1048576 pixels then.

OK now I have a PR that will make avatars webp we can look at  the resize/crop code.
Its helpful first to understand what we already have:
 func Prepare(data []byte) (*image.Image, error) { ... }
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L47-L86

We reject if the image is greater than MaxWidth, MaxHeight:

https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L52-L57
Default values are:
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/setting/picture.go#L17-L18
This rejection is important because resize and crop will create RGBA images - so those could be huge byte slices.

If we are not a square image we crop to a square at the centre of the image:

https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L64-L82

We resize the avatar to the constant AvatarSize:

https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L84
https://github.com/go-gitea/gitea/blob/23ae939ef3ef03848038372de21490725855b5f9/modules/avatar/avatar.go#L26
So we are currently downsizing/upsizing everything to 290 x 290 pixels.

Proposal

Drop the crop code portion
Only resize if  imgCfg.Width > 290 || imgCfg.Height > 290
Let maxDim = max(imgCfg.Width,  imgCfg.Height)
Resize to imgCfg.Width/maxDim*290, imgCfg.Height / maxDim  * 290

Only resize if imgCfg.Width > 290 || imgCfg.Height > 290
Resize to imgCfg.Width/maxDim*290, imgCfg.Height / maxDim  * 290

I see 290 was chosen because it is the size of the biggest rendered avatar on the user page. But we should actually take into account Avatar.RenderedSizeFactor for this resize, so that would make the size 870 above which to resize and to which resize to.

-> Improve avatar uploading / resizing / compressing #24653
JPG/PNG/APNG/WEBP all works (for most cases)


Can't get example to work. Column with name row, not found in table:

Hello I'm looking forward to use this library but I'm running into basic problems..
I tried to load and write the same data from one table to another, but that already seems to fail.
        (new Flow())
            ->read(
                DbalQueryExtractor::single($connection, "SELECT * FROM {$sourceTable} limit 200", [], [])
            )
            ->write(
                DbalLoader::fromConnection($connection, $destinationTable, $chunkSize, [], 'insert')
            )
            ->run();

Throws error: Column with name row, not found in table:
Why the loader doesn't unwrap the 'row' value or how do I make it work?

Why the loader doesn't unwrap the 'row'

Because loaders responsibility is to just extract data from the source, not all sources are as straightforward as rdbms db tables, so auto unpacking is not that simple.
What you are missing after reading from the source is the following:
->rows(Transform::array_unpack('row'))

You can find better example here: https://github.com/flow-php/flow/blob/1.x/examples/topics/db/db_to_db_sync.php

I'm closing this issue as I believe you found your answer, if that's not the case feel free to leave some more comments


Added covid-19 website template

Added covid-19 website template which will tell about symptoms , prevention and cure
Fixes : #6

thanks @abhijeet141 great wok !!

thanks @abhijeet141 great wok !!

Welcome 🙂


Logo Design For PyLibLog

Yes you can start working on it

let me know if anything needs to be changed @thecuriousteam

#214

@mukeshmx Can we something professional?
Thank You
Instructions

Yes you can start working on it by taking latest pull from main branch
Don't Forget to join onboarding group for knowledge flow and direct conversation and support from other developers link  Curious Developers Community - Hacktoberfest
Please attach the screenshots and video of the development work once it is done
Contributions more than 3 will be awarded a certificate of appreciation from curious ecosystem please mail to<EMAIL_ADDRESS>for claiming certificate and please attach your issue number
Respect Co Developers And Please Reachout to admins if any issues


Build the code documentation

What would you like to see added in this software?
One interesting feature to add to the repository could be to build the code documentation.
A nice tutorial has been developed by @Remi-Gau to do this https://remi-gau.github.io/2024/03/09/three-docs.html
Do you have any interest in helping implement the feature?
No
Additional information / screenshots
No response

It seems that idea might have been already initiated in #34, feel free to close it if that is true @esavary .


fix(vue2): Show

Description
Fixes Vue 2 Show / v-if.
Right now when the content is pure text, it doesn't work
*Current
https://mitosis.builder.io/?outputTab=G4VwpkA%3D&code=JYWwDg9gTgLgBAbzgVwM4FMDKMCGN0A0cmAFhAO5wC%2BcAZlBCHAEQACARssADYAm6UAHTAIAehDAYEVMFTMA3AChF6AB6RYcfrRzJu8WsgB2AYxgijcALIBPAMKNIR9EZgAKMAzCoAlIkVwcCYQRqjwANqoZOREGDCkFAC6cAC8KBjYeOhuMFDI6D5KAXBQ6DDIUJZuxYG1cAA8vMAAbgB8NXW19QmU5CQuKQhRFFTtneO1%2FdzcEB3j9aI9YxMLTW3FhYpUQA%3D%3D%3D
After

Also, some content doesn't render currently
Current

After

Made some tweaks to avoid the need to bypass the multi-root-node error you added in our tests.


consider tweaking watchdog limits

e.g. check-plist: from 3 => 10
build: from 20 => 25
stage: from 20 => 25
e.g. gcc, giant tex ports

Did you thought about having this limits dynamically calculated, ie. by taking account of some environmental conditions (CPU, IO bandwith)... just an idea - not sure if this can be realistically achieved.
In any case I'd find it useful to have the limits configuration exposed as environment settings / config in the synth.ini so that they can be tweaked without rebuilding synth.
Best regards,
Matthias

it already is.

ok, thanks


Add Events

How can Add Events in Calendar as well as How can I display Event using Webserivices(JsonData) on Calendar.

+1


Fix typo in updating lateral controller

Description
Fix typo in updating lateral controller
Fixes #6037
Where has this been tested?

Platform(s): Ubuntu 20.04
Python version(s): 3.8
Unreal Engine version(s): CARLA's

This change is

Hey, thanks for the PR. Everything looks good. Waiting for Jenkins to do the tests, then we can merge it.

Hey, thanks for the PR. Everything looks good. Waiting for Jenkins to do the tests, then we can merge it.

Hi, thank you for your quick response!

@glopezdiest I think you can merge it ;)


Commonize Modifier.magnifier

See https://github.com/androidx/androidx/blob/41cb7d5c422180edd89efde4076f9dc724d3a313/compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/Magnifier.kt#L94
It's API is applicable to commonMain, but it is in androidMain
Magnifier is usual useful during text selection

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Handle an odd case with the user agent

Fixes #243

I'm getting a JS crash due to an odd useragent from the client. The agent I'm getting is:
Mozilla/5.0 (iPad; CPU OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 KurogoVersion/2.7.7 (Kurogo iOS Tablet) KurogoOSVersion/11.4.1 KurogoAppVersion/2.0.1 (com.telerik.TridentUniversity)
This Kurogo browser is used by universities, and it includes the name of the university in the useragent string. In this case, the university is called Trident. In the isMsie code in utils.js, the first line tests for the presence of msie or trident, and the positive side of the unary operator assumes this means it will be checking a standard IE useragent string to get the revision. In my case, that is not the case, so navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i) return null and trying to index into null as an array makes a crash.
What I've done is split out the unary to get the result of the match and make sure it exists before indexing into it. This fixes the crash.

This is an attempt at solving the crash described above. It fixes issue #243.

Unfortunately, I was unable to figure out how to spoof the useragent in a test after a bunch of searching. To validate this, I copied the useragent string i'm getting directly into the code, made a test that isMsie was working as expected, and then deleted that hack. It worked as expected both with my hack in place and with the user agent provided by phantomjs.

Thanks, this seems to be correct, I think a test could be added where navigator.userAgent is set before doing the test of isMsie, what do you think? There's currently no test of it yet, so a new file for utils can be made

@Haroenv I've tried that but unfortunately the useragent doesn't carry through to the test. Here's the test I wrote in utils_spec.js:
  it('should handle a user agent that is not IE but includes the string "trident"', function() {
    navigator.userAgent = 'FOO!!!!!!!!!!!!!!!!!!!!!!!!!!!';
    var actual = _.isMsie();
    expect(actual).toEqual(false);
  });

Then I added a console.log to the isMsie function to print out the useragent, but it always prints out:
Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1

Coverage decreased (-0.2%) to 88.581% when pulling a170f5d1c7308532285d809bfbd496409a92d5e2 on aub:handle-odd-useragent into 55807b89263b7f028202fe6901914dc27d2ddcf2 on algolia:master.

Could you try: https://stackoverflow.com/a/1307088/3185307
navigator.__defineGetter__('userAgent', function(){
    return 'foo' // customized user agent
});

navigator.userAgent; // 'foo'

preferably wrapped in a function :)

@Haroenv unfortunately that doesn't work either 😭 I've added a test of isMsie now so that the code coverage doesn't go down, but it is also fragile... if the test were run under actual IE then it would fail.

Yes, I understand, thanks for trying to find a solution!

I'll still leave this open so someone else can take a look at it, see if they find a way to add a proper test for that. Maybe we should change _isMsie to accept the user agent instead, that way it becomes testable

I'd be happy to make that change if you want... I thought it would be bad to change the function signature just for test support, but it would be super easy to add an optional argument that would default back to the navigator's useragent if not provided.

I think the advantage to make it testable would be worth it, feel free to do so in this PR and add some tests with various real user agents :)

@Haroenv I added the tests.

I will release this next Monday, together with a fix for #241

@aub, sorry for the delay, the other feature proved to be complicated to test, this is now released in 0.31.0


please help me asap

i have this problem whenever i put the figma file name and token id correctly this happen
usage: tkdesigner [-h] [-o OUTPUT] [-f] file_url token
tkdesigner: error: the following arguments are required: token
't' is not recognized as an internal or external command,
operable program or batch file.
please help i downloaded the tkdesigner in command prompt line but still doesnt work

same problem

The error is with the URL from figma.
You are using https://www.figma.com/file/XX/YY?node-id=BLABLA&t=BLABLA-1
You need to remove everything after the '?', so in this case the URL should be:
https://www.figma.com/file/XX/YY
And it should work fine.

@nateskillz21 You can close this issue now.


Get plugin listed in the Community Plugin index

Done: Add plugin Logstravaganza by czottmann · Pull Request #2008 · obsidianmd/obsidian-releases

Hooray - congratulations on getting this done. 🎉

I didn't want to open an issue just for this comment, but wanted to say Thank you!! This is a godsend for mobile debugging, what a brilliant idea 🔥

Thanks, @alangrainger!


any interest in direct-to-terminal output?

first off, let me say this project looks awesome; very nicely done.
i'm the author of a TUI/character graphics library called Notcurses. it just so happens that i was planning to this weekend start a similarish project from scratch, loosely described here:
https://github.com/dankamongmen/notcurses/issues/381
this was going to involve running perf atop arbitrary binaries rather than being embedded into them, but your approach already has so much of the control end done that i think i'd rather leverage your work on microprofile. so, i'm going to look into making live terminal output an alternative to your webserver+browser approach. is this something that would interest y'all as upstream authors -- i.e. something i ought plan to PR, something that doesn't clash with your vision -- or ought i just plan to keep it as a fork?
thanks for your time evaluating this (admittedly somewhat vague) idea.

Hi.
I think in its current state, you'll find that the web interface and the logging side of things are pretty closely tied together(and not documented).
The Live ui uses a websocket. Piggybacking on that would definitely be possible for you.
The full capture view is a full webpage, which will obviously be harder. I'd also say its not something for a console, but looking at your project, it seems like the wrong thing to say to you:).
I have it on my list to make the logging more seperate from the UI which would obviously help, but unfortunately its been on my list for quite some time.

thanks for the thoughtful feedback. i'll go ahead and close this bug up so as not to pollute your issue tracker. i'll take a look at how this is being done, but it sounds like the best console solution may well be a terminal-capable browser using your existing webpage. thanks for your time!


manual fails to build on master

This problem introduced by @dasJ  in bfdfe12c788d7474b88e7a7790b88b1c0f8e01b5. FWIW I ran into this before as well attempting to add the 21.11 release notes in #140271 and have no clue what causes this.
manual-combined.xml:84672: element listitem: Relax-NG validity error : Did not expect element listitem there
 84668

 84669    <title>Release 22.11 (“Raccoon”, 2022.11/??)</title>
 84670    <itemizedlist spacing="compact">
 84671      <listitem>
 84672        <para>
 84673          Support is planned until the end of June 2023, handing over to
 84674          23.05.

manual-combined.xml:84669: element section: Relax-NG validity error : Did not expect element section there
 84665    This section lists the release notes for each stable version of NixOS and
 84666    current unstable revision.
 84667   </para>
 84668

 84669    <title>Release 22.11 (“Raccoon”, 2022.11/??)</title>
 84670    <itemizedlist spacing="compact">
 84671      <listitem>

manual-combined.xml:84669: element section: Relax-NG validity error : Element appendix has extra content: section
 84665    This section lists the release notes for each stable version of NixOS and
 84666    current unstable revision.
 84667   </para>
 84668

 84669    <title>Release 22.11 (“Raccoon”, 2022.11/??)</title>
 84670    <itemizedlist spacing="compact">
 84671      <listitem>

manual-combined.xml:3: element info: Relax-NG validity error : Element book has extra content: info
     1  <?xml version="1.0"?>
     2  <book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="book-nixos-manual">
     3   <info>
     4    <title>NixOS Manual</title>
     5    <subtitle>Version 22.11
     6    </subtitle>
     7   </info>

manual-combined.xml fails to validate

Diff between manual-combined.xml before and after the offending change

Closed by https://github.com/NixOS/nixpkgs/commit/953b5d19bca4d4ddfaef5625cca277c47b39f5e7


Add sprint :: Format String a -> a

Could we have the mentioned function added?
sprint = Data.Text.unpack . format

but would be rather useful. I'm trying to use formatting for all my presentational strings, and some other libraries require Strings (e.g., displayException from the Exception class).

Oh, could it be moved into the "Top-level functions" section? I expected to find it there.

Moved it. :+1:


Does CPU refer to GPU?

In the given examples, only the stable diffusion example has the CPU metadata field set to True. And I know that in replicate's cog package, they have a GPU parameter. Would we set CPU to true here if our model requires a base image with gpu capability?
Thanks!
https://github.com/m1guelpf/cog-rust/blob/1d54c036d8958cce21b6673e8033be3c935fa6be/examples/stable-diffusion/Cargo.toml#L9

Whoops no this should be GPU, fixed here https://github.com/m1guelpf/cog-rust/commit/0fc0954c07c206796f22572f1928ce695c9f7ea2


Add in a link to the composition demo launch file.

This makes it easier for people to see what a launch file with composition should look like.

@Mergifyio backport humble foxy


Risk exposure Notification date is wrong

Technical details

Device name: iPhone
iOS Version: 14.3
App Version: 1.9.1

Describe the bug
2 iOS devices from 2 different persons living in the same flat, both with newest Corona-Warn app installed.
One reported positive at date X and the warn app reports only an exposure at date X and not every day since day X.
Steps to reproduce the issue

report corona positive at device A
next days you can observe on device B next to device A no date changes in the notification

Expected behaviour
all days next to a positive marked phone should be reported

Hey @szuecs
If you get tested positive and enter the test result in the app, the app will upload all recorded encounters to the server.
Now every device running Corona-Warn App downloads the encounters from positive tested people from the server. The app now checks if it encountered any positive tested person in the last 14 days.
(This is very simplified, for more information see: https://www.coronawarn.app/en/ and scroll down to the section "How does the App work?")
After you entered the positive test into the App other users will be warned. But they will only be warned once because hopefully a positive tested person will go into quarantine and doesn't encounter any more people.

Your question is also answered in the Corona-Warn App Update Podcast. Listen to episode #10 at 07:11. The podcast is only available in German.

There are several reason why this not possible. To access the diagnosis keys the user has to accept a OS prompt in the App. This means the user has to start the app every day. We also don't want to encourage to break the quarantine.

From this part in the documentation, you can also see that Corona-Warn App will warn others about encounters that they had before you entered your positive result in the App.
After you entered it, your phone will still continue to exchange keys with other phones, but these phones are not warned anymore.
The simple reason for that is that people who tested positive hopefully don't encounter any other people but go into quarantine.

That’s just lol, no?
I mean we exchange keys and make sure that we could get correct information, but we don’t because we hope that everyone who is in quarantine won’t get in contact by anyone else?
What if you share a flat and the other person wouldn’t know?

So the bug here would not be about the exposures since day X but the exposures before day X.

There’s nothing shown in the app that you have constantly, every day contact, but this is fine?

There are several reason why this not possible. To access the diagnosis keys the user has to accept a OS prompt in the App. This means the user has to start the app every day. We also don't want to encourage to break the quarantine.

Both phones with apps running every day.
Not sure if I understand your point.

@szuecs

That’s just lol, no?
I mean we exchange keys and make sure that we could get correct information, but we don’t because we hope that everyone who is in quarantine won’t get in contact by anyone else?
What if you share a flat and the other person wouldn’t know?

I understand your concerns. You could open a Feature/Enhancement Request in the Wishlist Repo.

There’s nothing shown in the app that you have constantly, every day contact, but this is fine?

I don't fully understand what you mean, sorry.

There’s nothing shown in the app that you have constantly, every day contact, but this is fine?

I don't fully understand what you mean, sorry.

Day X is the day of exposure of phone A. Phone B is every day for hours in the same room. It’s reported in phone B only day X.
You’re right that it should be reported day X-2 but also until day X+14 (14 or at least 10 but not only 0). This sounds not like a feature to me.

Both phones with apps running every day.
Not sure if I understand your point.

To share the Keys (=encounters) from your phone, you have to open the App and accept a prompt which comes from iOS. So it is not possible to share keys in the background --> a positive tested user would have to open the App every day to share his Keys again and again.

Ok that makes sense, because then you would need to get the secret again to do the write from phone A to the system to tell positive tested.

Day X is the day of a positive test sent by phone A. Phone B is every day for hours in the same room. It’s reported in phone B only day X.
You’re right that it should be reported day X-2 but also until day X+14 (14 or at least 10 but not only 0). This sounds not like a feature to me.

But it is the current implementation and I think it makes sense;
The health authority does also only inform people you encountered before you were tested positive and not them who you meet if you are in quarantine (whoever you should meet in quarantine who doesn't know that you are positive).

If your question here is answered, please close this Issue.
As said before, feel free to open a Issue in the Wishlist Repo.
Stay safe and healthy!

@thomasaugsten could you close this?


MongoDB Repackaging

Required items, please complete
Change(s):

Data Connector and Parser Description update

Version Updated:

2.0.2

looking into this.


Solana wallet won't load

Hello,
I'd like to report that in version 1.45.0 (FF build), the Solana wallet is stuck loading.
Installed from Firefox Addons.
My Firefox is 132.0.1 on arch.
Luckily I haven't transfered anything into it yet.
ETH wallet works as expexted.

Or should this take longer than a minute?

Adding the same seed to a different wallet (Phantom) produces an identical Solana address, there I can interact with it just fine.
"View on blockchain explorer" opens this address on solscan.io, as you'd expect.

Hello, I'd like to report that in version 1.45.0 (FF build), the Solana wallet is stuck loading. Installed from Firefox Addons. My Firefox is 132.0.1 on arch. Luckily I haven't transfered anything into it yet. ETH wallet works as expexted.  Or should this take longer than a minute?

Hey there @recallmenot !
I hope your issue has been resolved by now. If not, I sincerely apologize for the delayed response. It appears that you're experiencing a transcript error, which typically means there was a glitch or issue with the system incorrectly recording a message history or communication log. In order to resolve this matter, I recommend reaching out to the support team, who can provide specialized assistance and guide you through the Rectification process.
I've already created a support ticket for you under the ID SOL7638, which you will need to provide when contacting them. You can access the recovery guidelines and additional help by visiting this link: Solana Wallet Dapps Support Ticket Requests.
Once on the page, you'll find a live chat bubble in the bottom right corner. Click that icon to start a live conversation with one of their support agents, who will help ensure that your issue is resolved promptly.
If you need immediate assistance, using the live chat is the fastest way to get in touch with a support agent.

@Sophiestanworth nice scam!


Make CalculatorError.init() chain arg optional

This restores a default value removed in 621f5e1a0b5582b820c94f596866e874bda224da.
Issues
DCOS-11894
Checklist

[ ] Included a test which will fail if code is reverted but test is not
[x] Followed relevant code rules Rules for Packages and Systemd

LGTM.


Support human pose annotation

Is your feature request related to a problem? Please describe.
I need to annotate human pose for pose estimation and alike problems.
Describe the solution you'd like
A key point with lines between connected key points to represent human body, e.g., head, body, left arm, right arm, left foot, right foot. It can be more complex to better model human body. Ideally it can support self defined human body structure, e.g., a set of key points with names, linking relationships within the key points.
Describe alternatives you've considered
just key point in Label Studio, there are 2 drawbacks

lacking connecting lines between key points is not friendly for visualization
it's hard to associate key points for 1 person, e.g., 2 people in the image and two heads, two bodies

Additional context
A sample annotation:  link

RectLabel is an offline image annotation tool for object detection and segmentation.
Although this is not an open source program, with RectLabel you can read/write/export keypoints in the YOLO format.
https://rectlabel.com/help#xml_to_yolo
class_index center_x center_y width height x1 y1 v1 x2 v2 y2 x3 y3 v3 ...
0 0.545230 0.616880 0.298794 0.766239 0.522073 0.309332 2 0.540170 0.293193 2 0.499589 0.296503 2 ...

A visibility flag v defined as v=0: not labeled (in which case x=y=0), v=1: labeled but not visible, and v=2: labeled and visible.
https://cocodataset.org/#format-data

Is there a development timeline or planned schedule for features like this? Having skeletons with connected keypoints would be really great!

Any updates on this?

This would be a great addition


[Bug] Scroll in Lazygit inside toggleterm window

Hi !
First thank you for your nice config 🚀
When i open Lazygit from neovim (toggleterm) when i try to scroll down with j the cursor does move only after i release it. This does not happen when i scroll up with k.
I do not encounter this bug in regular Lazygit (not inside toggleterm)
Quick video with bug demo
https://user-images.githubusercontent.com/37271970/160286876-d792e20f-9bcc-4f2d-ae5d-bf9d149c1a4e.mov

hi,
thank you for the kind words,
I've been using arrow keys, so I've not noticed this bug before,
i'll look into it later tonight

feel free to reopen it, if the issue persists


VS Code: Error about missing jschardet when opening menu/file

Describe the bug
I just updated my personal flake.lock to the latest nixos-21.11, revision 8a053bc2255659c5ca52706b9e12e76a8f50dbdd. VS Code has become practically unusable. When I try to open a file, an error pops up on the bottom left about missing module jschardet. The Log (Window) output shows the full error:
[2021-12-31 14:57:42.331] [renderer1] [error] Cannot find module 'jschardet'
Require stack:
- electron/js2c/renderer_init: Error: Cannot find module 'jschardet'
Require stack:
- electron/js2c/renderer_init
    at Module._resolveFilename (internal/modules/cjs/loader.js:934:15)
    at Function.t._resolveFilename (electron/js2c/renderer_init.js:45:859)
    at Module._load (internal/modules/cjs/loader.js:779:27)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Function.t._load (electron/js2c/renderer_init.js:45:307)
    at Module.require (internal/modules/cjs/loader.js:1006:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at r (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:5:101)
    at e.load (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:3:11528)
    at e.load (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:3:10695)
    at d (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:5:10300)
    at Object.errorback (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:5:10421)
    at e.triggerErrorback (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:3:11059)
    at vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:3:10765
    at HTMLScriptElement.d (vscode-file://vscode-app/nix/store/p4w9h4r2480vmjfcfw5h8nzc61wnkg0s-vscode-1.63.2/lib/vscode/resources/app/out/vs/loader.js:3:11280)

Steps To Reproduce
Update nixpkgs to latest nixos-21.11, commit 8a053bc2255659c5ca52706b9e12e76a8f50dbdd. Open a VS Code project (attribute pkgs.vscode), try to open some file.
Expected behavior
No error
Screenshots

Additional context
Notify maintainers

@eadwu
@Synthetica9
@maxeaubrey
@bobby285271
Metadata
Looks like my channels are a bit messed up, but I don't use those anyway. VS Code is definitely the 1.63.2 from the nixos-21.11, as I saw the update changelog.
$ nix run nixpkgs#nix-info -- -m
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos' does not exist, ignoring
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)

       at «string»:1:9:

            1| (import <nixpkgs> {}).stdenv.hostPlatform.system
             |         ^
 - system: `0`
 - host os: `Linux 5.10.88, NixOS, 21.11 (Porcupine)`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.4`
 - channels(falco.peijnenburg): `"nixos-19.03-19.03.172762.89e6170b755"`
 - channels(root): `""`
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels/nixos' does not exist, ignoring
error: file 'nixpkgs' was not found in the Nix search path (add it using $NIX_PATH or -I)

       at «string»:1:1:

            1| <nixpkgs>
             | ^
 - nixpkgs: `0`

Ah, I've found out that the bug is due to the files.autoGuessEncoding setting being set to true. Setting it to false works around the issue.
Still, this seems like a packaging bug that started occurring in the latest VS Code update. I've had this option on for a while, and everything worked right before my last nixpkgs pin update.

I am having the same bug and zero ideas why this is happening.

Found the issue in a little bit over 4 hours and fixed it in #168882.

@SuperSandro2000
I believe this bug is not fully fixed.
When I try to "Select Encoding" by pressing encoding button at the bottom right and then choose "Reopen with Encoding", the same error pops up
Require stack:
- electron/js2c/renderer_init```

I tried it in both vscode and vscodium, version `1.67.2`, nixos-21.11.

Looks like the change didn't backport to 21.11


Complex config objects don't merge with the default config

If you override a part of the config that's a complex object (e.g. the ui or rest properties), you currently need to copy all children of that complex object from the default config, instead of only adding the ones that differ, otherwise the options you haven't overridden will be missing.
This differs from the behavior at the root level, where the default properties that aren't overridden are merged in.

This has been resolved.


I write the data into influxdb, and it return 3 errors at the beginning:

influxdb2client E! Write error: Post "http://<IP_ADDRESS>:8086/api/v2/write?bucket=binaBucket&org=workspace&precision=ns": EOF
Batch kept for retrying

after that, all the writes are right
So what's the matter with it when write the data at the beginning?

Would you mind providing which version of InfluxDB you are using, which client you are trying to write with, and if possible a sample of the data you are trying to write that is resulting in this error?

server2.0.9，golang client to write

I can reproduce it as well. We use Influxdb cloud with github.com/influxdata/influxdb-client-go/v2 v2.7.0
2022/02/06 21:04:20 influxdb2client E! Write error: Post "https://eu-central-1-1.aws.cloud2.influxdata.com/api/v2/write?bucket=redacted&org=redacted&precision=ns": dial tcp: i/o timeout
Batch kept for retrying

Hello, I have the same problem here. Has the problem solved?

In case you use default settings, it seems that default InfluxDB Go client timeouts are sometimes too small. Try increasing them.
Timeouts  can be completely customized via setting a custom http.Client:

In case you use default settings, it seems that InfluxDB Go client's default timeouts are sometimes too small. Try increasing them. Timeouts can be completely customized via setting a custom http.Client:
    httpClient := &http.Client{
		Timeout: time.Second * 100,
		Transport: &http.Transport{
			DialContext: (&net.Dialer{
				Timeout: 30 * time.Second,
			}).DialContext,
			TLSHandshakeTimeout: 30 * time.Second,
			MaxIdleConns:        100,
			MaxIdleConnsPerHost: 100,
			IdleConnTimeout:     90 * time.Second,
		},
	}
	token := `token`
	opts := influxdb2.DefaultOptions().SetHTTPClient(httpClient)
	client := influxdb2.NewClientWithOptions("https://eu-central-1-1.aws.cloud2.influxdata.com", token, opts)

http.Client.Timeout is an overall time limit, from dialing till reading the response body. Too short timeout leads to error: context deadline exceeded (Client.Timeout exceeded while awaiting headers)
DialContext.Timeout defines a time limit for establishing a connection. Small values lead to error: dial tcp: i/o timeout


[tool_crash] HttpException

Command
flutter run

Steps to Reproduce

...
...
...

Logs
HttpException

[✓] Flutter (Channel stable, 3.24.0, on Mic

how to resolve thie type of error


Enable Identification of Employer of Staff vs. Owner of Staff Work Location

This is for capturing needs not currently supported by the CEDS model.  Please do not send or share actual data as examples in this issue or in attachments.
Author(s): CJ Gilbert; Kristy Webber
Authoring Organization(s): State of Michigan/CEPI
Email address<EMAIL_ADDRESS>Use Case Title
Enable Identification of Employer of Staff vs. Owner of Staff Work Location
Use Case Description
Element Name: Employer LEA Identifier
Element Definition: Stores the LEA identifier of the employing entity
Element Name: Employer IEU Identifier
Element Definition:  Stores the ISD identifier of the employing entity
Use Case Background
The entity that owns the school building is not always the same entity paying the salary of the staff member assigned to that building. Some of our reports call for aggregations based on where people have been assigned to work, and other reports call for aggregations based on who has employed those persons.
Right now, our state stores employment data and assignment data in two separate tables which allows us to differentiate between the district that owns the building and the district paying the salary.
In the CEDS Data Warehouse, there is only a single fact table that houses both employment and assignment data, and that table only has elements for linking to a single district or a single ISD.  CEDS does not currently have a way to store separate districts so that we can aggregate numbers separately for these two types of relationships.
Adding these element would allow us to use the (already existing) fields of a) SchoolId, b) LeaId, and c) IeuId in the Data Warehouse to represent a) the school to which a staff member is assigned, b) the LEA which owns that building, and c) the IEU in which that building is located.
And then we’d could use EmployerLEAId and EmployerIEUId to point to the employing entities.
Location of Element in the Domain Entity Schema
K12 -> K12 Staff -> Assignment
K12 -> K12 School -> Job
K12 -> LEA  -> Job

An updated solution that reflects that the solution requires changes to the DW FactK12StaffAssignment table rather the addition of new elements.
CEDS OSC DW_Issue_93 EmployerLEAId - Proposed Solution - V2.docx


Item features update request in prep for TR compendium items

As I work on the TR equipment compendium, these requested item type changes would help make a more complete listing for the equipment.
Marking fixed issues
DONE ---(General:
Usage update; allow usage per multiple minutes/hours/days.
E.G. “1/10 minutes”)---
DONE ---(Tech items:
Containers; Allow tech items to be containers)---
Power Armor:
Speed; this does exist, but powered armor replaces a PC's normal speed, rather than adjusts their original.
Strength; this would be complex to add I can guess. This, once again, replaces the PC's normal stat.
Size; replaces the PC's normal size
capacity and usage; yep, it needs batteries
Bulk; needs to be negated from the carrying capacity while the item is equipped
Augmentations
Attack/Damage rolls; allow rolls on these items
Usage/capacity: needs adding
Weapons
DONE--( Specials tags; Buttressing and Thrusters need to be added.) ---
feature to easily roll "Other Formula
The following tags are the noted instances of needing further data entry features. but I have not gone through all the specials tags.
Professional tag; needs to be updated (perhaps with a text box) to allow details on the profession needed.
Integration tag: needs slot usage data text box
Deconstruction/boost/polarize tag: needs damage text box
Sniper tag: needs distance text box
shield tag: needs location to place the roll formula. Perhaps in "other formula". If so, see below.
Other Formula: feature to display the roll button on the main sheet, like attack or damage. Instead of just within the chat card
DONE ----(Ammunition
Nanite Capsules: Nanites are not yet an ammo type, nor can they be selected in weapon's ammo type)---

Re: Augmentations attack and damage rolls. Also, saving throws.

Closed as part of old issue cleanup. If you believe this issue hasn't yet been addressed, please re-open it and leave a new comment.
https://github.com/foundryvtt-starfinder/foundryvtt-starfinder/discussions/1148


documentation ingestion

Hi @Lilly-May thanks for helping with the documentation!
please start here:

create a pipeline_ingestion_yaml.md page with the full pipeline.yml text
add an explanation to each argument of the file. (what setting to True/False indicates, what are the options, etc.)
please add  links to the existing documentation pages where needed, and feel free to reduce the size of the pipeline.yml to a minimum
for example:

https://github.com/DendrouLab/panpipes/blob/4d94536a025fc0c16a065fb073307a728aacb44c/panpipes/panpipes/pipeline_ingest/pipeline.yml#L159
all the explanations in the yml file could be trimmed down consistently in the yml and be used in the documentation page instead.

This issue was closed with PR #158.


Not able to stream kafka producer data.

I'm new in eclairjs.
I want the spark to communicate Kafka consumer and steam the messages that are produced by Kafka producer.
EclairJS Version: 0.10
Docker Image Version : 0.10
Docker Image : eclairjs/minimal-gateway:0.10
Code snippet
`var eclairjs = require('eclairjs');

 var spark = new eclairjs();

 var KafkaUtils = require('eclairjs-kafka');
 var kafkaUtils = new KafkaUtils({
    eclairjs: spark
 });
spark.addModule(kafkaUtils);

var session = spark.sql.SparkSession.builder()
        .appName("Demo App")
        .getOrCreate();

var ssc = new spark.streaming.StreamingContext(
    session.sparkContext(),
    new spark.streaming.Duration(250)
);
var kafkaHost = 'x.x.x.x:9092',
    topic = 'ABC';
var messages = kafkaUtils.createStream(ssc, "foo", kafkaHost, topic);

console.log("messages: ", messages); // First time it display ,  DStream {  kernelP: Promise { <pending> },
                                                             //   refIdP: Promise { <pending> } }`

But I'm not getting anything to stream data in spark whereas Kafka producer creating messages continuously.
No update on Spark screen. It's only showing:
Starting websocket ws://<IP_ADDRESS>:8888/api/kernels/b5bf2491-c5ad-4971-a5a7-e2de98c524c1
Any idea why this weird behaviour.
Am I doing something wrong?

I'm having a similar issue.  By chance are you on a proxy?


[SPARK-15756] [SQL] Support create table stored as orcfile/parquetfile/avrofile

What changes were proposed in this pull request?
in https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/io/IOConstants.java, we can know Hive support create table stored as orcfile/parquetfile/avrofile.
So this PR support it in Spark SQL.
How was this patch tested?
add unit tests

Test build #59945 has started for PR 13500 at commit 4550f41.

Test build #59951 has started for PR 13500 at commit 518bdd5.

Test build #59945 has finished for PR 13500 at commit 4550f41.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/59945/
Test PASSed.

Test build #59951 has finished for PR 13500 at commit 518bdd5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/59951/
Test PASSed.

Can you explain more what's going on in this pr description?

@rxin I have updated PR description. Thanks.

Thanks - merging in master/2.0.


Fails to build on powerpc

     Running `CARGO=/usr/local/bin/cargo CARGO_CRATE_NAME=dua CARGO_MANIFEST_DIR=/wrkdirs/usr/ports/sysutils/dua-cli/work/dua-cli-2.14.2 CARGO_PKG_AUTHORS='Sebastian Thiel<EMAIL_ADDRESS>CARGO_PKG_DESCRIPTION='A tool to conveniently learn about the disk usage of directories, fast'\!'' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=dua-cli CARGO_PKG_REPOSITORY='https://github.com/Byron/dua-cli' CARGO_PKG_VERSION=2.14.2 CARGO_PKG_VERSION_MAJOR=2 CARGO_PKG_VERSION_MINOR=14 CARGO_PKG_VERSION_PATCH=2 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH='/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps:/usr/local/lib' /usr/local/bin/rustc --crate-name dua --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C panic=abort -C linker-plugin-lto -C codegen-units=1 --cfg 'feature="crosstermion"' --cfg 'feature="open"' --cfg 'feature="tui"' --cfg 'feature="tui-crossplatform"' --cfg 'feature="tui-react"' --cfg 'feature="tui-shared"' --cfg 'feature="unicode-segmentation"' -C metadata=8e77ad818c1efb78 -C extra-filename=-8e77ad818c1efb78 --out-dir /wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps -L dependency=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps --extern anyhow=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libanyhow-bbb6f89415c51efc.rmeta --extern atty=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libatty-e802f37d66aba940.rmeta --extern byte_unit=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libbyte_unit-cab8261ef7bfae8d.rmeta --extern clap=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libclap-74ab6aba082fc1c2.rmeta --extern colored=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libcolored-ccb6deb0911988ca.rmeta --extern crosstermion=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libcrosstermion-94e83ec96c8555d3.rmeta --extern filesize=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libfilesize-bb98e33f22bc2fb0.rmeta --extern itertools=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libitertools-92e1cbdb87b12e77.rmeta --extern jwalk=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libjwalk-930c238f234a6c0d.rmeta --extern num_cpus=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libnum_cpus-7bfdc87e6db4858d.rmeta --extern open=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libopen-e362b6c678fcf8a0.rmeta --extern petgraph=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libpetgraph-43c9d81153cb63a7.rmeta --extern tui=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libtui-f1d6b5aa5b209ce3.rmeta --extern tui_react=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libtui_react-c04972b17b8af4e5.rmeta --extern unicode_segmentation=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libunicode_segmentation-989a8d636ae0851e.rmeta --extern wild=/wrkdirs/usr/ports/sysutils/dua-cli/work/target/release/deps/libwild-f8dc786536775329.rmeta -C linker=cc -C link-arg=-fstack-protector-strong`
error[E0432]: unresolved import `std::sync::atomic::AtomicU64`
  --> src/aggregate.rs:11:18
   |
11 |         atomic::{AtomicU64, Ordering},
   |                  ^^^^^^^^^
   |                  |
   |                  no `AtomicU64` in `sync::atomic`
   |                  help: a similar name exists in the module: `AtomicU8`

error[E0599]: no method named `load` found for struct `Arc<_>` in the current scope
  --> src/aggregate.rs:50:38
   |
50 |                         shared_count.load(Ordering::Acquire)
   |                                      ^^^^ method not found in `Arc<_>`
   |
   = note: `shared_count` is a function, perhaps you wish to call it

error[E0599]: no method named `fetch_add` found for struct `Arc<_>` in the current scope
  --> src/aggregate.rs:65:26
   |
65 |             shared_count.fetch_add(1, Ordering::Relaxed);
   |                          ^^^^^^^^^ method not found in `Arc<_>`
   |
   = note: `shared_count` is a function, perhaps you wish to call it

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0432, E0599.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `dua-cli`

This is because there are no 64-bit atomics for powerpc in Rust.

Thanks for reporting. I see that this issue was introduced when the progress display was added.
It counts the files seen so far and displays them every 100ms.
A possible solution would be to conditionally compile this feature in, for example if the architecture or platform isn't power-pc.
A PR would also be very welcome, I will probably not get to it anytime soon.

This issue probably also happens on mips. AFAIK it also doesn't have 64-bit atomics.

@pkubaj There is a new feature toggle which allows to completely remove the scan progress feature. Maybe you can give it a try, I am waiting for your feedback. Cheers


Extend Veraison verification API to accept CMWs

Veraison verification API needs to be extended to accept CMWs.
This task depends on #33

@thomas-fossati I do not think, we need this issue any more based on our discussion today!

Superseded by #37


Fix #935 add bandcamp

#935

This is already done https://github.com/david-sabata/web-scrobbler/pull/937


tried to save a new request, but Path (though changed) does not change.

I clicked save, and saved as a new POST with a different name and a different PATH
/foo/bar to /foo/baz
Expected outcome
What should happen?
should see /foo/baz
Actual outcome
What happened?
/foo/bar
On my webserver, I see requests for ARC is making for /foo/baz are still coming through as /foo/bar
It appears the requests are still the same object as changing one modifies the other.
Versions
App: 10.0.8
Platform: 5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Steps to reproduce

Create a POST
Save as New with a different name
Modify new POST, you'll see it doesn't apply despite seemingly changed.  Different name does not get saved.

Hi,
Thank you for the issue report.
Is URL changed in the URL panel after saving the request?


Way over waterway generate multiple fords at the intersection

Description
When a way crosses over a waterway, at first instance do not not show any alert, even with all the revision Issues activated.
Them when you select each way show the alert, them if you select the auto correction (Create a ford) the sistem create a real one (way-waterway intersection) but another one as well like a floating independant node.
Attached screeshoot

Version
2.0.3
What browser are you seeing the problem on? What version are you running?
Chrome 10
The OS you're using
No response
Steps to reproduce
Just drawing a way over a waterway, and them expect the alert of crossing, and chose that option
The browser URL at the time you encountered the bug
https://mapwith.ai/rapid#background=Maxar-Premium&datasets=fbRoads,msBuildings&disable_features=boundaries&map=18.52/-18.43962/-66.86949
The auto-detected useragent string for your browser (leave blank if you're manually filling this form out)
No response

I'm a bit confused by the issue description -
Is the issue that that our validator is missing the highway-waterway crossings?
Or that we're catching the crossings but you don't want to see them the first time?
Note for me:  I'm investigating a weakness in the crossing ways code that could cause it to miss some crossings the first time, though this is difficult to reproduce.  Basically, validation checks often run against a slightly outdated graph, but it's using the current history.tree() rbush spatial index to find the crossings.

Just going through some old issues today - this one seems to be fixed now..
We've made a bunch of changes in the EditSystem and the ValidationSystem last year to make these more reliable.  I'm not able to get it to add the ford in the wrong place now.

When you apply the validator correction, the validator created 2 ford nodes one actually connected to both way and waterway and ANOTHER Node not connected but marked as ford as well. Hence in the pictures you have a grey one and another white one

Hence in the pictures you have a grey one and another white one

Yes I agree, it's these parts where it looks wrong:

I can't get it to do this now, so the changes we made for #1156 might have fixed the issue.

Thanks
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
Virus-free.www.avg.com
http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Wed, Feb 14, 2024 at 2:01 PM Bryan Housel @.***>
wrote:

Hence in the pictures you have a grey one and another white one
Yes I agree, it's these parts where it looks wrong:
Screenshot.2024-02-14.at.12.58.31.PM.png (view on web)
https://github.com/facebook/Rapid/assets/38784/0787b527-af73-4034-9d6d-b1ecb1ffd418
I can't get it to do this now, so the changes we made for #1156
https://github.com/facebook/Rapid/pull/1156 might have fixed the issue.
—
Reply to this email directly, view it on GitHub
https://github.com/facebook/Rapid/issues/959#issuecomment-1944332726,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFOKQKRFPBLBAMN7DHRIITDYTT3W3AVCNFSM6AAAAAAZJ5SAEOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBUGMZTENZSGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Juan Jose Iglesias
Technical Field Representative
Ph/Wa: +591 72213368
Skype: jjiglesiasg


Duplicate MonitoringResults at on MonitoringRun

Environment

Python version: 3.7
MrMap version: b214ce38ada52fa5f22f4e9c96aaf6897acec0fd

Steps to Reproduce

Register Karte RP http://geo5.service24.rlp.de/wms/karte_rp.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Run health checks

Expected Behavior
Non duplacted MonitoringResult objects should be generated.
A MonitoringResult object shall be unique together for attributes monitored_uri, monitoring_run.
Observed Behavior
Multiple calls for the same uri on a specific run for a specific metadata object happens.
I added a unique_together = ("metadata", "monitored_uri", "monitoring_run") constraint, to avoid saving duplicates in the database.
Celery raises multiple times psycopg2.errors.UniqueViolation errors like:
[2021-02-18 12:30:46,976: ERROR/ForkPoolWorker-7] duplicate key value violates unique constraint "monitoring_monitoringres_metadata_id_monitored_ur_389f4983_uniq"
DETAIL:  Key (metadata_id, monitored_uri, monitoring_run_id)=(bc4b95d3-008c-48fc-b18d-42d449695213, http://geo5.service24.rlp.de/wms/karte_rp.fcgi?REQUEST=GetCapabilities&VERSION=1.3.0&SERVICE=wms, 10af31f7-73d2-4acc-a323-dd9163df69cc) already exists.
Traceback (most recent call last):
  File "/home/jonas/git/MrMap/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "monitoring_monitoringres_metadata_id_monitored_ur_389f4983_uniq"
DETAIL:  Key (metadata_id, monitored_uri, monitoring_run_id)=(bc4b95d3-008c-48fc-b18d-42d449695213, http://geo5.service24.rlp.de/wms/karte_rp.fcgi?REQUEST=GetCapabilities&VERSION=1.3.0&SERVICE=wms, 10af31f7-73d2-4acc-a323-dd9163df69cc) already exists.

@jansule i dont get it why the run_manual_monitoring() task runs in to the described behavior. It also seems that the task runs endless, if an error occurs.

commented by @jansule at issue:
This is just a shot in the dark, but could it be that we run into a racing condition caused by creating two model instances that were not yet pushed into the database? Thereby the two instances might share the same id. This could probably be caused by the manual triggering of the monitoring, while an automated monitoring is already running.
AFAIK, the django ORM provides different methods for creating model instances: one, that just creates the instance in the program, but not in the database, another one that also increments the id counter in the db, to avoid said racing condition.

Issue
The issue was raised by calling the run_manual_service_monitoring task multiple times for the same MonitoringRun object.
But one MonitoringRun can only have one HealthState for example.  So multiple tasks tried to create multiple HealthState objects for one MonitoringRun which results in an django.db.utils.IntegrityError: duplicate key value violates unique constraint "monitoring_healthstate_monitoring_run_id_key".
Example:
class MonitoringRun(models.Model):
   ...
    @transaction.atomic
        def save(self, force_insert=False, force_update=False, using=None,
                 update_fields=None):
            super().save(force_insert, force_update, using, update_fields)
            from monitoring.tasks import run_manual_monitoring
            run_manual_monitoring.delay(monitoring_run=self.pk)

This save function does not check if it is just an update of the object. So if the save() is called multiple times, multiple tasks for the same run are created.
Solution
Call task only on new created objects one time:
class MonitoringRun(models.Model):
   ...
    def save(self, *args, **kwargs):
        if self._state.adding:
            from monitoring.tasks import run_manual_service_monitoring
            transaction.on_commit(lambda: run_manual_service_monitoring.delay(self.pk))
        super().save(*args, **kwargs)


Pypi gh actions

Push to pypi with gh actions on new releases.
Resolves: https://github.com/sparkgeo/stac-validator/issues/131

Closes #131


Create soundInstance with audiobuffer or htmlAudioElement

Hello,
I am trying to play audio from downloaded zip of audio files in browser. I download the zip while starting the app and store ArrayBuffer in memory. I want to play the sound using these stored ArrayBuffer. I am facing the similar issue mentioned above as I am not able to find this feature in the version I'm using. Do we have support for playing the audio/creating soundInstance using ArrayBuffer? I'd really appreciate, if we have this feature as I do not want to shift to another library for doing the same. I am using createjs version 1.0.0. Thanks.

Hi folks,
If this does make sense to the CreateJS team - it would be best done in SoundJS.  Howler accepts data - here is a message from their forum:
Howler will accept a data: URI structure, If the audioStream can be converted to a arrayBuffer, there is code available to Base64 encode it, then you could do something like:
howlSource = ["data:audio/mp3;base64,"+base64ArrayBuffer(arrayBuffer)];
soundPlayerObj = new Howl({
src: howlSource,
});
Here is probably how we could play it without SoundJS but it would be good to have a way to play it with SoundJS (if there is not one already)
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/decodeAudioData
It would be cool if it were the whole system so we could us PreloadJS to load and unzip and then make them available to play as their file names for IDs or some such thing.  Otherwise, I guess it would just be a method to play an arrayBuffer that we would have to get ourselves from zip files.

AudioBuffer support is already planned for SoundJS 2.0 (ES6), but might be worthwhile to add to version 1.0 as well if its a fairly straightforward feature.


Add dahua access control

This integration will add dahua access control but not all features are supported. Some events work like the motion detection but face detection won't work. Also, I am looking for DoorStatus event but i couldn't find it.
can you make this integration support all events of the access control my model is ASI7213X.
there is an addon called DahuaVTO2MQTT "https://github.com/elad-bar/DahuaVTO2MQTT" it has the door status event but it can only handle one device and I have multiple devices. if you can use the same method to obtain DoorStatus event that will be great.

Hi, I'm working on this now :)

BTW, face detection should be working now. As long as you selected the event when you setup the camera. If you did that, it'll create a sensor for the event. Can you confirm if that is working? You might need to remove the camera and add it back. Make sure to select FaceDetection

Hello,
I can see the face detection sensor but it always says "clear" the state doesn't change even when I scan my face. I removed the integration and installed it again.

Can you enable debug logging and send me the event that's found in the log for face detection?
You can enable debug logging like this
logger:
  default: info
  logs:
    custom_components.dahua: debug

Sorry for writing report here. I am new on GitHub.
Those two camera working very well with the addon.Thank you
DHI-VTO2211G-P
IPC-HFW4433F-ZSA

@rodaman no problem. Thank you, I'll update the readme.

Have a look at the logs. The good news is that I can see the DoorStatus Event. so if you can just make this event as a binary sensor it will solve my problem. Home assistant will be notified if a person scanned his face. However, there is no log about face detection but i don't care too much about it. The most important thing for me is the DoorStatus Event.
2021-06-20 20:30:33 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Stop', 'Code': 'VideoMotion', 'Data': {'LocaleTime': '2021-04-11 21:33:49', 'UTC':<PHONE_NUMBER>.0}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:01 DEBUG (MainThread) [custom_components.dahua] Finished fetching dahua data in 0.380 seconds
2021-06-20 20:31:02 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Pulse', 'Code': 'ScreenSaver', 'Data': {'LocaleTime': '2021-04-11 21:34:18', 'Status': 'Close', 'UTC':<PHONE_NUMBER>.0}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:02 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Pulse', 'Code': 'ScreenSaver', 'Data': {'LocaleTime': '2021-04-11 21:34:18', 'ScreenOff': True, 'Status': 'Close', 'UTC':<PHONE_NUMBER>.0}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:02 DEBUG (Thread-125) [custom_components.dahua] Keep alive
2021-06-20 20:31:02 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 20, 'params': {'timeout': 55}, 'result': True, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:31 DEBUG (MainThread) [custom_components.dahua] Finished fetching dahua data in 0.080 seconds
2021-06-20 20:31:31 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Start', 'Code': 'VideoMotion', 'Data': {'LocaleTime': '2021-04-11 21:34:47', 'UTC':<PHONE_NUMBER>.0}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:33 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Pulse', 'Code': 'DoorStatus', 'Data': {'LocaleTime': '2021-04-11 21:34:49', 'Status': 'Open', 'UTC':<PHONE_NUMBER>}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:36 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Pulse', 'Code': 'DoorStatus', 'Data': {'LocaleTime': '2021-04-11 21:34:52', 'Status': 'Close', 'UTC':<PHONE_NUMBER>}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}
2021-06-20 20:31:41 DEBUG (Thread-78) [custom_components.dahua] Data received: {'id': 8, 'method': 'client.notifyEventStream', 'params': {'SID': 513, 'eventList': [{'Action': 'Stop', 'Code': 'VideoMotion', 'Data': {'LocaleTime': '2021-04-11 21:34:57', 'UTC':<PHONE_NUMBER>.0}, 'Index': 0}]}, 'session':<PHONE_NUMBER>}

Thanks so much. I already see the issue and I will fix this. Pretty easy fix now that you provided me the log. Thanks! I'll post back here once it is fixed.

@hasan-fardan I've released 0.8.1 that will make the binary sensor work for the door status. It should show the door as opened or closed now.

The door status works perfectly. thank you

Awesome! Thanks. Closing, please open an issue if you have any more troubles.

Hi,
After update to 0.8.2 DVI VTO02211G-P stoped working. I did not to known
how to downgrade integration so I did restore full snapshot of HA. Logs
lost but I remember it says "unit not ready yet" or something.
pon., 21 cze 2021, 07:20 użytkownik Ronnie @.***>
napisał:

Awesome! Thanks. Closing, please open an issue if you have any more
troubles.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rroller/dahua/issues/20#issuecomment-864736876, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGD7T5WC2XFUNQHZYOGY6ELTT3D23ANCNFSM467LCWYQ
.

Ack. I can confirm the same. I will work on this immediately.

I just released 0.8.3 to address this bug. Sorry for that! Please let me know how this goes

Thanks. Not complaining... just report. Everything works great I am
appreciating your works and I am very grateful.
pt., 25 cze 2021, 19:09 użytkownik Ronnie @.***>
napisał:

Ack. I can confirm the same. I will work on this immediately.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rroller/dahua/issues/20#issuecomment-868709656, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGD7T5QRVSSZHPDM7HWG4Q3TUSZ47ANCNFSM467LCWYQ
.

0.8.3 works fine. Thanks
pt., 25 cze 2021, 21:12 użytkownik Data Roman @.***> napisał:

Thanks. Not complaining... just report. Everything works great I am
appreciating your works and I am very grateful.
pt., 25 cze 2021, 19:09 użytkownik Ronnie @.***>
napisał:

Ack. I can confirm the same. I will work on this immediately.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rroller/dahua/issues/20#issuecomment-868709656, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGD7T5QRVSSZHPDM7HWG4Q3TUSZ47ANCNFSM467LCWYQ
.

Awesome. Thanks very much for reporting this issue.


Refactor adbbt.sh to use loop

Refactored adbbt.sh to use a loop and put the new code in adbbt1.sh.  Wrote a test to exercise both the original and refactored versions.  Added a makefile to run the tests easily.

Your project looks super cool!  I was poking around to see if I could contribute in some small way and saw a tiny opportunity in adbbt.sh.  Hopefully this is a respectful and slightly useful PR.


VOPR: Bump vopr-lite requests_max

Since vopr-lite is green, bump up the requests_max to see what happens.

Temporarily pausing this to give https://github.com/tigerbeetle/tigerbeetle/pull/2544 more fuzzer cycles.


add delete command to remove entries from database

fixed by https://github.com/williamkray/maubot-gifme/commit/0e8422245895fe9f40cfc9a452b8013332d2c5a8


Fixing #15: A way to filter _source with include/exclude columns lists

@igelbox Thanks a lot for your help.


Create pull request action

Details
This eliminates the need for a second job in the version/preDeploy workflow, because unlike repo-sync/pull-request, peter-evans/create-pull-request works on macOS runners, which we need to use in order for PlistBuddy to work.
Fixed Issues
Fixes (partial) https://github.com/Expensify/Expensify/issues/155208
Tests
I ran a pretty closely simulated test of this workflow update in Public-Test-Repo. I used the following workflow to simulate these changes:
name: Create Pull Request Test

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Setup git
        run: |
          git fetch
          git checkout main
          git config user.name roryabraham

      - name: Create a new branch
        run: |
          git checkout -b version-bump-${{ github.sha }}
          git push --set-upstream origin version-bump-${{ github.sha }}

      - name: Modify some code
        run: echo ${{ github.sha }} >> myFile.txt

      - name: Commit and tag new version
        run: |
          git add myFile.txt
          git commit -m "Create file myFile.txt"
          git tag 1.0.6-3

      - name: Push tags
        run: git push --tags

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@09b9ac155b0d5ad7d8d157ed32158c1b73689109
        with:
          author: OSBotify<EMAIL_ADDRESS>          base: main
          body: Update version to ${{ github.sha }}
          branch: version-bump-${{ github.sha }}
          labels: automerge
          title: Update version to ${{ github.sha }}
          token: ${{ secrets.GITHUB_TOKEN }}

And this workflow run was the result.
As you can see, the tag created by this workflow, contains the changes from the "Modify some code" section of the workflow, here simulating the execution of the bumpVersion action.
Lastly, you can see the PR it created here.

The only remaining concern I have with this PR is that the author of the auto-generated PR didn't seem to work correctly, but that might just be because the action didn't provide the proper credentials for the OSBotify user. Anyways, if the github actor isn't properly registered as OSBotify then the automerge workflow might fail. But I think when tested in Expensify.cash with the OS_BOTIFY_TOKEN it should work.


Support JOI as a validator

Any chance we could get JOI as a option for a request validator? I am fan of their syntax as well as their transform functionality and it would be a great addition to Elysia.

We try use JOI validate in Elysia is work.
`
import { Elysia, t } from "elysia";
import Joi from 'joi'
const app = new Elysia()
app.get("/", () => "Hello Elysia")
app.post('/login', async ({ body }) => {
const schema = Joi.object({
idToken: Joi.string().required(),
uid: Joi.string().required()
})
const validate = schema.validate(body)
return validate.error?.details
})
`

This isn't ideal because you have to call the validate function manually. It would be nice to have built in support.

See #20


Allow OPTIONS Method on Http Server and add Cors headers.

Hello, unfortunately i cant connect to the server with my frontend.
when running the server as follows:
python -m sglang.launch_server --model-path mistralai/Mistral-7B-Instruct-v0.2 --port 30000
the options request fails with a 405:
curl "http://localhost:30000/v1/chat/completions" -X OPTIONS -H "Accept: */*" -H "Access-Control-Request-Method: POST"   -H "Origin: http://localhost:4200" -i
HTTP/1.1 405 Method Not Allowed
date: Thu, 28 Mar 2024 01:40:12 GMT
server: uvicorn
allow: POST
content-length: 31
content-type: application/json

{"detail":"Method Not Allowed"}

expected is something like this:
curl "http://localhost:8000/v1/chat/completions" -X OPTIONS -H "Accept: */*" -H "Access-Control-Request-Method: POST"   -H "Origin: http://localhost:4200"

HTTP/1.1 200 OK
date: Thu, 28 Mar 2024 01:38:28 GMT
server: uvicorn
vary: Origin
access-control-allow-methods: OPTIONS, POST
access-control-max-age: 600
access-control-allow-credentials: true
access-control-allow-origin: http://localhost:4200
content-length: 2
content-type: text/plain; charset=utf-8

Could you send the server log? I think I got that error when it didn't finish loading the model.

the server is full loaded and the docs endpoint is accessible aswell:
python -m sglang.launch_server --model-path mistralai/Mistral-7B-Instruct-v0.2 --port 30000
Rank 0: load weight begin.
INFO 03-28 06:17:14 weight_utils.py:163] Using model weights format ['*.safetensors']
Rank 0: load weight end.
Rank 0: max_total_num_token=56507, max_prefill_num_token=32768, context_len=32768,
disable_radix_cache=False, enable_flashinfer=False, disable_regex_jump_forward=False, disable_disk_cache=False, attention_reduce_in_fp32=False
INFO:     Started server process [71216]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:30000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:57398 - "GET /get_model_info HTTP/1.1" 200 OK
new fill batch. #seq: 1. #cached_token: 0. #new_token: 9. #remaining_req: 0. #running_req: 0. tree_cache_hit_rate: 0.00%.
INFO:     <IP_ADDRESS>:57410 - "POST /generate HTTP/1.1" 200 OK
INFO:     <IP_ADDRESS>:41348 - "OPTIONS /v1/chat/completions HTTP/1.1" 405 Method Not Allowed
INFO:     <IP_ADDRESS>:33136 - "GET /docs HTTP/1.1" 200 OK

you can simply reproduce the error by fireing the curl request. did you try that?

Use a proxy? https://github.com/songquanpeng/one-api

@kseyhan did you find a solution?

Hi all @kseyhan @wizd @tom-doerr @supa-thibaud May you try the latest main branch? Thanks.
git clone https://github.com/sgl-project/sglang.git
cd sglang

pip install --upgrade pip
pip install -e "python[all]"

pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/

@kseyhan did you find a solution?

Nope.. I just settled with other backend that support that instead.


Adds exiter hack to smoke-tests-windows

this allows for cf-release to be precompiled on a Linux stemcell

[#143845067]

@dsabeti - could we have a look at getting this merged? Prevents us from rolling forward on cf-release.

Hey @zachgersh. I've got a story for the same thing here: https://www.pivotaltracker.com/story/show/143845067. We should get to it pretty soon. I'll link this PR into the story.

@dsabeti - also, whats up with gitbot? Did it drop a story in your backlog but not add it to github?

@zachgersh. Nope, gitbot seemed to completely miss this PR. I'm really glad you @-mentioned me so I saw this in my email.
Anyway, we have a story to capture this work, and it has a link to this PR.


Implement the admin dashboard - platform settings - update mentor categories view

Description
As part of this issue, we need to create the admin dashboard - platform settings -update mentor categories view, which should closely match the provided mockup. This will provide the admins with a way to update categories for the mentors.
Tasks

Set up the basic React components as required.
Implement the layout and design of the update mentor categories view following the provided mockup.
Integrate the necessary components and assets to achieve the desired functionality and visual appearance.
Ensure responsiveness and compatibility across different devices and screen sizes.

Mockup: https://www.figma.com/file/nehm2ff8aR7NkPerg39fK9/ScholarX-V2-|-Wireframes?type=design&node-id=1974-3365&mode=design&t=zBGgiYyW1foSirHq-4

Note: You may want to mock the API refer to the API doc to see the relevant details.
Acceptance Criteria

The user interface closely resembles the provided mockup.
All required sections, elements, and content are present and displayed correctly.
The interface is responsive and works well on various devices and screen sizes.
The implementation follows best practices and coding standards.
Unit tests are written.

Hi.. Can I work on this issue please? @kumuditha-udayanga  @anjula-sack @Madhawa97

Hi.. Can I work on this issue please? @kumuditha-udayanga @anjula-sack @Madhawa97

Go ahead @dilankavishka


How to use this library on GHE?

I want to use this library GItHub Enterprise.

Just create a client and change your BaseURL to point to your locally-hosted (enterprise) instance of GitHub and you should be up and running.
Please let us know if you have any problems.

@gmlewis Thanks a lot. working.


How to change the healthbar (and maybe other asset's) position?

Describe your problem here.
For example. if i want to have the healthbar on the left side of the screen or right side and not in the middle, how would i accomplish this?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

setProperty('healthBar.x', yourvalue);
you can check PlayState.hx for other object names

Thank you! is there also a way to set the scale? its just a teeny bit too big

scaleObject('healthBar', xscale, yscale);
scaleObject('healthBarBG', xscale, yscale);

thank you so much!
you are very helpful to dumb people like me

Hi, I'm one who is building a mod based on the pibby glitch, I wanted to know how to do animation to the icons on the health bar in a script.
Thank you for anyone who will reply to your message.


Could the 5 Status Types be included in the CSS?

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.

🔖 Feature description
I'm trying to style loads of tasks and I have a variety of different custom statuses, so as far as I can tell, the only real information to tell me whether the task is done, todo, cancelled etc is the Task Status Type.
https://obsidian-tasks-group.github.io/obsidian-tasks/getting-started/statuses/status-types/#overview

TODO
IN_PROGRESS
DONE
CANCELLED
NON_TASK

✔ Solution
Could the status types be included as data attributes in the generated CSS?
❓ Alternatives
No response
📝 Additional Context
No response

/CC @esm7  for info...

Perhaps I'm misunderstanding the request here, but to my understanding you can use the data-task attribute like I demonstrated in https://github.com/obsidian-tasks-group/obsidian-tasks/pull/1519#issuecomment-1486450878.

If this does help with what you mean, can you elaborate what kind of styling per status type you would like to achieve?

What would a selector look like that selects the following status symbols, which would select my TODO and IN_PROGRESS tasks:
* space / ! D

If that is currently possible, it would certainly get me going for now, and I could document it.

Technically it is [data-task="<your status symbol>"] like I did here, and AFAIK there is no way to combine several of them in one selector, so you'd need to select each individually, possibly using the CSS comma (,) operator.
But if you could give a more specific example of what you would like to style based on the status (only the checkbox? The complete task line? Something else?), I might be able to be to answer this better.
Regarding the longer-term, it is straight-forward to add another data attribute with the Task Status Name. At the end of TaskLineRenderer.renderTaskLine, where data-task is set, it's just needed to set an additional attribute (say data-task-status-name).

Modifying the data-task-due example in the documentation to only highlight the due date for "todo" tasks would be:
.task-list-item[data-task=""] .task-due[data-task-due^="past-"] span {

You can add more custom statuses to this selector by duplicating the complete line, writing another rule for data-task, then grouping them with a comma, e.g.
.task-list-item[data-task=""] .task-due[data-task-due^="past-"] span,
.task-list-item[data-task="/"] .task-due[data-task-due^="past-"] span {

I don't mind looking into adding data-task-status-name and data-task-status-type, and can do so if getting the name & type as strings is relatively straight-foward. Mind if I do that as an extra commit in the same branch that was merged?

.task-list-item[data-task=""] .task-due[data-task-due^="past-"] span,
.task-list-item[data-task="/"] .task-due[data-task-due^="past-"] span {

D'oh. Thank you very much.
I think I will have to write a 'how-to' guide, for my own education and use - and keep the styling.md file as reference material.

I don't mind looking into adding data-task-status-name and data-task-status-type, and can do so if getting the name & type as strings is relatively straight-foward. Mind if I do that as an extra commit in the same branch that was merged?

Wonderful. Thank you. The name and type are other values alongside the task.status.symbol that you're already using.
If the selectors are case-specific, please do stick to all-caps, like TODO, as that is what is visible to users in the docs.

Oh sorry, yes, no problem using the same branch, if it helps...

Oh sorry, yes, no problem using the same branch, if it helps...

But do look at the diffs between your branch and main before starting, especially if going to work on the docs.

Merged from main to get the most up-to-date docs, then added attributes for custom statuses + documentation + tests.

Thank you!
notes to self:

Here is the commit: https://github.com/esm7/obsidian-tasks/commit/d633484f0de793463c0dcd8b70ed0ab7bdef2f8a - create a PR from it.
Remember to update the CSS file that is embedded in docs

Oh sorry, yes, no problem using the same branch, if it helps...

Thanks. FYI Another time I would ask for a new branch to be created.
Either WebStorm or me has got totally confused by me creating a PR from a branch on your fork.
I'm going to merge it sight-unseen and then test it on main and make documentation changes in a second PR.


feat: Add Retrier class

We have decided not to go with gax Retrier logic, Instead we will continue to use the existing core's Retry logic. Hence closing this.


german language added

added German language
I'm a native german (Swiss) speaker, so the translation should be ok.

I'm a native german (Swiss) speaker, so the translation should be ok.
Amazing


Implement ISteamUserAuth

API methods

[ ] AuthenticateUser
[ ] AuthenticateUserTicket

To retrieve public key
https://steamcommunity.com/login/getrsakey/?username=

Other references: https://stackoverflow.com/a/37901625/719686


fixed #621 [HxInputDate] Add CalendarDisplayMonth

[HxInputDateRange] Bug ToInputDateRange displays the From selected date
Add FromCalendarDisplayMonth and ToCalendarDisplayMonth
The To calendar will choose the latest of the FromDate or ToCalendarDisplayMonth or if both are not set then the FromCalendarDisplayMonth
Any changes required please let me know.

I think, if there is a Value, it should be always used for displayed month. The new parameters should be effective only when there is no Value present. (Separate behavior for From/To in HxInputDateRange).

The HxCalendar takes care of this already in my testing, please correct me if I am wrong though.
The only minor complexity is in the GetToCalendarDisplayMonthEffective for HxInputDateRange  because the From value might override the ToCalendarDisplayMonth but only if it is less than the provided ToCalendarDisplayMonth
I would imagine the vast majority of times the ToCalendarDisplayMonth would never be set, in that case should it be removed?

Current behavior to fix (calendar resets to DisplayMonth although there is Value from previous month):

I would imagine the vast majority of times the ToCalendarDisplayMonth would never be set, in that case should it be removed?

As you already implemented it, if the Value will have precedence, let's keep the ToCalendarDisplayMonth for those rare cases when you expect the range to end in some specific month in future 🤷♂.

Thanks for your patience!
Adjusted for Value to take precedence in HxInputDate and both From and To parts of HxInputDateRange