proposal for constant time execution as opt-in

Because unlike SIMD, we are targeting temporal execution on a wide range of microarchitectures, so we are about to face microarchitecture optimizations or their side effects resulting in data dependent behaviour exploitable via eg. tcp sockets.
Lets consider most obvious skips that could happen due to 1R1W SRAM based regfiles, or just a very sophisticated designs.
When eg. masked vadd.vv is executed:

mask beat is fetched first
if all mask elements are ones then we don't need to fetch destination register
there can be also a tail to preserve
if all mask elements are zeros then we don't need to fetch vs1/vs2, issue it to ALU and writeback (InO, OoO might want to copy it anyway or sub-rename beat)
if mixed then it executes as regular 4R1W instruction

vfirst, vmsbf.m, vmsif.m, vmsof.m

they can finish reading from source operand in first cycle (good luck with constant time comparisons)

vcompress

it can write to variable number of beats, upper part of a last destination beat may need to be also read-preserved without agnostic tail

vredmaxu.vs, vredmax.vs, vredminu.vs, vredmin.vs, vredand.vs, vredor.vs

they can finish after approaching: UINT{SEW}_MAX, INT{SEW}_MAX, UINT{SEW}_MIN, INT{SEW}_MIN, 0, 2^SEW - 1

Floating point reductions can finish in similar manner.
Early out result from multipliers/dividers etc.
Renaming multiple sub-registers into one and executing them as a single beat (both operands, if only one then we save only on read ports)
Scatter/gather ommited due to reasons given in following part.
(of course I'm not HDL guy so someone might know better how things are actually done)
Preventing optimizations and artificially slowing down everything may be bad but letting manufacturers to get benchmarks few % above competition at the cost of silicon CVEs is even worser.
Therefore, I propose to add vconst field to vtype csr (candidate for stabler field #410).
When set, it will prevent any data dependent leakage (due to difference in masking and contention of read, write, execution ports/lanes etc.) from a data being put into vector registers after setting this bit, that will be visible in the same or other SMT domains.
(should fit 0.9 calling conventions and doesn't force mass copying on config change in casse of OoO)
The exception from this rule are things that are very expensive or nearly impossible to mitigate, like:

caching/actual memory traffic
scatter/gather/vrgather indices (eg. subbytes in AES, as this leads to classic cache timming attacks. ShiftRows and MixColumns can still use vrgather as the permutation pattern here is not secret)
leaks from other SMT domains into current one

Simplest implementations will be constant time by their simplicity, so they can simply ignore this bit.
Optionally clearing vconst bit can trigger a zeroing of whole register file (plus some other ooo related stuff). The "power gating vdisable" can be reduced to simple hint like imm[0] bit in return jalr or resulting address. (You are free to not like this optional)
other aspects:

It will allow designers to spend at least some time on security subject
On rushed designs a "more than necessary" slowdown would be acceptable when limited to only crypto code
It could serve as a hint for transparent constant power designs which might have 64bits of expensive constant power multipliers + 192bits of regular multipliers that could be used outside crypto code

Why should this be in base rather then specialized crypto extension?

When specialized extension is not available, we need to fallback to base where we will return to starting point of this issue. The cost on simplest implementations is just one extra bit to ignore.

Since scalar instructions are needed to run vector code and can have data-dependent timing, wouldn't this proposal be subsumed under a single switch for whole hart?

I aim for vector-only as there is way more possible performance trickery, that can be invisible in simplified unit tests.
There could be another CSR to control scalar multi cycle execution (anything else?), but I don't think that the regular supporting code would be a problem.
The other question is, if we want any "obvious variable time" vector execution at all.
At least it have to be made clear what can and what cannot be safely done. Otherwise there will be a lot of CVEs.
One more item for excepion list is vl dependent behaviour, as the executed data length will be exposed by AVL/VLMAX anyway and short vectors would suffer.

This should be discussed as part of broader "constant-time execution" support profile discussion.  Can bring up with tech committee.

Crypto group decided to use rs1/rs2 ordering hint in mul/clmul, so universal constant time csr is less likely.

Crypto group decided to use rs1/rs2 ordering hint in mul/clmul, so universal constant time csr is less likely.

use rs1/rs2 ordering hint

Aren't implementations supposed to be allowed to ignore hints?

use rs1/rs2 ordering hint

Aren't implementations supposed to be allowed to ignore hints?

Aren't implementations supposed to be allowed to ignore hints?

I imagine a profile could mandate otherwise. (My hazy understanding is that a "profile" means a subfamily of (conforming) implementations with certain architectural parameters and implementation-defined behaviors in common.)

Aren't implementations supposed to be allowed to ignore hints?

I imagine a profile could mandate otherwise. (My hazy understanding is that a "profile" means a subfamily of (conforming) implementations with certain architectural parameters and implementation-defined behaviors in common.)

Aren't implementations supposed to be allowed to ignore hints?

The scalar crypto spec (section 3.6) explicitly calls it "hint"

Aren't implementations supposed to be allowed to ignore hints?

The scalar crypto spec (section 3.6) explicitly calls it "hint"

The spec should be changed to avoid the word "hint" for mandatory behavior.

The spec should be changed to avoid the word "hint" for mandatory behavior.

The spec should be changed to avoid the word "hint" for mandatory behavior.
@aswaterman - I think we were using "hint" less rigorously than is usual in RISC-V terminology. I'll change the language appropriately. Indeed, in the sense used in this thread, it is absolutely not an ignorable "hint".

zvkt


Improve multiple-value support

I mentioned on the mailing list I had a simple fix for this, but was struggling to explain exactly how it worked.  I finally had some time this week to code it up.  This also addresses #4
Previously multiple-values were very fragile.
Examples of things that didn't work, but now do:
(multiple-value-bind (x y) (values 1 2) y)
(defun foo () (values 1 2))
(defun bar () foo)
(multiple-value-bind (x y) (bar) y)
Biggest downside of this change is that every return statement must be
prefixed by a clearing of the MV register.

Any comments at all on this?

This approach is not perfect (it, and other alternatives, were discussed in a long thread in 2012 starting at https://mailman.common-lisp.net/pipermail/parenscript-devel/2012-September/000958.html), but it is a big improvement on the arguments.callee approach.
This code doesn't actually work, but it was a good start, and I managed to get it working in patches between 762c048 and 904008. Thank you for putting this together.


Publish new package on crates.io

FromPrimitive is gone from rustc nightly, so a new package is needed.

Done: https://crates.io/crates/nix/0.3.5


Error through training seq2seq model

in test_batches
bleu, bleu_log = data_util.corpus_bleu(all_B_predict, all_B_raw)
TypeError: 'int' object is not iterable

@somah1411 Are you posting the issue to the correct repository? There's no seq2seq model in NLTK (at least not yet) =)
Could you further explain the problem so that we can help you better?

Which seq2seq code outside of NLTK are you using?
Where is the corpus_bleu function coming from?
What is the input for all_B_predict and all_B_raw?

I use seq2seq model and Blue function from nltk, but the value is 0, also, what is the  mininum size foe the data that i have to use
Sent from Outlookhttp://aka.ms/weboutlook

From: alvations<EMAIL_ADDRESS>Sent: Thursday, 29 June 2017 19:13
To: nltk/nltk
Cc: somah1411; Mention
Subject: Re: [nltk/nltk] Error through training seq2seq model (#1762)
@somah1411https://github.com/somah1411 Are you posting the issue to the correct repository? There's no seq2seq model in NLTK (at least not yet) =)
Could you further explain the problem so that we can help you better?

Which seq2seq code outside of NLTK are you using?
Where is the corpus_bleu function coming from?
What is the input for all_B_predict and all_B_raw?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/nltk/nltk/issues/1762#issuecomment-311909473, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ATnoUde3t0ncdnkXcJ6_71CzmTftMkdnks5sI2q1gaJpZM4OI8vK.

@somah1411 Could you further explain the problem so that we can help you better?
Which seq2seq code outside of NLTK are you using?
Where is the corpus_bleu function coming from?
What is the input for all_B_predict and all_B_raw?

Take a look at the examples in the docstring and see whether it helps you to understand how the BLEU score function should be used, see https://github.com/nltk/nltk/blob/develop/nltk/translate/bleu_score.py#L104

Closing off-topic issues to clean up the issue tracker. Please feel free to reopen or create PR the issue is really related to NLTK code.


release: release 1.0.0-rc2 version

Signed-off-by: Wei Fu<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
release
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
just change the version
Ⅳ. Describe how to verify it
wait for CI
Ⅴ. Special notes for reviews

LGTM

Codecov Report

Merging #2145 into master will decrease coverage by 1.39%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #2145     +/-   ##
=========================================
- Coverage   64.38%   62.98%   -1.4%
=========================================
  Files         209      209
  Lines       16631    17137    +506
=========================================
+ Hits        10708    10794     +86
- Misses       4595     5007    +412
- Partials     1328     1336      +8

Flag
Coverage Δ

#criv1alpha1test
32.93% <ø> (-0.02%)
:arrow_down:

#criv1alpha2test
33.35% <ø> (-0.22%)
:arrow_down:

#integrationtest
39.26% <ø> (+0.01%)
:arrow_up:

#unittest
23.9% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

cri/v1alpha1/cri_utils.go
60.51% <0%> (-22.82%)
:arrow_down:

cri/v1alpha2/cri_utils.go
70.58% <0%> (-11.78%)
:arrow_down:

cri/stream/httpstream/spdy/upgrade.go
54.28% <0%> (-5.72%)
:arrow_down:

cri/v1alpha2/cri.go
61.97% <0%> (-2.79%)
:arrow_down:

cri/v1alpha1/cri.go
61.03% <0%> (-2.67%)
:arrow_down:

daemon/mgr/container.go
56.65% <0%> (+0.2%)
:arrow_up:


[Release] Bump version to v1.0.0-rc.1.0

Description
Closes #1401. Bump from beta to release candidate.
Remove "beta" version introspection functions. We could have adapted these somehow, but that would be a lot of work for no current use-case.

[x] I have updated the release notes.
[x] I have updated all relevant user documentation.

I'll admit I don't understand why a prerelease identifier needs anything more than a monotonically increasing integer, rather than an x.y. But, you're not changing from previous behaviour here, so just my observation.

We do have a note in the README about this. It's to be able to flag major breaking vs. non-breaking changes. When we originally discussed it, it was partially so as a team we  could practice applying semver logic. We knew we'd have a fairly long beta period, during which time real-world applications would start using OpenAssetIO, and so semver seemed valuable.  As it turns out, I've not come across a  case where the pre-release major/minor distinction has been useful, though.

As there was a mechanism to query a beta major and minor version, why isn't there a mechanism to query a release candidate major and minor version?

Basically, laziness/reducing maintenance burden. I don't think we properly considered the usefulness of exposing pre-release version. From the commit message

We could reword to "rc" but then rc 1.0 would seem lower than beta 2.0,
unless we expose the "pre-release phase" for introspection too... it all
gets a bit messy and requires proper design.

Instead, take the easy way out and remove introspection of pre-release
version numbers altogether. But keep the pre-release tag in the full
version string, so the information remains available for those that wish
to parse it.

Do you think there's value in keeping it, after all?

Do you think there's value in keeping it, after all?

Only if there's evidence that people have used it.
(They can also do their own version number parsing if it's really desired)

Added 27c84c19 with some changes to docs to stop referring to alpha/beta.


What does the "seeds" mean?

When I run secucheck, the console outputs the following：

and I want to know what does the "seeds" mean? I can't find any explanation in the paper https://ieeexplore.ieee.org/document/9610678, can you help me? Thanks a lot.

"Seed" is the term used by the Boomerang solver and it means that some of the sources that you provide as fluentTQL specification were matched in the code being analyzed. And from there the tracking of the data-flow information starts.  If sink is reached from that seed then it will be repored according to the fluentTQL specification.

What is the relationship between "entrypoint" and "seed", they don't seem to be in one-to-one correspondence.

And as far as I know, Boomerang is built on top of the IFDS framework, did I make a mistake?

The entry point is used for the callgraph construction algorithms.
Boomerang is not based on IFDS! It is implementation of the SPDS framework (synchronized pushdown systems) which is mainly computes alias and data-flow information from the given seed. Then in SecuCheck, we are processing this and use it as a taint analysis.

I am confused......    https://www.bodden.de/pubs/sna+16boomerang.pdf

The idea is that IFDS and SPDS are equivalent in terms of what they can compute.
The paper you reference is the initial version of Boomerang, and the idea was only to compute alias information. Later in his dissertation (https://www.bodden.de/pubs/phdSpaeth.pdf), Johanes Späth reimplemented Boomerang to use the SPDS framework and not IFDS.
Hope this helps.

Thank you very much, your answer help me a lot!


Shouldn't running current migration when no file exists throw an error?

I don't know if this is as intended or if it's a bug.
I created a migration using npx platformatic db migrations create, and then deleted the SQL files. When running npm run migration, it was trying to use the files from the current migration, but instead of throwing an error, it was just returning me this, which isn't really clear on what's happening:

Shouldn't there be an error if the files from the migration are missing?

I don't think it should throw an error.
If there are no migrations to apply, no migrations are applied.
Probably a warning like "No migration files found" would be helpful for a dev though.

I can create a PR for this.
Do you know where I can add the logic to throw the warning if the files don't exist?

https://github.com/platformatic/platformatic/blob/main/packages/db/lib/migrator.mjs#L21
Note that you should use logger.warn() or logger.info()

Closed by #1467


Add options to change alignment of number/relativenumber

Currently, number and relativenumber both align right. When used together, the current line number aligns left for readability. However, due to most configs highlighting the current line number, this change in alignment is no longer needed and it becomes more consistent to keep alignment one way.
This pull request adds two options - 'lalign/la' and 'ralign/ra.' lalign/la left aligns all line numbers, while ralign/ra right aligns specifically the current line when both number and relativenumber are set. The options are a little unintuitive but they basically do the opposite alignment of the default behavior. Both options are set to FALSE by default.

I'll repeat my comment from https://github.com/neovim/neovim/pull/4424#issuecomment-194347615 :

the option names are very unintuitive
the options are extremely specific (if every option were like this, Vim would have millions of options)
adding more than one option for this concept is obnoxious
the options are separated in the help doc for reasons I cannot tell

Adding not one, but two options for an extremely narrow use-case is not only unpleasant from a UI perspective, but it's also very short-sighted. What if users want to change the format.
See https://github.com/neovim/neovim/pull/4941 for an alternative, and my comment there:

I suggest a new option: 'numberformat' which takes a 'statusline'-style format and applies it to the current line

Hey, sorry. Thought the pulreq was closed - didn't mean to open a new one. I'll be looking into the numberformat option, as that seems to be a much saner choice.


Add license field in package.json

To remove the following warning which appears when running npm install:
npm WARN<EMAIL_ADDRESS>No license field.

LGTM 🚢


Exception thrown by Vue code during update with template involving v-if and css styles

Vue.js version
2.1.6
Reproduction Link
http://jsfiddle.net/od3m0ta9/
Steps to reproduce
Given the following code

Something

      <button v-on:click="buttonClicked">Click me</button>

clicking the button causes the following exception to be thrown in the Chrome Version 55.0.2883.95 (64-bit) console
DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.
    at Object.removeChild (https://unpkg.com/vue@2.1.6/dist/vue.js:3825:8)
    at removeVnodes (https://unpkg.com/vue@2.1.6/dist/vue.js:4188:19)
    at patchVnode (https://unpkg.com/vue@2.1.6/dist/vue.js:4333:9)
    at updateChildren (https://unpkg.com/vue@2.1.6/dist/vue.js:4252:9)
    at patchVnode (https://unpkg.com/vue@2.1.6/dist/vue.js:4328:29)
    at Vue$3.patch [as __patch__] (https://unpkg.com/vue@2.1.6/dist/vue.js:4451:9)
    at Vue$3.Vue._update (https://unpkg.com/vue@2.1.6/dist/vue.js:2224:19)
    at Vue$3.<anonymous> (https://unpkg.com/vue@2.1.6/dist/vue.js:2191:10)
    at Watcher.get (https://unpkg.com/vue@2.1.6/dist/vue.js:1656:27)
    at Watcher.run (https://unpkg.com/vue@2.1.6/dist/vue.js:1725:22)

and all JS execution stops (this is proven by the fact the time does not update with repeated clicks).
Notes
Strangely, the error doesn't happen if you drop the style attributes from the two divs.
Salutation
Thanks! Best regards,
Eric

I found a workaround in the meantime. Wrap each of the two divs in a dummy div with no attributes, i.e. substitute the relevant lines with this:

Something

Thanks for reporting this. It seems that Vue tries to re-use the div element instead of removing one and adding the other (Re-using elements is generally preferred for performance reasons), but messes up in the process.
Seems to be a bug indeed.
A better workaround would be to explicitly key the elements with a  key (unique in the component's scope) to force Vue to actually replace the divs:
http://jsfiddle.net/Linusborg/od3m0ta9/2/

Cool thanks for the better workaround

Thanks, I am looking into it.


Add feature to play animation on condition

maybe add a disabled tag which can be manipulated to play when state changes.

maybe add a disabled tag which can be manipulated to play when state changes.

i made a little wrapper component that you can use as well
import { Fade as DefaultFade, FadeProps } from "react-awesome-reveal";

interface Props extends FadeProps {
	disabled?: boolean;
}

export default function Fade(props: Props) {
	if (!props.disabled) {
		return <DefaultFade {...props} />;
	} else {
		return <>{props.children}</>;
	}
}

hope it helps

This feature is outside the scope of the library (the only condition that triggers an animation is the visibility in the viewport).


explain: support subnet name

The logic supports using the CIDR of a subnet as src/dst, so how about we support a subnet name as src/dst?
The intent is that at the time of processing inputs the subnet name is replaced by its CIDR, and from then on the logic is the same.

Note that in connectivity we also support connectivity between subnets. This is not what you are referring to, and this is something we do not have in the coming milestones.
We need to somehow make it clear that a subnet is read as its address space and not as subnet_analysis
@adisos @zivnevo what milestone you want it in? it seems quit straightforward, but V0.4 might be too early given the holiday

Note that in connectivity we also support connectivity between subnets. This is not what you are referring to, and this is something we do not have in the coming milestones. We need to somehow make it clear that a subnet is read as its address space and not as subnet_analysis. Ideas? @kyorav
@adisos @zivnevo what milestone you want it in? it seems quit straightforward, but V0.4 might be too early given the holiday

I believe this is not urgent, so not for v0.4. Let's leave milestone open for now

solved by https://github.com/np-guard/vpc-network-config-analyzer/pull/858


world.get_actors() does not get all actors

While using manual control (carla/PythonAPI/manual_control.py) in version 0.9.3 I can see that when colliding with an object I can know the kind of object I'm colliding with. For example if I collide with a wall, I will read Collision with: Wall, or when I collide with a tree I'll read Collision with: Vegetation.
I would like to get these actors from the world. When I use:
[d.type_id for d in world.get_actors()]

I will not get the type Wall or Vegetation. The only static actors I see from the list are: 'sensor.camera.depth', 'sensor.camera.rgb', 'sensor.camera.semantic_segmentation','sensor.lidar.ray_cast', 'sensor.other.collision', 'sensor.other.gnss', 'spectator', 'traffic.speed_limit.30', 'traffic.speed_limit.60', 'traffic.speed_limit.90', 'traffic.traffic_light'
Is there a way to detect the other actors?

Hi @silgon,
The collision sensor creates "fake" actors when it collides with something that is not an actor, this is so we can retrieve the semantic tags of the object we hit. But all those objects are not registered as Carla actors, it would be very expensive tracking the state of every object in the scene.

Thanks for the reply @nsubiron.
I see, I thought there were more objects that were just not displayed in the information given by the API.
Is there way to get the information about the buildings, vegetation and so from carla API?, or is it necessary to do some c++ to interface with unreal engine (never done that before).
I ask because I want to know the objects (e.g. buildings) that are near the car and not necessarily using the segmentation camera.

Hi @nsubiron
I am reading your reply commented Feb 25, 2019, and I have a question that how to register an object as Carla actors?

Hi @nsubiron
I am reading your reply commented Feb 25, 2019 and I have a question that how can I registor an object as a Carla actor?

Is there some method to get all the vertices of an actor/model and the 2D image coordinates?

@whbcumtb To register another (type of) actor you need to modify the simulator's code, for instance, here we register all the static mesh objects that are movable.
And for getting the vertices of an actor, you can use their bounding boxes, but right now only vehicles and pedestrians have bounding boxes defined.

Thank you very much! @nsubiron .

As shown in the above figure, we imported a turn_right model into world scene as an actor and converted it into a blueprint. According to your reply, we can get this model's actor by the function get_actors() in the way of scripting, but we can not get the corresponding blueprint by the function get_blueprint_library(). There are some further issues we want to resolve, and can you give us some advice in detail?

we added a variable that labels the model's shape when edited the blueprint, and want to access this variable value by scripting, how to achieve it?
how can we get the 2D image coordinates of the red corner points in this figure and the corresponding 3D vertices coordinates?

@whbcumtb To register another (type of) actor you need to modify the simulator's code, for instance, here we register all the static mesh objects that are movable.
And for getting the vertices of an actor, you can use their bounding boxes, but right now only vehicles and pedestrians have bounding boxes defined.

Is there any plans to include bounding boxes for actors other than vehicles and walkers any time soon?

@whbcumtb Able to solve the issue ?


Add favicon. Related #96

Added a bigger favicon. I couldn't see the eyes!

Codecov Report

Merging #97 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #97   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          28     28
  Branches        2      2
=====================================
  Hits           28     28

Continue to review full report at Codecov.

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


Validate resolver before starting

When we had apikey instead of apiKey - it just ignored the key and used unautheticated request, while the config was clearly invalid against its schema.

I implemented this, but I am unhappy with the implementation, because it involved adding 5 versions of the resolver-config schemas to the app's resources/iglu-client-embedded directory.  I think this validation is better done in iglu-scala-client, so I opened this issue over there.


Flashlist caches scrolling carousels from previous cells

Current behavior
I have a list with cells containing photo carousels. Each time a new batch of items is loaded, the cell keep in cache the scroll of the previous item.
Expected behavior
Is there a way to prevent this cell memoization behavior?
To Reproduce
Create a flashlist with a simple vertical carousel photo inside rows
Platform:

[x] iOS
[x] Android

Environment

"@shopify/flash-list": "1.4.0"
"react-native": "0.71.8"
"expo": "~48.0.18"

Using react-native-fast-image solved this problem on images for me

@ahmetares Thank you for your reply. Even using react-native-fast-image (expo-image for me), I still have the same problem, it keep the scroll of previous cards >
https://github.com/Shopify/flash-list/assets/32069074/e597423c-a66a-4e60-8365-3381bedb4ada
I don't know if it's possible to bypass the library's behavior 🤔

can you add a expo snack with reproducible code this might be a key problem.

Yupp!! Assume is when Item1 out of screen and Item10 move into screnn, Flashlist will recycle Item1 by data of Item10, and keep current state of Item1, then cause issue above. Solution is reset carousel index when data change example
useEffect(() => {
  // Reset carousel position (view was recycled for another item),method move to index inside carousel.
  carouselRef.current.moveToIndex(0);
}, [item.id]);

Giving key for Carousel component solved the issue for me

@ClemCornet I actually think this should be reopened as it seems like something that would ideally be handled in FlashList. AFAIK, using a key isn't ideal as that is against the recommendations of flashlist as it causes another render and reduces performance.
Here's the homebrewed solution that I came up with:
// OuterList is a vertically scrolling list which. Each item will be a horizontally scrolling nested list
const OuterList = () => {
  // ...
  const scrollMap = useRef<Record<string, number | undefined>>({});

  return (
    <FlashList
      data={items}
      extraData={scrollMap.current}
      renderItem={(props) => (
        <InnerList
          item={props.item}
          scrollMap={props.extraData}
        />
      )}
    />
  )
}

// The nested, horizontally scrolling list. Recieves the `scrollMap`, updates it, and scrolls appropriately
const InnerList = ({
  item,
  scrollMap,
}: {
  item: any;
  scrollMap: Record<string, number | undefined>;
}) => {
  // ...
  const flatListRef = useRef<FlashList<CollectionItem> | null>();
  const lastItem = useRef(item);

  // FlashList recycles components but it doesn't properly update their scroll
  // position. So we reset the scroll position here to the last known position
  if (item.id && lastItem.current.id !== item.id) {
    lastItem.current = item.id;
    const position = scrollMap[item.id] || 0;

    console.log(">>>>>>> scrolling to offset", item.id, position);
    flatListRef.current?.scrollToOffset({ offset: position, animated: false });
  }

  return (
    <FlashList
      ref={r => flatListRef.current = r}
      horizontal
      data={item.someData}
      extraData={scrollMap.current}
      renderItem={() => {
        // Item to render
      }}
      // NOTE: we need to track the scroll position
      onScroll={({ nativeEvent: { contentOffset: { x }}}) => {
        scrollMap[item.id] = x;
      }}
    />
  )
}

Anyways, this seems to be working for now. It'd be great if FlashList could take care of this internally somehow.

+1 to reopen 🙏

While we can automatically scroll to offset 0 internally, it may not be the best idea. In a lot of cases people generate new data array across renders and there's no reliable way to predict that the list has been recycled inside a parent list or due to some manipulation by the dev. My suggestion is to just scroll to 0 when the data array changes and make sure data is memoized correctly.


make status always shows outdated

I realize that make status says that it's approximate, because it compares the package age with all the files in the package directory, but this is causing confusion for our users.
There are several issues at play here though regarding ok vs outdated:

make status may not represent the package you're interested in, since there might be one linked to boost/1.68 that is ancient but another that is linked to boost/1.78.0 that is up-to-date. How are we even to know which configuration the user is interested in?
make status may not be accurate, since we modified a file that is not contributing to the package (eg. README), making it look as though the package is outdated, when it is not.

Really, the whole point of make status is the following:
A. Ensure that I don't forget to export changes to recipe or sources.
B. Ensure that I don't forget to build a package if it's outdated.
C. Tell me if this package is in editable mode or not.
It would be easy enough to solve problems (1) and (2) with cloe-launch. However, cloe-launch cannot by nature address (A) and addressing (C) doesn't make much sense for cloe-launch.

Proposed solution:

Use ok? and outdated? in output from make status
Add check to cloe-launch to check if package is out-of-date (how?)
Print warning in cloe-launch when a user is using out-of-date packages
Fix Python stack-trace when a package does not exist

This last point would fix the unreadable output from cloe-launch when the requirements are not available.

Case in point:
make package-auto followed by make status:
$ make status
ok       : fable/0.19.0-nightly@cloe/develop
outdated : cloe-runtime/0.19.0-nightly@cloe/develop
outdated : cloe-models/0.19.0-nightly@cloe/develop
outdated : cloe-oak/0.19.0-nightly@cloe/develop
ok       : cloe-engine/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-gndtruth-extractor/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-basic/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-speedometer/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-virtue/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-mocks/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-noisy-sensor/0.19.0-nightly@cloe/develop
outdated : cloe-plugin-minimator/0.19.0-nightly@cloe/develop

The fable and cloe-engine are only showing ok because I ran make -C fable package and make -C engine package.

One thing which would solve (A) is the use of lockfiles with make status. This would involve creating a lockfile for each package right now though... which would increase the time to run for make status significantly.


Question about the effectiveness of Chinese speech quality evaluation

Hi:
Thank you for your hard work, I have a  question, would be great if you could find some time to answer it.
The pre-trained model "NISQA (v2.0) mos only"  you provided shows good results on the English data-set. However, performance results are limited on our self-made Chinese data-set. We collected 2000  simulated distortions speech and obtained their MOS by crowdsourcing scoring.  However, The PCC of "NISQA (v2.0) mos only" is only 68% and the RMSE is 0.99.
Does the provided pre-training model have greater restrictions on the type of speech?
Thanks
Yimingxiao

Hi,
That is interesting, the pre-trained model was actually also trained with Chinese speech samples, although the majority was English and other European languages so there could be an effect of the language. What kind of distortions has your Chinese dataset? Are they different to the distortions of the English dataset?
The main focus of the model are distortions caused by communication networks, such as codecs, background noises, packet loss. It is not focused on noise suppression / speech enhancment.
Best,
Gabriel

Thanks for your reply.
The distortions  we considered  are similar to your paper. Including codecs, packet loss, background noise, etc. Of course, our Chinese speech samples  also consider the case of speech enhancement.  Because the current popular communication systems have speech enhancement modules. Will it affect the results?

Hm, it could be either the speech enhancement conditions or it could be due to the language. You could finetune the model with your own dataset with a smaller learning rate just for a few epochs, the model should pick up the new conditions quickly.

Thanks for your advice!


Demo/Demo Pane Crash with "Unexpected end of JSON input" [Bug]

Is this a regression?
I don't know
Description
Crash when trying to use Demo or Demo Pane, like this: {{ NgDocActions.demo("MyDemoComponent") }}
Without going down a rabbit hole, here's the important details: I'm getting this stack dump in the console:
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Object.extractOptions (ng-doc-app-processors-processors.mjs:43:21)

So we know the code that's crashing is here:
const demoProcessor = {
  component: NgDocDemoComponent,
  selector: 'ng-doc-demo',
  extractOptions: element => ({
    inputs: {
      componentName: element.getAttribute('componentName') || undefined,
      **options: JSON.parse(element.querySelector('#options')?.textContent ?? '') || {}**
    }
  })
};

Now, I don't know why, but element.querySelector('#options') is returning undefined (that's fine, whatever). But notice the ?? says if it's undefined, return an empty string. Well there's the crash - JSON.parse throws an exception when given an empty string. (The same code appears in demoPaneProcessor.)
Edit to add: This version make so difference (same crash, options is still undefined):
{{ NgDocActions.demo("MyDemoComponent", {container: false}) }}
Please provide the exception or error you saw
See above.

OS
Windows
Browser
Chrome
Node version
18.20.3
Anything else?
Angular 18.0

Well I just found steps to reproduce! The bug is triggered by having text before the {{ }}!
Crash:
FOO
{{ NgDocActions.demo("MyDemoComponent") }}

Or
FOO {{ NgDocActions.demo("MyDemoComponent") }}

If I remove "FOO" the crash goes away =)

Ah I see, this is how marked library works but I think I could fix it by adding some whitespaces for the actions. I'll try to fix it thanks 👍

I recommend tweaking two identical statements - they're just a ticking time bomb:
The empty string here is invalid - it causes JSON.parse to throw:
options: JSON.parse(element.querySelector('#options')?.textContent ?? '') || {}
I believe replacing the empty string with an empty object will fix the issue:
options: JSON.parse(element.querySelector('#options')?.textContent ?? '{}') || {};

Since it's not urgent I'll fix it in version 18

Released in NgDoc 18


Deployment

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptence Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

Acceptance criteria fulfilled


gcp fw deploy script

Hello devsecfranklin, I will assign this PR to you.
Here are some commands you can use with this PR:
/documentation - suggest documentation
/improvements - suggest code optimization
/security - suggest security enhancements for this PR
/tests - suggest test cases


Missing method in RedisPipeline interface.

Missing method in RedisPipeline interface:
Response pttl(String key);
Response set(String key, String value, String nxxx, String expx, int time);
Response psetex(String key, long milliseconds, String value);
jedis ver: 2.9.0

@PhantomThief what about sending a PR as you seem to need them?. We always encourage new contributors!

@marcosnils the PR is here:
https://github.com/xetorthio/jedis/pull/1531
while it seemed something wrong in jdk8, i would check later.


Question: why not RemoveEventHandler or way to specify the order of execution of events.

Was there a reason to not have a “RemoveEventHandler”, as opposite to “AddEventHandler”?
Also, what are your thoughts execution order of event handlers? I am attempting to force the execution of a handler defined in a derived project ahead of the handler which is defined in the base project.
Thank you

I didn't add a Remove because the Config (and thus the event handlers) is shared across all instances of the user account service. If you need a different set of event handlers for a different scenario then use a different config.


Modify data model, access functions, and API to link ModelRun to sensor/measure

The current ModelRun class doesn't have any column that indicates the actual measurement to which the predicted values should be compared.
In CROP, we have a "sensor_id" ForeignKey, but the actual variable (temperature) is hard-coded.
Here we can add (nullable) columns for both sensor_id and sensor_measure_id.

Done


Fix broken social link on footer

The social media icons on the footer of the official OSCSA website have broken links.

Hi @OsujiPius i worked on this earlier and created a PR, i just created the issue to reflect the PR.

I will close this issue now, feel free to open it later!

Please make sure you create the issue before the PR and provide elaborate descriptions using the template for both the issue and PR!


Improve performance of LRNGrad on CPU builds

This PR improves the performance of the CPU version of LRNGrad by moving a number of computations out of its innermost loop.  The extent of the resulting performance gains is dependent on the depth_radius, the compiler and the number of CPUs available.  The BM_LRNGrad benchmark is showing a 1.48x performance gain for a depth_radius of 4 and a 1.31x gain for a depth_radius of 2 when built with gcc 7.3.0 and run on a single core machine.  With gcc 5.4.0 the results on a single core machine are less impressive but are nonetheless significant;  1.13x for a depth radius of 4 and 1.10x with a depth radius of 2. With gcc 7.3.0 on a 16 core machine speed ups of 1.4x and 1.2x can be observed using a depth radius of 4 and 2 respectively.
The PR also includes a new benchmark for LRNGradOp, used to measure the performance gains, and fixes some formatting issues with the lrn_op.cc file.

Nagging Reviewer @rryan: You have been added as a reviewer to this pull request. Please add your review or reassign. It has been 14 days with no activity and the awaiting review label has been applied.

Thank you @markdryan and sorry for the delay.
@ymodak I'm happy to review, but I don't have the ability to approve PRs.

@markdryan was clang-format required? I'm surprised there were differences, since all internal changes to TensorFlow require clang-format to be applied. I just ran clang-format on lrn_op.cc and there were no changes, so I suspect you're either using a different version or it didn't end up using our .clang-format file.

@rryan Could you PTAL and approve.


Add a API to quit all nodes of a raft cluster

I think this should be implemented at the application level now


Remove Make School

As of July 30th, Make School is no longer in operation.
https://www.dominican.edu/news/news-listing/dominican-welcomes-applied-computer-science-students

The Applied Computer Science program was officially handed over to Dominican on July 30.

@DeJayDev Thank you for the update! Pull request merged.


Add logging to datanymizer

✓ Checklist:

[ ] This PR has been added to CHANGELOG.md (at the top of the list);
[ ] Tests for the changes have been added (for bug fixes / features);
[ ] Docs have been added / updated (for bug fixes / features).

Codecov Report

Merging #184 (29f6c35) into main (24115d7) will decrease coverage by 0.19%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##             main     #184      +/-   ##
==========================================
- Coverage   86.88%   86.68%   -0.20%
==========================================
  Files          57       57
  Lines        4002     4002
==========================================
- Hits         3477     3469       -8
- Misses        525      533       +8

Impacted Files
Coverage Δ

cli/pg_datanymizer/src/main.rs
14.28% <0.00%> (-2.39%)
:arrow_down:

datanymizer_dumper/src/postgres/dumper.rs
31.21% <0.00%> (-0.93%)
:arrow_down:

...atanymizer_engine/src/transformers/template/mod.rs
97.26% <80.00%> (-0.25%)
:arrow_down:

...atanymizer_dumper/src/postgres/schema_inspector.rs
88.67% <0.00%> (-1.89%)
:arrow_down:

...ngine/src/transformers/template/store_functions.rs
85.71% <0.00%> (-0.65%)
:arrow_down:

...mizer_engine/src/transformers/phone/transformer.rs
80.43% <0.00%> (-0.42%)
:arrow_down:

datanymizer_dumper/src/lib.rs
76.49% <0.00%> (-0.11%)
:arrow_down:

datanymizer_dumper/src/postgres/table.rs
91.92% <0.00%> (-0.08%)
:arrow_down:

datanymizer_engine/src/transformers/capitalize.rs
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Multiple features throw batchnorm exception, problem at size

with open('/home/estathop/Desktop/ordered_word2vec_22_sentences.pickle', 'r') as f42:
    ordered_word_feats = pickle.load(f42)
with open('/home/estathop/Desktop/22featvec.pickle', 'r') as f66:
    listoffeats = pickle.load(f66)

Here I load the pre-extracted features by me, ordered_word_feats is a list of 22 X N X 300 where N is the number of words in text.  listoffeatsis a list of 22 X N X 2048 where N is the number of frames per video. Apparently, 22 is the number of video-text pair, and 300 and 2048 is the feature size. The ordered_word_feats[0] is the text from listoffeats[0] image features extracted from video. [1] for [1], [2] for [2] etc.
''' Load and initiate the pre-trained model from Miech Journal for similarity among modalities score'''
video_modality_dim = {'face': (128,128), 'audio': (128*16,128),
'visual': (2048,2048), 'motion': (1024,1024)}
the_model = Net(video_modality_dim, 300, audio_cluster=16)
the_model.load_state_dict(torch.load('/home/estathop/Desktop/journalmodel/msrvttjournal.pt'))
the_model.eval()

Here I load the model and put it in eval mode.
''' create indices for the last model'''
face_ind=np.zeros(1)
audio_ind=np.zeros(1)
motion_ind=np.zeros(1)

'''create the tensors for the last model'''

face_data = torch.from_numpy(np.zeros([1,128]))
audio_data = torch.from_numpy(np.zeros([1,1,128]))
motion_data =torch.from_numpy(np.zeros([1,1024]))

audio_data = audio_data.type(torch.FloatTensor)
audio_data = Variable(audio_data, requires_grad=False)

face_data = face_data.type(torch.FloatTensor)
face_data = Variable(face_data, requires_grad = False)

motion_data = motion_data.type(torch.FloatTensor)
motion_data = Variable(motion_data, requires_grad = False)

Here I create the indices and tensors for data I don't have, it's missing
pred_true=list()
pred_false=list()
for enum in ordered_word_feats:
    for enum2 in listoffeats:
         word_tensor_to_be = enum.reshape(1,len(enum),300)
         word_tensor = torch.from_numpy(np.array(word_tensor_to_be))
         visual_data = torch.from_numpy(np.array([enum2]))

         visual_data = visual_data.type(torch.FloatTensor)
         visual_data = Variable(visual_data, requires_grad = False)
         visual_ind= np.ones(len(enum2))

         ind = {'face': face_ind, 'audio': audio_ind, 'visual': visual_ind, 'motion': motion_ind}
         videos = {'face': face_data, 'audio': audio_data, 'visual': visual_data, 'motion': motion_data}
         ypreds = the_model(word_tensor, videos, ind)
         ypreds2 = the_model(word_tensor, videos, ind, False)
         pred_true.append(ypreds)
         pred_false.append(ypreds2)

And here is my problem word_tensor_to_be is supposed to be a (1,N,300) word feature vector with N being the number of words in that text, 1 is the batch size and 300 the feature size. enum and enum2 are the equivalent numpy arrays iterating through the parent lists for image and word feature vectors described above. My goal is to take the final similarity score among all pairs between 22 texts and 22 videos. But there is an error again which follows:
Traceback (most recent call last):

  File "<ipython-input-67-106513ee0f47>", line 3, in <module>
    ypreds = the_model(word_tensor, videos, ind)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)

  File "model.py", line 46, in forward
    return self.mee(text, aggregated_video, ind, conf)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)

  File "model.py", line 71, in forward
    video[self.m[i]] = l(video[self.m[i]])

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)

  File "model.py", line 128, in forward
    x = self.cg(x)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)

  File "model.py", line 145, in forward
    x1 = self.batch_norm(x1)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/module.py", line 477, in __call__
    result = self.forward(*input, **kwargs)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/modules/batchnorm.py", line 66, in forward
    exponential_average_factor, self.eps)

  File "/home/estathop/anaconda2/envs/tensorflow/lib/python2.7/site-packages/torch/nn/functional.py", line 1254, in batch_norm
    training, momentum, eps, torch.backends.cudnn.enabled

RuntimeError: running_mean should contain 16889 elements not 2048

As read in the journal, the array for visual_data should be Nx2048 with visual_ind being np.ones(len(N))
enum2.shape
Out[68]: (16889, 2048)

len(enum2)
Out[69]: 16889

enum.shape
Out[70]: (411, 300)

len(enum)
Out[71]: 411

Any ideas ? What am I missing again here ?

class Net(nn.Module):
    def __init__(self, video_modality_dim, text_dim, audio_cluster=8,  text_cluster=32):
        super(Net, self).__init__()

        self.audio_pooling = NetVLAD(feature_size=video_modality_dim['audio'][1],
                cluster_size=audio_cluster)
        self.text_pooling = NetVLAD(feature_size=text_dim,
                cluster_size=text_cluster)

        self.mee = MEE(video_modality_dim, self.text_pooling.out_dim)

    def forward(self, text, video, ind, conf=True):

        aggregated_video = {}

        aggregated_video['audio'] = self.audio_pooling(video['audio'])
        aggregated_video['face'] = video['face']
        aggregated_video['motion'] = video['motion']
        aggregated_video['visual'] = video['visual']

        text = self.text_pooling(text)

return self.mee(text, aggregated_video, ind, conf)

where exactly does the max pooling on appearance happen ? because the model when inserted with only 1 feature vector (1 x 2048) , it seems to work, it seems to miss the dimensions when inserted with multiple feature vectors concerning appearance

How do you perform exactly the max pooling ? I guess I have to do it myself (after trying all day to see what's wrong with the model )

Yes, I have fed the aggregated video representation. Which means take I took the list of features for each video and performed a maximum pooling on those features. For example if you have a representation of size N x T x 2048 where N is the number of videos and T the maximum number of features, you would just perform a max operation on the dimension of sized T. The final tensor would thus be of size N x 2048 (no temporal dimension)

the MEE block accepts input of size N X M , where N is the batch size and M is the product of (feature size X cluster size) derived from NetVlad. Before that, when passing to text  variable a N X W X Y matrix to Netvlad, where N is the batch size, W is the the number of word features (W is the number of words in sentence to be precise) derived from word2vec and Y is the feature size which is 300 in this occasion. I created a _numpy.object with 22 X W X 300 where W varies depending on the total words of the sentence, but there isn't a valid way to cast to numpy.array or to tensor because of the arbitrary dimension of W. So is it assumed that the W is a fixed number of words ? for example 10 ? Or is it a way I am missing. For that reason, I created an external loop with batch size 1 and gave only 1 aggregated video representation and 1 array of W X 300 which is the matrix from word2vec.
for enum in ordered_word_feats:
    word_tensor_to_be = enum.reshape(1,len(enum),300)
    word_tensor = torch.from_numpy(np.array(word_tensor_to_be))
    for enum2 in aggr_vis_feats:

        sess = K.get_session()
        array = sess.run(enum2)

        visual_data = torch.from_numpy(array)
        list2d.append(array)

        #visual_data = visual_data.type(torch.FloatTensor)
        #visual_data = Variable(visual_data, requires_grad = False)
        visual_data= visual_data.type(torch.FloatTensor)
        visual_data = Variable(visual_data, requires_grad = False)
        visual_ind= np.ones(1)

        ind = {'face': face_ind, 'audio': audio_ind, 'visual': visual_ind, 'motion': motion_ind}
        videos = {'face': face_data, 'audio': audio_data, 'visual': visual_data, 'motion': motion_data}
        ypreds = the_model(word_tensor, videos, ind)
        ypreds2 = the_model(word_tensor, videos, ind, False)
        pred_true.append(ypreds)
        pred_false.append(ypreds2)

In your personal github repository and in the version of tensorflow of loupe.py you mention there that:
class NetVLAD(PoolingBaseModel):
def forward(self, reshaped_input):
        """Forward pass of a NetVLAD block.
        Args:
        reshaped_input: If your input is in that form:
        'batch_size' x 'max_samples' x 'feature_size'
        It should be reshaped in the following form:
        'batch_size*max_samples' x 'feature_size'
        by performing:
        reshaped_input = tf.reshape(input, [-1, features_size])

In your pytorch code in current project you don't expect the same shape as you perform it internally
def forward(self,x):
        max_sample = x.size()[1]
x = x.view(-1,self.feature_size)

What's the case in this ? What am I missing again ?


Why do you want to keep the “org” elpa repository ?

Hello:
I did not encounter any problems, I was just curious, why do you want to keep the org elpa repository?
Thanks.

I don't really have a good reason to keep it right now, personally. Some people (not me) rely a lot on having the latest org version, and some packages on MELPA may depend on org-plus-contrib or on very new versions of org.

That is, the org on "org" repository is usually relatively new?

Yes, it's a snapshot build, like MELPA, but published directly by the maintainers. And MELPA doesn't have an org package. I prefer to use a recent Emacs version in order to ensure I have a reasonably new (but stable) org version.


Refactor: Integrate DepositorSetupInfo into DataSetInfo

currently DepositorSetupInfo is a OneToOne Field
Add the attributes directly to DatasetSetupInfo

Moved DepostitorSetupInfo to dataset app. No longer needed


Deprecation messages on SF5.4.2

Hello,
i face these strange deprecation messages that i'm unable to suppress nor understand:
2022-02-03T08:21:12+01:00 [info] User Deprecated: Class "Sentry\SentryBundle\Tracing\Doctrine\DBAL\TracingDriverConnection" should implement method "Doctrine\DBAL\Driver\Connection::getNativeConnection(): resource|object".
2022-02-03T08:21:12+01:00 [info] User Deprecated: Class "Sentry\SentryBundle\Tracing\Doctrine\DBAL\TracingServerInfoAwareDriverConnection" should implement method "Doctrine\DBAL\Driver\Connection::getNativeConnection(): resource|object".
2022-02-03T08:21:12+01:00 [info] User Deprecated: The "Sentry\SentryBundle\Tracing\Doctrine\DBAL\TracingServerInfoAwareDriverConnection" class implements "Doctrine\DBAL\Driver\ServerInfoAwareConnection" that is deprecated The methods defined in this interface will be made part of the {@see Driver} interface in the next major release.
2022-02-03T08:21:12+01:00 [info] User Deprecated: Class "Sentry\SentryBundle\Tracing\Doctrine\DBAL\TracingServerInfoAwareDriverConnection" should implement method "Doctrine\DBAL\Driver\Connection::getNativeConnection(): resource|object".
c
i'm on Symfony 5.4.2
"name": "sentry/sdk",
"version": "3.1.1",
        "name": "sentry/sentry",
        "version": "3.3.7",

        "name": "sentry/sentry-symfony",
        "version": "4.2.6",

thanks for help.

Please see #483. I'm closing this as duplicate


Reddit issues

When visiting reddit.com on an installation, links for posts do not seems to work, rather they send the browser directly to the URL. This might be something to do with the way Reddit formats URLs (JavaScript stuff).

I would just remove all javascript code from reddit.com. I made it easy with this new push:
https://github.com/Athlon1600/php-proxy/commit/726f8a43f3994ee9bc23a8a80d86ce1acd371ffd
Just go to your config.php file and add this line:
$config['js_remove'] = array('reddit.com');


My profile can not be analyzed due to error

I get following error, when entering my username "strernd"
Your 'max_id' is too low, please use a valid that is closer to the most recent ID. We only allow scanning back to a max of 300 checkins when browsing other people's checkins.

Yes, I am aware of the issue. Untappd changed their API policy, the max number is not under my control. I have to update the site to allow users to authenticate to read their data. It's in my to-do list but I am afraid that I can't guarantee when I can work on this...


Define, webpack transforms and esbuild plugins are not supported in v19 Karma Buillder

Command
test
Is this a regression?

[x] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
v18
Description
There is no way to pass in webpack transforms or esbuild plugins or define to the internal Angular builders used in Karma.
Browser builder
When using webpack (browser) builder, webpack transforms are ignored:
https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts#L37
I guess they should be passed in as a third parameter to initializeBrowser
as it used to be passed in in v18 here https://github.com/angular/angular-cli/blob/18.2.x/packages/angular_devkit/build_angular/src/builders/karma/index.ts#L87
Application builder
When using the newly supported esbuild builder in Karma, esbuild plugins and define are not supported
Define option is not supported in Karma builder (neither exposed in the builder schema nor in the builder api)
https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/build_angular/src/builders/karma/application_builder.ts#L354
Regarding the application builder, I am not sure whether it is a feature request or a bug as the application builder support is new.
Question: why are we using an internal builder with a closed configuration rather than using  the one defined in angular.json by the user?
Minimal Reproduction
Browser builder
return executeKarmaBuilder(options, context, {
  webpackConfiguration: (webpackConfig) => {
    console.log("webpackConfig", webpackConfig);
    return webpackConfig;
  },
});

Application builder
"test": {
  "builder": "@angular-devkit/build-angular:karma",
  "options": {
    "polyfills": ["zone.js", "zone.js/testing"],
    "tsConfig": "tsconfig.spec.json",
    "assets": [
      {
        "glob": "**/*",
        "input": "public"
      }
    ],
    "define": {
      "ENV_MESSAGE": "'Hello from Angular 19'"
    },
    "styles": ["src/styles.css"],
    "scripts": []
  }
}

><EMAIL_ADDRESS>test
> ng test

Error: Schema validation failed with the following errors:
  Data path "" must NOT have additional properties(define).

Your Environment
Angular CLI: 19.0.0
Node: 20.13.1
Package Manager: npm 10.8.2
OS: darwin arm64

Angular: 19.0.0
... animations, build, cli, common, compiler, compiler-cli, core
... forms, localize, platform-browser, platform-browser-dynamic
... platform-server, router, ssr

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1900.0
@angular-devkit/build-angular   19.0.0
@angular-devkit/core            19.0.0
@angular-devkit/schematics      19.0.0
@schematics/angular             19.0.0
rxjs                            7.8.1
typescript                      5.6.3
zone.js                         0.15.0

Thanks! Clearly broke during the refactor and there was no test to catch it. I have a fix for the regression (webpack config). Once that lands, this likely turns into a duplicate of https://github.com/angular/angular-cli/issues/28809 which is also about the lack of esbuild config options in the Karma builder.

Closing as per above.


gridType: 'tree' - static data object - exception expecting array.

I am planning to use react-redux-grid in tree mode with pouchdb/couchdb for persistence and multi user synchronisation.
I have used create-react-app and passed the tree data directly to the grid rather than using the method in the tree example using datasource. The tree data is displayed OK, but I get an exception:
Warning: Failed prop type: Invalid prop data of type object supplied to Grid, expected an array.
I don't think I am doing anything wrong, but there is obviously an inconsistency with 'data' supplied to a flat grid as an array, but to a tree grid as a single root object. Perhaps the tree grid should also take an array of the the root object's children?

I think if the the grid accepted either a single root node, or an array of its children, then it would be compatible and not require a major release.
It is about 12 years since I did any serious programming (in Smalltalk and Eiffel). git and its procedures are still a bit of a mystery to me as well as the mess that is the javascript language. But I am learning. I will try to understand how the code could be changed to accept either.

I think I found the reason this exception is being raised. Line 224 of Grid.jsx uses "oneOf", I believe it should be "oneOfType".
I would raise a pull request if I could work out how to do it, but in the meantime, I thought I would point out the fix.
Gordon

Hello Ben,
I see that you changed Grid.jsx to use "oneOf" at line 224, but I think it should use "oneOfType".
I am now a bit further but am failing at line 171 in componentDidMount in FixedHeader.jsx. The call:
const headerDOM = ReactDOM.findDOMNode(this);
returns null, and it all goes a bit haywire after that. I have tried to diagnose why the return is null, but I can't work it out. The header row is displayed at this point, and all the DOM elements appear to be set up. I am guessing that the FixedHeader is not correctly initialised but I don't know enough to work out what is missing.
Gordon Jones


libgfapi *_async()

Any plans to implement the async call variations?

not actively looking into this. Happy to help if one is interested.
Would be great if you let us know what is the reason you are looking at this repo, and what is the usecase you are trying to address?

I am using this wrapper to deliver large files (>5 gb), but am seeing about half the throughput of the fuse-driver.


Use the prop-types package as React.PropTypes is deprecated in React 15.5.0

Coverage increased (+0.3%) to 83.051% when pulling 06ecfa24508e559ac89f6c1c4a5d32e32a89c474 on torkildr:master into 9792db5be555b6f73dd8cd21fcd6f35b0aa0361c on zesik:master.

Coverage increased (+0.3%) to 83.051% when pulling 06ecfa24508e559ac89f6c1c4a5d32e32a89c474 on torkildr:master into 9792db5be555b6f73dd8cd21fcd6f35b0aa0361c on zesik:master.

Hi Torkild,
Thanks for contributing.
Did you get a chance to test whether this change is compatible with older React versions (0.14.0)? prop-types dependency is added regardless of React versions.

I have not tested, but according to the doc, the 0.14-branch is supported, specifically from version react 0.14.9.
I also now see that they're saying that there are some known issues prior to 15.5.7, so that should probably be the minimum version in the package.json, if using the "prop-types" package.
I'm pushing a commit with the proposed changes. Don't known what plans there are for this project, but if being strictly backwards compatible is a goal, it might make sense to do this change as a part of a major version bump

Coverage increased (+0.3%) to 83.051% when pulling 2836522b16dbee10ab89e8ea1b78fdef4517f5b4 on torkildr:master into 9792db5be555b6f73dd8cd21fcd6f35b0aa0361c on zesik:master.

Coverage increased (+0.3%) to 83.051% when pulling 2836522b16dbee10ab89e8ea1b78fdef4517f5b4 on torkildr:master into 9792db5be555b6f73dd8cd21fcd6f35b0aa0361c on zesik:master.

For minor version upgrades, I'd like to keep dependencies unchanged.
Since this PR changes some, I will merge in next major version.

Any updates to this?


🔄 synced file(s) with worgarside/github-config-files

synced local file(s) with worgarside/github-config-files.

This PR was created automatically by the repo-file-sync-action workflow run #6652338893

This PR is empty, closing it. :no_good:


Use PM2 to keep it running shows "Pool is destroyed"

Matterwiki runs well if I "npm start".
But when I try to keep it running with PM2, Matterwiki shows "Pool is destroyed".
I just use PM2 to run the index.js file, do I need to run other files?

@BanshaTang The "Pool is destroyed" error occurs when the app faces some trouble connecting/interacting with the database. Does the user running the app has write access to the db directory?
Try running pm2 with sudo and see if it works.
Please check permissions and let me know.
Issue first mentioned in #31

Closing issue due to no response.


building tutorial1-character-controller failed with 3 issues

I am new to use rust (also for rg3d)
I am using macOS Big Sur to build rg3d tutorial1-character-controller.
My building environment are:
rustc +nightly --version
rustc 1.56.0-nightly (d3e2578c3 2021-08-21)
with the latest rg3d 0.22.0

I build this tutorial with cargo build in the project root folder with the following errors, But  it seems context inconsistent, who can help me with it.

Hmm, I forgot to update tutorials code to latest rg3d. I'll fix this asap.

I fixed this yesterday.


How to get chart object using selector

Hi,
when we generate chart at that time we get the object of chart.
var chart = c3.generate({   bindTo: '#chart',   data: {         columns: [             ['data1', 100, 200, 150, 300, 200],             ['data2', 400, 550, 250, 700, 300],         ]     } });
if we not maintain this chart object for further operation in that case we can get the above object using selector or any other way .
if yes please share it how ?
it is necessary to get chart object to apply any functionality  .

Hi @gangwar1! This is more of a support question — would you mind please asking instead on the C3 Google Group or Gitter channel? Thanks!


fix: sort-categoricals-per-collection

Reviewers
Functional:
@seve
Readability:

Changes

add
remove
modify

Definition of Done (from ticket)
QA steps (optional)
Known Issues

Marking as do not merge, so we have something to demo automated deployments next week.

Updated code to use Intl.Collator for case insensitive sort 🙆♂ PTAL thank you!


Improve diagnostics on invalid UnsafePointer conversion.

The only remaning issue is that we should have a warning to rename
Unsafe[Mutable]Pointer to Unsafe[Mutable]RawPointer.
See https://github.com/apple/swift/pull/4108

@swift-ci Smoke test OS X.

@tkremenek Please merge. This change already passed linux testing on trunk.


Add SingleOutputCircuit.

This change is

corelib/src/circuit.cairo line 26 at r2 (raw file):
Previously, orizi wrote…
this trait possibly needs to be pub - to allow partial calculation description in a function.

how would the user use this trait?

corelib/src/circuit.cairo line 26 at r2 (raw file):
Previously, ilyalesokhin-starkware wrote…
how would the user use this trait?

nvm, I guess you mean  a generic function that takes circuit_elements as inputs.


🤖 Add authors and contributors to Practice Exercises

If you got tagged in this PR, it is because you are being credited for work you've done in the past on Exercism here, and we want to ensure you don't miss out on the recognition you deserve 🙂

With v3, we've introduced the idea of exercise authors and contributors. This information is stored in the exercises' .meta/config.json files (see the docs).
Concept Exercises, which are all new, already contain authors and contributors. Practice Exercises though are missing this information. In this PR, we attempt to populate the authors and contributors of Practice Exercises based on their commit history.
Maintainer TODO list
These are the things you, the maintainers, should do:

[ ] Check the authors and contributors, adding/removing users where the data is missing or incorrect
[ ] Double-check any renamed Practice Exercises
[ ] Check for Practice Exercises with missing authors, which are most likely due to the author not being on GitHub anymore
[ ] Add additional authors if you know that a Practice Exercise has actually been created by more than one author

For clarity, authors should be the people who originally created the exercise on this track. Contributors should be people who have substantially contributed to that exercise. PRs for typos or multiple-exercise PRs do not automatically mean someone should be considered a contributor to that exercise. Those non-exercise-specific contributions will get recognition through Exercism's reputation system in v3.
If you find something needs updating, just push a new commit to this PR.
Automatic Merging
We will automatically merge this PR before we launch v3, but will give the maximum time we can to maintainers to review it first.

The rest of this issue explains how this PR has been generated. You do not need to read it.
Algorithm
We start out by looking at the current Practice Exercises. For each Practice Exercise, we'll look at the commit history of its files to see which commits touched that Practice Exercise. How renames are handled is discussed in the "Renames" section later in this document.
Any commit that we can associate with a Practice Exercise is used to determine authorship/contributorship. Here is how we assign authorship/contributorship:
Authors

Find the Git commit author of the oldest commit linked to that Practice Exercise.
Find the GitHub username for the Git commit author of that commit
Add the GitHub username of the Git commit author to the authors key in the .meta/config.json file

Contributors

Find the Git commit authors and any co-authors of all but the oldest commit linked to that Practice Exercise. If there is only one commit, there won't be any contributors.
Exclude the Git commit author and any co-authors of the oldest commit from the list of Git commit authors (an author is not also a contributor)
Find the GitHub usernames for the Git commit authors and any co-authors of those commits
Add the GitHub usernames of the Git commit authors and any co-authors to the contributor key in the .meta/config.json file

We're using the GitHub GraphQL API to find the username of a commit author and any co-authors. In some cases though, a username cannot be found for a commit (e.g. due to the user account no longer existing), in which case we'll skip the commit.
Renames
There are a small number of Practice Exercises that might have been renamed at some point. You can ask Git to "follow" a file over its renames using git log --follow <file>, which will also return commits made before renames. Unfortunately, Git does not store renames, it just stores the contents of the renamed files and tries to guess if a file was renamed by looking at its contents. This can (and will) lead to false positives, where Git will think a file has been renamed whereas it hasn't. As we don't want to have incorrect authors/contributors for exercises, we're ignoring renames. The only exception to this are known exercise renames:

bracket-push was renamed to matching-brackets
retree was renamed to satellite
resistor-colors was renamed to resistor-color-duo
kindergarden-garden was renamed to kindergarten-garden

If you know of a rename of a Practice Exercise, please check to see if its authors and contributors are correctly set.
Exclusions
There are some commits that we skip over, which thus don't influence the authors/contributors list:

Commits authored by dependabot[bot], dependabot-preview[bot] or github-actions[bot]
Bulk update PRs made by ErikSchierboom or kytrinx to update the track

Tracking
https://github.com/exercism/v3-launch/issues/24

cc @aarti, @ahalls, @AlwynC, @anukhov, @BalazsSzamody, @bcylin, @bhargavg, @bobdel, @cdmcmahon, @creaaa, @davidahouse, @duffn, @edasque, @ericrosko, @hankturowski, @harquail, @hobbitjoe, @jarhill0, @jonallured, @kellegous, @kytrinyx, @lyuha, @masters3d, @namratabandekar, @nickkjordan, @paiv, @petertseng, @robtimp, @samkrishna, @Scientifica96, @srabuini, @ThomasHaz, @yurrriq, @Zialus as you are referenced in this PR

This PR has been open for about 3 months. As having this PR merged is important to prepare this track for Exercism v3, we'll automatically merge this PR at the end of this week. If you need a little more time, convert this PR to a draft.


401 ERROR, does this version still work now?

Hi there,
I try the python version in this example but got a 403 error.
Does this example still work now?
Thank you!

I am also interested in this... is there something for .NET5/6?


Using this package with R 4.3.0

To make this package work with R version 4.3.0, we would also need to force the installation of the deprecate dependencies below,
#install the Rnssp package
install.packages("devtools")
library(devtools)
install_bitbucket("richierocks/assertive.base")
install_bitbucket("richierocks/assertive.properties")
install_bitbucket("richierocks/assertive.types")
install.packages(c("magrittr", "purrr", "dplyr"))
devtools::install_github("cdcgov/Rnssp")

Thank you @apzentral for your contribution. Yes, your workaround will successfully install Rnssp.
For your information, we've already fixed the dependency issue related to assertive.types and are planning a patch release soon.
In the meantime, you can install Rnssp from its dev branch with no issue by running the following in your R console:
devtools::install_github("cdcgov/Rnssp@dev")

Perfect, thank you so much @rosericazondekon . I will update my colleague that we can also use the dev branch.

Dear @apzentral ,
We just released Rnssp v0.3.0 which among other features, updates, and , resolves the assertive.types dependency issue.
Please, feel free to check the new release note for an exhaustive list of the novelties.
You may install the newly released version by running:
devtools::install_github("cdcgov/Rnssp")

Thank you!


Require a Cause when opening/closing an inventory

This closes https://github.com/SpongePowered/SpongeAPI/issues/930

Wouldn't this target bleeding?

You could make the cause optional in master (add 2 new methods) and remove the old method in bleeding.

Oops, I meant to target bleeding. I opened it against the wrong branch.

It's good to see this merged. But what are the vanilla reasons for an inventory to be closed? player moved out of range of inventory is one.
Should there be some sort of cause factory for plugins to provide compatible causes with the default ones for custom inventories?


Treat Middleware::Base#initialize options as Hash.

Addresses https://github.com/ruby-grape/grape/issues/1992.
Before this PR, Grape::Middleware::Base is treating the options param as keyword args, but it's actually meant as a Hash positional argument.
https://github.com/ruby-grape/grape/blob/536622a38ae5ed266477689cdd7afabd92046ed2/lib/grape/middleware/base.rb#L17
The former style, **options, prompts a deprecation warning in Ruby 2.7.
gems/2.7.0/gems/rack-2.2.2/lib/rack/builder.rb:158: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
gems/2.7.0/gems/grape-1.3.3/lib/grape/middleware/base.rb:17: warning: The called method 'initialize' is defined here.
For a middleware subclass of Grape::Middleware::Base, Rack's use method will instantiate it with middleware.new(app, *args, &block), passing the options parameter in *args:
https://github.com/rack/rack/blob/a5e80f01947954af76b14c1d1fdd8e79dd8337f3/lib/rack/builder.rb#L158
My assumption is that, contrary to the suggestion by the deprecation warning, it's not feasible to change Rack to add ** to the call where it passes *args. Plus, Grape's code implies that options really is meant as a positional Hash argument, so I changed it to be one.
The tests pass after this change, including
https://github.com/ruby-grape/grape/blob/v1.3.3/spec/grape/middleware/base_spec.rb.
The main risk I see here is if there's some behavior or usage style that the **options version supported that will now break.

Thanks! Can we please 1) add a test that makes sure options are properly assigned 2) fix the changelog

It would be nice if tests failed on warnings, too. If you find out how to enable that part of this PR, I'd appreciate it!

Actually, I think this needs to be fixed in Rack::Builder. I will submit an issue.

Looking at https://github.com/dim/rack/commit/8dad94973dd783fa2ab9246b4dcfcaeb3368061a, I think just using https://github.com/ruby/ruby2_keywords in Middleware::Base may also solve this issue

Can we please 1) add a test that makes sure options are properly assigned

@dblock the existing tests do that, and they still pass after this change:
https://github.com/ruby-grape/grape/blob/v1.3.3/spec/grape/middleware/base_spec.rb#L127
I'm happy to add another test, if there's some detail not covered in the existing tests that you're thinking about?

The CHANGELOG line is missing a # in the PR number. Danger is nitpicky ;)

I'm satisfied with this, will merge on 🍏

@dblock fixed, thanks for looking.

Please add a +1 to #2030


[WIP] Speed up find all references.

Speed up find all references by maintaining the set of all names referenced within a file. Changes FileHash to contain references to the names of class defs / method defs / constant literals.
Motivation

Without this change, find all references is very slow on large codebases.
Test plan

Automated tests exist. Even though existing "find all references" tests in test_corpus do not span multiple files, they still exercise this logic. If setupLSPQueryBySymbol doesn't determine that the test file has the given symbol, then it won't select that file to scan for references and the assertions in that file will fail.

I have yet to measure how this impacts memory usage. It might be too expensive as-is. :)

It might be too expensive as-is. :)

Yeah, both of them can be converted to bloom filters but so far, due to how compact our datastructures are, I didn't feel a need :-)

Super hyped about this one.
Do we believe we have enough test coverage to make sure we find if someone introduces bugs to this?
Otherwise, LGTM

Do we believe we have enough test coverage to make sure we find if someone introduces bugs to this?

No, not yet. That's part of the reason why it's WIP. After my other go-to-def/find usages PR lands, I plan to extend the test coverage to the feature to the point where this is true.

I believe this is ready for a final review. I don't see any discernible bump in max_rss with this change on Stripe's codebase, so I think the increase in overhead for NameHash is fine. (I can collect some additional data if there is any concern.)
In a subsequent PR, I might parallelize indexing on the fast path to make find all references faster for symbols that are referenced in many files. Otherwise, Sorbet becomes unresponsive for longer than a slow path if the user queries one of those symbols.


Add missing manufacturer codes

This should fix most of the problem with targets not listing under their manufacturer on the website (https://github.com/probe-rs/webpage/issues/152). I have tried to the best of my ability to research what manufacturers should be added and cross checked the codes with the jep106 crate.
Some manufacturers do not appear to have a number in JEP106. Not sure what to do about those?
A couple of manufacturers have been added to JEP106 but are not in the latest release of the jep106 crate. Those targets are not in this PR.
I asked if they can make a new release. https://github.com/Yatekii/jep106/issues/12

Thanks a lot!
I just published a new version (0.2.9) but I am struggling to pull in the lastest JEP106 codes because of some PDF shenanigans - yes they release a PDF instead of a format that makes sense.

Ok, version 0.2.10 with revision BK from September 2024 is published :)


PBKDF2 and HMAC

Hi,
I've been pilfering your library for some time now for MD5 and base64 functions. I'm attempting to re-create (in Lua) some javascript code that uses the node.js crypto library:
#Javascript
const crypto = require('crypto');

function print(str){
	console.log(str);
}

function createUserKey(user){
  if (user.password && user.password.length > 6) {
    user.salt = crypto.randomBytes(32).toString('base64');
    user.hash = hashPassword(user.password, user.salt);
  }
  else {
	  print("No password provided");
  }
  return user;
}

/**
 * Create instance method for hashing a password
 */
function hashPassword (password, salt) {
  if (salt && password) {
    return crypto.pbkdf2Sync(password, salt, 10000, 512, 'sha512').toString('base64');
  }
  else
  {
	  print("salt or pwd missing");
  }
};

var user = {username:'russell', password:'Testing123'};

print(JSON.stringify(createUserKey(user)));

These JavaScript functions were also pilfered from a work project which brings to light my problem: I have no idea what I'm doing!
I didn't see anything in your library called pbkdf2 so I went looking and found something in moteus' bgcrypto project:
https://github.com/moteus/lua-bgcrypto-sha/blob/master/src/lua/pbkdf2.lua
but it seems to use his C libraries that have a different API than what you provide. I could try to pull in his pbkdf2 and hmac functions, but thought I would ask here first before I waste a bunch of time. As previously stated, I don't have much understanding of cryptography libraries.
Do you have any thoughts on how I should proceed? I was hoping to use your libraries and stay with pure lua for portability. Otherwise I will look at using moteus' libraries or luaossl for openssl bindings.
Thanks!
Russ

Hi Russ,
PBKDF2 has already been suggested. See issue #15 and my comment here https://github.com/philanc/plc/issues/15#issuecomment-441830353
As you can see from this issue thread, I am not too motivated to include PBKDF2 in my plc library :-)
In addition, the standard PBKFD2 function relies on HMAC-SHA1 which itself is based on SHA1 which is not implemented in plc.
If I implement SHA1 some day, I may add a HMAC-SHA1 function and maybe PBKFD2, but unfortunately for your use case, it's not here today.
(I don't know the node.js crypto lib, but from your code snippet I understand that they propose a PBKDF2 variant that may use alternate hash functions - here, SHA512? I don't think that it is standard, and rather than using PBKDF2 with an improved hash function, I would use a modern derivation function like scrypt or argon2i. but again, not a good fit for Pure Lua crypto...)

Actually, if you just need a good derivation function, not specifically the obsolete PBKDF2, and if you are ready to add a C library, you may be interested in my luazen library: https://github.com/philanc/luazen
It includes Argon2i which is arguably one of the best derivation function today (see https://en.wikipedia.org/wiki/Argon2). It is based on the Blake2b hash function.
luazen has no dependencies. All the crypto code is included. It builds by default with several crypto and compression functions you probably don't need, but you can easily build it with only the functions that you need:  Look at the Makefile, the list of included functions is in the variable 'FUNCS'. Just replace in the Makefile the default value with
FUNCS=-DBLAKE

and you will get a quite small library (in that case, luazen.so on linux is ~ 18.5 KBytes) which includes the argon2i() Lua function. (You also get a randombytes() function as a bonus - I see you use one in your JS code snippet).
By the way, if you also need MD5 and Base64 functions, you can just add them to the Makefile FUNCS variable to get a slightly larger library (luazen.so ~ 22.6 KBytes)
FUNCS=-DBLAKE -DMD5 -DBASE64

Hope this helps!

That's very helpful, thank you. Your answer is actually what I needed to know, but I'm trying to reproduce the API I've been given so I think I'm going to pull in bgcrypto (which seems to have what I need). I'll look to luazen when I'm working on my own things. I wonder where I could use it to deploy Minecraft servers? hmmm...
Thanks!
Russ

Hi Philanc, can you please help with a pure lua function for Argon2i, i need it for an embedded system that doesn't allow to use c libraries. Thanks.

Hi Philanc, can you please help with a pure lua function for Argon2i

I already have an implementation of Blake2b in plc, and Argon2 uses the permutation at the core of blake2b. The a complete implementation of Argon2 is significantly more complex than just iterating Blake2b computations.
So I'm afraid I don't have an implementation available, and don't plan to have one in the near future.
In addition, I am not sure that a pure Lua implementation would be usable, in terms of performance.  See my comment at https://github.com/philanc/plc/issues/15#issuecomment-441830353 - This applies to key derivation functions in general.


Add priority

Added priority into Rule, which was implemented in the json-rules-engine.
Documentation is here: https://github.com/CacheControl/json-rules-engine/blob/master/docs/rules.md#methods

@santalvarez it'd be great if you can review and merge this.


pgbadger 12.1 installation issue

Hello,
I downloaded source code the nevest version of pgbadger 12.1,
removed 12.0 by dnf remove pgbadger and installed from source code but when check version it still says version is 12.0
even when run ./pgbadger --version that in source code give me 12.0
[root@POSTGRESQL06F001 pgbadger-12.1]# ./pgbadger --version
pgBadger version 12.0

what am I missing?

Also in footer - is version 12.0 - Report generated by [pgBadger 12.0.]

Right, I forgot to change the version in pgbadger script. Thanks for the report.

Right, I forgot to change the version in pgbadger script. Thanks for the report.

It means it doesnt affect output, it is parsing with new patches, right?  I get some errors I think it is relate to old version.
Max. recursion depth with nested structures exceeded at /usr/lib64/perl5/vendor_perl/Storable.pm line 328, <$lfile> line 723144, at /bin/pgbadger line 15472.
DEBUG: Reading temporary last parsed line from /tmp/tmp_LAST_PARSED
DEBUG: the log statistics gathering took:42 wallclock secs ( 0.00 usr  0.00 sys + 41.26 cusr  0.37 csys = 41.63 CPU)
DEBUG: Building incremental report for 2023-03-20
can not load incompatible binary data, binary file is from version < 4.0.
can not load incompatible binary data, binary file is from version < 4.0.
LOG: Ok, generating HTML daily report into /var/lib/pgsql/12/pgbadger//2023/03/20/...
can not load incompatible binary data, binary file is from version < 4.0.
can not load incompatible binary data, binary file is from version < 4.0.
LOG: Ok, generating HTML weekly report into /var/lib/pgsql/12/pgbadger//2023/week-13/...
Wide character in print at /bin/pgbadger line 11634.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11668.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 11732.
Wide character in print at /bin/pgbadger line 12272.
Wide character in print at /bin/pgbadger line 12272.
Wide character in print at /bin/pgbadger line 12272.
Wide character in print at /bin/pgbadger line 12272.
LOG: Ok, generating global index to access incremental reports...
DEBUG: writing global index into /var/lib/pgsql/12/pgbadger//index.html
DEBUG: building reports took:  9 wallclock secs ( 8.70 usr +  0.12 sys =  8.82 CPU)
DEBUG: the total execution time took: 51 wallclock secs ( 8.70 usr  0.12 sys + 41.26 cusr  0.37 csys = 50.45 CPU)

Yes, the release contains latest fixes.


400 Bad Request

I was unable to re-open your issue
i use shoukaku 4.1.1, kazagumo 3.2.1
i get an error
RestError: Bad Request
    at Rest.fetch (C:\Users\MaKarastY\Desktop\LiveProjects\PutOffBeats\node_modules\shoukaku\dist\index.js:991:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Player.update (C:\Users\MaKarastY\Desktop\LiveProjects\PutOffBeats\node_modules\shoukaku\dist\index.js:711:5) {
  timestamp:<PHONE_NUMBER>742,
  status: 400,
  error: 'Bad Request',
  trace: undefined,
  path: '/v4/sessions/ciywkvjegg914j8m/players/785107327413911592'
}

lavalink logs:
2024-09-04T23:20:33.711+03:00  INFO 19240 --- [Lavalink] [  XNIO-1 task-3] l.server.player.AudioLoaderRestHandler   : Got request to load for identifier "ytsearch:cat"
2024-09-04T23:20:34.708+03:00  INFO 19240 --- [Lavalink] [  XNIO-1 task-3] lavalink.server.player.AudioLoader       : Loaded playlist Search results for: cat
2024-09-04T23:20:34.720+03:00  INFO 19240 --- [Lavalink] [  XNIO-1 task-3] l.server.io.RequestLoggingFilter         : GET /v4/loadtracks?identifier=ytsearch%3Acat, client=0:0:0:0:0:0:0:1
2024-09-04T23:20:34.738+03:00  WARN 19240 --- [Lavalink] [  XNIO-1 task-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Could not read kotlinx.serialization.json.JsonImpl@56b39544: Unexpected JSON token at offset 330: Expected start of the object '{', but had '"' instead at path: $.track.userData<EOL>JSON input: .....1YmUAAAAAAAAAAA==","userData":"509734900182548489"},"replace.....]
2024-09-04T23:20:34.738+03:00  INFO 19240 --- [Lavalink] [  XNIO-1 task-3] l.server.io.RequestLoggingFilter         : PATCH /v4/sessions/ciywkvjegg914j8m/players/785107327413911592?noReplace=false, client=0:0:0:0:0:0:0:1, payload={"track":{"encoded":"QAAA2AMAQVRoZSBsYXN0IG9uZe2gve24gu2gve24giAjY2F0ICNmdW5ueWNhdHMgI3BldHMgI2Z1bm55cGV0cyAjc2hvcnRzAAlwZXQgbG92ZXIAAAAAAADqYAALOGllNWNzLVZBUWcAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj04aWU1Y3MtVkFRZwEAMGh0dHBzOi8vaS55dGltZy5jb20vdmkvOGllNWNzLVZBUWcvbXFkZWZhdWx0LmpwZwAAB3lvdXR1YmUAAAAAAAAAAA==","userData":"509734900182548489"},"replaceCurrent":false}

is it a lavalink or kazagumo problem?

Kazagumo uses a version of shoukaku that is not compatible with the current one.
Use a version that is compatible with kazagumo.

The issue turned out to be with Kazagumo. Apologies for the incorrect issue report


[BUG] Ubuntu and DGXOS bugs

nmcli need managed=true
tftp-hpa handler missing to apply conf change
DGXOS curtin need enchancement

loop for dhcp on eth
efibootmgr optional or force
/bin/echo instead of echo

Should now be ok. Closing.


Media Lesson Page - YouTube not working

This used to work but a YouTube change means popcorn.js stopped working with YouTube.

Does anyone know anything about minifying files?
popcorn.js have fixed the bug (https://github.com/mozilla/popcorn-js/pull/441) but their website doesn't have an up to date minified version on it (http://popcornjs.org/download)
I don't really want to replace the min version with loads of files instead.

I use https://developers.google.com/closure/compiler/ in a different project. It works quite well.

Did they make a minified version themselves yet?


Import: Scaling bug

File -> Import file...

Selecting file:
https://gist.github.com/d9k/d08cf1d212832701d0151af57a575628

It is svg file 16x14 px size. Expecting 16x14 imported image.

Actual result: more than 100 times bigger image!

Also when I zoom out selection outline of horizontal bar begin to display at incorrect position, much lower and bigger than expected. This outline doesn't dissappear until I do Object -> Ungroup Elements and then click to the empty space of canvas to deselect arrow. And then because of inconvenience I must to manually select parts of image and group them again.

Duplicating image svg code here:
<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path d="M1.0918 7.63889H14.9092C15.5113 7.63889 16 7.1502 16 6.54805C16 5.94591 15.5113 5.45721 14.9092 5.45721H1.0918C0.489658 5.45721 0.000965118 5.94591 0.000965118 6.54805C0.000965118 7.1502 0.489658 7.63889 1.0918 7.63889Z" fill="#000"/>
    <path d="M6.54615 13.0926C6.82552 13.0926 7.10462 12.9864 7.31714 12.7728C7.74325 12.3464 7.74325 11.6556 7.31714 11.2295L2.63367 6.54629L7.31714 1.86283C7.74325 1.43672 7.74325 0.745889 7.31714 0.319781C6.89076 -0.106594 6.19993 -0.106594 5.77383 0.319781L0.31964 5.77397C-0.106468 6.20008 -0.106468 6.8909 0.31964 7.31701L5.77383 12.7712C5.98768 12.9864 6.26678 13.0926 6.54615 13.0926Z" fill="#000"/>
</svg>

Result which must be done automatically during the import:

As partial solution I wrote function to stretch element to canvas at svgcanvas.js
this.stretchSelectedElementsToCanvas = function() {
  var selectedElement = selectedElements[0];

  if (selectedElements.length > 1) {
    alert('Stretching multiple elements: not implemented yet. Only first element would be processed');
  }

  /** selecting only the first element */
  this.clearSelection();
  this.addToSelection([selectedElement]);

  var boundBox = getStrokedBBox([selectedElement]);

  var canvasResolution = this.getResolution();

  var scaleInfo = calculateAspectRatioFit(
    boundBox.width,
    boundBox.height,
    canvasResolution.w,
    canvasResolution.h
  );

  var scaleRatio = scaleInfo.ratio;

  var tlist = getTransformList(selectedElement);

  var translateOrigin = svgroot.createSVGTransform(),
    scale = svgroot.createSVGTransform(),
    translateBack = svgroot.createSVGTransform();

  translateOrigin.setTranslate(-boundBox.x, -boundBox.y);
  scale.setScale(scaleRatio, scaleRatio);
  translateBack.setTranslate(boundBox.x, boundBox.y);

  console.log(boundBox);
  console.log(scaleInfo);
  console.log(canvasResolution);

  // tlist.clear();
  tlist.appendItem(translateBack);
  tlist.appendItem(scale);
  tlist.appendItem(translateOrigin);
  call("transition", selectedElements);

  selectorManager.requestSelector(selectedElement).resize();

  // TODO debug and rework save to history
  this.moveSelectedElements(
    [ -boundBox.x + (canvasResolution.w - scaleInfo.width)/2 ],
    [ -boundBox.y + (canvasResolution.h - scaleInfo.height)/2 ],
    true
  );
}

About glitches with selection outline: after import_image() at method-draw.js there are inadequate callstack:
- `selectedChanged()`
  - `updateToolbar()`
    - `$('#stroke_style').trigger('change');`
      - `$('#stroke_style').change(function(){()`
        - `svgCanvas.setStrokeAttr('stroke-dasharray', $(this).val());`
          - `changeSelectedAttribute(attr, val, elems);`
            - `changeSelectedAttributeNoUndo(attr, val, elems);`
              -  `selectorManager.requestSelector(elem).resize();`

So selectorManager.requestSelector(elem) creates selector for already grouped element and adds it to selection.
@methodofaction, why did you need triggers at the updateToolbar()?
Yes, there are comment
// This function also updates the opacity and id elements that are in the context panel
but why was it mandatory to update stroke style right after the selection change?!
Selection and triggers must be somehow separated.

@d9k I just restructured the entire project (which is still WIP) and will soon work on the importation code for a client's project. I will surely come back to your feedback then. Thanks for pointing this out.

@methodofaction, Important note: after this change I have problems with color of newly created shapes.
As a hacky solution I added to the bottom of mouseUp() at svgcanvas.js
before
addCommandToHistory(new InsertElementCommand(element));
line
 $('#stroke_style').trigger('change');
It's obvious that trigger must be called from method-draw.js but I don't know where to put it.
I tried to put it to the elementChanged() but got call stack exceeded
Maybe I'll create new custom event handler, something like call('shapeCreated').


Suggestion Close Message

Is not an issue is a suggestion, but i would like if you add a variable or something that we can mention who closed the ticket in the Close Message.

Good idea


Performance improvement of variant comparison

@igusher @gbordyugov @aaron-mcdaid-zalando  It looks good to me. Please confirm to merge and deploy this version.

Coverage increased (+0.2%) to 91.422% when pulling d8ec5a2f4dd89cac7b643eb0a7e3c40ece9b71ca on performance-impro into cd485c57acc4330052d4e4262b290bd563317187 on master.

:+1:

I see the current state includes lots of other changes for min_observations and so on. I'm not happy with putting multiple features into one PR, especially given our current problems with quality/testing/correctness
This should be a one-line change

solved in #224


Support for Google Pay Covid vaccination cards

Feature description
As previously requested in Digitaler-Impfnachweis/certification-apis#37, corona-warn-app/cwa-app-ios#2965 and corona-warn-app/cwa-app-android#3486. The original issue on this has been closed due to privacy concerns, that were unfortunately discussed internally, so I can't know if all of them still exists. However since the original issue on this has been closed, Google has released a new pass type in the passes API specifically, which might solves some concerns? In other open discussions about this, people have been concerned about being able to see the phones Covid certificates even if it's locked, which won't be an issue, since this certificates require a display lock to be set and the phone to be unlocked.
Documentation links

https://developers.googleblog.com/2021/06/google-updates-passes-api-to-save-covid-testing-and-vaccination-information-on-Android-devices.html
https://developers.google.com/pay/passes/guides/pass-verticals/use-cases?vertical=covid-cards
https://payments.developers.google.com/terms/aup#covid-cards
https://developers.google.com/android/reference/com/google/android/gms/pay/package-summary

Problem and motivation
It can come in quite handy to have all of your cards and passes in one place, also having an official way to do this can make use of the new Pass type which is only available to authorities which can actually create vaccination certificates
Is this something you're interested in working on
Maybe. I am not sure how much I could do as the documentation on Covid certificate is locked behind a registration form only authorities have access to, I would be able to work on the Integration in the App itself since this Documentation is public

@ Community Managers, please move to the Android repository, as this does not affect iOS.

@ Community Managers, please move to the Android repository, as this does not affect iOS.

This repo is iOS specific?

@DRSchlaubi
This repo contains issues that affect both OS, iOS & Android.
E.g., the request to be able to add vaccination certificates into the Apple Wallet, has been transferred to the iOS repository from the wishlist repository, as it does not affect Android.
Same applies here, this request does not affect iOS, so it should be transferred to the Android repository.

@DRSchlaubi Please repost your comment in https://github.com/corona-warn-app/cwa-app-android/issues/3486 and we'll see if we can reopen the related issue.

Corona-Warn-App Open Source Team

Closed as discussion has been moved back to corona-warn-app/cwa-app-android#3486

Duplicate of https://github.com/corona-warn-app/cwa-app-android/issues/3486


Patch-2 Editorial Updates unrelated to current published issues

provided definition of publicly accessible below R22
clarified meaning of contract in R30
clarified supporting text to D16
provided definition and examples to roles and role management R62
concretized R63 (policy -> security policy) and added definition and examples of access management
clarified R72
added two normative references

@kthomas @humbitious please approver this PR. The wording was approved during WG meeting on 5/5/2022. Thank you!