Implement article detail page

I have one concern with this PR and that is the headings over the images. As per the designs, the text is white or light grey and so if we select the wrong image or the wrong section of the image is displayed on mobile, it won't be readable. It may be possible to get around this by simply being sensible with our hero image choices, but I thought it was worth raising.

Can we have a permanent transparent black overlay on top of the image? Not sure if that's possible? Something to "dim" it so the white on top for the tags and text is never an issue?

Maybe it is possible to have a tin (1px) dark border around the text, it's a technique that I have used on big screens to make it readable. But I'm not sure how it will point out in the design and how it will work out with the smaller text.

Thanks for the suggestions 🙌  I tried out some things.
Text outline
I thought I was going to like this idea, but it won't work on the smaller text. Have you had any success with that before @tvbeek?

Darken the background
I think works nicely, I've applied a 20% linear gradient. See before and after below for both a light image and a dark image.

@joedixon looks good. But I'd make the "time to read" also white. Currently bit hard to read on both fixed versions.

Will get on to that later today or tomorrow 👍

Great, I think it's ready for a review when you are @driesvints

I spot one more thing. On all articles the name of the author isn't aligned to the left:

I spot one more thing. On all articles the name of the author isn't aligned to the left:

Great spot! I hadn't noticed as my bio and name are about the same length 😂

Great job @joedixon

Text outline
I thought I was going to like this idea, but it won't work on the smaller text. Have you had any success with that before @tvbeek?
Darken the background
I think works nicely, I've applied a 20% linear gradient. See before and after below for both a light image and a dark image.

I only have experience with that technique on beamer sized screens. (Mostly with lyrics on live camera feeds) so I didn't have any addition to that option.
But the option with the darker background looks good 👍 Nice done.


Added the option to use a special command for block selections.

This change allows you to specify a command to use for block selections.
For example, Vissort is a plugin that lets you sort by a block selection rather than by the line (ie, you can select a column of data and the lines are sorted by that column).
To use this new feature, set the new variable sort_motion_visual_block_command to the command to use.
By default this variable is set to the standard "sort", but if you have Vissort installed and you set it to Vissort you will be able to block select text and sort the rows by that column.

This looks like a great addition. Thanks for sharing, @hallzy!


[error] An empty string was provided, but is not valid

var d	= await firestoreDB.Value.Collection("players").OrderBy("SomeField").StartAfter("").Limit(1).StreamAsync().FirstOrDefault();

Throw this error
   at Google.Api.Gax.GaxPreconditions.CheckNotNullOrEmpty(String argument, String paramName)
   at Google.Cloud.Firestore.PathUtilities.ValidateId(String id, String paramName)
   at Google.Cloud.Firestore.Query.CreateCursor(Object[] fieldValues, Boolean before)
   at Google.Cloud.Firestore.Query.StartAfter(Object[] fieldValues)
   at LambdaHandler.<>c.<<Main>b__269_0>d.MoveNext() in D:\Users\Admin\Documents\komodo\testdotnet\Program.cs:line 293

I think this might be intentional but is it really not valid? I just wan to query every document that has that field be any string. Empty string is also valid value

This is not an issue in the .NET Client. I'd suggest asking on the Google Group for Firebase discussions - this isn't language-specific.
The simple fix is just to not call StartAfter though.

@jskeet I see. I think it is only cause in this sdk. Thanks

Oh, hang on - sorry, I'd thought this was a server-side validation. Will reopen and check more carefully later. I'd have to check why we're calling ValidateId.

@jskeet before I reply to you I already check with jssdk and it seem it also cause (somehow difference) error in jssdk too. It look like startAt would not handle empty string in any sdk because it will construct a path  /path/{key}/ which would become /path//
I don't know it was intentional or not

I wouldn't expect to see this problem unless your ordering was actually OrderBy(FieldPath.DocumentId), not OrderBy("SomeField"). If you're just ordering by a string field, it should just be converting the string into a value.
If you are ordering by document ID, this is behaving as I'd expect it to - you have to provide a valid reference path to start at.

I see. Does it means only orderby docid was difference from other field?
By somefield I put there it actually is a variable and I test it with docid first. I would try to test with other field tomorrow. Might be my fault here

I don't understand the question in your first paragraph, I'm afraid. Could you restate it? If you're asking whether docid fields are handled differently to other field names, the answer is yes - the cursor value for a docid field must be either a DocumentReference or a string that's a valid path within the collection.

You understand it correctly. Thanks

Closing as this is working as intended.


[Bug] [kast] - Cannot parse json configurations with #And at top.

K Version
$ kompile --version
RV-K version 1.0-SNAPSHOT
Git revision: 9b8639c
Git branch: UNKNOWN
Build date: Tue Aug 11 17:28:02 CDT 2020

Description
kast crashes when parsing an input file with #And at the top.
Input Files
file: Test.k
module TEST
    imports INT

    configuration <k> fresh </k>
    syntax KItem ::= "fresh"
    rule fresh => ?_:Int

    syntax KItem ::= "odd"
    rule I => odd requires I %Int 2 ==Int 1
endmodule

Reproduction Steps
$ kompile --backend haskell test.k && krun --output json > out.json &&  kast --input json --output kore --debug out.json
[Warning] Compiler: Could not find main syntax module with name TEST-SYNTAX in
definition.  Use --syntax-module to specify one. Using TEST as default.
kore-exec: [284153] Warning (WarnIfLowProductivity):
    Warning! Poor performance: productivity dropped to aprox. 69%
java.lang.ArrayIndexOutOfBoundsException: 0
	at scala.collection.mutable.WrappedArray$ofRef.apply(WrappedArray.scala:130)
	at org.kframework.unparser.KPrint.filterConjunction(KPrint.java:290)
	at org.kframework.unparser.KPrint.filterSubst(KPrint.java:267)
	at org.kframework.unparser.KPrint.abstractTerm(KPrint.java:235)
	at org.kframework.unparser.KPrint.prettyPrint(KPrint.java:160)
	at org.kframework.unparser.KPrint.prettyPrint(KPrint.java:152)
	at org.kframework.unparser.KPrint.prettyPrint(KPrint.java:140)
	at org.kframework.kast.KastFrontEnd.run(KastFrontEnd.java:147)
	at org.kframework.main.FrontEnd.main(FrontEnd.java:62)
	at org.kframework.main.Main.runApplication(Main.java:119)
	at org.kframework.main.Main.runApplication(Main.java:109)
	at org.kframework.main.Main.main(Main.java:57)
[Error] Internal: Uncaught exception thrown of type
ArrayIndexOutOfBoundsException (ArrayIndexOutOfBoundsException: 0)

Expected Behavior
kast should have returned a configuration formatted in kore.

I would rather we went back to the drawing board and figured out if there's a way to support Nishant's use case that doesn't involve passing the result of krun --output json to kast. This feels like something I don't want us to have to support long term.

@nishantjr can you fill in more details about how this issue came up in your high-level workflow?
We think that relying on the frontend to do Kore -> Kast -> external tool -> Kast -> Kore should not be what's done. Maybe there is another way to accomplish the same thing?

@ehildenb I had needed the following pipeline to implement Boogie.
PGM -> kore-exec  -> kast-to-json -> [Use pyk to transform kore] -> kast-to-kore -> kore-exec -> ...

The first kore-exec produced a constrained term with a \and. After transforming this kore and trying to feed it back to kore-exec, I encountered this error.
I am no longer using pyk because of this bug, so I'm not stuck on this any more. (I've written a K definition for manipulating kore instead.)

@ehildenb @dwightguth there are multiple problems here

we already discussed the problem of kast, json being lossy transformations and that's one of the problems
https://github.com/kframework/k/blob/issue1509/kernel/src/main/java/org/kframework/unparser/KPrint.java#L300
JSON returns a label here without parameters, and then we try to apply on a list of 0 params => K crashes with IndexOutOfBounds

I don't have a fix for this. Probably we need to bump the JSON version and include parameters. It's likely to break external tools.

Another problem is related to KPrint not being flexible enough to handle every single input:
https://github.com/kframework/k/blob/issue1509/kernel/src/main/java/org/kframework/unparser/KPrint.java#L181
It used the default semantics module and fail because it couldn't find generated labels (casts, inj, etc)
I've updated it so it uses the module with all the labels it would encounter.


Result is too restrictive, introduce Either type?

I want to type a function/method representing action which may fail, but not from pure technical perspective, rather from the business logic one. For instance, "register new user" action may succeed, or may fail for reasons like "username is already taken" or "password is too short" etc. I don't want to split this action into two steps, a validation method and then the actual action method, because I don't like creating an intermediate state which is invalid (however others may want to do it in two steps — it's just style preference, I made this choice).
This lib has a Result type which looks like it's exactly what I need, but it's unfortunately not: its Failure branch is limited only to exceptions (more correctly, throwables). However this is not how I view the business logic: for me exceptions are, well, exceptional situations: e.g. "database connection failed" or "file could not be read", "remote API returned HTTP 500" etc. Purely technical ones. Or could be business-logic related, but unexpected, e.g. some entity's invariant was violated due to some logic error in the code, or maybe someone edited its state directly in the database etc. This is the other thing though, i don't want any exception-related fluff here: traces, codes etc. Such action "failures" are no more than just normal operation of my system.
Describe the solution you'd like
Ideally I'd like to extend Result failure type to accept not only Exceptions. This is not possible due to possible backwards-compatibility break. Instead, a new type can be introduced: Either, with Left and Right variants as inspired by Haskell.
Describe alternatives you've considered
I have my own library for this, https://github.com/someniatko/php-result-type, which was inspired by this one: https://github.com/GrahamCampbell/Result-Type, but it has more robust Psalm typing.

I'm okay with adding this feature to PSL, however, i don't think i have the time to implement this myself, PRs are welcome :)

You might find some inspiration in this version as well
https://github.com/marcosh/lamphpda/blob/master/src/Either.php

IMO to complete the API it would be great to have at least those:
/** @var callable(Tr):TrNew $map */
public function mapRight(callable $map): Either<TrNew, Tl>;

/** @var callable(Tl):TlNew $map */
public function mapLeft(callable $map): Either<TrNew, Tl>;

public function getEither(): Tl|Tr;

/** @var callable(Tr):Either<TrNew, TlNew> $map */
public function flatMapRight(callable $map): Either<TrNew, TlNew>;

/** @var callable(Tl):Either<TrNew, TlNew> $map */
public function flatpMapLeft(callable $map): Either<TrNew, TlNew>;

may also be desirable

BTW, by having getEither() IDK if we need separate getRight() and getLeft(), which may throw exception.

I think we should, getEither would return Tr|Tl, when isRight returns true, i know that getEither would return Tr, but psalm/phpstan would assume it's Tr|Tl, having getRight() allows me to use it, knowing it won't throw since isRight() returned true.

The whole point of Either is that you don't know which of the two outcomes will you get beforehand. You can still process its individual "branches" using mapLeft() / mapRight()

