(RDF) typing of GAMSO and GSBPM entries

I now understand that ActivityCategory is used to type both entries from the GAMSO and from the GSBPM schemes. This is fine I guess (although not common), but in that case I suggest that ActivityArea, which is used to type only the first level of GAMSO entries, is made a subclass of ActivityCategory. This would better reflect the fact that all entries from the GAMSO are ActivityCategories, but some only are also ActivityArea. This would also make is consistent because these Concepts are part of the hierarhy, and as such could be used as values for a dcterms:type predicate from a prov:Activity.

When we want to describe an activity that is not a production activity, it will be an instance of coos:Activity, and it is expected that its dcterms:type is taken from the GAMSO (and not the GSBPM). The model currently does not allow this distinction because both GSBPM and GAMSO entries share the same OWL class : ActivityCategory.
It is then suggested to introduce a new OWL class ProductionActivityCategory (or rather ProductionActivityType) as a subClassOf ActivityCategory. Concept in the GAMSO scheme would have the type ActivityCategory, and concepts from the GSBPM would have the type ProductionActivityCategory. This would reflect the fact that GSBPM is an extension of the GAMSO.

Regarding the question on ActivityArea, the spec reads "The GAMSO activity areas are not really activities by themselves, but rather “boxes” used to classify the activities".  From a SKOS perspective, this should entail that these entries are skos:Collection and not skos:Concept. This way it is clear that they cannot be used as a value to type real activities.

Note : the option described above would entail that ActivityArea is a subClassOf skos:Collection instead of skos:Concept.

The proposition above is consistent with SKOS, however, if ActivityAreas are turned into skos:Collection, we cannot express the skos:exactMatch relation between gamso activityArea/4 and gsbpm statisticalProductionProcess.
Either :

this relation is dropped
it is replaced by an rdfs:seeAlso to gsbpm statisticalProductionProcess (there is already a seeAlso to the gsbpm scheme)
this collection adds skos:member relationship to all Concepts from the GSBPM. This is somehow the solution described further in the document:

... and the GSBPM would not be a concept scheme anymore but rather a skos:Collection

With solution 3 above, the GAMSO activity area 4 would act as such a skos:Collection of all GSBPM entries

It is then suggested to introduce a new OWL class ProductionActivityCategory

If this is implemented, this would allow to introduce a formal axiom on ProductionActivity, to indicate that it corresponds to any StatisticalActivity with a dcterms:type that takes its value in a ProductionActivityCategory.


Deep Pick/Omit

It would be cool if we could extend the existing pick/omit utilities to pick/omit deeply where possible.
eg.
const DeepSchema = z.object({
    a: z.object({
      b: z.string(),
      c: z.string(),
    }),
  });

const DeepPickSchema = DeepSchema.pick({
  a: { b: true }
});

// Equivalent of:
z.object({
  a: DeepSchema.shape.a.pick( { b: true } )
});

I'm trying to work on this now but it's difficult to tame the types!
This seems to work for the input of mask:
type DeepMask<T> = T extends ZodObject<infer Shape>
  ? DeepMask<Shape>
  : T extends ZodRawShape
  ? {
      [k in keyof T]?: true | DeepMask<T[k]>;
    }
  : never;

Actually this might not have too much value given none of the other types are pickable


Suggested example for use in web application debugging

I thought it might be useful to add the following snippet to the README file to help users get started with the library:
package main

import (
    "fmt"
    "net/http"

    "github.com/davecgh/go-spew/spew"

)

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "text/html")
    fmt.Fprintf(w, "Hi there, %s!", r.URL.Path[1:])
    fmt.Fprintf(w, "<!--\n" + spew.Sdump(w) + "\n-->")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

If you're OK with something like this, I'll send a pull request.

I'd like to point out an issue with the code you posted.
fmt.Fprintf(w, "<!--\n" + spew.Sdump(w) + "\n-->")

This is unsafe. You're inserting plain text into HTML without escaping it. It's possible one of the values being dumped may contain the string sequence --> which will cause the HTML comment block to end and create possible HTML errors, etc.
That problem can be fixed by escaping the HTML. Go has such functionality available in standard library, so it's trivial to do:
fmt.Fprintf(w, "<!--\n" + html.EscapeString(spew.Sdump(w)) + "\n-->")

See https://godoc.org/html#EscapeString.

Sure, I'll accept a pull request for it.  However, as @shurcooL pointed out, please ensure you escape the HTML to avoid having an example that would permit malicious use.

https://github.com/davecgh/go-spew/pull/34


Nova 4 support

Hi,
Will this plugin be updated to Nova 4 ?

Please update to Nova 4

Any news on this?

+1 Please update to nova 4

use this :
https://github.com/wamesk/laravel-nova-rating-field


Create step-by-step guide for setting up Fælleskommunal Adgangsstyring

Create a short and easy to read and service/product agnostic step by step guide in plain english,  for how to get up and running with Fælleskommunal Adgangsstyring (FK.ADG).
Target Audience is development and hosting suppliers that wants to set up SSO with FK.ADG and prefers a short "Quickstart" abstract of the current longer more convoluted documentation in danish.
Work in progress here ➡  Guide

The bulky and slow onboarding program has finally been replaced by a written guide. --> https://digitaliseringskataloget.dk/tilslutningsguide
This issue should be revisited and the official guide evaluated.. Does the official guide deliver what is needed for a new supplier to connect a service to FKAS?


OrderBy filters null values

An OrderBy invocation is filtering out those entities that have null for the value of the ordered property. Example code:
[Entity]
public interface IEntity
{
    string Id
    {
        get;
    }

    string Property
    {
        get;
        set;
    }
}

using (var context = new MyEntityContext(connectionString))
{
    var entity = context.Entities.Create();
    entity.Property = "a";
    entity = context.Entities.Create();
    entity.Property = null;
    entity = context.Entities.Create();
    entity.Property = "c";
    context.SaveChanges();
}

using (var context = new MyEntityContext(connectionString))
{
    var ordered = context
        .Entities
        .OrderBy(x => x.Property)
        .ToList();

    foreach (var item in ordered)
    {
        Console.WriteLine("{0} : {1}", item.Id, item.Property);
    }
}

Sample output:
c65d08ad-8df2-45ea-bbef-bbee5305bd20 : a
11fd3908-2211-42de-85a3-2252373bbb75 : c
DONE

The entity with Property == null is filtered out instead of appearing first in the list as I would have expected.