I'm in favor of proceed($fr, $fl) to keep consistency, however, getEither IMO, shouldn't not be a thing, Either<Tr, Tl> represents either one of those two types in question ( Tr and Tl ), if you want to work on both, you would use proceed<Tr2, Tl2>((Closure(Tr): Tr2) $fr, (Closure(Tl): Tl2) $fl): Either<Tr2, Tl2> is what you want to use, which would return another Either instance, if you want to map one of the branches, you would use mapRight<Tr2>((Closure(Tr): Tr2) $fr): Either<Tr2, Tl> ( same for mapLeft<Tl2>((Closure(Tl): Tl2) $fl): Either<Tr, Tl2> ), if you want to unwrap the value, in most cases, you would want to know which value you are getting, so what i would suggest instead of getRight/getLeft/wrapRight/wrapLeft is:
public function unwrap(): Tr|Tl;

public function unwrapRight(): Tr; // throws otherwise
public function unwrapLeft(): Tr; // throws otherwise

public function unwrapRightOr<T>(T $value): Tr|T; // returns `$value` otherwise
public function unwrapLeftOr<T>(T $value): Tr|T; // returns `$value` otherwise

rust either type has many other methods that we could also implement ( see: https://docs.rs/either/latest/either/enum.Either.html#method.left_or_else )
public function getRight(): Tr; // throws otherwise
public function getLeft(): Tr; // throws otherwise

public function getRightOr<T>(T $value): Tr|T; // returns `$value` otherwise
public function getLeftOr<T>(T $value): Tr|T; // returns `$value` otherwise

public function getRightOrThen<T>((Closure(): T) $f): Tr|T; // returns `$f` results otherwise
public function getLeftOrThen<T>((Closure(): T) $f): Tl|T; // returns `$f` results otherwise

public function getRightOrElse((Closure(Tl): Tr) $f): Tr; // returns `$f` results otherwise
public function getLeftOrElse((Closure(Tr): Tl) $f): Tl; // returns `$f` results otherwise

public function map<Tm>((Closure(Tr|Tl): Tm) $f): Either<Tm, Tm>;
public function mapRight<Tr2>((Closure(Tr): Tr2) $f): Either<Tr2, Tl>;
public function mapLeft<Tl2>((Closure(Tl): Tl2) $f): Either<Tr, Tl2>;

( note: all methods prefixed with unwrap in rust either type return Option<T> which we don't have here, returning ?T is not an option as null could be a valid T value.  )

example:
function get_organization_owner(Either<Organization, Project> $organization): Owner
{
  return $organization->getLeftOrElse(
    fn(Project $project): Organization => $project->getOrganization()
  )->getOwner();
}

$owner = get_organization_owner(Either::right($organization));
$owner = get_organization_owner(Either::left($project));

@azjezz it totally makes sense to me with those three unwrap functions you've suggested. Basically, unwrapRight(), unwrapLeft() and unwrap() are just renamed getLeft(), getRight() and getEither() from the previous comments. And in Haskell there is either() function which is basically in our terms proceed() + unwrap().

As to unwrapLeft() / unwrapRight() functions which in Rust return an Option, why not implementing it first?

If we implement an Option and return it for the unwrapX() methods, then we don't actually have to use those or / orThen / orElse methods on Either itself, we could just have them on the Option.

By the way, if proceed will also extract the value as either() in Rust and Haskell, then, I guess, separate unwrap() (getEither() as I suggested earlier) method is indeed not needed.
Just summarizing the discussion, the full API for could look like this:
// static factories
public static function right<T>(T $val): Either<T, _>;
public static function left<T>(T $val): Either<_, T>;

// Throw MissingValueException if not right
public function getRight(): Tr;
// Same
public function getLeft(): Tl;

public function isRight(): bool;
public function isLeft(): bool;

public function map<Tm>((Closure(Tr|Tl): Tm) $f): Either<Tm, Tm>;
public function mapRight<Tr2>((Closure(Tr): Tr2) $f): Either<Tr2, Tl>;
public function mapLeft<Tl2>((Closure(Tl): Tl2) $f): Either<Tr, Tl2>;

public function flatMap<Tmr,Tml>((Closure(Tr|Tl): Either<Tmr,Tml>) $f): Either<Tmr, Tml>;
public function flatMapRight<Tmr,Tml>((Closure(Tr): Either<Tmr,Tml>) $f): Either<Tr|Tmr, Tl|Tml>;
public function flatMapLeft<Tmr,Tml>((Closure(Tl): Either<Tmr,Tml>) $f): Either<Tr|Tmr, Tl|Tml>;

public function proceed<Tm>((Closure(Tr): Tm, Closure(Tl): Tm): Tm;

public function unwrapRight(): Option<Tr>
public function unwrapLeft(): Option<Tl>

// could be useful
public function wrapRight(): Result<Tr, MissingValueException>;
public function wrapLeft(): Result<Tl, MissingValueException>;

@someniatko Option implemented in #356, would appreciate your review :)

Is someone planning to work on this and has the final interface been decided?

I dont think anyone is planning on working on this at the moment, so feel free to pick it up.
About the interface, you could start with the one described in https://github.com/azjezz/psl/issues/355#issuecomment-1172602495 maybe? It can always be extended.


如何上报related logs

请问skywalking UI 里的related logs是什么功能呢？需要如何上报log数据？

Check latest SkyWalking branch, and latest go2sky.
Trace context is injected by go2sky. And use filebeat or fluentd to collect logs to OAP https://skywalking.apache.org/docs/main/latest/en/setup/backend/log-analyzer/
At last, use LAL to build the links. https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/lal/


Correct the sds data structure

Resolves #898

Jenkins job pilot/presubmit passed

Jenkins job pilot/presubmit passed

Jenkins job pilot/presubmit passed

Ping?


Output Cropped Image and Bounding Box

This PR makes minor changes to the output logic in st_cropper so that the function can output both the cropped image AND the bounding box coordinates (i.e., rect) provided that that parameter return_type='both'.
This change can provide some flexibility to st_cropper where the user might need both the image (for displaying) and the bounding box coordinates (for downstream image processing)
Example usage:
import streamlit as st
from streamlit_cropper import st_cropper

image_file = 'path/to/image'
parent_image = Image.open(image_file).convert("RGB")
cropped_image, rect = st_cropper(parent_image, realtime_update=True, return_type='both')

# display image
st.image(cropped_image)

# hypothetical downstream processing
mask = generate_mask(parent_image, rect)

I added this into the most recent release, I couldn't accept yours because of all the extra file changes.


Differentiate dark and bright black

Having the same dark and bright black makes certain output appear invisible.
The new colors respect the latest color definition in sindresorhus/hyper-snazzy: bright black, bright white.
Before:

After:

Looks great, thanks for your work 👍


Improve the docstring for iter_foo().

The doc string of iter_foo() implies they are describing themselves as Foo Iterators, which they are not.  It would be better as something like below.  Also update documentation.
"""Get foo from GCP API."""

docs/latest/develop/dev/inventory.html

https://github.com/GoogleCloudPlatform/forseti-security/blob/stable/google/cloud/forseti/services/inventory/base/gcp.py#L595-L606
    @create_lazy('compute', _create_compute)
    def iter_images(self, projectid):
        """Image Iterator from gcp API call
        Args:
            projectid (str): id of the project to query
        Yields:
            dict: Generator of image resources
        """
        for image in self.compute.get_images(projectid):
            yield image

Updated docstring for iter_foo and fecth_foo #1702


Fix notifications pagination on web

Reverts https://github.com/bluesky-social/social-app/pull/4235
It looks like the issue is that fetching the next page doesn't reliably add 2x list height to the scrollview. The intersection observer only tells us when the boundary is crossed -- it doesn't trigger if we're still in the boundary -- and so the next page successfully fires but then doesn't retrigger.
It's entirely possible, with client-side filtering, that even dropping the threshold down to 60% doesn't totally fix the issue.

We could possibly solve this by calculating the number of new list items getting added post-grouping and, if it's too low, queue another fetch. That feels brittle though.
We could look for some way to fire an event post-layout, perhaps by running checkVisiblity on the bottom of the screen.

We could maybe change the logic to keep trying until we either run out of pages or the tail runs out of viewport again.


Feign compression configuration fixes

Fixes #2462
FeignAcceptGzipEncodingAutoConfiguration and FeignContentGzipEncodingAutoConfiguration are conditional on ApacheHttpClient (among other things).  The problem is that we never create a bean of type ApacheHttpClient instead we return beans of type Client.  So instead of making these configuration classes conditional on ApacheHttpClient we should make them conditional on Client.  However these classes only apply to the Apache HTTP client.  The OK HTTP client uses "transparent" compression.  If the headers are present this will disable that transparent compression, hence why I added the additional conditional on the OK HTTP client bean being not present.
The other problem was the way the Apache HTTP Client was configured in the sc-commons.  We disable compression which obviously will cause issues when you want to enable compression.  Hence the customized HTTP client creation.

Codecov Report

Merging #2717 into 1.4.x will increase coverage by 0.16%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##            1.4.x    #2717      +/-   ##
==========================================
+ Coverage   69.12%   69.29%   +0.16%
==========================================
  Files         240      240
  Lines        8463     8467       +4
  Branches     1047     1047
==========================================
+ Hits         5850     5867      +17
+ Misses       2218     2196      -22
- Partials      395      404       +9

Impacted Files
Coverage Δ

...ing/FeignContentGzipEncodingAutoConfiguration.java
100% <ø> (ø)
:arrow_up:

...ding/FeignAcceptGzipEncodingAutoConfiguration.java
100% <ø> (ø)
:arrow_up:

...bbon/HttpClientFeignLoadBalancedConfiguration.java
96.87% <100%> (+0.44%)
:arrow_up:

.../feign/encoding/FeignClientEncodingProperties.java
26.31% <0%> (+10.52%)
:arrow_up:

.../encoding/FeignContentGzipEncodingInterceptor.java
34.78% <0%> (+26.08%)
:arrow_up:

...netflix/feign/encoding/BaseRequestInterceptor.java
87.5% <0%> (+37.5%)
:arrow_up:

...n/encoding/FeignAcceptGzipEncodingInterceptor.java
100% <0%> (+50%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 70ea5ed...9d8c25a. Read the comment docs.


Guard against this.drop not existing

If the element gets destroyed before the handlers get removed there are exceptions thrown complaining about el.classList. This is because destroy() sets this.drop to null.
A null-guard should protect against this case.

Wondering what the status of this pull request is? This looks like it would solve some problems we're currently having with Drop.

@megasmack Looks to me like HubSpot isn't actively maintaining this repo anymore. We're just installing this from my fork at https://github.com/minichate/drop instead :(


April 9th, 2024, Community Meeting Agenda

📞 Radius Community Meeting
Every month we host a community meeting to highlight community created content, showcase new features, review upcoming milestones, and engage in Q&A with the Radius community - all are welcome and encouraged to participate.
The purpose of this thread is to form a discussion amongst the Radius community on potential topics to highlight during the meeting. If you have a topic you wish to present or learn more about, please add a comment and be sure to include your name and a short description of the topic.

The conversations in this thread will directly influence the meeting agenda for the community call on April 9th, at 9 AM PST (See it in your local time). The meeting agenda is finalized by a Community Call Host prior to the meeting.
See you at the community call! 👋
Agenda

Introduction
Session 1: TBD
Session 2: TBD
Radius news / Show & tell
Open discussion
Closing

Checklists for the host
Before the meeting

[ ] Find speakers
[ ] Collect Radius news (blog posts & videos found on social media, and show-and-tell Discord channel)
[ ] Prepare slide deck
[ ] Send meeting invite to the speakers

During the meeting

Welcome & announce that the meeting will be recorded
Start the recording
Show the agenda
Welcome first speaker
First session
Q&A first session
Welcome second speaker
Second session
Q&A second session
Show Radius related news, posts, videos.
Open discussion
Closing & mention Radius Discord channel

After the meeting

[ ] Upload the meeting to  the Teams drive and include:

[ ] Read-only link to slides
[ ] Radius Discord link
[ ] Other relevant links related to the sessions

[ ] Close this issue

Proposed feature updates and demo topics so far:

Terraform from private git repos
Radius Dashboard integrated experience


problem of cdn firebase angularjs

Helloe , i developed small ionic mobile application , with firebase and github api , and when i run it i get a Black screen , and the app is not working , i have inspected it with chrome/inspect , i get this error

Hello! Thanks for opening an issue with us! As this seems like more of a support question i will urge that you ask this question on our forum. Thanks for using Ionic!


Add coveralls

Fixes #7
Proposed Changes

#11

Error on execution of checks on coveralls in travis-ci


Plán implementácie

PC App:

GUI
Settings
Logs (visualize, filter, sort)

Teensy code:

Webserver (handling Camera, Settings and logs requests)
Automatic transformation of telescope commands
- Computation of speeds
Regex transformation of serial comm.
Logging (storing and reading them from SD card)


New Component: NAV JSX - Good First Issue

With the structure ready, we can now add the elements and create the component JSX structure.

import classes from "./Nav.module.css";

const Nav: React.FC = () => {
  return <nav className={classes.nav}>{/*  WRITE NORMAL JSX HERE */}</nav>;
  // REMOVE THIS WHEN DONE!
  // Expected: Element LOGIN screen greater than 798px
  // Expected: Icon LOGIN screen smaller than 798px
  // Expected: Element SIGN UP screen greater than 798px
  // Expected: Element screen smaller than 798px
  // ICONS CAN BE FOUND AT FONTS GOOGLE ICONS
  // USE MEDIA QUERY FOR CONDITIONAL
  // STYLE TEXT ELEMENTS
  // STYLE ICONS TO MATCH COLOR and Size
};

export default Nav;

[ ] Follow the steps on the comments
[ ] Ensure to remove comments when done
[ ] Use media queries to toggle between Icons and text elements
[ ] Add Icons on HTML via google font icons CDN

If you think you can help with this, comment below to be assigned to it!
Remember to ALWAYS pull development, and read contributing.md
PRs should be opened to DEVELOPMENT branch
Have fun and happy collab!
=)

Hey,I want to work on this issue.

Hey, Its yours! =)
Make sure to read contributing.md and PR to development branch
Have fun, happy collab!

Hey, it will take me some time to raise the PR,is that ok for you?

I guess it will take me a week or two as my OS crashed yesterday due to a
software fault and I will be having my exams also.
If you want you can assign it to another person :)
On Thu, Nov 10, 2022, 20:26 Aryse Gabrielle Pagano @.***>
wrote:

Hey, it will take me some time to raise the PR,is that ok for you?
Not a problem. =) Can you give me an idea of how long? over 24hrs, 48hrs?
—
Reply to this email directly, view it on GitHub
https://github.com/Medic1111/FINALLY-SEEN/issues/18#issuecomment-1310416765,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATQUAERLFQ6HHRK7IBEOMNTWHUEJRANCNFSM6AAAAAAR3PT3QU
.
You are receiving this because you were assigned.Message ID:
@.***>

I guess it will take me a week or two as my OS crashed yesterday due to a software fault and I will be having my exams also. If you want you can assign it to another person :)
…
On Thu, Nov 10, 2022, 20:26 Aryse Gabrielle Pagano @.> wrote: Hey, it will take me some time to raise the PR,is that ok for you? Not a problem. =) Can you give me an idea of how long? over 24hrs, 48hrs? — Reply to this email directly, view it on GitHub <#18 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATQUAERLFQ6HHRK7IBEOMNTWHUEJRANCNFSM6AAAAAAR3PT3QU . You are receiving this because you were assigned.Message ID: @.>

Oh man... Yeah... Thats a bit too long. Ill reassign this but please feel free to come back when you're situated! Thanks for the will to help =)

Sure
On Fri, Nov 11, 2022, 02:02 Aryse Gabrielle Pagano @.***>
wrote:

I guess it will take me a week or two as my OS crashed yesterday due to a
software fault and I will be having my exams also. If you want you can
assign it to another person :)
… <#m_-5872108849261487941_>
On Thu, Nov 10, 2022, 20:26 Aryse Gabrielle Pagano @.> wrote: Hey, it
will take me some time to raise the PR,is that ok for you? Not a problem.
=) Can you give me an idea of how long? over 24hrs, 48hrs? — Reply to this
email directly, view it on GitHub <#18 (comment)
https://github.com/Medic1111/FINALLY-SEEN/issues/18#issuecomment-1310416765>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATQUAERLFQ6HHRK7IBEOMNTWHUEJRANCNFSM6AAAAAAR3PT3QU
https://github.com/notifications/unsubscribe-auth/ATQUAERLFQ6HHRK7IBEOMNTWHUEJRANCNFSM6AAAAAAR3PT3QU
. You are receiving this because you were assigned.Message ID: @.>
Oh man... Yeah... Thats a bit too long. Ill reassign this but please feel
free to come back when you're situated! Thanks for the will to help =)
—
Reply to this email directly, view it on GitHub
https://github.com/Medic1111/FINALLY-SEEN/issues/18#issuecomment-1310860390,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATQUAEVTQFY5MD2ULXDUKDLWHVLV3ANCNFSM6AAAAAAR3PT3QU
.
You are receiving this because you were assigned.Message ID:
@.***>


Reduce IO Load When Starting a Workflow

Workflow properties are persisted in the asset manager when a new
workflow is started. This requires that a snapshot of the event is
already present in the asset manager. Since this is not true for
unscheduled events, a snapshot is created on-the-fly.
Unfortunately, this can delay ingests if the storage system is under
high load and can even cause ingests to fail completely.
This patch modifies the behavior by creating a snapshot of an empty
media package instead. This significantly reduces the stress put onto
storage systems.
Your pull request should…

[x] have a concise title
[x] close an accompanying issue if one exists
[x] be against the correct branch (features can only go into develop)
[x] include migration scripts and documentation, if appropriate
[x] pass automated tests
[x] have a clean commit history
[x] have proper commit messages (title and body) for all commits

@lkiesow checkstyle failure, extra import.

Fixed


Adopt CNCF code-of-conduct for Submariner

Follow Kubernetes example and adopt the CNCF code-code-conduct, which is
in turn based on the Contributor Covenant.
Closes: #10
Signed-off-by: Daniel Farrell<EMAIL_ADDRESS>

This is related to #10, but does not cover the "review" guide. Only code of conduct. @dfarrell07 what do you think about splitting the issue in two -one for the review guide-?

This is related to #10, but does not cover the "review" guide. Only code of conduct. @dfarrell07 what do you think about splitting the issue in two -one for the review guide-?

Okay, makes sense. I added https://github.com/submariner-io/submariner-website/issues/63 to cover the Code Review guide. Can you edit #10 to make it only about the CoC (I don't seem to have permissions)?

This is related to #10, but does not cover the "review" guide. Only code of conduct. @dfarrell07 what do you think about splitting the issue in two -one for the review guide-?

Okay, makes sense. I added #63 to cover the Code Review guide. Can you edit #10 to make it only about the CoC (I don't seem to have permissions)?

Done, thanks!


Unnecessary Console Messages

Can we remove these console messages showing up during runtime?

It's found in CyclicSessionStore.js
Line 78 Line 109 Line 110 Line 137

Also, can we confirm if this console error is messing up with the runtime? I'm seeing lots of initialization messages on my application, which I assume is the app's way of restarting to recover from the application.
2023-08-01 22:50:00.61: Application running on port 3000 <--- these ones
2023-08-01 22:50:00.61: CyclicSessionStore {***}
2023-08-01 22:50:00.63: Index Request "/"
2023-08-01 22:50:02.01: CyclicSessionStore {***}
2023-08-01 22:50:02.01: Application running on port 3000 <--- these ones
2023-08-01 22:50:02.04: Root file req: "style.css"
2023-08-01 22:50:02.04: Application running on port 3000 <--- these ones
2023-08-01 22:50:02.04: CyclicSessionStore {***}
2023-08-01 22:50:02.04: CyclicSessionStore {***}
2023-08-01 22:50:02.04: Application running on port 3000 <--- these ones
2023-08-01 22:50:02.05: Root file req: "***.min.js"
2023-08-01 22:50:02.05: Root file req: "runner.js"
 Listening ...

I normally only see this message once which is right after deployment, but it's weird that I'm seeing this a lot.


Minor improvements to whoami and whois commands

Improvements

Add chevron level to $whois X command. The purpose of this is to help diagnose issues where teiserver and chobby have a different idea of someone's chev level

There's a joke that BAR is a lobby simulator. So let's add lobby hours to $whoami and find out for sure if this is the case

Test Steps
Inside a lobby run
$whoami
$whois <username>
Probably best testing this on integration server with real users to see what is saved for lobby hours.

tbf, if the stats you get there are incorrect, that's probably a different problem, and probably a different PR.

Added Chevron Level to $whoami based on @L-e-x-o-n feedback


UDP gets blocked after any unsuccessful matching

I'm currently debugging an OpenVPN matcher, and I've noticed a problem with how UDP is handled by caddy-l4.
Symptoms:

A UDP connection gets blocked / hangs, i.e. no packets are passed for matching, after the first unsuccessful matching.
If an invalid packet is sent to Caddy after a valid packet, then any valid packets that follow are completely ignored.
The problem always persists until Caddy is restarted.

Sample config:
{
	layer4 {
		udp/:53 {
			@test dns {
				allow apple.com. * *
				default_deny
			}
			route @test {
				proxy udp/<IP_ADDRESS>:53
			}
		}
	}
}

Replication:

The problem is related to any UDP packets, but I've found DNS to be the easiest way to replicate. Send any non-apple.com DNS request to Caddy running the sample config above, then send apple.com DNS request - it won't respond. Restart Caddy and send apple.com DNS request - it will respond, then send any non-apple.com DNS request, then send apple.com DNS request again - you will get no response.
If fmt.Printf("%x,  %d\n", buf[:10], n) is inserted before https://github.com/mholt/caddy-l4/blob/master/layer4/server.go#L109, it never prints anything after unsuccessful matching.

Side problem:

When I do UDP debugging, Caddy panics on https://github.com/mholt/caddy-l4/blob/master/layer4/server.go#L156 from time to time. I think it depends on how much time has passed between the app stops on a breakpoint and I press the resume button.