Ah, that is because in the underlying store the entity doesn't have a property at all. When a property is set to null there is nothing in the store. This is really in the nature of using a triple store underneath the entity framework. In this case, if you actually want all of the entities then I would do the sort on the list returned by the LINQ query:
var all = context context.Entities.ToList();
foreach(var item in all.OrderBy(x=>x.Property) {
   ...
}

If you really want to page the items rather than pull them all out then I would recommend that you decide if NULL sorts high or low and then factor in a separate query to find those that does the query for Property==NULL before (or after) the ordered query.

This would be worth adding to the EF docs


bugs with ponder creation

texts are off
not light enough dynamicly

This is very old, didn't touch ponder in a while. No reason to assume our issues stayed, closing for now.


Improve add_geotop_to_regis_hlc

The function to combine regis and geotop add_geotop_to_regis_hlc is very rigid. Is assumes there are no layers above the Holoceen in Regis. This usually works but I think a general function in which you can choose more layers that you want to replace with geotop is better.

Lower priority, compare with other methods written by Ruben.


[Enhancement] Eliminate the need for reportAllCodes

Eliminate the need for reportAllCodes as it is not part of the lock codes capability.  Low priority, just nice to have.

Just kidding, this is in v1.0


feat: add emotes command

This command lists the emotes in a server, chunked by every 50 to ensure the maximum size of an embed is not exceeded (shocker but yes I had that happen with Ribbon).
Open question: 2 ways to ensure this works

Remove sweeping emojis from Skyra entirely
Keep the current implementation inside the command (lines 55-59). Advantage of this is that the cache of emojis will only hold the emojis of the servers that ran this command.
Current implementation:
https://github.com/kyranet/Skyra/blob/4e39caeb4b11ec2e33a5a8d28ddb235349496813/src/commands/Tools/emotes.ts#L55-L59

sweeping removed in fb8d498


🐛 Fixed key name for text-only email content

closes #11917

Pass text-only version to mailgun as text not plaintext
This not only ensures we send fallback text content, but also changes the Content-Type header from ASCII to utf-8
Sending an ASCII header adds points to our spam score, and is really not desirable

The problem is that we send mailgun the plaintext post format as part of the email message with the key plaintext, where mailgun expects text. Changing that on just this line fixes the email, sends a text version with the right header.
However, this also means the email_preview API changes. So it requires changes in Ghost Admin too. Not a problem, but much bigger than a simple fix.
Alternatively I could just add a line here mapping plaintext to text before sending to mailgun.
Comparing Solutions
Change plaintext to text everywhere for email
Pro:

In email land, this field is always called text, not plaintext. It's therefore clearer & more correct.
We don't have to remember we've got one single line mapping values specifically for mailgun

Cons:

In post land, html and plaintext are our format names, them being different for email is maybe confusing
It's a bigger change

Map plaintext to text just prior to sending emails
Pro:

much smaller change for now
our format names stay consistent

Con:

have to remember that line of code is there
doesn't feel like the "right" fix atm

I'm leaning heavily towards fully changing plaintext to text everywhere for email, but wanted to check what you think first @kevinansfield & @naz.

I'm leaning more towards the latter solution - Map plaintext to text just prior to sending emails. My reasoning is that it feels wrong to break our internal convention for the sake of fitting with the external service. Just had a look around how other email service go about naming for text-only fields:

Sendgrid - goes with `type: “text/plain” (reference - https://sendgrid.com/docs/api-reference/, after it loads search for "text/plain”, they butchered their docs so badly :scream_cat: )
Mailjet - goes with TextPart (reference)
Amazon SES - goes with text just like MailGun does (reference)

have to remember that line of code is there

Agree on the downside here. That said, if we ever to switch to other provider or add support for custom ones, it's not guaranteed  they will have the same "text" naming as MailGun does. We will probably end up having to write separate adapters for each new mailing service and would have to map fields. This one line of code would eventually end up being a line in the adapter, which is ok imo.

OK 👍
The minimal fix is significantly simpler. If text isn't clearly always the correct term in email land then I think it makes sense to do the minimal thing and at least have internal consistency.
Closing in favour of https://github.com/TryGhost/Ghost/pulls


Suppress deprecation warnings

yazi --debug output
Yazi
    Version: 0.4.1 (Homebrew 2024-12-10)
    Debug  : false
    Triple : aarch64-apple-darwin (macos-aarch64)
    Rustc  : 1.83.0 (90b35a62 2024-11-26)

Ya
    Version: 0.4.1 (Homebrew 2024-12-10)

Emulator
    Brand.from_env      : Some(Kitty)
    Emulator.detect     : Emulator { kind: Left(Kitty), light: true, cell_size: Some((15, 27)) }
    Emulator.detect_full: Ok(Emulator { kind: Left(Kitty), light: true, cell_size: Some((15, 27)) })

Adapter
    Adapter.matches: Kgp

Desktop
    XDG_SESSION_TYPE           : None
    WAYLAND_DISPLAY            : None
    DISPLAY                    : None
    SWAYSOCK                   : None
    HYPRLAND_INSTANCE_SIGNATURE: None
    WAYFIRE_SOCKET             : None

SSH
    shared.in_ssh_connection: false

WSL
    WSL: false

NVIM
    NVIM          : false
    Neovim version: 0.10.2

Variables
    SHELL           : Some("/opt/homebrew/bin/fish")
    EDITOR          : Some("nvim")
    VISUAL          : None
    YAZI_FILE_ONE   : None
    YAZI_CONFIG_HOME: None
    YAZI_ZOXIDE_OPTS: None
    FZF_DEFAULT_OPTS: None

Text Opener
    default     : Some(Opener { run: "${EDITOR:-vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block-create: Some(Opener { run: "${EDITOR:-vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block-rename: Some(Opener { run: "${EDITOR:-vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })

Multiplexers
    TMUX               : 0
    tmux version       : No such file or directory (os error 2)
    tmux build flags   : enable-sixel=Unknown
    ZELLIJ_SESSION_NAME: None
    Zellij version     : No such file or directory (os error 2)

Dependencies
    file          : 5.41
    ueberzugpp    : No such file or directory (os error 2)
    ffmpeg/ffprobe: 7.1 / 7.1
    pdftoppm      : No such file or directory (os error 2)
    magick        : 7.1.1-41
    fzf           : 0.56.3
    fd/fdfind     : 10.2.0 / No such file or directory (os error 2)
    rg            : 14.1.1
    chafa         : No such file or directory (os error 2)
    zoxide        : 0.9.6
    7z/7zz        : 17.05 / No such file or directory (os error 2)
    jq            : 1.7.1

Clipboard
    wl-copy/paste: No such file or directory (os error 2) / No such file or directory (os error 2)
    xclip        : No such file or directory (os error 2)
    xsel         : No such file or directory (os error 2)

Please describe the problem you're trying to solve
After updating Yazi to the latest version, deprecation warnings from plugins using old functions are popping up everywhere. They clutter the interface and make it really hard to use Yazi. I know the plugin developers are already working on updates, but in the meantime, I can’t do much because the warnings won’t go away.
Would you be willing to contribute this feature?

[ ] Yes, I'll give it a shot

Describe the solution you'd like
It would be great to have an option to hide or suppress these deprecation warnings temporarily. Maybe a toggle in the settings or a config flag? That way, the interface stays clean, and I can keep using Yazi without the warnings taking over while waiting for plugins to get updated.
Additional context
No response
Checklist

[X] I have searched the existing issues/discussions
[X] The latest nightly build doesn't already have this feature

These warnings (compatibility layer) will be completely removed in the next version 0.4.2, so adding a way to disable them might not be unnecessary, as they will be gone anyway with the release of the next version.
However, we might still need to consider the timing of their removal. I mean, if a new critical bug is reported and we need to release a quick fix version 0.4.2, similar to how we did with 0.4.1, then the removal process might be delayed until 0.4.3. At that point, it might make more sense to reconsider whether adding an option to disable the warnings would be a good idea

If I understand correctly, you are going to remove the complete compatibility layer? That is going to break the plugins when they are not updated till then, which technically solves this issue, but not really 😬
The developer of dual-pane.yazi already said it will take them a while to make the plugin compatible with 0.4 (https://github.com/dawsers/dual-pane.yazi/issues/5).
It would be nice to retain compatibly for a while, and still not have the deprecation warnings interrupt users.

Yes, removing the compatibility layer is part of the 0.4.2 plan (as described in the migration docs), but it's not set in stone - I'm continuously assessing the right time to remove it to ensure it doesn't have too much impact on the plugin ecosystem.
Note that, unless any new critical bugs are reported, 0.4.2 is not expected to arrive too soon, and if 0.4.2 has to be a quick patch release, the removal will be delayed until 0.4.3.

Ok 👍
Please consider a toggle for deprecation warnings in the meantime. And thank you for making yazi 🥇

Please try https://github.com/sxyazi/yazi/pull/2027

I came here, after reading the discussion, and I want to thank you @sxyazi, open-source deserve ❤ not 😬


Clean up duplicated assign code

fixes #29

Verified that @azu has signed the CLA. Thanks for the pull request!

Looks good, thanks!


Fixing wiki's US viewers

As pointed out by @Harsh5557,  as of Dec 12 2018, the wiki flag is broken. This is probably due to a change in formatting on wikipedia's side, and needs to be fixed urgently.
This is a high priority issue. This is relatively easy, the variables need to be printed out and seems to be a 2-3 hour task once an understanding of the code and wikipedia's relevant page is obtained.
Recreation:
$ python scrape_views.py -w -a -s "Two and a half men"
Detected wiki link: https://en.wikipedia.org/wiki/List_of_Two_and_a_Half_Men_episodes
Number of seasons 12
Season  1
		Episode 1
Traceback (most recent call last):
  File "/home/kaustubh/GitHub/rose/scrape_views.py", line 302, in <module>
    views, average = wikiscrape(wikiurl)
  File "/home/kaustubh/GitHub/rose/scrape_views.py", line 87, in wikiscrape
    numviews = float(filter(None, re.findall(floating_point, views))[0])
TypeError: 'filter' object is not subscriptable

Another fix to be added here is line 84 has to be resolved to:
            if len(found) == 0: # updated from ">" to "=="
                episodeviews = '-'

After Replacing numviews with
numviews = float([ _f for _f in re.findall(floating_point, views) if _f ][0]) I am not getting the error.

That's great !
Would you like to submit a PR for this, once your existing work is merged ?

Yeah Sure.


Updates to the intervention review page

moved page navigation into a service
updated intervention selection menu to better layout the buttons
intervention count badge now updates to show currently available intervention count
you can now delete an intervention from the list which updated the view and url query params
intervention review top panel has updates to include name and id
updated intervention summary panel to match issue #670
rolled back the package.json version to original to persuade release-me-please to debork
use current year and intervention baseYear is missing in summary card

To test

adding a new intervention updates the list and the shopping basket counter
removing an intervention updates the list and shopping basket counter
refreshing the page will show the expected number of interventions

Notes
The way that interventions are added and which component is monitoring the output needs refactoring at some point. However, in interests of tidying up end of sprint i've focussed on fixing and tweaking to get desired functionality.

@bgsandan bump for review!

@jlczapski  bumping for review


Support relationship aliases

From the spec:

Note: A server may choose to expose a deeply nested relationship such as comments.author as a direct relationship with an alias such as comment-authors. This would allow a client to request /articles/1?include=comment-authors instead of /articles/1?include=comments.author. By abstracting the nested relationship with an alias, the server can still provide full linkage in compound documents without including potentially unwanted intermediate resources.

Even if user code converts an alias into a full path, it's impossible to include a deeply nested relationship without including all intermediate resources. So this functionality needs to be a part of the library.

Just realised that it is possible to support relationship aliases already - serialisers just have to add a new relationship method for the alias. So we don't need to do anything here.


HBASE-23627 Resolved remaining Checkstyle violations in hbase-thrift

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
2m  8s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s
The patch appears to include 2 new or modified test files.

_ master Compile Tests _

+1 :green_heart:
mvninstall
5m 28s
master passed

+1 :green_heart:
compile
0m 33s
master passed

+1 :green_heart:
checkstyle
0m 39s
master passed

+1 :green_heart:
shadedjars
4m 38s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 34s
master passed

+0 :ok:
spotbugs
1m 31s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
1m 30s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m  0s
the patch passed

+1 :green_heart:
compile
0m 34s
the patch passed

+1 :green_heart:
javac
0m 34s
the patch passed

+1 :green_heart:
checkstyle
0m 36s
hbase-thrift: The patch generated 0 new + 0 unchanged - 4 fixed = 0 total (was 4)

+1 :green_heart:
whitespace
0m  1s
The patch has no whitespace issues.

+1 :green_heart:
shadedjars
4m 36s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
hadoopcheck
15m 58s
Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.

+1 :green_heart:
javadoc
0m 32s
the patch passed

+1 :green_heart:
findbugs
1m 36s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
3m 22s
hbase-thrift in the patch passed.

+1 :green_heart:
asflicense
0m 14s
The patch does not generate ASF License warnings.

54m 24s

Subsystem
Report/Notes

Docker
Client=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-973/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/973

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux bc1f65f92438 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-973/out/precommit/personality/provided.sh

git revision
master / 923ba7763e

Default Java
1.8.0_181

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-973/2/testReport/

Max. process+thread count
1825 (vs. ulimit of 10000)

modules
C: hbase-thrift U: hbase-thrift

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-973/2/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


[Feature Requst] Implement categories & filters by category

For me (and I believe for many others as well) one benefit of writing down income & expenses is you can group them by categories.
Take a look at homebank & skrooge. A transaction (whether + or - ) can be tagged with a category (like eating out, telephone bill, gas etc) so you can look up later how much & where you're spending.
For me it's the single most important feature for a programme like this to have.
Very simple & responsive design, nice work!

The groups feature is already available in V2022.11.0 that allows you to associate transactions with groups.
We are working on a redesign (#60) for V2022.11.1 that will allow you to filter based on groups:

Oops, sorry, missed that!
I suppose I don't have much to add then, great work!

Haha no worries and thank you! Hopefully the redesign will be released by Wednesday/Thursday of this week.


Suggest using Docker or WSL for the Kafkacat quickstart in Windows

There is no prebuild executable of kakfacat for windows and is practically impossible to compile it, therefore we should suggest using the docker image, or install kafkacat on WSL

ping @sterobin

FYI @redhat-developer/app-services-docs We have now https://github.com/redhat-developer/app-services-tools

@b1zzu Sorry that this got left in the dust. Is this still pertinent or now obsolete?

I forgot that @b1zzu is no longer at Red Hat. Looking at other conversations about this in chats and meetings of last year, this comment seems obsolete. Closing.


Interaction table: measurables

Some discussion points in https://github.com/quintel/etmoses/issues/193 have led to new ideas on the 'interaction table' and its links to the LES.
In short: I think the interaction table could use an extra column for 'measured stuff'.
The table will then look like this:

From
To
Foundation
Measure
Tariff

Customer (not in co-operation)
Supplier
kWh
net consumption of kWh
0.07 EUR/kWh

Customer (not in co-operation)
System operator
kW
size of connection
180 EUR

Customer (not in co-operation)
kWh
Government
net consumption of kWh
0.22 EUR/kWh

The 'measured stuff' column has some overlap with the 'foundation' column (perhaps we can remove the latter one?).
We can pre-define some measures:

kW of connection per HH
kWh consumed per HH
kWh produced per HH
kWh produced for the LES (producer)
kW_max for HH/end-point
investment cost of infrastructure
maintenance cost of infrastructure
kWh consumed by Co-operation
kWh produced by Co-operation
kW_max for Co-operation
?

Perhaps we need to specify the time-scale for these measurements as well? Capacity for fixed connections need only be measured once per year. Most stuff is measured every time-step.
I think that all transactions are yearly.
@antw @dennisschoenmakers what do you think?

We can pre-define some measures:

These examples appear to combine foundation and measure. If they were to be separate concepts, I'd think of combinations like this:

Foundation
Measure

kW of connection
per HH

kW of connection
endpoint(s) / stakeholder total

kWh consumed
per HH

kWh consumed
endpoint(s) / stakeholder total

kWh produced
per HH

kWh produced
endpoint(s) / stakeholder total

...
...

We have three foundations defined – "kW of connection", "kWh produced", and "kWh consumed" – and two measures – "per HH" and "endpoint total".
Looking at the original example table, it seems like the measure makes the foundation irrelevant. Take, for example, a foundation of "kW", and a measure of "size of connection". Can I set the foundation to "kWh"? Probably not.
For me, the realisation here is that the foundations are going to be more numerous, and more specific. kWh per household and stakeholder kWh instead of just kWh.

Perhaps we need to specify the time-scale for these measurements as well? Capacity for fixed connections need only be measured once per year. Most stuff is measured every time-step.

I'm not sure if this needs to be something the user can edit. In most cases, the chosen foundation/measure imply a time-scale.
The only exception (so far) seems to be kW_max which may be per-month, per-week, etc. But I think before we go down this road we – and particularly the client – need to think about how this data is going to be presented to the user. Does a kW_max per month rule result in a price graph with 12 data points, while per week has 52?
I suggest we leave this out for now, and revisit later in the sprint.

We have three foundations defined – "kW of connection", "kWh produced", and "kWh consumed" – and two measures – "per HH" and "endpoint total".

I like that!

For me, the realisation here is that the foundations are going to be more numerous, and more specific. kWh per household and stakeholder kWh instead of just kWh.

Yes!

I suggest we leave this out for now, and revisit later in the sprint.

I agree.

No longer required, and superseded by #219.


type alias redefinition for Realm_Config

SDK: 0.4.0-preview
macOS 13.4
I'm getting the following build error when integrating Realm into an existing C++ CMake project:
cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:46:8: error: type alias redefinition with different types ('std::aligned_storage<312, 8>::type' vs 'std::aligned_storage<368, 16>::type')
;using Realm_Config = std::aligned_storage<312, 8>::type;
       ^
cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:9:8: note: previous definition is here
;using Realm_Config = std::aligned_storage<368, 16>::type;

OK this seems to be partially solved by setting the parent project's CMAKE_CXX_STANDARD to 17.
However now I get lots of errors like this:
cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:9:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using Realm_Config = std::aligned_storage<368, 16>::type;
^
cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:10:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using ColKey = std::aligned_storage<8, 8>::type;
^

It seems that this line in the parent CMakeLists.txt was causing the issues:
set(CMAKE_CXX_EXTENSIONS OFF)

After trying different cmake settings I now get these types of errors:
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:9:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using Realm_Config = std::aligned_storage<312, 8>::type;
^
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:10:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using ColKey = std::aligned_storage<8, 8>::type;
^
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:11:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using Decimal128 = std::aligned_storage<16, 8>::type;
^

Any ideas?

After trying different cmake settings, I now get these kind of errors:
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:9:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using Realm_Config = std::aligned_storage<312, 8>::type;
^
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:10:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using ColKey = std::aligned_storage<8, 8>::type;
^
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:11:1: error: extra ';' outside of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
;using Decimal128 = std::aligned_storage<16, 8>::type;
^

Any ideas?

So in this particular project, I have it set to treat warnings as errors. I now understand this is normal a warning rather than an error. So I need to ignore this particular warning here!

The error went away for a while, and now it's back. Not sure what is causing it. Any clues?

It seems to be caused by this block of CMake settings, that set the build to be universal x86_64 and arm64:
    set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version" FORCE)
    set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "Architectures" FORCE)
    set(CMAKE_XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET[arch=arm64] "11.0" CACHE STRING "arm 64 minimum deployment target" FORCE)

@adamski I see your issue, it's trying to compile a universal binary, and that is something our bridging code that talks to RealmCore is not handling correctly. You should be able to build successfully by setting your target architecture on your machine for now while we look into this. E.g set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Architectures" FORCE) in the case you are working from an Arm based Mac.

Yes it works correctly after removing the universal binary settings.
@leemaguire can you please confirm the minimum target SDK required too? I was getting some errors after setting the min to 11.0 on macOS on arm.

@adamski the minimum macOS version we support is 12.

FYI I am now trying to build the same project for iOS, and hitting a similar error even when only building for device (not simulator):

Type alias redefinition with different types ('std::aligned_storage<312, 8>::type' vs 'std::aligned_storage<368, 16>::type')

Just FYI (and forgive me if I'm stating the obvious) this issue also blocks iOS simulator builds, with the same error as above:

Type alias redefinition with different types ('std::aligned_storage<312, 8>::type' vs 'std::aligned_storage<368, 16>::type')

Device-only builds are not affected.

@leemaguire thanks for adding the REALM_DISABLE_ALIGNED_STORAGE option, which looks like it should fix this issue.
Just to let you know I'm still getting the above error:
FAILED: _deps/cpprealm-build/src/CMakeFiles/cpprealm.dir/cpprealm/db.cpp.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DBUILD_NUMBER=99 -DREALM_APP_SERVICES=1 -DREALM_BUILD_LIB_ONLY -DREALM_DEBUG=1 -DREALM_DISABLE_ALIGNED_STORAGE=1 -DREALM_ENABLE_ENCRYPTION -DREALM_ENABLE_SYNC -DREALM_ENABLE_SYNC=1 -DREALM_INSTALL_LIBEXECDIR -DREALM_NO_CONFIG -DVERSION_LONG=\"1.0.0-dev-2024-07-12T20:07:57Z\" -DVERSION_NUMBER=\"1.0.0\" -DVERSION_SHORT=\"1.0.0-dev\" -I/Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/src -I/Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/include -I/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src -I/Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/realm-core/src -I/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/realm-core/src -g -std=c++17 -arch x86_64 -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -mmacosx-version-min=10.15 -fPIC -fcolor-diagnostics -Wall -Wextra -pedantic -Werror -MD -MT _deps/cpprealm-build/src/CMakeFiles/cpprealm.dir/cpprealm/db.cpp.o -MF _deps/cpprealm-build/src/CMakeFiles/cpprealm.dir/cpprealm/db.cpp.o.d -o _deps/cpprealm-build/src/CMakeFiles/cpprealm.dir/cpprealm/db.cpp.o -c /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/src/cpprealm/db.cpp
In file included from /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/src/cpprealm/db.cpp:1:
In file included from /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/include/cpprealm/db.hpp:22:
In file included from /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/include/cpprealm/accessors.hpp:22:
In file included from /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/include/cpprealm/internal/bridge/lnklst.hpp:24:
In file included from /Users/adamwilson/dev/node-audio/entonal-studio/Cache/cpprealm/fae215951a53a55e913bfa1ad06e2cf046568156/include/cpprealm/internal/bridge/utils.hpp:41:
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:49:11: error: type alias redefinition with different types ('std::aligned_storage<312, 8>::type' vs 'std::aligned_storage<368, 16>::type')
    using Realm_Config = std::aligned_storage<312, 8>::type;
          ^
/Users/adamwilson/dev/node-audio/entonal-studio/cmake-build-debug/_deps/cpprealm-build/src/cpprealm/internal/bridge/bridge_types.hpp:9:11: note: previous definition is here
    using Realm_Config = std::aligned_storage<368, 16>::type;
          ^
          ```

@adamski cleaning your build folder should resolve that as the fresh build won't generate a bridge_types.hpp header.
The fix here on my side is to group all of the type definitions by architecture inside of bridge_types.hpp.

Thanks @leemaguire  - it seems that both with the flag set and without I'm still getting the error, also after cleaning the build folder. This is the contents of my bridge_types.hpp when building a universal binary for macOS, with duplicated definitions.
#pragma once

#include <type_traits>

#define CPPREALM_HAVE_GENERATED_BRIDGE_TYPES

namespace realm::internal::bridge::storage {
    using OwnedBinaryData = std::aligned_storage<16, 8>::type;
    using Realm_Config = std::aligned_storage<368, 16>::type;
    using ColKey = std::aligned_storage<8, 8>::type;
    using Decimal128 = std::aligned_storage<16, 8>::type;
    using Dictionary = std::aligned_storage<80, 8>::type;
    using CoreDictionary = std::aligned_storage<248, 8>::type;
    using List = std::aligned_storage<80, 8>::type;
    using LnkLst = std::aligned_storage<232, 8>::type;
    using Mixed = std::aligned_storage<24, 8>::type;
    using ObjKey = std::aligned_storage<8, 8>::type;
    using ObjLink = std::aligned_storage<16, 8>::type;
    using Obj = std::aligned_storage<64, 8>::type;
    using ObjectId = std::aligned_storage<12, 1>::type;
    using ObjectSchema = std::aligned_storage<128, 8>::type;
    using Object = std::aligned_storage<104, 8>::type;
    using IndexSet = std::aligned_storage<24, 8>::type;
    using CollectionChangeSet = std::aligned_storage<192, 8>::type;
    using IndexSet_IndexIterator = std::aligned_storage<32, 8>::type;
    using IndexSet_IndexIteratableAdaptor = std::aligned_storage<8, 8>::type;
    using NotificationToken = std::aligned_storage<24, 8>::type;
    using Property = std::aligned_storage<120, 8>::type;
    using Query = std::aligned_storage<128, 8>::type;
    using Results = std::aligned_storage<704, 8>::type;
    using Schema = std::aligned_storage<24, 8>::type;
    using Set = std::aligned_storage<80, 8>::type;
    using SyncError = std::aligned_storage<120, 8>::type;
    using TableRef = std::aligned_storage<16, 8>::type;
    using TableView = std::aligned_storage<376, 8>::type;
    using ThreadSafeReference = std::aligned_storage<8, 8>::type;
    using Timestamp = std::aligned_storage<16, 8>::type;
    using UUID = std::aligned_storage<16, 1>::type;
    using Status = std::aligned_storage<8, 8>::type;
    using ErrorCategory = std::aligned_storage<4, 4>::type;
    using AppCredentials = std::aligned_storage<16, 8>::type;
    using AppError = std::aligned_storage<72, 8>::type;
    using SyncSubscriptionSet = std::aligned_storage<104, 8>::type;
    using MutableSyncSubscriptionSet = std::aligned_storage<184, 8>::type;
    using Bson = std::aligned_storage<40, 8>::type;
    using BsonIndexedMap = std::aligned_storage<64, 8>::type;
    using BsonDocument = std::aligned_storage<64, 8>::type;
    using OwnedBinaryData = std::aligned_storage<16, 8>::type;
    using Realm_Config = std::aligned_storage<312, 8>::type;
    using ColKey = std::aligned_storage<8, 8>::type;
    using Decimal128 = std::aligned_storage<16, 8>::type;
    using Dictionary = std::aligned_storage<80, 8>::type;
    using CoreDictionary = std::aligned_storage<248, 8>::type;
    using List = std::aligned_storage<80, 8>::type;
    using LnkLst = std::aligned_storage<232, 8>::type;
    using Mixed = std::aligned_storage<24, 8>::type;
    using ObjKey = std::aligned_storage<8, 8>::type;
    using ObjLink = std::aligned_storage<16, 8>::type;
    using Obj = std::aligned_storage<64, 8>::type;
    using ObjectId = std::aligned_storage<12, 1>::type;
    using ObjectSchema = std::aligned_storage<128, 8>::type;
    using Object = std::aligned_storage<104, 8>::type;
    using IndexSet = std::aligned_storage<24, 8>::type;
    using CollectionChangeSet = std::aligned_storage<192, 8>::type;
    using IndexSet_IndexIterator = std::aligned_storage<32, 8>::type;
    using IndexSet_IndexIteratableAdaptor = std::aligned_storage<8, 8>::type;
    using NotificationToken = std::aligned_storage<24, 8>::type;
    using Property = std::aligned_storage<120, 8>::type;
    using Query = std::aligned_storage<128, 8>::type;
    using Results = std::aligned_storage<704, 8>::type;
    using Schema = std::aligned_storage<24, 8>::type;
    using Set = std::aligned_storage<80, 8>::type;
    using SyncError = std::aligned_storage<120, 8>::type;
    using TableRef = std::aligned_storage<16, 8>::type;
    using TableView = std::aligned_storage<376, 8>::type;
    using ThreadSafeReference = std::aligned_storage<8, 8>::type;
    using Timestamp = std::aligned_storage<16, 8>::type;
    using UUID = std::aligned_storage<16, 1>::type;
    using Status = std::aligned_storage<8, 8>::type;
    using ErrorCategory = std::aligned_storage<4, 4>::type;
    using AppCredentials = std::aligned_storage<16, 8>::type;
    using AppError = std::aligned_storage<72, 8>::type;
    using SyncSubscriptionSet = std::aligned_storage<104, 8>::type;
    using MutableSyncSubscriptionSet = std::aligned_storage<184, 8>::type;
    using Bson = std::aligned_storage<40, 8>::type;
    using BsonIndexedMap = std::aligned_storage<64, 8>::type;
    using BsonDocument = std::aligned_storage<64, 8>::type;

}

I can't reproduce the scenario where the bridge types are visible when the -DREALM_DISABLE_ALIGNED_STORAGE=1 flag set. Did you delete your cmake-build-debug/_deps folder before rebuilding?

Ok thanks @leemaguire it looks like I was setting the definition in the wrong place. Setting it in the cmake command line works, I'm now figuring out where to set it in the CMakeLists.txt so it sticks..

@leemaguire do you have any tips on how to add this to a CMakeLists.txt?
If I add add_definitions(-DREALM_DISABLE_ALIGNED_STORAGE=1) to the top level CMakeLists, I get the build error. If I add it to the cmake command, it works. Ideally I would keep it in the CMakeLists.txt only.

@adamski set set(REALM_DISABLE_ALIGNED_STORAGE 1 CACHE STRING "Disable aligned storage in Realm") at the top of your CMakeLists.txt


Set angular option for crossOrigin to "use-credentials" to allow authenticated reverse proxy

Tested that this option produces index.html with crossorigin="use-credentials" and that it resolves the reverse proxy authentication issue.
Fixes #638

Thanks!


String literal hash keys should be frozen

String literal hash keys can't be mutated by the user so we should mark them as frozen. We were seeing instructions for hashes with string literal keys using two putstring instructions when it should be a putobject and putstring.
Code example:
{ "a" => "b" }

Instructions before:
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(2,14)>
0000 putobject                              "a"                       (   2)[Li]
0002 putstring                              "b"
0004 newhash                                2
0006 leave
"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(1,14)>
0000 putstring                              "a"                       (   1)[Li]
0002 putstring                              "b"
0004 newhash                                2
0006 leave

Instructions after:
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(2,14)>
0000 putobject                              "a"                       (   2)[Li]
0002 putstring                              "b"
0004 newhash                                2
0006 leave

"********* PRISM *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(1,14)>
0000 putobject                              "a"                       (   1)[Li]
0002 putstring                              "b"
0004 newhash                                2
0006 leave

This will fix #2045


[v2] ion-item doesn't get 'activated' when it contains html elements

Short description of the problem:
ion-item doesn't get class 'activated' on mousedown when it contains html elements.
What behavior are you expecting?
I expected ion-item to get 'activated' (default grey background) when clicked/tapped/mousedown, no matter the contents of ion-item.
Steps to reproduce:

View plunker: http://plnkr.co/edit/L8MJR6xt6Ddcj09q1ZgV?p=preview
Trigger a mousedown event on the text that says "I DON'T WORK" (Text is in an html element)
Trigger a mousedown event on the text that says "I DO WORK" and see that it works (Text is direct child of ion-item)

I've traced down the code that is responsible for added 'activated' class to activatable elements. I will attempt creating a pull request shortly.
Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.4
Ionic CLI Version: 2.0.0-beta.24
Ionic App Lib Version: 2.0.0-beta.14
ios-deploy version: 1.8.5
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v4.4.2
Xcode version: Xcode 7.3 Build version 7D175

This also solves #6159 for me regarding the ignored click events, although I can't explain why.

I have a suggestion for optimizing isActivatable():
diff --git a/ionic/components/tap-click/tap-click.ts b/ionic/components/tap-click/tap-click.ts
index 8f6a3a1..bb40527 100644
--- a/ionic/components/tap-click/tap-click.ts
+++ b/ionic/components/tap-click/tap-click.ts
@@ -196,13 +196,13 @@ function getActivatableTarget(ele) {
  * @private
  */
 export function isActivatable(ele) {
-  if (ACTIVATABLE_ELEMENTS.test(ele.tagName)) {
+  if (ACTIVATABLE_ELEMENTS.indexOf(ele.tagName)) {
     return true;
   }

   let attributes = ele.attributes;
   for (let i = 0, l = attributes.length; i < l; i++) {
-    if (ACTIVATABLE_ATTRIBUTES.test(attributes[i].name)) {
+    if (ACTIVATABLE_ELEMENTS.indexOf(attributes[i].name.toUpperCase()) !== -1) {
       return true;
     }
   }
@@ -218,8 +218,8 @@ function removeListener(type, listener) {
   document.removeEventListener(type, listener);
 }

-const ACTIVATABLE_ELEMENTS = /^(A|BUTTON)$/;
-const ACTIVATABLE_ATTRIBUTES = /tappable|button/i;
+const ACTIVATABLE_ELEMENTS = ['A', 'BUTTON'];
+const ACTIVATABLE_ATTRIBUTES = ['TAPPABLE', 'BUTTON'];
 const POINTER_TOLERANCE = 4;
 const POINTER_MOVE_UNTIL_CANCEL = 10;
 const DISABLE_NATIVE_CLICK_AMOUNT = 2500;

The above changes make the isActivatable() function 3-4x times faster detecting if the element is activatable.
See simple benchmark here: http://dev.infoproducts.dk/ionic/index.html

@biesbjerg check out my PR: #6205

This should be fixed in the next release from this PR: https://github.com/driftyco/ionic/pull/6205 Thanks

This is still not working for me:
Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.0.0-beta.35
Ionic App Lib Version: 2.0.0-beta.19
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v6.3.1
Xcode version: Xcode 7.3 Build version 7D175


[FLINK-35525][yarn] Add a token services configuration to allow obtained token to be passed to Yarn AM

What is the purpose of the change
Make hdfs token fetched by custom delegation token provider pass to yarn am.
Brief change log
Verifying this change
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper:no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

Unless there are further comments I'm intended to merge this next week.

Just seen the error in the pipeline, plz fix it:
Jun 06 10:28:18 10:28:18.128 [INFO] Running org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase
Jun 06 10:28:19 10:28:19.009 [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.877 s <<< FAILURE! -- in org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase
Jun 06 10:28:19 10:28:19.009 [ERROR] org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase.testCompleteness -- Time elapsed: 0.840 s <<< FAILURE!
Jun 06 10:28:19 java.lang.AssertionError:
Jun 06 10:28:19 Documentation is outdated, please regenerate it according to the instructions in flink-docs/README.md.
Jun 06 10:28:19 	Problems:
Jun 06 10:28:19 		Option yarn.security.appmaster.delegation.token.services in class org.apache.flink.yarn.configuration.YarnConfigOptions is not documented.
Jun 06 10:28:19 	at org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase.compareDocumentedAndExistingOptions(ConfigOptionsDocsCompletenessITCase.java:209)
Jun 06 10:28:19 	at org.apache.flink.docs.configuration.ConfigOptionsDocsCompletenessITCase.testCompleteness(ConfigOptionsDocsCompletenessITCase.java:70)
Jun 06 10:28:19 	at java.lang.reflect.Method.invoke(Method.java:498)
Jun 06 10:28:19 	at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
Jun 06 10:28:19 	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Jun 06 10:28:19 	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Jun 06 10:28:19 	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Jun 06 10:28:19 	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)

Just seen the error in the pipeline, plz fix it:

Thanks @gaborgsomogyi ,I have updated document and CI passed.


Add clipboard icon

Clipboard icon for https://github.com/abapGit/abapGit/issues/4978

use copy-solid? https://icons.abapgit.org


Distinguish network with captions when watch more than one networks gradients and weights

Hi,
I am asking for this new feature because I got quite confused when I watch multiple networks at the same time in one run. In my case there are 4 different networks (nn.Modules) and each of them have multiple Linear Layers. Thus when I look at e.g. the gradients in the dashboard, there will be 30+ figures without meaningful caption on it.
Describe the solution you'd like
Add one more function argument "captions" to wandb.watch, so that it will assign the captions to networks respectively.
Thanks a lot!
Best,
Ge Li

Thanks for the feature request, we'll track it here.


Push aggregations past joins with optimizer rule

Aggregates can be pushed through a join which reduces the intermediate data to improve performance significantly.

Data setup
create table devices (deviceid int primary key,att1 text,att2 text);

insert into devices (deviceid,att1,att2)
select b,(b%300)::TEXT,(b%450)::TEXT
from generate_series(1,4500000) a(b);
--INSERT OK, 4500000 records affected (187.469 seconds)

create table readings (ts timestamp,deviceid int,reading double);

insert into readings(ts,deviceid,reading)
select now(),b%7000,b%6300
from generate_series(1,4300000) a(b);

Assume the given query:
SELECT devices.deviceid,
       att1,
       att2,
       Max(reading)
FROM   devices
       JOIN readings
         ON devices.deviceid = readings.deviceid
GROUP  BY devices.deviceid,
          att1,
          att2;

which generates the plan:
 GroupHashAggregate[deviceid, att1, att2 | max(reading)]
   └ Eval[deviceid, att1, att2, reading, deviceid]
     └ Join[INNER | (deviceid = deviceid)]
       ├ Collect[doc.readings | [reading, deviceid] | true]
       └ Collect[doc.devices | [deviceid, att1, att2] | true]

It can be further optimized to:
Eval[deviceid, att1, att2, maxreading]
   └ Join[INNER | (deviceid = deviceid)]
     ├ MultiPhase
     │   └ Collect[doc.devices | [deviceid, att1, att2] | (deviceid = ANY((SELECT deviceid FROM (deviceid))))]
     |   └ GroupHashAggregate[deviceid]
     |      └ Collect[doc.readings | [deviceid] | true]
     └ GroupHashAggregate[deviceid | max(reading)]
           └ Collect[doc.readings | [reading, deviceid] | true]

Note the Aggregation is transposed beyond the join now.
Reference:
https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java

I found this really interesting paper to this subject. It mentions group-joins were would use one hashtable for the inner-join and the group-by together. Then we spend less time building hash tables, use less memory which would improve the performance of the query.
ReferenceL
https://link.springer.com/content/pdf/10.1007/s00778-022-00765-x.pdf

I think this needs a bit more clarifications on what should be done (or in what order) as this query optimization seems to covers multiple topics:

Lookup Join - Turning a join in to sub-select lookup query
Any INNER join query can be rewritten to a normal SELECT while moving the join condition into a sub-select filter match:
Inner Join:SELECT devices.deviceid,
FROM   devices
   JOIN readings ON devices.deviceid = readings.deviceid

Lookup join:SELECT devices.deviceid,
FROM   devices
WHERE deviceid = ANY(SELECT deviceid from readings);

The larger the result set of the 2nd table (readings) is, the less performant the query will get as the result set must be hold in memory. Additional, this may hit storage engine (in our case Lucene) limitations on how much clauses can be used, see https://cratedb.com/docs/crate/reference/en/5.4/config/node.html#indices-query-bool-max-clause-count.
Such this optimization should only happen if the 2nd table stores a small dataset.

Aggregations Group Join - Pushing down aggregations and groupings beyond a join operator
An grouped aggregation on joined tables can be optimized to do the aggregations and grouping first and then the join:
Grouping and aggregation on top of the JOIN:SELECT devices.deviceid, MAX(readings.reading) as max_readings
FROM  devices
   JOIN readings ON devices.deviceid = readings.deviceid
GROUP BY devices.deviceid

Grouping and aggregation beyond the JOIN:SELECT devices_group.deviceid, max_readings
FROM  (SELECT deviceid, 0 FROM devices GROUP BY deviceid) devices_group
  JOIN (SELECT deviceid, MAX(reading) as max_readings FROM readings GROUP BY deviceid) readings_group
    ON devices_group.deviceid = readings_group.deviceid

   I think this is what @mkleen referenced with https://link.springer.com/content/pdf/10.1007/s00778-022-00765-x.pdf.

No, this paper describes a runtime implementation called group-joins where the group-by and the hash-inner-join is done with one hash-table instead of two (one for the group-by one for the hash-join).

Related to the 2nd topic of Pushing down aggregations and groupings beyond a join operator, I've done some rough shots to see how it would improve.
The outcome is interesting, as long as no ORDER BY clause is present, pushing down the aggregations/grouping down will improve performance a lot:

Setup
create table devices (deviceid int primary key,att1 text,att2 text);

insert into devices (deviceid,att1,att2)
select b,(b%300)::TEXT,(b%450)::TEXT
from generate_series(1,4500000) a(b);

create table readings (ts timestamp,deviceid int,reading double);

insert into readings(ts,deviceid,reading)
select now(),b%7000,b%6300
from generate_series(1,4300000) a(b);

% echo 'SELECT devices.deviceid, MAX(readings.reading) as max_readings FROM devices JOIN readings ON devices.deviceid = readings.deviceid GROUP BY devices.deviceid LIMIT 10;' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    1187.689 ± 7.745
    min/max: 1102.744 → 1293.100
Percentile:
    50:   1181.832 ± 39.517 (stdev)
    95:   1270.081
    99.9: 1293.100

Optimized
% echo 'SELECT devices_group.deviceid, max_readings FROM  (SELECT deviceid, 0 FROM devices GROUP BY deviceid) devices_group JOIN (SELECT deviceid, MAX(reading) as max_readings FROM readings GROUP BY deviceid) readings_group ON devices_group.deviceid = readings_group.deviceid limit 10' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    29.215 ± 0.612
    min/max: 25.788 → 41.821
Percentile:
    50:   27.976 ± 3.123 (stdev)
    95:   36.924
    99.9: 41.821

-> roughly a ~40x improvement
But with an ORDER BY clause applied on top of the join , the results are very different, the push down even slightly decreases performance. (A sorted-merge-join algorithm could probably solve this):
Non-optimized with ORDER BY clause
% echo 'SELECT devices.deviceid, MAX(readings.reading) as max_readings FROM devices JOIN readings ON devices.deviceid = readings.deviceid GROUP BY devices.deviceid ORDER BY 1 LIMIT 10;' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    1192.474 ± 7.957
    min/max: 1130.961 → 1307.273
Percentile:
    50:   1187.739 ± 40.599 (stdev)
    95:   1257.345
    99.9: 1307.273

Optimized with ORDER BY clause
% echo 'SELECT devices_group.deviceid, max_readings FROM  (SELECT deviceid, 0 FROM devices GROUP BY deviceid) devices_group JOIN (SELECT deviceid, MAX(reading) as max_readings FROM readings GROUP BY deviceid) readings_group ON devices_group.deviceid = readings_group.deviceid ORDER BY 1 limit 10' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    1349.401 ± 11.967
    min/max: 1269.479 → 1711.994
Percentile:
    50:   1338.803 ± 61.058 (stdev)
    95:   1456.331
    99.9: 1711.994

-> slight decrease by ~ 0.8x

When comparing both possible optimizations for the given concrete query and dataset of the original issue description, the lookup join results in a slightly better performance:
Lookup join:
% echo 'SELECT devices.deviceid, att1, att2, Max(reading) FROM (SELECT * FROM devices WHERE deviceid = ANY(SELECT deviceid FROM readings)) devices JOIN readings ON devices.deviceid = readings.deviceid GROUP BY devices.deviceid, att1, att2 limit 10;' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    21.981 ± 0.323
    min/max: 19.683 → 26.881
Percentile:
    50:   21.581 ± 1.647 (stdev)
    95:   24.922
    99.9: 26.881

GroupAggregates push down:
 % echo 'SELECT devices_group.deviceid, max_readings FROM  (SELECT deviceid, 0 FROM devices GROUP BY deviceid) devices_group JOIN (SELECT deviceid, MAX(reading) as max_readings FROM readings GROUP BY deviceid) readings_group ON devices_group.deviceid = readings_group.deviceid limit 10' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    28.783 ± 1.038
    min/max: 23.647 → 68.089
Percentile:
    50:   27.221 ± 5.297 (stdev)
    95:   37.063
    99.9: 68.089

Both optimizations combined (JFTR):
% echo ' SELECT devices_group.deviceid, max_readings FROM  (SELECT deviceid, 0 FROM devices WHERE deviceid = ANY(SELECT deviceid FROM readings) GROUP BY deviceid) devices_group JOIN (SELECT deviceid, MAX(reading) as max_readings FROM readings GROUP BY deviceid) readings_group ON devices_group.deviceid = readings_group.deviceid limit 10;' | cr8 timeit --hosts localhost:4200
Runtime (in ms):
    mean:    10.535 ± 0.112
    min/max: 9.732 → 13.603
Percentile:
    50:   10.449 ± 0.570 (stdev)
    95:   11.188
    99.9: 13.603

A common optimization for this problem is Eager Aggregation and Lazy Aggregation which is probably worth having a deeper look at.


refine get type from decimal literal

Signed-off-by: xufei<EMAIL_ADDRESS>What problem does this PR solve?
Issue Number: close #5007
Problem Summary:
As the issue described.
What is changed and how it works?

DecimalField::getPrec() ensures that the returned precision is not less than decimal's scale
FieldToDataType will return a more precise type for DecimalField

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/merge


making elements unavailable to non-logged users

i need @GLKumfert to add user auth stuff so u can actually post/comment

Theres still a hardcoded bool value for isLogged in so even if I'm logged in, trying to create a post sends me to login and says 'login successful'


transferring lib ownership to k8s charm

Proposal
The pgbouncer charm lib previously lived on the VM charm. Since I'm planning to use the k8s charm for development moving forward, porting implementation over to the VM charm once it's fully implemented, tested, and reviewed, it makes sense to keep the charm library on the k8s charm as well.
Context

I'm planning to use the k8s charm for development because it builds and deploys faster, making testing and development faster.
All this code has already been reviewed on the VM charm, I'm just changing the names of things and copying unit tests over.

Release Notes

Rename pgb lib and copy unit tests over from VM charm.

Testing

Unit and integration tests have run

Hm, shouldn't the change be /pgbouncer_k8s/ instead of /pgbouncer_k8s_operator/? I think that's the way most charms are setting up libs.

I believe that's because the charm is named pgbouncer_k8s or similar, and I haven't removed the redundant _operator part. I'll do that now, though.


make group file without weights

In an effort to debug the run described in this recent post, trying to make a different group file without weight info. The log ended on these lines (after for some reason printing every single weight 🙄 )

type  weight:dTSS
weightname
[1] "dTSS

so possibly removing this specific test may help things. More info on group files (and how the weight line is not necessary) in the SAIGE-QTL docs.
Successfully ran in test: https://batch.hail.populationgenomics.org.au/batches/483266/jobs/1 🎉 (example newly created group file without weights: cpg-bioheart-test/saige-qtl/input_files/group_files/chr22/ACO2_100000bp_no_weights.tsv)

Ok, run was successful in main: https://batch.hail.populationgenomics.org.au/batches/483273/jobs/1
Working on a new version to make this more general: https://github.com/populationgenomics/saige-tenk10k/pull/126


Tag the source

Could you please tag the source again? Otherwise all distributions which were shipping this Python module and were using the GitHub releases need to change their description to build the packages.
Thanks

Sorry, can you elaborate?

I think what he means is that the Package on pypi is already in version 0.6.1, but the latest Github tag is 0.5.0. So I think it would be good if you could create a new Git Tag and Release for 0.6.1 to match the versions.

The latest release on GitHub is 0.5.0 https://github.com/jmschrei/apricot/releases/tag/v0.5.0. The PyPI release was created  from the master branch.
Tagging would be enough but create a release on GitHub increases the visibility.

Added

Thank you


Swift 3.0 to master

Description

Swift 3 changes to maser

Status

[ ] Code Review

Current coverage is 97.27% (diff: 95.29%)

No coverage report found for master at c7b8372.

Powered by Codecov. Last update c7b8372...67f9b69


2019-04-03 Power Outage

Power outage. Not much I can do. Server would only run for so long before it went down and it's likely to be a long one. Sorry folks!

Not good enough!

🖕 Coming back online - though I wouldn't be surprised if it goes down again, so I'm leaving this open for now.

Power was restored late that evening, little delay on closing out the issue.


Order of command sent to queue not processed in FIFO order by consumers.

Is this a bug report?
(Yes/no) Yes
Can you also reproduce the problem with the latest version?
(Write your answer here.) Yes
Environment

Dotnet version: .NET 5
Operating system: Windows 10
IDE (Rider, VS Code, Visual Studio): Visual Studio 2022 Preview 2

Steps to Reproduce

Create 3 projects (1 project for shared events/commands, 2 separate console apps acting as separate "services")
Have Service A send Command 1 and Command 2 to Service B before Service B configures the bus

Expected Behavior

I would expect that the consumers would process Command A first and then Command B (since they are using FIFO queues).
Actual Behavior

Code that is sending the commands from the other "service"

DeleteUser's Consume method is called first and then AddUser's Consume method.

it will require some changes, take a look into attached PR
https://github.com/MassTransit/MassTransit/pull/2697

@NooNameR
I edited the initial comment's Environment section to include the fact that this was using the RabbitMQ transport.  It looks like what that PR is trying to accomplish is what I was considering "expected behavior."  I'm also just wanting to make sure that I am correct in my assumption that if I send AddUser and then DeleteUser while the consuming service is off that when it is turned on the service should process the messages in that same order?
Another thing to note is that it consistently does those two messages in reverse order.  It's always DeleteUser first.

Message Order
Message Order, again
Order, again
As you can see, order isn't guaranteed in a distributed system. That being said, if you want to try it, configure your receive endpoint so that it only fetches one message at a time from the broker. Oh, and have a solid plan for dealing with the eventual consumer error that can't be recovered and puts the message into the _error queue and moves on to the next one.
endpoint.PrefetchCount = 1

I also did a video on it.


modules/apache-httpd: remove extra line in phpIni

Motivation for this change
This line is ignored, since the line just below overwrites
the php.ini again. Since it worked as-is, instead of fixing it
it might make sense to just remove the line (the etc/php.ini
propably just contains defaults)

Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

We've had pretty awesome php packages for a while now, and @jtojnar maintains old php versions which are awesome too... should we just remove phpOptions options and promote a single way to modify php.ini through php.buildEnv? I don't know... 🤷♂


Ship a "containerd managed /opt" Docker image as part of release

As a QoL feature request, it'd be nice if the release process for containerd-shim-runhcs-v1.exe including pushing a Docker image to a known/published location, suitable for containerd Managed /opt use.
Since the container is not run, merely extracted from, I imagine the DockerFile would look something like:
FROM scratch
ADD containerd-shim-runhcs-v1.exe /bin/containerd-shim-runhcs-v1.exe

I haven't tested this though, and Windows support for this feature was not in the containerd 1.3.x series, but should be in 1.4.x, so the current audience is slightly limited. It'd be nice to be ahead of the game though.
It'd be doubly nice if auto-builds also pushed an image somewhere. This is less marginal value, since one can always grab the binaries for master HEAD from Travis; unless no one commits for six months and they expire.

This is an interesting idea. Let us think more about it on our end and how that plans into the containerd tool

I just discovered that Docker considers scratch to be a Linux image, and won't let you base a Windows Container image on it.
So this isn't as trivial as it should be... I'm not sure if there's an equivalent for scratch... Nanoserver is still a few hundred megabytes which is a lot for a binary or two; since I wrote this suggestion I noticed that the containerd shim may call out to runhcs in lcow code paths.

Why do you want this to be an image instead of, I dunno... Just a file attached to GitHub release?

Now that #1637 has been merged, we have a wclayer makebaselayer and the wclayer export command-line tools workable, and so I guess with a small amount of effort and scripting (for the manifest) a full image (in OCI tarball format) could be generated by the CI pipeline and pushed using Docker or skopeo or something.
That would avoid the bootstrap problem of needing working containerd to run BuildKit to generate the image, although the Dockerfile I initially described would not require containerd to have access to the containerd-shim-runhcs-v1 executable, so it's not really a bootstrap problem.

Because containerd already has built-in support for pulling such an image and extracting it, and using the binary as a shim.

Oh, OK, I just skimmed through that page and din't get into details.

they only need containerd/ctr

And here is the question: if you managed to apt-get install -y containerd (or whatever way was used to obtain containerd), why can't shim be obtained using the same mechanism? Sysadmins already have tools to audit packages, there are update notifications, config merging, etc... IMHO, this "managed /opt" feature is evil.

That becomes yet another way to package the shim. In fact, multiple ways, given all the different package managers. In effect, this "managed /opt" system is a containerd-specific package manager for containerd-specific tools that works irrespective of the actual package manager you used to install containerd.
I don't expect it's widely used, since if you are packaging containerd, you would probably bundle the shims etc you need with it or rely on existing packages in your package manager if they exist. It's mildly useful if you're not using a package manager, but I'm honestly not sure if any real, maintained examples of this system exist. Both the examples in the doc are not upstream-official AFAIK.
This does however provide a use-case for the base-layer manipulation work that doesn't then rely on an entire stack of other changes; getting FROM scratch working in BuildKit is the very far end of the tail. That's gotten a lot closer over the three years since I opened this though.
It would also simplify the containerd CI pipeline for running tests quite a bit. In fact, it might even speed it up, I'm not sure if the current CI pipeline is still building the shim from source on each run, but a 20MB download of an (ideally cached) image is probably going to be faster than that.


Fix shebang lines in python scripts

The statement print "..." can only be used in python 2, not python 3 (python 3 uses print()). This makes sure that the files are executed with python 2 and not python 3 because some users may have python 3 as their default.

Alternatively, we could keep the shebangs as they are, and from _future_ import print_function. But I imagine these scripts are not Python 3 compatible in other ways...?

utils/cmpcodesize also contains two scripts that use the generic python shebang. Should those be included in this pull request?

Unfortunately this approach does not work on OS X, there's no python2.
Instead, I would appreciate review help with #90.

Sorry I'm running on linux. My bad.


Added get_untracked for node_ref.

Avoids getting messages of unused reactivity.
When working with simple event handlers the use of NodeRef::get() triggers a diagnostic due to inner RwSignal that gets it get called. For this cases the simple get_untracked avoids this diagnostic message.

Thanks!


[RMP] Colab for Notebooks

Problem:
Colab updated the environment and rapids is able to run on Colab environment. Testing and Adding Merlin notebooks to Google Colab.
Goal:
User can explore easier Merlin when we can provide an easy integration with Colab environment.
Update:
We discussed the feasibility. Unfortunately, we cannot add automated testing of our examples in the Colab environment. It is not feasible to test all the notebooks manually for a release.
We decided that

[ ] we will write a blog post, explaining how to run our examples in Colab
[ ] reference the blog post in our examples/repo for our users

Constraints:
We should consider only ETL and Training examples. I dont think we can provide Serving with Triton on Colab.
Starting Point:

[ ] POC - Testing some notebooks + adding text + explanation
[ ] Write blog post about using Merlin on Colab environment
[ ] Add blog post to example READMEs of our libraries: dataloader, Merlin, models, transformer4rec, NVTabular

I think we can close the ticket as we decided for a blog post


to fix truncateWords function not work properly

In String's truncateWords function there is a one mistake of > instead of < in if condition, That's why trucateWords not work properly
if(num > arr.length) => This will not work properly
This will slice array if word count is greater than total number of words, which is wrong
instead,
if(num < arr.lenght) => this will work properly
This will slice array if word count is less than total number of words, which is right
and now trucateWords work properly

f


npm "latest" version is 102.5.1, not 3.0.1, causing confusion

Questions?

Check the Troubleshooting / FAQ ?
Search the issues ?

Bug Report
Wrong version tagged as latest in npm registry:
{ "latest": "102.5.1" },

According to https://github.com/SOHU-Co/kafka-node/releases, the latest release as of when this ticket was created is 3.0.1, so that should be tagged as latest.
This is breaking automatic upgrade tools like renovate because they are suggesting upgrading to 102.5.1.
Include Sample Code to reproduce behavior
$ npm info kafka-node

<EMAIL_ADDRESS>| MIT | deps: 13 | versions: 105
Client for Apache Kafka v0.8.1+, v0.9.x, and v0.10.x

keywords: kafka, zookeeper, consumer, producer, broker

dist
.tarball: https://martifactory.io/api/npm/virtual-npm/kafka-node/-/kafka-node-102.5.1.tgz
.shasum: bd14573b2dc8c6bcc0ba24f0714ccbd258584f20

dependencies:
async: ^2.5.0                 buffer-crc32: ~0.2.5          lodash: ^4.17.4               node-zookeeper-client: ~0.2.2 uuid: ^3.0.0
binary: ~0.3.0                buffermaker: ~1.2.0           minimatch: ^3.0.2             optional: ^0.1.3
bl: ^1.2.0                    debug: ^2.1.3                 nested-error-stacks: ^2.0.0   retry: ^0.10.1

dist-tags:
latest: 102.5.1

There's something wrong with your registry. npm's registry is 3.0.1

Why yes, you are correct, let me talk to my team, thanks @hyperlink!


text for multiple nodes

Prompt Everywhere and Anything Everywhere3 could send useful text back (esp. prompt...)

nah


[ovs offload] script name change ovs_offload_lnv.py to ovs_offload_lnw.py

Script names updated to
ovs_offload_lnv.py -> ovs_offload_lnw.py
ovs_offload_lnv2.py -> ovs_offload_lnw_v2.py
ovs_offload_lnv3.py -> ovs_offload_lnw_v3.py
The README is updated with the name change

Updated the README with suggested change .
-1. This is a python script : ovs_offload/ovs_offload_lnw.py that can be used with P4: fxp-net_linux-networking.p4 for release 1.7.0
+1. This is a python script : ovs_offload/ovs_offload_lnw.py that can be used with P4: fxp-net_linux-networking.p4 for release 1.7.0 and later


Sort options for search results in Settings UI

Summary
Feature request to consider adding sort options to various result lists in the Settings UI.
Motivation
It is difficult to find packages, determine which packages might have the most recent updates, highest number or downloads, or even list the packages in a predictable order. For instance, take the following example, searching for terminal in Settings > Install.

These aren't sorted by Package name, Number of downloads, Version, or any other obvious parameter. In fact, the UI does not display any parameter by which they appear to be sorted (for example, if they are sorted by Recent, the date is not displayed). It would be very helpful for the user to select the sort criteria, even if it was only simple criteria like A-Z, or Downloads.
This also applies to other core UI elements which present a list of items, for example Installed Packages, Themes, etc.

I will try to do that


:memo: Docs: Bundler jsdocs

Description

Name all plugins consistently with rollup plugin naming convention
Make webpack plugin a class to be consistent with webpack
Add full jsdoc documentation to all plugins

Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #846   👈

This stack of pull requests is managed by Graphite.


issue 158: Add SmallState

Is an optional reduced size state.
Fixes #158

I performed a quick benchmark with runtime-rng enabled (the most common feature I suppose) and the time to hash a 10 byte string goes from 2.5ns to 12.3ns, which puts it in siphash territory.
Do you think we could take some liberties with the creation of RandomState from SmallState, like
        let [a, _] = get_fixed_seeds();
        AHasher::from_random_state(&RandomState {
            k0: self.key as u64 ^ a[0],
            k1: self.key as u64 ^ a[1],
            k2: self.key as u64 ^ a[2],
            k3: self.key as u64 ^ a[3],
            _h: PhantomData::<T>,
        })

This brings it down from 12ns to 4ns

@arthurprs The code you have there won't work. But I have tried to speed it up. Give it another try.

I got 7ns for 3e14ceb and 6.3ns for 1e94eac.
For context, it's 2.5ns for the regular ahash and 10.3ns for sip13.
I think it's good now, unless you can squeeze more out of it :rocket:

I think I should be able to lower the added overhead by another 20%.

@arthurprs Is e2ae7b7 any faster on your system? It should be, but it my tests it appears to be, but only by about the same margin as random noise.

I can confirm the latest commit is 12% faster than the previous (~5ns).


Deployment App Service fails with "The request was aborted"

Extension version: 1.0.0
Every time I try to deploy to an Azure App Service, I get the error: "The request was aborted"
16:55:43 AppService: Starting deployment...
16:55:58 AppService: Creating zip package...
16:56:58 AppService: Zip package size: 166 MB
16:57:21: Error: The request was aborted

Originally reported here: https://github.com/microsoft/vscode/issues/156724 but closed.

Thanks for reporting this issue, we're tracking this on the Azure App Service extension for VS Code repo https://github.com/microsoft/vscode-azureappservice/issues/2305.

I don't think the issue is solved yet. I faced the same error when I was trying to deploy my fastapi on azure via vs code
14:14:49 testing911: Starting deployment...
14:14:49 testing911: Creating zip package...
14:14:49 testing911: Ignoring files from "appService.zipIgnorePattern"
"pycache{,/}"
".py[cod]"
"$py.class"
".Python{,/}"
"build{,/}"
"develop-eggs{,/}"
"dist{,/}"
"downloads{,/}"
"eggs{,/}"
".eggs{,/}"
"lib{,/}"
"lib64{,/}"
"parts{,/}"
"sdist{,/}"
"var{,/}"
"wheels{,/}"
"share/python-wheels{,/}"
"*.egg-info{,/}"
".installed.cfg"
".egg"
"MANIFEST"
".env{,/}"
".venv{,/}"
"env{,/}"
"venv{,/}"
"ENV{,/}"
"env.bak{,/}"
"venv.bak{,/}"
".vscode{,/}"
14:15:08 testing911: Zip package size: 23.7 MB
14:15:13 testing911: Fetching changes.
14:15:14 testing911: Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/7f78c714-d5e3-4fc5-90b7-d13b624eee65.zip (22.59 MB) to /tmp/zipdeploy/extracted
14:15:18 testing911: Updating submodules.
14:15:19 testing911: Preparing deployment for commit id '9ec9808a-3'.
14:15:20 testing911: PreDeployment: context.CleanOutputPath False
14:15:20 testing911: PreDeployment: context.OutputPath /home/site/wwwroot
14:15:20 testing911: Repository path is /tmp/zipdeploy/extracted
14:15:20 testing911: Running oryx build...
14:15:20 testing911: Command: oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform python --platform-version 3.9 -p virtualenv_name=antenv --log-file /tmp/build-debug.log  -i /tmp/8dc294b72889797 --compress-destination-dir | tee /tmp/oryx-build.log
14:15:22 testing911: Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
14:15:22 testing911: You can report issues at https://github.com/Microsoft/Oryx/issues
14:15:22 testing911: Oryx Version: 0.2.20230508.1, Commit: 7fe2bf39b357dd68572b438a85ca50b5ecfb4592, ReleaseTagName: 20230508.1
14:15:22 testing911: Build Operation ID: bff2f1647b08f9e9
14:15:22 testing911: Repository Commit : 9ec9808a-316d-458f-bb5d-04a6d397614e
14:15:22 testing911: OS Type           : buster
14:15:22 testing911: Image Type        : githubactions
14:15:22 testing911: Detecting platforms...
14:15:27 testing911: Detected following platforms:
14:15:28 testing911:   python: 3.9.18
14:15:28 testing911: Version '3.9.18' of platform 'python' is not installed. Generating script to install it...
14:15:29 testing911: Using intermediate directory '/tmp/8dc294b72889797'.
14:15:29 testing911: Copying files to the intermediate directory...
14:15:29 testing911: Done in 0 sec(s).
14:15:29 testing911: Source directory     : /tmp/8dc294b72889797
14:15:29 testing911: Destination directory: /home/site/wwwroot
14:15:30 testing911: Downloading and extracting 'python' version '3.9.18' to '/tmp/oryx/platforms/python/3.9.18'...
14:15:30 testing911: Detected image debian flavor: buster.
14:15:30 testing911: Downloaded in 2 sec(s).
14:15:30 testing911: Verifying checksum...
14:15:30 testing911: Extracting contents...
14:15:43 testing911: performing sha512 checksum for: python...
14:15:44 testing911: Done in 16 sec(s).
14:15:45 testing911: Python Version: /tmp/oryx/platforms/python/3.9.18/bin/python3.9
14:15:45 testing911: Creating directory for command manifest file if it does not exist
14:15:45 testing911: Removing existing manifest file
14:15:45 testing911: Python Virtual Environment: antenv
14:15:45 testing911: Creating virtual environment...
14:16:03 testing911: Activating virtual environment...
14:16:03 testing911: Running pip install...
14:20:48: Creating resource group "appsvc_linux_centralus_premium" in location "Central US"...
14:20:53: Successfully created resource group "appsvc_linux_centralus_premium".
14:20:53: Ensuring App Service plan "appsvc_linux_centralus_premium" exists...
14:20:53: Creating App Service plan "appsvc_linux_centralus_premium"...
14:20:58: Error: This region has quota of 0 PremiumV2 instances for your subscription. Try selecting different region or SKU.
14:21:55: Creating resource group "appsvc_linux_centralus_basic" in location "Central US"...
14:22:00: Successfully created resource group "appsvc_linux_centralus_basic".
14:22:00: Ensuring App Service plan "appsvc_linux_centralus_basic" exists...
14:22:01: Creating App Service plan "appsvc_linux_centralus_basic"...
14:22:08: Successfully created App Service plan "appsvc_linux_centralus_basic".
14:22:08: Verifying that Application Insights is available for this location...
14:22:09: Creating Application Insights resource "miketesting911"...
14:22:12: Successfully created Application Insights resource "miketesting911".
14:22:12: Creating new web app "miketesting911"...
14:22:33: Created new web app "miketesting911": https://miketesting911.azurewebsites.net
14:22:41 miketesting911: Starting deployment...
14:22:41 miketesting911: Creating zip package...
14:22:41 miketesting911: Ignoring files from "appService.zipIgnorePattern"
"pycache{,/**}"
".py[cod]"
"$py.class"
".Python{,/}"
"build{,/}"
"develop-eggs{,/}"
"dist{,/}"
"downloads{,/}"
"eggs{,/}"
".eggs{,/}"
"lib{,/}"
"lib64{,/}"
"parts{,/}"
"sdist{,/}"
"var{,/}"
"wheels{,/}"
"share/python-wheels{,/}"
".egg-info{,/}"
".installed.cfg"
"*.egg"
"MANIFEST"
".env{,/}"
".venv{,/}"
"env{,/}"
"venv{,/}"
"ENV{,/}"
"env.bak{,/}"
"venv.bak{,/}"
".vscode{,/**}"
14:23:12 miketesting911: Zip package size: 23.7 MB
14:23:16 miketesting911: Fetching changes.
14:23:17 miketesting911: Cleaning up temp folders from previous zip deployments and extracting pushed zip file /tmp/zipdeploy/8fd05fbd-2ae3-4fce-8b35-cdd6934738ca.zip (22.59 MB) to /tmp/zipdeploy/extracted
14:23:23 miketesting911: Updating submodules.
14:23:24 miketesting911: Preparing deployment for commit id '491d7721-8'.
14:23:24 miketesting911: PreDeployment: context.CleanOutputPath False
14:23:24 miketesting911: PreDeployment: context.OutputPath /home/site/wwwroot
14:23:24 miketesting911: Repository path is /tmp/zipdeploy/extracted
14:23:24 miketesting911: Running oryx build...
14:23:24 miketesting911: Command: oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform python --platform-version 3.9 -p virtualenv_name=antenv --log-file /tmp/build-debug.log  -i /tmp/8dc294c9322c9f9 --compress-destination-dir | tee /tmp/oryx-build.log
14:23:27 miketesting911: Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
14:23:27 miketesting911: You can report issues at https://github.com/Microsoft/Oryx/issues
14:23:27 miketesting911: Oryx Version: 0.2.20230508.1, Commit: 7fe2bf39b357dd68572b438a85ca50b5ecfb4592, ReleaseTagName: 20230508.1
14:23:27 miketesting911: Build Operation ID: 4a06482ffcf929ea
14:23:27 miketesting911: Repository Commit : 491d7721-84d5-4be9-a9ec-61ea8b600109
14:23:27 miketesting911: OS Type           : buster
14:23:27 miketesting911: Image Type        : githubactions
14:23:27 miketesting911: Detecting platforms...
14:23:29 miketesting911: Detected following platforms:
14:23:29 miketesting911:   python: 3.9.18
14:23:29 miketesting911: Version '3.9.18' of platform 'python' is not installed. Generating script to install it...
14:23:30 miketesting911: Using intermediate directory '/tmp/8dc294c9322c9f9'.
14:23:30 miketesting911: Copying files to the intermediate directory...
14:23:31 miketesting911: Done in 1 sec(s).
14:23:31 miketesting911: Source directory     : /tmp/8dc294c9322c9f9
14:23:31 miketesting911: Destination directory: /home/site/wwwroot
14:23:31 miketesting911: Downloading and extracting 'python' version '3.9.18' to '/tmp/oryx/platforms/python/3.9.18'...
14:23:31 miketesting911: Detected image debian flavor: buster.
14:23:32 miketesting911: Downloaded in 1 sec(s).
14:23:32 miketesting911: Verifying checksum...
14:23:32 miketesting911: Extracting contents...
14:23:45 miketesting911: performing sha512 checksum for: python...
14:23:47 miketesting911: Done in 16 sec(s).
14:23:47 miketesting911: Python Version: /tmp/oryx/platforms/python/3.9.18/bin/python3.9
14:23:47 miketesting911: Creating directory for command manifest file if it does not exist
14:23:47 miketesting911: Removing existing manifest file
14:23:47 miketesting911: Python Virtual Environment: antenv
14:23:47 miketesting911: Creating virtual environment...
14:24:06 miketesting911: Activating virtual environment...
14:24:06 miketesting911: Running pip install...

@KartikeyBartwal can you create a new issue on the https://github.com/microsoft/vscode-azureappservice repository?


Advanced arch section

creating a new section under References -> Advanced Architecture and adding a bunch of files in there as per a comment in this doc: https://docs.google.com/document/d/1-InCAu-UtnLt896lmkPyMS9T-Ji3o2DylS0DwqQYFJA/edit#

Commit stolen into #80.


Track downloads or keys in local db to avoid paying multiple times for the same content

(This was originally written by Grin but re-written/info added by @tzarebczan - in order to avoid confusion haha )
As a content consumer, I want to avoid paying multiple times for the same thing, or paying for something I do not receive, so I don't spend more credits than necessary.
As both a publisher and consumer of content via the LBRY app, I would like to be able to track what content purchase was associated with my wallet transactions and also what incoming payments are associated with my published items when they are downloaded.
Currently, when you download something that has a key fee, the only trace of it is the fact that it appears in your downloads directory. If you looked at the TX for the purchase, you can't tell which item it was for. Also, when someone purchases content you have set a key fee for, you can see the key payments coming into your wallet, but again, you can't tell which content it's for.
The transaction details (incoming / outgoing payments) would need to be stored in the transaction_list callback data.  This would require lbryum enhancements to https://github.com/lbryio/lbryum/blob/master/lbryum/commands.py which would tie the transaction information to the purchased content or incoming payment - issue opened here https://github.com/lbryio/lbryum/issues/176
The original intent here was to store purchases in a local db, but is that still required if they are stored in the transactions?

@lyoshenka with all the transaction list enhancements we've had, this is a glaring hole right now. Would be great if we can start tracking this info or figure out a lbryum solution. Please bump up in priorty if you agree.

steps:

[ ] figure out db structure for storing payment info (connect claim_outpoint of payment to stream_hash of file)
[ ] write migration
[ ] add functions to save/retrieve payment info to Storage class
[ ] add check for this in Downloader class
[ ] add payment info to transaction_list and file_list
[ ] figure out the correct model for storing deleted blobs. do you delete all the info in the db and just keep the sd blob on disk (so you have the key and don't need to get it again)? do you keep the db entries and just mark the blobs as deleted? something else?
[ ] pr review

@lyoshenka thinking about this again - do we really want to store this information in a db vs on the blockchain (i.e. some special type of support)?  If someone loses their LBRY database file, they wouldn't be able to reference back their incoming payments.
What's the best solution going forward that would help with Proof of Purchase?

There is no restriction on where a Support is paid to in LBRYcrd. You could pay it to yourself, the claim_address, the fee_address or any address you want. Paying for content can easily be a support paid to the fee_address of the metadata. At that point the transaction is eternally linked to the claim_id.  So if someone loses their db files this can easily be parsed again.
I think we can generalize support to be supporting claim functionality of LBRY. Any payment around the default behavior of LBRY like paying for claims, tipping claims, supporting claims, basically anything that is tied to a claim, like paying for channel membership even. Anything that can be associated with a claim.
Until an unspent TxO is spent it will support the claim. Meaning until the publisher spends or who ever it is sent to. This should not be a problem because the claimtrie is under constant changes anyway and its not in the trie forever.
Again to answer the question, once it is a support an outpoint is permanently linked to a claimid making proof of purchase guaranteed. Now since metadata can be changed, someone could change the fee address, this wont matter because the claimid remains the same after an update.

see also https://github.com/lbryio/lbrycrd/issues/184
@tzarebczan is checking with @jackrobison to see if this can be done without blockchain changes

The first step of this (identifying the purchase) is currently being worked in https://github.com/lbryio/lbry/commit/6e2622448e6080f656d1bee595201b357efd50a4

Nice!

@tiger5226 Which issues are still open?

@alyssaoc This one. Maybe you closed it accidentally.

This is effectively being tracked in file list / lbrynet.sqlite so that a user can re-download/re-stream content they paid for. Maybe we can close this until we figure out a better long term solution?

put :clap: the :clap: claim_id :clap: in :clap: the :clap: transaction

The claim is in the transaction for new purchases. The desktop side (https://github.com/lbryio/lbry-desktop/issues/3183) needs some work now to make users aware on the UI.


Day 4 changes

I just added a scrollable area for the image grid in case there are so many that it overwhelmes the window size.
Also, @blcklptn -- do you link to your repository from that first post here??

img2img support now added.


Tests are failing in Julia 1.10

See for example this

This could have potentially caused the issue with the continuous transition node in ReactiveMP here https://github.com/ReactiveBayes/ReactiveMP.jl/pull/372

Corresponding test seems to check inversion of a very bad matrix, so I am not entirely surprised about just exceeding the tolerances. Robustness in the test could be improved anyways. Instead of computing inv(A)*B you should always call A/B.

Might also be related to PostiveFactorizations that we use as a fallback. Not sure whether it uses that one in the test case, but will check later.

It has to do with our own fastcholesky implementation, but I can't reproduce this on my Mac, so it seems to be system-dependent. @bvdmitri I propose to just increase tolerances.

Couldn't reproduce it on my mac either. I've adjusted the tests a bit


  But won't send me an emiail to change my password.
Results:
Backend version: develop-80a6d397
Frontend version: develop-80a6d397
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/<IP_ADDRESS>
Page: https://couchers.org/blog
User:

User deleted account


Set preferred scale on monitor config reload

Describe your PR, what does it fix/add?
Fix #4363
Send preferred scale to surfaces on monitor config change. This is needed for
some applications to adjust their rendered scale properly, including
KeepassXC, alacritty, and mpv, otherwise the rendered scale is not updated for
the applications, resulting in blurry windows due to nearest neighbor or
linear scaling.
Fix is confirmed to work as a patch on v0.34.0

Edit: this seems to cause a crash sometimes when all monitors are disconnected, I'll need to fix that.

Should be fixed now, checked as a patch on current master. Scale is changed successfully and no more crashing when switching monitors.

I told you 20 times to not force push and you broke the diff again

Was just trying to rebase, never knew you were working on this, sorry. What to do now?

rebase against master and stop force pushing

I just did a git reset and re-applied the patch on master, shouldn't have conflicts now.


Split up pkgs/development/libraries

Issue description
pkgs/development/libraries has 1225 entries right now. It would be nice to split them up a little bit. At the least I want to get it below 1000 which is GitHub's max directory size.

[ ] Move all SDL stuff to pkgs/development/libraries/SDL (~10)
[ ] Move all QT stuff to pkgs/development/libraries/qt (~5)
[ ] Move all GTK stuff to pkgs/development/libraries/gtk (~5)
[ ] Move video stuff to pkgs/development/libraries/videos (~50)
[ ] Add pkgs/development/libraries/data for libraries related to XML, JSON, (~50)
[ ] Add pkgs/development/libraries/networking for libraries related to internet, networking, etc. (~50)
[ ] Cleanup miscellaneous things that can be combined (taglib, vapoursynth, polkit, libnetfilter, gupnp, at-spi2, mesa, pcre, libdbusmenu, etc.) (~10)

Any objections to this? Pull requests towards this would be appreciated!

No objection, but I always thought the package hierarchy was somewhat annoying and would rather have it flat like pkgs/z/zlib, pkgs/g/git.

+1 for flat scheme like triton has. Many packages do not fall into a single category – for example, gupnp could belong into either videos, networking or gtk.

but I always thought the package hierarchy was somewhat annoying and would rather have it flat like pkgs/z/zlib, pkgs/g/git

I used to agree with this but I have actually changed my mind. If done right the "nested-tree" style can be  fairly useful. For instance it's done well with pkgs/shells and pkgs/applications/window-managers - you can clearly see the shells and window-managers that we have packaged. I think the key is to be very specific and try to get rid of the "catchall" directories like pkgs/applications/misc pkgs/development/libraries````, and pkgs/development/tools. The Nix expression language makes the name pretty much arbitrary but having a descriptive directory can be very useful for maintenance. In addition, I think it will fit nicely if we ever end up splitting up all-packages.nix``` into multiple files. (default.nix for each subtree?)

Right, the flat structure would have to use keywords of some sort (meta.keywords = [ "networking" "videos" "gtk" ] ?) in the expression files to maintain the grouping we have today with hierarchy. It's a trade-off.

I guess it kind of makes sense for applications, for example, you might want to test something in a multiple WMs. For libraries, however, it is less useful, since you generally know the library you want to use and there are not multiple implementations (maybe libc is an exception). Actually, it might be even kind of annoying – I was typing less p/d/l/colord and then pressing tab key like crazy but the library just was not where I would expect it.

I was typing less p/d/l/colord and then pressing tab key like crazy but the library just was not where I would expect it.

Yeah I think this is definitely an issue. My solution is to just use EDITOR=echo nix edit -f. colord if you need the path.


DEV: added ignore patterns for Docker

[NEW] exclude .devcontainer and any contents from being included

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on develop at 91.616%

Totals

Change from base Build<PHONE_NUMBER>:
91.6%

Covered Lines:
29601

Relevant Lines:
32310

💛  - Coveralls