I think the issue described above can be traced to https://github.com/mholt/caddy-l4/commit/6a8be7c4b8acb0c531b6151c94a9cd80894acce1.
@jtackaberry Is there any chance you could look at it?

Actually it turns out to be the matchingTimeout set by https://github.com/mholt/caddy-l4/blob/master/layer4/routes.go#L123 that breaks UDP.
As a workaround (and a proof that the timeout is at least related to the problem described above), we can put _ = conn.SetReadDeadline(time.Time{}) as a simple neutralisation command after https://github.com/mholt/caddy-l4/blob/master/layer4/server.go#L147, and it seems to effectively prevent UDP from dying after unsuccessful matching.
This read deadline was originally introduced by @ydylla (in https://github.com/mholt/caddy-l4/commit/f04916554cbe94a116aaef90368fd0ac99bce513), and @WeidiDeng was the last one who reworked RouteList.Compile (https://github.com/mholt/caddy-l4/commit/afa78d72257b949486b24fa6f0351381c786a4b3 and https://github.com/mholt/caddy-l4/commit/22a03931ae46d0decc068e8d1ffe83e6187ed812).
I believe there is a straight logic behind this timeout, but I don't think it was supposed to break UDP. So could you guys, please, take a look as well? Is it possible we can solve the problem by adjusting RouteList.Compile rather than Server.servePacket?

Thanks for reporting and discussing @vnxme ! @WeidiDeng has also reached out to me on Slack about this, and I suppose a patch will be coming in sooner or later :)

@mholt We have discussed another UDP-related issue with him (how to make listener_wrappers concept work with QUIC inside Caddy mainline), which is more like a feature request. This bug is another story.

Oh, I see. Nevermind me then :sweat_smile:

Matching timeout is set to 3 seconds by default here. Maybe it's too small for udp. As udp datagrams are much smaller and less frequent than tcp data stream.
The problem comes from two places, one is the small timeout, the other is that packet handler ignore timeout error as it's temporary.
There is also the idle timeout of 30 seconds for udp. I think it's reasonable to extend deadline within packet handling unless idle timeout fires and that association should be removed anyway and io.EOF is returned.

@vnxme Can you try 249?

Thank you for proposing this fix. It works, however I wouldn't do that since it completely prevents any matcher or handler from setting a read deadline which might be of some use anyway.

Completely is a wrong word. It doesn't prevent a deadline for tcp sockets. If you really want to set a deadline, you should set it for a particular mapping instead of the global deadline as I mentioned in the todo.
If you set the deadline for the udp socket, those matched udp associations will be affected by the deadline as well. Say you match wireguard protocol data, and one of the address pairs look like it. When copying the data between and from, another new associations appear. The deadline will break the wireguard association causing it to rematch.
The reset won't help in this case, or if you want to deal with it during the copying part. But why would anyone expect a deadline error could occur if no deadline is set?

Completely is a wrong word. It doesn't prevent a deadline for tcp sockets.

Agree, I mean setting a read deadline for UDP.

The reset won't help in this case

I've tested it, and it fixes this bug as well as the solution you proposed. The difference is that resetting the read deadline on return affects both TCP and UDP.
The read deadline (a.k.a matching timeout) corresponds to "Maximum time connections have to complete the matching phase (the first terminal handler is matched)". So my understanding is, when HandlerFunc returns, we don't need it, so it's safe to reset it.

I've tested it, and it fixes this bug as well as the solution you proposed. The difference is that resetting the read deadline on return affects both TCP and UDP.

Did you test that the sending a small udp packet in this case programmatically in this case? For dns matcher just send one byte at a time every second for 10 seconds? And see the cpu usage for the next 7 seconds assuming the default timeout. I mean breaking a valid dns message into parts.
The udp deadline won't be received by the wrapped association because it is handled here. There is no reason to set it and the server pass the packet to the associated handling.

If you really want to fix the deadline, set the deadline on the association not the underlying socket. The deadline error won't be passed to the handler. For clients that don't send enough data, it's always taking 30 seconds.

OK, my intention is just to fix this annoying UDP bug and not to break anything else. If you say #249 is safe enough and we don't need a read deadline reset on HandlerFunc return, then I second your fix and hope it could be merged soon.

My solution still needs some works, but it should suffice in this case. The matching timeout is used to control how long the matching goroutine run in this case, by default it's 3 seconds. It is a whopping 30 seconds for udp though. I thought for a while how to fix it, but one step at a time.

I have never used udp in layer4, but looking at the code a bit, I currently would go with @WeidiDeng's fix. Since it is closer to the udp code. Properly supporting the matching timeout for udp would likely require a bigger rewrite.
I am for example not sure why the ignoring of timeout errors here even exists. I can not find anything that sets a timeout for udp (the idle timeout is implemented via select & time.After), so before the addition of the matching timeout this branch was probably never executed?
And while @vnxme is right after compiledRoute.Handle returns it gives back control of the connection to the caller and thus should probably not leave a deadline set on it. Sadly there does not seam to be an API to restore a previously set deadline. If we always reset it we may also reset a deadline that was set by a future udp rewrite.

Thanks for the discussion, @vnxme, @ydylla , and for the patch, @WeidiDeng !


Tenant Pages Livewire Component Error

Package
filament/filament
Package Version
v3.2.80
Laravel Version
v11.7.0
Livewire Version
v^3.4.10
PHP Version
PHP 8.3.6
Problem description
When trying to submit a form on a tenant page it throws a ComponentNotFoundException and tries to render a view that just doesn't exist.
Expected behavior
The form submission should run the appropiate functions without exception.
Steps to reproduce
Clone the Reproduction repo then run the following commands
composer install
npm install
php artisan migrate --seed

Here are the examples and how to replicate the problem:

Non-Plugin Tenant Profile Page

Navigate to $APP_URL/nonplugin login if not already done. In the top left expand tenant dropdown menu and click on Non Plugin Profile

Now click on Save changes and error will be thrown.

Plugin Tenant Profile Page

Navigate to $APP_URL/admin login if not already done. In the top left expand tenant dropdown menu and click on Plugin Profile

Now click on Save changes and error will be thrown.

Non Plugin Tenant Registration Page

Navigate to $APP_URL/nonplugin/new login if not already done.

Click on Non Plugin Register and an error will be thrown.

Reproduction repository
https://github.com/dev-idkwhoami/filament-livewire-form-on-tenant-profile-page
Relevant log output
No response

Hello
Is there any opportunity to work with you?


Integrate Halyard with SANSA Stack

Halyard is powerful distributed triplestore, instantly answering majority of SPARQL queries, however weak in some complex operations (like ORDER BY and GROUP BY) and complicated to implement a custom code that goes beyond SPARQL.
SANSA Stack (and similar Spark-based SPARQL frameworks) seem to be complimentary to Halyard - powerful in ordering, aggregations, and easy to integrate custom transformation logic into the pipe, however slow in ad-hoc SPARQL queries, and unable to form SPARQL Endpoint.
The idea is to provide a hybrid solution, where SANSA Stack (or any other Spark framework) can directly use Halyard data and Halyard query engine as a (distributed) source of RDF data for further processing.

Minimal implementation is to provide Halyard library for Spark, so SANSA Stack can directly consume the Halyard data (read the RDF data directly from HBase) and can call Halyard SPARQL Query Engine (consume results from Halyard SPARQL Graph Query locally and directly).
Integrated solution would require to include Halyard as a Service Provider in SANSA SPARQL Query Engine, so hybrid access to Halyard data from Sansa would be available inside SANSA SPARQL as a Federated Service Provider.
Optimal solution would also include transparent integration of Halyard SPARQL parallelization (similar to  halyard:forkAndFilterBy function used in Halyard BulkExport), so Spark engine would be able to directly manage Halyard parallelization (transparently for user).

This is an idea of potential synergy effect of Halyard and SANSA Stack, that seems to be worth to test.

Have you taken this idea any further, got any sample code, etc?  I am interested in prototyping something, so anything to help me kick start would be useful.

It is just an idea to implement SANSA-compatible Spark library which will include Halyard as node-local SPARQL evaluation engine (not pointing to some central endpoint but actual in-place query evaluation engine directly communicating with HBase, as used in several actual Halyard MapReduce applications).
SANSA can then decide to direct the whole queries, fragments of the queries, subqueries or just specific statement patterns to Halyard, based on the knowledge that actual data files are also indexed in Halyard.
Any SANSA user can then decide which datasets are worth to index in Halyard and which will be evaluated dynamically by SANSA.
As an example let's have some custom frequently changing data and you want to analyze them with help of for example DBpedia.
Actual Halyard requires to index both first (and the rapidly changing data also to periodically update), then run the queries and if your analytics requires something outside of SPARQL - you are probably doomed.
Actual SANSA will on the other hand require large computation power and it will full-scan all DBpedia data whenever any query would  just touch them.
Hybrid solution would allow to index DBpedia in Halyard and SANSA would delegate related queries, subqueries or statement pattern requests to the embedded Halyard library, which will get the data directly from HBase and evaluate them using actual Spark computation node resources as inlined Spark function.
Later can also actual Halyard MapReduce apps be moved to Spark/SANSA, so even indexing might be integral part.

2020 v 9:26, Lawrence<EMAIL_ADDRESS>

Have you taken this idea any further, got any sample code, etc? I am interested in prototyping something, so anything to help me kick start would be useful.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I'm not familiar with SANZA. It looks like it partitions its RDF vertically unlike Halyard. Because of this, as I understand, it prefers to reload the RDF from the RDF source and partition into predicate tables with subject as key, and object as value. I assume you would not want to reload the Halyard triples simply to repartition them. Therefore, are you suggesting that Halyard be injected into SANZA query planner/executor so that SANZA uses Halyards SPARQL in preference?
There are a few problems that SPARQL does not solve. For example shortest-path requires as a mimimum iterative SPARQL. I am hoping that SANZA SPARK would offer and alternative.


docs(offline-mode): Add offline mode docs for python and java

Changes
Adds the framework for the docs on offline mode, as well as adding the specifics for python and Java.
How did you test this code?
Ran docusaurus locally and confirmed the docs looked correct.

Made some comments

Updated. Note that I've only added the docs for python and java, although more SDKs are complete. I am going to ask the rest of the team to add the docs for the relevant SDKs.


Auth.currentUser() will return document html

So this:
Auth.currentUser().then(function(user) {
    console.log(user);
});

will print me out the complete HTML of my root path telling me that I am already signed in. I don't even really know what exactly broke, cause it used to return me the correct user object. Any idea how to fix that?

Alright, so it seems the :json option in this line (config/initializers/devise.rb) will cause the behavior described in the above post. Just in case someone runs into this by accident too.
config.navigational_formats = ['*/*', :html, :json]


Remove the usage of azure-cli-core library

What is being addressed
Remove the usage of azure-cli-core library wherever it was possible.
How is this addressed

Removed the usage of azure.cli.core from: api, resource processor, airlock processor, instead, the values are passed from terraform.
The library is still used in the CLI, and in the E2E tests

draft since it was not tested yet

Looks good! We need to adjust it to the new outputs. For example instead of:
module.terraform_azurerm_environment_configuration.suffixes.storage_endpoint
it should be
module.terraform_azurerm_environment_configuration.storage_suffix


Polarizable Embedding Model

This PR implements the Polarizable Embedding (PE) model through the CPPE library.
Features implemented:

[x] ground-state (HF, DFT) PE
[x] PE-TDA excitation energies

ToDo:

[ ] install CPPE through Travis to enable running the functionality test
[ ] add user examples
[ ] add test for PE-TDA

Merge:

[ ] Ready for merge

When PE was applied, the function for second-order orbital derivatives (_gen_rhf_response etc in pyscf.soscf.newton_ah) may need to be updated. Before merging this feature, we should include this flexibility in the _gen_rhf_response functions. Then all relevant modules, like stability analysis, second-order SCF, etc can work correctly.


Noop all the way

Coverage decreased (-0.3%) to 83.696% when pulling 1a3ed256c6e3ca0e12fbcced491f778d360374ba on noop-all-the-way into 54a00d2a92d9f549d74a000cc9975f0af21f4e6e on master.


adding start of work to add libabigail python

Hey @woodard!
As we discussed, here is a first shot at adding the small amount of work for Python bindings for libabigail proper. I do need help with one thing, however, before this PR is ready for review.
This is my first time writing Makefile.am's to work with autoconf, and I think I figured out how to add the --enable-python-bindings flag, but I have not figured out how to get the python files in the root into the python build folder. E.g.,, when we do:
$ autoreconf -i
$ mkdir build
$ cd build
$ ../configure --prefix=/usr/local --enable-python-bindings

I only see a Makefile generated in the build/python folder, and I don't see the dependency files there. I suspect it's something I need to add to my Makefile.am - I tried looking at the other files for examples and tried a bunch of things this morning but couldn't get it to work. If you can share your beardy wisdom it would be greatly appreciated!
After that I can finish up writing/testing the small amount of docs (the README) in the Python folder. and this should be good to go. Thanks for your help!
Once I am able to do that, I can easier finish the documentation
(README) in the Python folder
Signed-off-by: vsoch<EMAIL_ADDRESS>

And @woodard totally no rush on this - I wanted to get it open so that we could start discussion whenever you have some spare time (totally ok if not this week!)


On computer can't move to new feed added on the source

Describe the Bug
When adding rss feed to one source after more than 4 feeds, I can't move to the five or so feed. Basically on PC you can't move the bar where are located the RSS Feed on circles.
Platform

[ ] Android
[ ] iOS
[x] Linux
[ ] macOS
[ ] Windows
[x] Web

To Reproduce

Go to one source
Add multiple RSS Feed more than five
Try to go to the last feed
Can't move the feeds.

Expected behavior
I want to move from one feed to another and move the bar of feeds. I think it was thinked for mobile screens but nor for computers.
Screenshot

Hi @David7ce, thanks for reporting the issue. I can confirm that this is an issue on Linux, Windows and the Web version when there are no touch gestures or trackpad.
To fix this issue, I changed the scrolling behavior of the app to also support drag gestures from the mouse for scrolling in #27.
A new version with the fix should be released over the weekend. If you still have issues afterwards or if you encounter any other issues please let me know.

Sorry but for me, horizontal scroll in the sources menu is not possible. I only can see the maximum width of 4 and a half circle sources and cant move to the next one.

The new version with the fix should now be available.


add new testNumberOfJobs() to SchedulerJobsTest (re. FINERACT-922)

This will catch problems such as the integration tests running "too early" (before Flyway has fully initialized the database), which I have a suspicion could be one of (many) causes of the unstable scheduler tests, notably because of the IllegalArgumentException at SchedulerJobsTest.java:90 in #817.
see FINERACT-922 and FINERACT-952 re. removed JobName

Failed due to testInterestTransferForSavings() and thus requires #815 ...

@awasum @ptuomola @xurror wanna review this one from 2 weeks ago - OK to merge?

Looks good to me!

Couldn't help but notice references to 2 different issues in your commits. Changes are very little though. I don't know if they are co-dependent but would have been much better to raise 2 different PRs for each of them. But as I said, very little changes so, I don't mind if you merge it like this


Terminator with pywal. First line shows strange symbols 708;#0f0f10\]708;#0f0f10%

Hello. I use pywal (version 3.3.0) with terminator (version 1.90+bzr-1705-1) in Debian 9.9. In others terminals (xterm, st and rxvt-unicode-256color) pywal works very well. Maybe someone could advise how I can solve this problem?
P.S.
I tried  wal -c and then wal -i img but that didn't help.
P.S.S.
Here screenshot:

Use --vte with all commands.


Unable to localize strings

Version 2.1.5 breaks the ability to provide custom localizations to TLPhotosPickerConfigure.
I see that you localized the strings, but the list of built-in languages doesn't match the languages we need in our app. Previously we were able to provide the strings we wanted. Now TLPhotosPickerConfigure appears to load strings from its bundle and I don't see a way around it.
A solution would be to keep the old properties, and just localize the defaults.
public var tapHereToChange = NSLocalizedString("Tap here to change", bundle: Bundle(for: Self.self), comment: "")

(As someone else pointed out, this is an API change so shouldn't be a mere maintainance version bump. This broke our build.)

+1

Thank you!


HTTP Error 400: Bad Request when requesting download of deciation

Hi out there,
I use python lib to access the dA API. Wenn accessing deviations by download_deviation I get a 400 Error in some cases (with other deviations it works). I cannot see a reason, cause the deviations are in my favorits, and I collect the deviations by get_collection. When I log in on my account, I can access the deviations, and this is no mature content.
In the description it is stated that download_deviation works "if allowed". What may be the reason for denie, when requested by API?
Thx, Gerhard/Gonz

Hello, Gonz,
Based on your explanations, I think it could be the case where the author disabled the download of the deviation from the submit option.
I suggest checking the error response. You probably got error_description: "Deviation not downloadable." and error_code: 2
You can also checking if the deviation will be downloadable by checking is_downloadable field of a deviation object.
I hope this helps.
Thank you.

Closing this ticket due to its age. If this is still an issue, please feel free to reopen. Thanks!


Replace ordered map with MVCC db in state machine

(*Agent).Read() is now read only w/ MVCC.

No more need for scary doc comments warning against deadlocks and database corruption.

State machine snapshots now use JSONLines for streaming snapshots
Test coverage now includes integration tests (assuming they run on github actions...)

LGTM 👍


MESSAGE in lambda outputs CHECK_MESSAGE's message even if it's not failure.

Description

Steps to reproduce

#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "https://raw.githubusercontent.com/onqtam/doctest/dev/doctest/doctest.h"
#include <functional>

TEST_CASE("Strange behavior")
{
    CHECK_MESSAGE([]() {
        MESSAGE("message!!");
        return true;
        }(),
        "lambda Failed!!");
}

This outputs...
[doctest] doctest version is "2.4.8"
[doctest] run with "--help" for options
===============================================================================
<source>:5:
TEST CASE:  Strange behavior

<source>:8: MESSAGE: message!!
  logged: lambda Failed!!

===============================================================================
[doctest] test cases: 1 | 1 passed | 0 failed | 0 skipped
[doctest] assertions: 1 | 1 passed | 0 failed |
[doctest] Status: SUCCESS!

https://godbolt.org/z/z1aqdjj1h
I expected it outputs like that...
[doctest] doctest version is "2.4.8"
[doctest] run with "--help" for options
===============================================================================
<source>:5:
TEST CASE:  Strange behavior

<source>:8: MESSAGE: message!!
===============================================================================
[doctest] test cases: 1 | 1 passed | 0 failed | 0 skipped
[doctest] assertions: 1 | 1 passed | 0 failed |
[doctest] Status: SUCCESS!

Extra information

doctest version: v2.4.8
Operating System: (godbolt)
Compiler+version: MSVC, Clang, GCC...latest

Why this matters?
I'm using libraries with monad interfaces in my code, like tl::optional or tl::expected.
I sometimes make unit test like...
tl::optional<MyData> funcToTest();

TEST_CASE("MyData test")
{
    CHECK_MESSAGE(funcToTest().map(
    [&](MyData data)
    {
        ProcessData(data);
        Message(data.toString());
    }).has_value(),
    "funcToTest() failed");
}

thanks.

I very much think this is by design. Why this design was chosen I cannot say. Maybe @onqtam has some insight?

Seems to be by design - CHECK_MESSAGE is basically a do { INFO(...); CHECK(...); } while(false); and the MESSAGE() in the lambda in the CHECK() triggers the printing of all previous INFO() calls.

Got it.
So, what is the current best way to handle messages in the monad?
A simple thing that comes to my mind quickly is,
tl::optional<MyData> funcToTest();

TEST_CASE("MyData test")
{
    std::string msg;
    CHECK_MESSAGE(funcToTest().map(
    [&](MyData data)
    {
        ProcessData(data);
        msg += data.toString();
    }).has_value(),
    "funcToTest() failed");
    if (! msg.empty())
        MESSAGE(msg);
}

A little messy...but if it's by design, there is no choice but to do so.

I suppose that's one way to do it - haven't given it much thought. Also, isn't the "funcToTest() failed" message redundant since whatever is in the CHECK() will be stringified & outputted?

https://github.com/doctest/doctest/blob/dev/doc/markdown/configuration.md#doctest_config_asserts_return_values

Also, isn't the "funcToTest() failed" message redundant since whatever is in the CHECK() will be stringified & outputted?

Yes, you're right. sorry for the bad example. It's only a simplified one.
What I wanted to describe was CHECK_MESSAGE prints out failed message.

Btw another way to do it would be to put the CHECK() in an if() and then have the MESSAGE() in the then part but for that you'd need to define DOCTEST_CONFIG_ASSERTS_RETURN_VALUES:

That seems useful for me! Thanks for your suggestion.

I would like to keep this open to potentially address it in the future. I feel like MESSAGE should not trigger previous INFO invocations. But it definitely requires some more thought.

The original reasoning was that just like there are 3 levels of severity for assertions (warn/check/require), there are 3 levels of severety for such messages (message/fail_check/fail)

The original reasoning was that just like there are 3 levels of severity for assertions (warn/check/require), there are 3 levels of severity for messages (message/fail_check/fail).
If an actual failure like with fail_check or fail happens we should see everything logged with INFO prior to that, but indeed the case for doing the same with message is weaker.


Lazily connect to brokers in the client

Instead of opening a connection to all brokers immediately upon receiving their
information in metadata, wait until we are asked for them either via a call to
Leader or a call to any.
It seems simple enough (simpler than I was expecting actually) but I'm a bit wary, since it changes the internal semantics so much. Strong opinions and careful review please.
@Shopify/kafka

This looks innocent enough :+1:
Should we do some manual testing?

Ya, I'm really suspicious mostly because it looks so innocent. Throw whatever cases you can think of at it :)

This code looks good, what do you guys think about genghis like stress testing tool for kafka, we could possibly just leverage genghis ?

King of unrelated to this PR, but we need:

testing tool for just sarama (see https://github.com/wvanbergen/kafka/tree/master/tools/stressproducer for an initial attempt).
testing tool for our complete pipeline.

Let's discuss this offline.

I ran this code (in combination with #338) through a bunch of failure scenarios using the vagrant cluster and willem's stressproducer and didn't have any problems.
I'll merge this and rebase #338 and then it can be reviewed separately.


Code documented

Description
documentation added into the notebooks and files
Type of change
-[] Documentation update
Change Status

[ ] Complete, tested, ready to review and merge

Checklist

[ ] My code follows the style guidelines of this project

I'm updating Luna's code on her behalf just now on main branch.


Fresh object literal typed through satisfies and mapped type lose the origin information

Bug Report
🔎 Search Terms
mapped type origin generic indexed access satisfies
🕗 Version & Regression Information

This is the behavior in every version I tried

⏯ Playground Link
Playground link with relevant code
💻 Code

type MyMap = {
  "move-forward": { distance: number };
  stop: { cause: string };
};

type Values<T> = T[keyof T];

type Union<P extends keyof MyMap = keyof MyMap> = Values<
  {
    [K in P]: { type: K } & MyMap[K];
  }
>;

// const action: { [K in keyof MyMap]: (move: MyMap[K]) => void } = {
//   "move-forward": (move) =>
//     console.log("Moving forward by distance:", move.distance),
//   stop: (move) => console.log("Stopping. Cause:", move.cause),
// };
const action = {
  "move-forward": (move) =>
    console.log("Moving forward by distance:", move.distance),
  stop: (move) => console.log("Stopping. Cause:", move.cause),
} satisfies { [K in keyof MyMap]: (move: MyMap[K]) => void };

function execute<K extends keyof MyMap>(move: Union<K>) {
  action[move.type](move); // errors but it should be OK just like the variant with the declared type
}

🙁 Actual behavior
It errors on the action[move.type](move) call within the generic function.
🙂 Expected behavior
It should be OK just like the variant with the declared type.

When the type of action is known to be a mapped type, we can take a smarter analysis of action[move.type](move) to realize that the call is OK by analyzing the mapping rather than the possible concrete instantiations of K.
When it isn't, the only way to "see" that this call is OK is by brute enumeration of all possible inhabitants of K, which in general is not feasible from a performance perspective.
So in this case, we have to trade a little bit of completeness for a big gain in performance.

Cross-linking with #47109, which describes the working technique specifically as a way of dealing with the compiler's inability to efficiently scry into the multiverse of possible narrowings.

Thanks jcalz, I can never find that one when I need to 😅

Yeah, so I know about this limitation. This issue is specifically about the satisfies. Here, the type is contextually typed through the satisfies operator and the mapped type is involved in creating this type. Therefore TS wouldn't have to figure out this relationship from scratch - it could be preserved on some link or something and utilized by the checker.

The eternal war between "TypeScript should always behave simply and consistently, even if it's a little bit worse" and "You can gerrymander in a little bit of logic to make things work when they otherwise wouldn't have" rages on.

 You're in the splash zone. :wink:


chore(ui): rename fields

Main menu

[x]  Rename the "Show" menu to "View"

Device view controls

[x]  Rename "device" to "camera".
[x]  Change "display_anchors" to displayAnchors.

UI plugins

[x]  All of the UI plugins have a "-plugin" suffix, except for "selected-ui". Rename it for consistency.

@Lucaszw Please reference the commit where this was fixed.

67f4a0e317c9b57011c4fe59d8dd8e4b5a8b0b4b


refactor ipam

Use kube-ovn ipam to replace ovn dynamic address allocation. We will design more flexible ip allocation strategy and provide ipam capacity to other cni plugin later.

Looks like all IPAM data stores in memory, what if controller pod restart?

Looks like all IPAM data stores in memory, what if controller pod restart?

The initIPAM will fetch the pod annotations and init ipam data


build-ffmpeg: ffmpeg source and cmake minor version update

The previous script was breaking in the middle of compilation without this patch. Now the script will download cmake source from proper path.
Version number fetching could be made autonomous if jq could be used in all build platforms (IDK if they are prebuilt in the systems) as cmake keeps note of the latest version in a JSON file in the Release Directory.

Downloading ffmpeg source from ffmpeg.org is having problem! Tests are resulting error for this reason. 😞

Using "https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz" instead of the path from cmake.org will prevent this from breaking every time a new version is released.

Using "https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz" instead of the path from cmake.org will prevent this from breaking every time a new version is released.

I updated the version number manually, and your suggestion does the exact thing.
There's no Automation in either of our methods 👎🏼

Yes but when cmake updates to a new version the link at https://cmake.org/files/LatestRelease/ is deleted. This script fails. My method will continue to work because the github link stays valid.


Use the command line to convert 1.14.2 map, but output blank images

Environment info

BlockMap version: 1.3.0
Java version: OpenJDK Runtime Environment 18.9 (build 11.0.3+7-LTS)
Operating system: Linux localhost.localdomain 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Description

command: java -jar /root/Minecraft/1.14.2/BlockMap-1.3.0.jar render -l -o=/root/Minecraft/1.14.2/map_display /root/Minecraft/1.14.2/world_a/region  --color-map=NO_FOLIAGE
Steps to reproduce

Run commandjava -jar /root/Minecraft/1.14.2/BlockMap-1.3.0.jar render -l -o=/root/Minecraft/1.14.2/map_display /root/Minecraft/1.14.2/world_a/region  --color-map=NO_FOLIAGE
Waiting for finish.

Actual result
The output PNG image has only transparent color (1kb).

Expected result:
Screenshots

Debug log

What is the content of the '/root/Minecraft/1.14.2/world_a/region' folder?

What is the content of the /root/Minecraft/1.14.2/world_a/region folder?

r.0.0.mca  r.1.0.mca  r.0.1.mca ...
GUI mode works fine

Can you please provide the full output log of the following command?
java -jar /root/Minecraft/1.14.2/BlockMap-1.3.0.jar -v render -l -o=/root/Minecraft/1.14.2/map_display /root/Minecraft/1.14.2/world_a/region --color-map=NO_FOLIAGE

Can you please provide the full output log of the following command?
java -jar /root/Minecraft/1.14.2/BlockMap-1.3.0.jar -v render -l -o=/root/Minecraft/1.14.2/map_display /root/Minecraft/1.14.2/world_a/region --color-map=NO_FOLIAGE

[root@localhost 1.14.2]# java -jar /root/Minecraft/1.14.2/BlockMap-1.3.0.jar -v render -l -o=/root/Minecraft/1.14.2/map_display /root/Minecraft/1.14.2/world_a/region --color-map=NO_FOLIAGE
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
19-06-11 05:12:37:193 INFO  RegionRenderer [68] - Rendering region file -6 -7
19-06-11 05:12:38:200 INFO  RegionRenderer [68] - Rendering region file 2 1
19-06-11 05:12:38:296 INFO  RegionRenderer [68] - Rendering region file -6 -6
19-06-11 05:12:39:575 INFO  RegionRenderer [68] - Rendering region file 2 2
19-06-11 05:12:39:660 INFO  RegionRenderer [68] - Rendering region file -6 -5
19-06-11 05:12:40:953 INFO  RegionRenderer [68] - Rendering region file 2 3
19-06-11 05:12:41:137 INFO  RegionRenderer [68] - Rendering region file -6 -4
19-06-11 05:12:41:364 INFO  RegionRenderer [68] - Rendering region file -6 -2
19-06-11 05:12:42:171 INFO  RegionRenderer [68] - Rendering region file -6 -1
19-06-11 05:12:43:446 INFO  RegionRenderer [68] - Rendering region file -6 0
19-06-11 05:12:44:540 INFO  RegionRenderer [68] - Rendering region file -6 1
19-06-11 05:12:45:569 INFO  RegionRenderer [68] - Rendering region file -6 2
19-06-11 05:12:46:292 INFO  RegionRenderer [68] - Rendering region file -6 3
19-06-11 05:12:47:139 INFO  RegionRenderer [68] - Rendering region file -6 4
19-06-11 05:12:48:503 INFO  RegionRenderer [68] - Rendering region file -6 5
19-06-11 05:12:48:566 INFO  RegionRenderer [68] - Rendering region file 3 -2
19-06-11 05:12:48:654 INFO  RegionRenderer [68] - Rendering region file 3 -1
19-06-11 05:12:50:278 INFO  RegionRenderer [68] - Rendering region file 3 0
19-06-11 05:12:51:680 INFO  RegionRenderer [68] - Rendering region file -5 -7
19-06-11 05:12:51:726 INFO  RegionRenderer [68] - Rendering region file 3 1
19-06-11 05:12:52:664 INFO  RegionRenderer [68] - Rendering region file -5 -6
19-06-11 05:12:54:535 INFO  RegionRenderer [68] - Rendering region file 3 2
19-06-11 05:12:54:688 INFO  RegionRenderer [68] - Rendering region file -5 -5
19-06-11 05:12:55:968 INFO  RegionRenderer [68] - Rendering region file -5 -4
19-06-11 05:12:57:435 INFO  RegionRenderer [68] - Rendering region file -5 -3
19-06-11 05:12:58:262 INFO  RegionRenderer [68] - Rendering region file -5 -2
19-06-11 05:12:58:963 INFO  RegionRenderer [68] - Rendering region file -5 -1
19-06-11 05:12:59:342 INFO  RegionRenderer [68] - Rendering region file -5 0
19-06-11 05:13:00:511 INFO  RegionRenderer [68] - Rendering region file -5 1
19-06-11 05:13:01:509 INFO  RegionRenderer [68] - Rendering region file -5 2
19-06-11 05:13:02:809 INFO  RegionRenderer [68] - Rendering region file -5 3
19-06-11 05:13:05:461 INFO  RegionRenderer [68] - Rendering region file -5 4
19-06-11 05:13:06:683 INFO  RegionRenderer [68] - Rendering region file -5 5
19-06-11 05:13:06:724 INFO  RegionRenderer [68] - Rendering region file 4 -2
19-06-11 05:13:06:755 INFO  RegionRenderer [68] - Rendering region file 4 -1
19-06-11 05:13:07:374 INFO  RegionRenderer [68] - Rendering region file 4 0
19-06-11 05:13:07:860 INFO  RegionRenderer [68] - Rendering region file 4 1
19-06-11 05:13:09:603 INFO  RegionRenderer [68] - Rendering region file -4 -6
19-06-11 05:13:10:427 INFO  RegionRenderer [68] - Rendering region file 4 2
19-06-11 05:13:11:198 INFO  RegionRenderer [68] - Rendering region file -4 -5
19-06-11 05:13:12:097 INFO  RegionRenderer [68] - Rendering region file -4 -4
19-06-11 05:13:12:771 INFO  RegionRenderer [68] - Rendering region file -4 -3
19-06-11 05:13:14:256 INFO  RegionRenderer [68] - Rendering region file -4 -2
19-06-11 05:13:15:336 INFO  RegionRenderer [68] - Rendering region file -4 -1
19-06-11 05:13:16:380 INFO  RegionRenderer [68] - Rendering region file -4 0
19-06-11 05:13:17:522 INFO  RegionRenderer [68] - Rendering region file -4 1
19-06-11 05:13:18:533 INFO  RegionRenderer [68] - Rendering region file -4 2
19-06-11 05:13:19:787 INFO  RegionRenderer [68] - Rendering region file -4 3
19-06-11 05:13:20:729 INFO  RegionRenderer [68] - Rendering region file 5 0
19-06-11 05:13:20:851 INFO  RegionRenderer [68] - Rendering region file 5 1
19-06-11 05:13:22:767 INFO  RegionRenderer [68] - Rendering region file 5 2
19-06-11 05:13:22:904 INFO  RegionRenderer [68] - Rendering region file -3 -1
19-06-11 05:13:23:132 INFO  RegionRenderer [68] - Rendering region file -3 0
19-06-11 05:13:24:198 INFO  RegionRenderer [68] - Rendering region file -3 1
19-06-11 05:13:25:269 INFO  RegionRenderer [68] - Rendering region file -3 2
19-06-11 05:13:26:335 INFO  RegionRenderer [68] - Rendering region file -3 3
19-06-11 05:13:26:466 INFO  RegionRenderer [68] - Rendering region file -2 -12
19-06-11 05:13:26:547 INFO  RegionRenderer [68] - Rendering region file -2 -11
19-06-11 05:13:27:011 INFO  RegionRenderer [68] - Rendering region file -2 -10
19-06-11 05:13:27:038 INFO  RegionRenderer [68] - Rendering region file -2 -8
19-06-11 05:13:27:083 INFO  RegionRenderer [68] - Rendering region file 6 0
19-06-11 05:13:27:185 INFO  RegionRenderer [68] - Rendering region file -2 -7
19-06-11 05:13:27:249 INFO  RegionRenderer [68] - Rendering region file 6 1
19-06-11 05:13:29:135 INFO  RegionRenderer [68] - Rendering region file -2 -6
19-06-11 05:13:29:188 INFO  RegionRenderer [68] - Rendering region file 6 2
19-06-11 05:13:30:490 INFO  RegionRenderer [68] - Rendering region file -2 -5
19-06-11 05:13:30:527 INFO  RegionRenderer [68] - Rendering region file 6 3
19-06-11 05:13:30:744 INFO  RegionRenderer [68] - Rendering region file -2 -4
19-06-11 05:13:30:810 INFO  RegionRenderer [68] - Rendering region file -2 -3
19-06-11 05:13:31:558 INFO  RegionRenderer [68] - Rendering region file -2 -2
19-06-11 05:13:32:286 INFO  RegionRenderer [68] - Rendering region file -2 -1
19-06-11 05:13:33:390 INFO  RegionRenderer [68] - Rendering region file -2 0
19-06-11 05:13:34:423 INFO  RegionRenderer [68] - Rendering region file -2 1
19-06-11 05:13:35:511 INFO  RegionRenderer [68] - Rendering region file -2 2
19-06-11 05:13:36:488 INFO  RegionRenderer [68] - Rendering region file -2 3
19-06-11 05:13:37:016 INFO  RegionRenderer [68] - Rendering region file -2 4
19-06-11 05:13:37:658 INFO  RegionRenderer [68] - Rendering region file -2 5
19-06-11 05:13:38:465 INFO  RegionRenderer [68] - Rendering region file -10 -2
19-06-11 05:13:38:751 INFO  RegionRenderer [68] - Rendering region file -2 6
19-06-11 05:13:39:364 INFO  RegionRenderer [68] - Rendering region file -10 -1
19-06-11 05:13:39:583 INFO  RegionRenderer [68] - Rendering region file -2 7
19-06-11 05:13:39:634 INFO  RegionRenderer [68] - Rendering region file -2 8
19-06-11 05:13:39:720 INFO  RegionRenderer [68] - Rendering region file -2 9
19-06-11 05:13:39:881 INFO  RegionRenderer [68] - Rendering region file -2 10
19-06-11 05:13:40:029 INFO  RegionRenderer [68] - Rendering region file -2 11
19-06-11 05:13:40:071 INFO  RegionRenderer [68] - Rendering region file -1 -12
19-06-11 05:13:40:297 INFO  RegionRenderer [68] - Rendering region file -1 -11
19-06-11 05:13:42:254 INFO  RegionRenderer [68] - Rendering region file -1 -10
19-06-11 05:13:43:614 INFO  RegionRenderer [68] - Rendering region file -1 -9
19-06-11 05:13:44:710 INFO  RegionRenderer [68] - Rendering region file -1 -8
19-06-11 05:13:46:459 INFO  RegionRenderer [68] - Rendering region file 7 0
19-06-11 05:13:46:558 INFO  RegionRenderer [68] - Rendering region file -1 -7
19-06-11 05:13:48:698 INFO  RegionRenderer [68] - Rendering region file 7 1
19-06-11 05:13:50:780 INFO  RegionRenderer [68] - Rendering region file -1 -6
19-06-11 05:13:52:799 INFO  RegionRenderer [68] - Rendering region file 7 2
19-06-11 05:13:54:521 INFO  RegionRenderer [68] - Rendering region file -1 -5
19-06-11 05:13:56:093 INFO  RegionRenderer [68] - Rendering region file 7 3
19-06-11 05:13:56:212 INFO  RegionRenderer [68] - Rendering region file -1 -4
19-06-11 05:13:57:705 INFO  RegionRenderer [68] - Rendering region file -1 -3
19-06-11 05:13:59:078 INFO  RegionRenderer [68] - Rendering region file -1 -2
19-06-11 05:14:00:197 INFO  RegionRenderer [68] - Rendering region file -1 -1
19-06-11 05:14:01:258 INFO  RegionRenderer [68] - Rendering region file -1 0
19-06-11 05:14:02:368 INFO  RegionRenderer [68] - Rendering region file -1 1
19-06-11 05:14:03:507 INFO  RegionRenderer [68] - Rendering region file -1 2
19-06-11 05:14:04:676 INFO  RegionRenderer [68] - Rendering region file -1 3
19-06-11 05:14:06:218 INFO  RegionRenderer [68] - Rendering region file -1 4
19-06-11 05:14:08:175 INFO  RegionRenderer [68] - Rendering region file -1 5
19-06-11 05:14:09:938 INFO  RegionRenderer [68] - Rendering region file -1 6
19-06-11 05:14:11:434 INFO  RegionRenderer [68] - Rendering region file -9 -2
19-06-11 05:14:12:305 INFO  RegionRenderer [68] - Rendering region file -1 7
19-06-11 05:14:13:582 INFO  RegionRenderer [68] - Rendering region file -9 -1
19-06-11 05:14:14:965 INFO  RegionRenderer [68] - Rendering region file -1 8
19-06-11 05:14:16:095 INFO  RegionRenderer [68] - Rendering region file -9 0
19-06-11 05:14:16:808 INFO  RegionRenderer [68] - Rendering region file -1 9
19-06-11 05:14:18:455 INFO  RegionRenderer [68] - Rendering region file -9 1
19-06-11 05:14:18:509 INFO  RegionRenderer [68] - Rendering region file -1 10
19-06-11 05:14:20:374 INFO  RegionRenderer [68] - Rendering region file -1 11
19-06-11 05:14:21:295 INFO  RegionRenderer [68] - Rendering region file 0 -12
19-06-11 05:14:21:406 INFO  RegionRenderer [68] - Rendering region file 0 -11
19-06-11 05:14:22:419 INFO  RegionRenderer [68] - Rendering region file 0 -10
19-06-11 05:14:23:459 INFO  RegionRenderer [68] - Rendering region file 0 -9
19-06-11 05:14:24:319 INFO  RegionRenderer [68] - Rendering region file 0 -8
19-06-11 05:14:25:167 INFO  RegionRenderer [68] - Rendering region file 8 0
19-06-11 05:14:25:191 INFO  RegionRenderer [68] - Rendering region file 0 -7
19-06-11 05:14:25:294 INFO  RegionRenderer [68] - Rendering region file 8 1
19-06-11 05:14:25:434 INFO  RegionRenderer [68] - Rendering region file 0 -6
19-06-11 05:14:25:704 INFO  RegionRenderer [68] - Rendering region file 8 2
19-06-11 05:14:26:168 INFO  RegionRenderer [68] - Rendering region file 0 -5
19-06-11 05:14:26:235 INFO  RegionRenderer [68] - Rendering region file 8 3
19-06-11 05:14:26:293 INFO  RegionRenderer [68] - Rendering region file 0 -4
19-06-11 05:14:26:397 INFO  RegionRenderer [68] - Rendering region file 0 -3
19-06-11 05:14:27:506 INFO  RegionRenderer [68] - Rendering region file 0 -2
19-06-11 05:14:28:674 INFO  RegionRenderer [68] - Rendering region file 0 -1
19-06-11 05:14:29:774 INFO  RegionRenderer [68] - Rendering region file 0 0
19-06-11 05:14:30:875 INFO  RegionRenderer [68] - Rendering region file 0 1
19-06-11 05:14:32:500 INFO  RegionRenderer [68] - Rendering region file 0 2
19-06-11 05:14:33:634 INFO  RegionRenderer [68] - Rendering region file 0 3
19-06-11 05:14:34:935 INFO  RegionRenderer [68] - Rendering region file 0 4
19-06-11 05:14:35:196 INFO  RegionRenderer [68] - Rendering region file 0 5
19-06-11 05:14:35:318 INFO  RegionRenderer [68] - Rendering region file -8 -2
19-06-11 05:14:35:343 INFO  RegionRenderer [68] - Rendering region file 0 6
19-06-11 05:14:35:764 INFO  RegionRenderer [68] - Rendering region file -8 -1
19-06-11 05:14:35:901 INFO  RegionRenderer [68] - Rendering region file 0 7
19-06-11 05:14:37:089 INFO  RegionRenderer [68] - Rendering region file -8 0
19-06-11 05:14:38:673 INFO  RegionRenderer [68] - Rendering region file 0 8
19-06-11 05:14:39:860 INFO  RegionRenderer [68] - Rendering region file -8 1
19-06-11 05:14:40:844 INFO  RegionRenderer [68] - Rendering region file 0 9
19-06-11 05:14:41:231 INFO  RegionRenderer [68] - Rendering region file -8 2
19-06-11 05:14:41:311 INFO  RegionRenderer [68] - Rendering region file 0 10
19-06-11 05:14:41:488 INFO  RegionRenderer [68] - Rendering region file 0 11
19-06-11 05:14:41:544 INFO  RegionRenderer [68] - Rendering region file 1 -3
19-06-11 05:14:43:041 INFO  RegionRenderer [68] - Rendering region file 1 -2
19-06-11 05:14:44:740 INFO  RegionRenderer [68] - Rendering region file 1 -1
19-06-11 05:14:46:057 INFO  RegionRenderer [68] - Rendering region file -7 -8
19-06-11 05:14:47:003 INFO  RegionRenderer [68] - Rendering region file 1 0
19-06-11 05:14:48:165 INFO  RegionRenderer [68] - Rendering region file -7 -7
19-06-11 05:14:49:055 INFO  RegionRenderer [68] - Rendering region file 1 1
19-06-11 05:14:49:771 INFO  RegionRenderer [68] - Rendering region file -7 -6
19-06-11 05:14:50:899 INFO  RegionRenderer [68] - Rendering region file 1 2
19-06-11 05:14:51:995 INFO  RegionRenderer [68] - Rendering region file -7 -5
19-06-11 05:14:52:147 INFO  RegionRenderer [68] - Rendering region file 1 3
19-06-11 05:14:53:298 INFO  RegionRenderer [68] - Rendering region file 1 4
19-06-11 05:14:53:329 INFO  RegionRenderer [68] - Rendering region file -7 -2
19-06-11 05:14:53:603 INFO  RegionRenderer [68] - Rendering region file -7 -1
19-06-11 05:14:54:474 INFO  RegionRenderer [68] - Rendering region file -7 0
19-06-11 05:14:55:760 INFO  RegionRenderer [68] - Rendering region file -7 1
19-06-11 05:14:57:008 INFO  RegionRenderer [68] - Rendering region file -7 2
19-06-11 05:14:57:790 INFO  RegionRenderer [68] - Rendering region file 2 -3
19-06-11 05:14:58:468 INFO  RegionRenderer [68] - Rendering region file 2 -2
19-06-11 05:14:59:308 INFO  RegionRenderer [68] - Rendering region file 2 -1
19-06-11 05:15:00:404 INFO  RegionRenderer [68] - Rendering region file -6 -8
19-06-11 05:15:00:730 INFO  RegionRenderer [68] - Rendering region file 2 0
[root@localhost 1.14.2]#

Hm, this is strange, especially if you say that the GUI works. Would you mind sending me your world that doesn't work so I can try to reproduce this?

Hm, this is strange, especially if you say that the GUI works. Would you mind sending me your world that doesn't work so I can try to reproduce this?

Can you provide an email?

Did you receive my mail?

Did you receive my mail?

Sorry, I just saw it, I have already replied.

I tried to reproduce it, but for me it renders just fine. A few images are blank, but this is expected since those region files are empty; all other ones show the correct content.

Can you tell me the Java version and other required component versions?  I will try again.

The strange thing is that this map can be converted normally when it is 1.13.2, but when I use the client to upgrade the map to 1.14, it can only output blank images.

I can use it after recompiling with the source code.

Hm, that's strange. Glad it works for you now.


Prefill comment, website and other similar options

what

I don't get it though

He means setting things to pre-fill in user settigns (e.g. website URL) and then when upload form is loaded the website URL will be automatically there


Use rel="noopener noreferrer" in anchor tags for external links

Feature Suggestion

When creating an anchor tag or a Link component from Material UI, if the link points to an external website, we should add rel="noopener noreferrer" to it for security reasons.
Possible Implementation

Change https://github.com/spotify/backstage/blob/b407dbf724473d07d36c9bef46ce918c9790e5cc/plugins/techdocs/src/reader/components/TechDocsPageHeader.tsx#L69-L69
to
            <a href={locationMetadata.target} target="_blank" rel="noopener noreferrer">

Also change any Link components pointing to external websites. (Not sure exactly how to find them apart from manually doing a search for <Link)
Context

https://github.com/spotify/backstage/security/code-scanning/10?query=ref%3Arefs%2Fheads%2Fmaster
https://material-ui.com/components/links/#security

Screenshot with security explanation

I would like to work on it.


[Tools] Fix parsing of new lsblk JSON output format in diskutils

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary

In diskutils.go, the blockDeviceInfo struct is populated by lsblk's json output. In util-linux 2.33, the output format was changed from "every value is a string!" to "let's use the number type where it makes sense to do so". The current type of blockDeviceInfo.Size is string, so we get an error trying to unmarshal input from the newer util-linux versions. By changing Size to be a json.Number, the unmarshaler knows that it should accept either a quoted string or a number input.
It's a bit odd that the unmarshaler accepts a string for json.Number... but the type underlying json.Number seems to be just a string, so we roll with it.
Currently we ship util-linux 2.32, so our installer isn't currently broken. However, it's still possible to trigger this error locally by having a more recent version of util-linux on your dev box and running the installer manually using go run toolkit/tools/imagegen/attendedinstaller/manualrun/manualrun.go, since that version uses local lsblk to populate blockDeviceInfo.
Change Log

Change the type of blockDeviceInfo.Size to json.Number
Add test for above change

Does this affect the toolchain?

NO
Test Methodology

Local test of installer + go test added

This has been fixed in dev already, to keep things consistent I'd recommend cherry picking the dev commit when it becomes an issue for 1.0-dev: #572

Ah, so it looks like the solution in dev does not cover the data contract from the older versions of util-linux. The solution in this PR covers both the old and new data contracts. That makes it possible for us to keep compatibility with the version of util-linux still in 1.0-dev, while still letting me manually run the attendedinstaller from my local machine with a newer version of util-linux.
@schmittjoseph What are your thoughts on taking this solution into 1.0-dev, and cherry-picking this PR into dev?


The importance of momentum encoder.

Hi, thanks for providing the great work.
From Table 14, it seems that the momentum encoder is a significant component for vit-based model.
Specifically, the SwAV achieve 71.8 with deit-s/16 model, which is lower than the performance on resnet-50, but when replacing the teacher network with momentum updated network, the performance seems higher than resnet-50, reaching 76.0.
So I want to know why momentum encoder is so important to vit-based models. Is there any insight to explain that?

A few excerpts from the article:

Hi @WangFeng18
We have indeed observed that using a momentum network works particularly well when training ViT-based models compared to convnets. It is an empirical observation and we don't have much explanation why this is the case. We have made this observation for SwAV vs DINO and also for SimCLR vs MoCo (SimCLR and MoCo have comparable performance in our experiments with RN50 but MoCo works much better with ViT).
Hope that helps a bit.


New package: PLACE.IA.CS7 version 1.0.2

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

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

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

No errors to post.

(Automated response - build 841.)

For moderators
This account is automated by Github Actions and the source code was created by CoolPlayLin. If you have any questions about any pull request, don't hesitate to ping Exorcism0666.

[!warning]
With the new version of Komac, numerous Pull Requests may contain bugs or unwanted elements. If such issues arise, please tag russellbanks so that these bugs can be addressed in future updates.

[!important]
Please carefully review these Pull Request before merging. If it is a Pull Request for removing incorrect content and the URLs are issue, free upon manual checking, please close this Pull Request directly. (It is best to inform Exorcism0666 of the closure.)

良い一日をお過ごしください！

Hi @Exorcism0666,
This package added itself under the Cevio folder. Is CeVIO.CeVIOAI a dependency for this package, as it has been for others?

Automatic Validation ended with:
(Automated response - build 855.)


Gracefully fail on Android <4.4

Currently, running an app containing this plugin on a device with Android 4.2 or below results in a native crash:
FATAL EXCEPTION: pool-1-thread-2
java.lang.NoClassDefFoundError: android.security.KeyPairGeneratorSpec$Builder
   at com.crypho.plugins.RSA.createKeyPair(RSA.java:40)
   at com.crypho.plugins.SecureStorage$1.run(SecureStorage.java:47)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
   at java.lang.Thread.run(Thread.java:856)

This pull request adds version detection to handle this more gracefully and invoke the error callback if the Android version is <4.4 (the minimum supported version as stated in README.md)

Ah thank you so much for this :) Can you think of a way to add a test for this too?

The crash is pretty easy to to reproduce on Android 4.2 or below: as soon as you resume the app from background, the onResume handler in SecureStorage.java kicks in and causes the exception above.
So resuming from background is a good test - with this new functionality, it just logs an error to logcat instead.
I've created a simple Cordova test app to validate the changes, if that's any use? I could put it a Github repo if it helps?

I was thinking more in terms of our automated tests. If you could add one that runs conditionally (if the device the test runs on is <4.4) and asserts that the error is thrown it would be great. If it's hard, leave it and someone is bound to add it later :)

Oh, I see. I'll have a look at your automated tests and see if I can come up with one for this scenario.

I've added an automated test to validate this graceful error handling of unsupported Android versions.

Thank you! Beautifully done :) Mind adding an entry to the changelog with your details? I will release asap.

Changelog updated and version bumped


feat: Update EDV provider dependency, update golintci, update go docker

Resolves some go module issues that appeared from the previous commit.
Changes include:

Updated the component/storage/edv dependency
Updated golintci version
Updated Golang docker version for building images

Note that many linters were temporarily disabled for this commit. They will be re-enabled (and code updated) in a future commit.
Signed-off-by: Derek Trider<EMAIL_ADDRESS>

Created some important followup issues: #3419 and #3420


Feature/bootstrap4

Description
Added Bootstrap4 support to this plugin.
Summarize

changed templates for ui components according to bootstrap4
install bootstrap assets via npm and added post-install-cmd to composer.json to simplify the install process
changed bake templates according to bootstrap4
changed default and sample layouts
removed components, which are deprecated in bootstrap4. See Migrating to v4.

Further Changes

FormHelper's inline templates may be reworked.
Since Bootstrap4 dropped support for glyphicons, HtmlHelper's icon() function needs to be reworked.

Related Issues
This PR addresses the following issues.
fixes #103, #193

@jotpe I think we can update HtmlHelper::icon() and any templates which use glyphicon to instead use font-awesome by default.

@julianpollmann I pushed a commit to use font awesome. :)

Test failing for BootstrapShell.

I tested it and it works nicely.
The only thing I couldnt get to work was the fade in flash messages. I had to
.fade {
    opacity: inherit;
}

here.
We could also set up an updated v4 version @ https://sandbox.dereuromark.de/sandbox/bootstrap
Show case all things in real time / life.

@dereuromark Having a demo on your sandbox for v4 sounds great. That would help us test and fix any remaining issues. Can you setup a demo using the develop branch?

The test for BootstrapShell most likely fails because the TwbsAssets task bails out if npm is not found. So you need to add a check to skip the test too if npm is not available.

Merging so that people can start trying out the develop branch. Hopefully someone will contribute a fix for the tests issue I pointed out above soon.


feat: Optional direction check when querying a port index

So connect throws an error when passed invalid ports, but we still support usizes.
Closes #565. I choose not to allow backwards edges as that introduces a new failure mode when the directions are the same (and weird behaviour when passed one Port and one usize).

Accepting ports in reverse order in connect is possible, but it'd mean that in
hugr.connect(n1, Port::new_outgoing(4), n2, 3);
hugr.connect(n1, Port::new_incoming(4), n2, 3);

the 3 offset would refer to an input or output depending on the other port.
I feel that may lead to buggy code, but I'm happy to implement it anyways.

Then in functions you take impl TryInto<IncomingPort> and impl TryInto<OutgoingPort> arguments. At least for me, this would make the API clearer.

Or leave it to the client to do the .try_into() conversion.

Not strictly needed, but it unifies all the thinks you can call index() on.