memory leak inside gpu-allocator

OS: ubuntu 22.04
GPU: Nivida Gtx 1070
API: Vulkan, through ash bindings
gpu-allocator version: "0.18.0"
It is hard for me to say with 100% confidence, but I think there might be a bug inside gpu-allocator causing memleaks.
I have a vulkan program which is allocating and releasing resources in a loop. Said loop looks like this:
pub fn draw<RenderContext>(&mut self, render_context : &mut RenderContext)
where RenderContext : GpuResourceCreation
{
    let clipped_primitives = self.ctx.tessellate(output.shapes);
    for primitive in clipped_primitives
    {
        let (vbuffer, ibuffer, icount, _) = match primitive.primitive {
        Primitive::Mesh(mesh) => {
                let vbuffer = render_context.allocate_buffer(
                    mesh.vertices.as_ptr() as _,
                    mesh.vertices.len() * size_of::<epaint::Vertex>());

                let ibuffer = render_context.allocate_buffer(
                    mesh.indices.as_ptr() as _,
                    mesh.indices.len() * size_of::<u32>());

                let tex_id = mesh.texture_id;

                (vbuffer, ibuffer, mesh.indices.len(), tex_id)
            }
            _ => todo!()
        };

        render_context.destroy_buffer(&vbuffer);
        render_context.destroy_buffer(&ibuffer);
    }
 }

Where:
fn destroy_buffer(&mut self, buffer : &BufferHandle)
{
   let index = self.buffers.iter().position(|x| x.as_raw() == buffer.to_raw()).unwrap();
   self.buffers.remove(index);
   self.memory.destroy_buffer(vk::Buffer::from_raw(buffer.to_raw()));
}

pub(crate) fn destroy_buffer(&mut self, buffer : vk::Buffer)
{
   debug_assert!(self.buffer_allocations.contains_key(&buffer.as_raw()));

   let buffer_allocation =
       self.buffer_allocations.remove(&buffer.as_raw()).unwrap();
   self.vk_allocator.free(buffer_allocation)
       .expect("Failed to free vulkan memory allocation.");
   unsafe {
       self.hardware_interface()
           .device.destroy_buffer(buffer, None);
   }
}

I know for a fact this is the only place in the entire program that can allocate memory repeatedly. I am noticing that over time (20 minutes) my program increasingly becomes slower until it eventually crashes. Renderdoc seems to suggest I run out of device host memory. I am noticing, using nvidia-smi that my program consumes progressively more vram from 325 MiB to 327 MiB it's a small amount but it;s very conistent.
If I comment out that loop the rest of the program renders fine, never gets slower and renderdoc never complains about memory running out.
This code is alsoa port from a C++ codebase that uses VMA and the error does not seem to happen there. All of the above leads me to suspect there might be an issue with gpu-allocator.

Nvm this was user error, ash does not auto free fences when they go out of scope, it;s unrelated to gpu allocator, apologies for the disturbance.


Downloaded extension is not deleted from /tmp folder

This issue is related to https://github.com/Microsoft/vscode/issues/53110.
Downloaded extension files are not deleted from /tmp. So this folder is getting bigger and bigger over time. Because the related issue is fixed for years now, maybe this issue occurs only when using remote-ssh extension.

VSCode Version: 1.68.1
Remote Extension/Connection Type: SSH

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.69.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Fixed by 56c7ffabc9a00f03345d3f7f453b27fda9b02e7a

I'm not seeing any extensions being placed in the /tmp directory so marking as verified.


Integrating a selection from a TTree more efficiently than TTree::Draw()

I'm looking for a fast way to select certain events from a TTree, including one or more weights, and then integrating them.
A typical use-case for this is for example a cutflow. I now achieve that by selecting events into a histogram in a utility function:
selection = "({0}) * ({1})".format(selection, weight)
tree.Draw(var,
       selection=selection,
       hist=hist)

where this is created and filled from another function that does the following:
hist = Hist(1, -1, 2)
branch = tree.GetListOfBranches()[0].GetName()
loadHistogramFromTree(tree, hist, '{0}=={0}'.format(branch), cut, weight)
return hist.Integral()

In other words, I just select a weighted set of entries from a TTree and am interested in what the total number of events passing a selection is.
I've looked into tree2array, but notice several downsides:

weight_name is just single weight, while I'm looking to multiply several. Perhaps a useful improvement would be the possibility to specify weight_names as a list of names?
the weights are branches that exist in the TTree. What if I'd like to scale to lumi by doing something like 12.345/0.001 * normWeight (where this column is a weight derived from the cross-section of the sample and 12.345 is an example lumi)

These issues would also solve for example a more efficient plotter if one wants to select events along the lines of something like
12.345 / 0.001 * join("*", weights) * (cut)

into histograms and stack them all.
Perhaps I misunderstand how to combine tree2array and array2hist to get a weighted histogram, but right now I'm stuck with the old-fashioned draw methods.
Would anybody have a suggestion? Anything that relies on something faster than TTree::Draw() would be great - that would allow me to benefit from the nice benchmark figures advertised :)

@gbesjes thanks a lot for this feedback. I'll try to clarify a bit how you can accomplish what you need.
Firstly, tree2array's weight_name is just to assign a name to the field in the output array that will hold the value of tree.GetWeight() (same value for each entire tree in a chain). We just wanted a way to conveniently extract that info from the tree so it can be treated like any other branches that represent a weight. weight_name is configurable to give the user the ability to avoid clashing with existing branch names in the tree.
To fill a histogram with weighted entries where the weights are products of weight branches (and any other factors) then try something like this:
weight_branches = ['your', 'weights']
arr = tree2array(tree)
weights = reduce(np.multiply, [arr[br] for br in weight_branches])
# reduce is removed in py3 but can use functools.reduce or explicit for loop
fill_hist(hist, weights)

Possibly even better is to just give tree2array the complete expression (at least the factors that are branches in the tree) that give the entry weights:
weights = tree2array(tree, branches='branch1 * branch2 * 12.345 / 0.001')

To fill a histogram with weighted entries where the weights are products of weight branches (and any other factors) then try something like this:

Actually, it would be much more efficient to add an alias to the tree and retrieve the branch by that alias. At least that way, you're relying directly on ROOT to do this.
tree.SetAlias('alias','formula')

and root_numpy can access this normally without a problem. We might want to think of incorporating something like this to make this less involved.

But root_numpy anyway uses TTreeFormula for any expression that isn't a branch name. So an alias doesn't really change anything.

(oops clicked wrong button :smile: )

But root_numpy anyway uses TTreeFormula for any expression that isn't a branch name. So an alias doesn't really change anything.

Ahh, I didn't see the second point in your post. Yeah, if you're using TTreeFormula, then it should just work as expected!

@ndawe thanks for the quick answer! That solves what I want to achieve. Would there be an obvious improvement in tree2array() if I specify a branch like "1==1" in this case? For a cutflow I'm not really interested in a variable, just a count is enough :)
And of course the same thing is true for a distribution: I assume that if I want to plot variables X, Y and Z the code will be a lot more performant if only those branches are thrown into numpy arrays. Is that indeed the case?

Yeah, "branches" can be a list of branch names and/or expressions. It should be able to handle anything that you can throw at TTree.Draw(). We named the argument "branches" before expressions were supported. In hindsight something like "fields" might have been more appropriate.

Excellent! I thought this wasn't possible because of the name "branches". I'll try it out after a few meetings. Perhaps the docs can clarify that any valid expression also works, in case other people run into the same.

For a cutflow you could also just sum up the array lengths. Yes, if you only want a subset of the branches (possibly mixed with expressions) then specifying them with the branches argument will lead to the conversion only reading in and including those particular branches and expressions. If you only need O(10) branches in an ntuple containing thousands of branches, this can be a huge speedup.

I'll improve the docs on branches. No problem.

I believe there's also a special $Count(branch) formula you can use as well.

For a raw cutflow I agree, but not if I'd like to multiply these events with something like their mcWeight and scale factor. Then the data are not [1, 1, 1, 1, ...] but they're weighted e.g. to [0.7, 0.8, 0.7, 0.9, ...]. Unless I'm overlooking something extremely obvious here? 😄

Ah, yes indeed. Just use arr['weight_expression'].sum() for a weighted cutflow.

The selection actually doesn't deal too nicely with vectorial indices. When a branch electrons_pt[0] is asked for, the data is structured as follows:
[array([ 85.83097839]) array([<PHONE_NUMBER>4]) array([ 87.52495575]) ...,
array([<PHONE_NUMBER>]) array([<PHONE_NUMBER>5]) array([<PHONE_NUMBER>])]
That me as wrong: since I asked for a specific index, shouldn't each of these individual arrays be a float instead? Of course in a post-processing step this is pretty easy to achieve, but it's not a structure that I had expected to get back.

Can you call foo.flatten() on that structure instead? Should probably work nicely.

This last issue is coincidentally something I've been thinking about recently. The issue is that ROOT specifies a "multiplicity" for an expression telling us about the possible number of values to expect for each entry in the tree. In this case you expect either 1 or 0 values per entry since in some entry your electrons_pt array might be empty. But at the moment root_numpy doesn't have a mechanism to specify default values for when the expression single-element array is empty for a particular tree entry. I agree we need something like this to instead produce single elements with default values instead of nested arrays which are awkward to deal with.
For now, you can use root_numpy's stretch function: http://rootpy.github.io/root_numpy/reference/generated/root_numpy.stretch.html#root_numpy.stretch
electrons_pt = stretch(arr, fields=['electrons_pt[0]'])['electrons_pt[0]']

@kratsg flatten won't work on dtype=object nested arrays, I believe.

@kratsg, @ndawe : nope, it won't:
print arr["electrons_pt[0]"].flatten()
[array([ 85.83097839]) array([<PHONE_NUMBER>4]) array([ 87.52495575]) ...,
 array([<PHONE_NUMBER>]) array([<PHONE_NUMBER>5]) array([<PHONE_NUMBER>])]

yup, not on nested dtype=object. Use root_numpy.stretch.
If you use the latest master of root_numpy you can also use the shorter:
electrons_pt = stretch(arr, 'electrons_pt[0]')

@kratsg if an array is dtype=object then it is already "flattened" since each element is just a PyObject pointer to whatever. numpy know's nothing about the shape/type of what is in each array element.

I wasn't aware that the array objects were the C-type array objects and not the np.array objects. The latter case flattens correctly, the former doesn't.

root_numpy uses dtype=object since in general the nested subarrays are variable-length, and can be doubly nested too.

stretch is a very handy function when dealing with nested subarrays for objects within events :smile:

This works like a charm! Let's say that I've converted an entire tree into a structured numpy array. How do I best slice that with an additional cut? Take the cutflow example again: I can do a selection on "A > 5". If that is to be followed by a cut "B < 20" and then "C > 100", these can of course be added and I can re-run tree2array(). Is there a cleverer way in pure numpy to achieve that, if the cuts are strings?

I've used https://github.com/pydata/numexpr for things like that, or even just python's builtin eval function with an appropriate setting of globals/locals.

http://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html
So if your array is foo, then you can do something like
foo[np.where(foo.njets > 2)]
where np.where(foo.njets > 2) is a conditional. You can also just do
np.where(np.logical_and(x >= 10, x <= 25)) as well.

If the cuts are strings, then numexpr.evaluate() or eval() are probably your best bet. This is interesting and provides some example code: https://mail.scipy.org/pipermail/scipy-user/2010-November/027276.html

Basically:
passes = numexpr.evaluate('some_very_complex_expression_string', array)
passed_events = array[passes]

@kratsg: that's easy when writing it out - but it's a bit harder if the user specifies a configuration file: that would involve some nasty cut parsing. And accessing the vectorial branches would be more hackish.
Thanks for the numexpr suggestion! That works perfectly.  Now I just gotta figure out how TMath::Phi_mpi_pi() can be implemented there :simple_smile:

@gbesjes -- I use numexpr for https://github.com/kratsg/Optimization which uses cutstrings that are configurable. The easiest way to incorporate Pi is pretty straightforward:
numexpr.evaluate('2*pi', {'pi': np.pi})
works just as well. Think of the dictionary you're adding in not as a cut string, but the namespace for your numerical expression.

@kratsg : how do you deal with vectorial branches? numexpr doesn't seem to support indexing of them.

@gbesjes you might need to first massage your array into another array with some things stretched flat or cropped to fixed length before passing to numexpr. I have a few functions to make these operations easier in personal code that I've been considering placing in root_numpy eventually. Hopefully soon!

@gbesjes - what do you mean "vectorial" branches? Vector of vectors? Numpy doesn't handle these very well unfortunately (which means numexpr can't as easily). My workaround is just to make sure everything is "flattened" when I make it, so I end up having branches like jet_pt_0, jet_pt_1, ...

@kratsg: a branch std::vector - like electrons_pt[]. I'll do the same thing and stretch them.

@kratsg, @ndawe: would either of you have an example of how to achieve this unpacking of the vectors? I've tried to cook up a solution but can't figure out how to do it efficiently.

@gbesjes here is an example function from some personal code:
def subfixedlength(rec, length, fill_value=None, return_indices=False):
    """
    Truncate variable-length object fields to fixed length
    Cythonized version of this function will be introduced in root_numpy
    If length==1 then the subarray will become a scalar.
    """
    if not rec.shape[0]:
        raise ValueError("cannot truncate empty structured array")
    first_rec = rec[0]
    if length == 1:
        # make this a scalar
        dtype = [(rec.dtype.names[i], first_rec[i].dtype)
                 for i in range(len(first_rec))]
    else:
        dtype = [(rec.dtype.names[i], first_rec[i].dtype, (length,))
                 for i in range(len(first_rec))]
    out = np.empty(rec.shape[0], dtype=dtype)
    if fill_value is not None:
        if isinstance(fill_value, dict):
            for name, value in fill_value:
                out[name].fill(value)
        else:
            out.fill(fill_value)
    indices = np.ones(rec.shape[0], dtype=bool)
    idx = 0
    if length == 1:
        for record in rec:
            if record[0].shape[0] == 0:
                indices[idx] = False
            else:
                for ifield, field in enumerate(record):
                    out[idx][ifield] = field[0]
            idx += 1
    else:
        for record in rec:
            if record[0].shape[0] < length:
                indices[idx] = False
            for ifield, field in enumerate(record):
                out[idx][ifield][:min(field.shape[0], length)] = field[:length]
            idx += 1
    if return_indices:
        return out, indices
    return out

Clearly a bit slow since it's looping in python, but I want to Cythonize this and put something like it in root_numpy soon.

root_numpy's stretch also has a return_indices argument (default False) when True will return the original indices of the elements in the subarrays which indirectly allows you to associate the object elements with the original event indices.

for [[2, 3, 1], [0, 2]] for an object field in a structured array, stretch(a, return_indices=True) would give [2, 3, 1, 0, 2] and [0, 1, 2, 0, 1] as the indices (0 repeats for each first element in the subarrays).

Hi @ndawe,
I'm afraid that that functionality is broken for me currently (crashes on the record[0].shape accessing). And it flattens all the vector branches to the same maximum length, which is not exactly desirable. It would be great to have a function in root_numpy which ensures that each column - let's say taus_eta - is truncated to whatever the maximum is for that column (or a user-specified column-dependent maximum) and which allows the user to set the type.
That is, for a certain array, something like
transform_array(array, maxima={"taus_eta" : 3, "electrons_eta" : 11}, types={"taus_eta": np.float32, "electrons_eta" : np.float32})
as that would give the user full control over the data, while massaging it into a format that numpy can take.

I'll fix that crash due to record[0].shape. Regarding the truncation, this is ongoing work around #266 (see option 3 there)

Can you also just paste the stacktrace you saw here?

See #295. That will add support for truncation requested in #266


Inconsistent JVM Target Compatibility Error when Building

Description:
I'm encountering a build failure in my Expo project after updating to the latest version of the expo-alternate-app-icons plugin. The error suggests an inconsistency in JVM target compatibility between Java and Kotlin compilation tasks.
Error Output:
Execution failed for task ':expo-alternate-app-icons:compileDebugKotlin'.
> Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (17) and 'compileDebugKotlin' (19).

  Consider using JVM Toolchain: https://kotl.in/gradle/jvm/toolchain
  Learn more about JVM-target validation: https://kotl.in/gradle/jvm/target-validation

Environment Details:
Expo SDK Version: ~51.0.38
React Native Version: 0.74.5
expo-alternate-app-icons Version: ^1.0.0
Platform: Android
Build Command Used: expo run:android
Build Tools: Using Expo; prefer not to modify Gradle files directly
Steps to Reproduce:
Install the latest version of expo-alternate-app-icons
Configure the plugin in app.json:
 {
     "expo": {
       // ... other configurations ...
       "plugins": [
         // ... other plugins ...
         [
           "expo-alternate-app-icons",
           [
             {
               "name": "Icon1",
               "ios": "./assets/AppIcons/ios/icon1.png",
               "android": {
                 "foregroundImage": "./assets/AppIcons/android/icon1.png",
                 "backgroundColor": "#FFFFFF"
               }
             },
             // ... additional icons ...
           ]
         ],
         // ... other plugins ...
       ],
       // ... other configurations ...
     }
   }

raw errors:

Task :expo-alternate-app-icons:compileDebugKotlin FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':expo-alternate-app-icons:compileDebugKotlin'.

Inconsistent JVM-target compatibility detected for tasks 'compileDebugJavaWithJavac' (17) and 'compileDebugKotlin' (19).

Consider using JVM Toolchain: https://kotl.in/gradle/jvm/toolchain
Learn more about JVM-target validation: https://kotl.in/gradle/jvm/target-validation

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 24s
469 actionable tasks: 86 executed, 371 from cache, 12 up-to-date
Error: C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\android\gradlew.bat app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a,armeabi-v7a exited with non-zero code: 1
Error: C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\android\gradlew.bat app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a,armeabi-v7a exited with non-zero code: 1
at ChildProcess.completionListener (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules@expo\spawn-async\build\spawnAsync.js:42:23)
at Object.onceWrapper (node:events:632:26)
at ChildProcess.emit (node:events:517:28)
at cp.emit (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules\cross-spawn\lib\enoent.js:34:29)
at maybeClose (node:internal/child_process:1098:16)
at ChildProcess._handle.onexit (node:internal/child_process:303:5)
...
at spawnAsync (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules@expo\spawn-async\build\spawnAsync.js:7:23)
at spawnGradleAsync (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules@expo\cli\build\src\start\platforms\android\gradle.js:96:48)
at assembleAsync (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules@expo\cli\build\src\start\platforms\android\gradle.js:74:18)
at runAndroidAsync (C:\Users\nicho.vscode\UnionArena\MobileApp\UnionArena\UnionArena\node_modules@expo\cli\build\src\run\android\runAndroidAsync.js:45:37)

Hello @SaintNick1214, thanks for reporting this issue. I will have a look!

@SaintNick1214 could you please test this version https://www.npmjs.com/package/expo-alternate-app-icons/v/1.0.1--canary.28355d8.0?

@SaintNick1214 I have just released 1.0.1, which should resolve your issue. Feel free to re-open this If the error persists.

Everything works great!  Thank you!


feat(description): remove Description component from scw/ui

Summary
Type

Enhancement

Summarise concisely:
Remove Description component that is too specific to be a part of scw/ui

Part 1 -  https://gitlab.infra.online.net/front/shire/-/merge_requests/11167


Remove defined attribute

Currently we set a defined attribute (or customised using the definedAttribute option). This has two issues:

Can hit performance with lots of web components being initialised at once (minor concern)
If a parent component renders a child component, the child component will mutate itself from within the definition by adding the attribute. If the parent component re-renders and decides to remove that attribute because it doesn't know about it (any virtual DOM library could do this) then any styles used to prevent FOUC to undefined components will be reapplied to the element.

GIven the two issues with this, it's probably better to leave it up to the component authors and consumers to come up with a convention for this.
In native custom elements, you have access to :defined to do this, so this really only applies to polyfill-land.

I expect this will be a PITA while we still live in a polyfill world, so if we want to go ahead with this we should have some examples / guides on how to avoid FOUC for today's world.

@bradleyayers some guidance added at https://github.com/skatejs/skatejs#preventing-fouc. We can expand on this as we encounter better workarounds.

Seems that React and Incremental DOM don't actually behave like we had thought and they keep attributes they don't know about, so long as they aren't setting them through their vdom implementations.
Let's revert this change and re-update the docs.

Interesting. I knew that React doesn't touch attributes it doesn't know about, but I was under the impression idom did. So does idom have its own virtual DOM representation too? I assumed it traversed and queried the DOM in lock-step with idom function calls?

It does lock-step, but it doesn't query for the current DOM state. Instead stored what they call "node data" on the element with what they currently about it. So in that sense it makes it the same as React. I was quite happy to figure this out about them both (and it seems most, if not all, virtual DOM implementations behave this way). It would be counterintuitive to performance for any implementation to have to query and remove attributes they don't know about. This is actually what caused me to reinvestigate the potential issue. Previously, my tests showed that they removed it, but that's because I had tested it where the vDOM impl knew about the attribute, I believe.
This is good news.

@seancurtis ^. This is good news for a11y.

@jpnelson ^. This may slightly change how we think about smart / dumb components.

Cool — thanks for the explanation!

Wouldn't the attribute cease to exist if React happened to re-render an entire branch of DOM? Or would the attr end up on it again because the component would go through the lifecycle again?

@seancurtis I know there's certain algorithms in IDOM (and possibly React, as well) that will remove an element and re-append it (for retaining focus in large lists, sometimes). In that scenario, it wouldn't remove anything. If any implementation re-renders an entire tree, it goes through the custom element lifecycle again, anyways.


Error: parsing app spec "deploy_on_push"

Running from a Windows 10 machine, doctl is saying "deploy_on_push" is an incorrect parameter in .do/app.yaml
When running >  doctl apps create --spec .do/app.yaml --context main --format "ID"
My DigitalOcean API key is working, able to create/modify resources with it, my version of doctl is 1.64, and my configs in app.yaml
`databases:

engine: PG
name: db
num_nodes: 1
size: db-s-dev-database
version: "12"
envs:
key: DISABLE_COLLECTSTATIC
scope: RUN_AND_BUILD_TIME
value: "1"
key: DEBUG
scope: RUN_AND_BUILD_TIME
value: "0"
key: DJANGO_ALLOWED_HOST
scope: RUN_AND_BUILD_TIME
value: .ondigitalocean.app
key: DJANGO_SUPERUSER_EMAIL
scope: RUN_AND_BUILD_TIME
value<EMAIL_ADDRESS>key: DJANGO_SUPERUSER_USERNAME
scope: RUN_AND_BUILD_TIME
value: cfe
key: DJANGO_SECRET_KEY
scope: RUN_AND_BUILD_TIME
type: SECRET
value: vg*#tesrmi2bmtgit_t8)o6619mh+r$3y9zval%r0k&utglp
key: DJANGO_SUPERUSER_PASSWORD
scope: RUN_AND_BUILD_TIME
type: SECRET
value: password
key: POSTGRES_DB
scope: RUN_AND_BUILD_TIME
value: ${db.DATABASE}
key: POSTGRES_HOST
scope: RUN_AND_BUILD_TIME
value: ${db.HOSTNAME}
key: POSTGRES_USER
scope: RUN_AND_BUILD_TIME
value: ${db.USERNAME}
key: POSTGRES_PASSWORD
scope: RUN_AND_BUILD_TIME
value: ${db.PASSWORD}
key: POSTGRES_PORT
scope: RUN_AND_BUILD_TIME
value: ${db.PORT}
key: AWS_ACCESS_KEY_ID
scope: RUN_AND_BUILD_TIME
type: SECRET
value: password
key: AWS_SECRET_ACCESS_KEY
scope: RUN_AND_BUILD_TIME
type: SECRET
value: password
key: AWS_STORAGE_BUCKET_NAME
scope: RUN_AND_BUILD_TIME
value: trydjango32
key: OCR_API_TOKEN_HEADER
scope: RUN_AND_BUILD_TIME
type: SECRET
value: password
key: OCR_API_ENDPOINT
scope: RUN_AND_BUILD_TIME
value: https://fastapi-microservice-for-django-d3kjd.ondigitalocean.app
jobs:
environment_slug: python
envs:

key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
git:
branch: production-3
deploy_on_push: true
repo: worksofidustry/learn-django
instance_count: 1
instance_size_slug: basic-xxs
kind: PRE_DEPLOY
name: django-migrate-job
run_command: python manage.py migrate --noinput
source_dir: /
name: try-django-3-2
region: nyc
services:

environment_slug: python
envs:

key: DATABASE_URL
scope: RUN_TIME
value: ${db.DATABASE_URL}
git:
branch: production-3
deploy_on_push: true
repo: worksofidustry/learn-django
http_port: 8080
instance_count: 1
instance_size_slug: basic-xxs
name: try-django-3-2
routes:
path: /
run_command: gunicorn --worker-tmp-dir /dev/shm trydjango.wsgi
source_dir: /
`

Did you try to use the app.yaml from a pre-existing manually creation on the console?

Also, be sure to use the correct formatting when pasting code. The button on GitHub is <>

It was from the main of this repo .do/app.yaml. I've tried both running from Ananconda, and Git Bash, also replacing CRLF with LF just in case there is something Digital Ocean's API interface doesn't like.

I may have something now by changing the param git, to github:
  github:
    branch: production-3
    deploy_on_push: true....


Close PIL.Image file handler in Image.decode_example

Closes the file handler of the PIL image object in Image.decode_example to avoid the Too many open files error.
To pass the image equality checks in CI, Image.decode_example calls image.load() regardless of how the image object is created (not only for the PIL.Image.open(local_path) case). This is needed because load() sets the readonly attribute of a PIL.Image object to 0 (it's 1 after PIL.Image.open(file_like)), and in the older PIL versions (only fixed on main), that attribute is considered in PIL.Image.__eq__. More info can be found here: https://github.com/python-pillow/Pillow/issues/5926.
Fix #3985

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Package not installable (react-native-nyx-printer)

@BerkeAras You will need to provide more context. Thanks

@mrkpatchaa Installing using yarn add react-native-nyx-printer or npm install react-native-nyx-printer does not work.
The package does not exist.

@BerkeAras yes it's because I didn't publish the npm package.
Add this to your package.json
"react-native-nyx-printer": "mrkpatchaa/react-native-nyx-printer"
and run npm install


Enable Jenkins to build artifacts on 7.6.x

7.6.x builds on Semaphore have been flaky causing downstream build issues in other repos. This is blocking time sensitive prod releases. A temporary fix is to enable Jenkins to build artifacts since Jenkins builds have been mostly green on 7.6.x branch.

Closing PR because 7.6.x build succeeded on Semaphore and artifacts were built


'image_classification' returned "Too few timestamps found for performance check" by EEMBC Benchmark Runner

Hi,
I compiled image_classification in reference_submission and copied the bin file to NUMAKER_IOT_M487.
Then, I tried to run EEMBC Benchmark Runner with script ML Performance 1.0.0.
I got message
ulp-mlperf: Too few timestamps found for performance check.
ulp-mlperf: Cannot compute accuracy metrics in single-run mode.

Is there anything that I missed to set in order to run the test correctly on an Mbed supported board? Thanks!

Those sound like the right steps. Not sure what causes that error. Let me loop in the experts on the runner and IC benchmark.
@PieMonty and @petertorelli have either of you encountered this error? Any advice

Hi AnXelion,
are you working on Windows, Mac or Linux?
Try increasing the Inference Iterations when using the single run mode.
Also, you should run in Multiple mode for performance evaluation.

Hi @PieMonty,
I'm working on Mac with macOS Mojave 10.14.6 (18G8022).
I have changed to the setting as the following pic, but still get the same message in both the single mode and the benchmark mode.

However, if I run the same setting in the multiple mode, I got the following message which said
ulp-mlperf: Not all of the inputs had an output result

Thanks for all the replies. Really appreciate it.

Something is wrong with your implementation: it is initializing when you call infer. Initialization should be done as soon as it powers up, not when you call infer.

My guess is that you have a bug in inference that is causing the device to reboot.

Hi @petertorelli,
Thanks for the quick reply.
I didn't do any change to the source code in image_collection. All I changed was setting MBed's baud rate to 115200 in mbed_app.json. Then I just compiled the code into numaker-iot-m487's bin file and flash it to the board.
Maybe I should do some changes to the source code in image_classification in reference_submissions?

Can't really tell where the problem is. Try mounting the DUT directly and sending it commands. E.g, from the User Console: mountc dut dut and then dut name. If it prints "m-name-dut..." and then "m-ready" then the problem is with the infer code. If you can't talk to it at all, the problem is with your init code. Since the timestamp is "zero" I suspect nothing is ported correctly because it is highly unlikely zero microseconds elapsed from the time the device booted to the time th_timestamp is invoked. I recommend familiarizing yourself with the code and the documentation first, to get a sense of what is actually expected.

Thank you @petertorelli for additional info.
Thank you @AnXelion for trying the code out.
We found a potential issue that could lead to what you were seeing and we changed the code accordingly.
I encourage you to clone the repository again, make sure the build process is completed without errors and try to use the EEMBC Benchmark Runner for performance evaluation again.
We look forward to hearing from you.

Hi @petertorelli and @PieMonty ,
I tried the suggestions @petertorelli mentioned

Try mounting the DUT directly and sending it commands. E.g, from the User Console: mountc dut dut and then dut name.

EEMBC Benchmark Runner could mount the device and dut could respond the name of the device.
I also tried to call th_timestamp_initialize and th_timestamp directly in main.cpp:
int main() {
  th_timestamp_initialize();
  th_timestamp();
  th_timestamp();
  th_timestamp();

  // comment out the original code
  /*
   ee_benchmark_initialize();
  while (1) {
    int c;
    c = th_getchar();
    ee_serial_callback(c);
  }
  /*
  return 0;
}

th_timestamp did respond non zero value.
I have also tried the suggestion @PieMonty kindly mentioned:

I encourage you to clone the repository again, make sure the build process is completed without errors and try to use the EEMBC Benchmark Runner for performance evaluation again.

Unfortunately, the same problem still happens, which just like @petertorelli mentioned, the board do initialization every time I call infer.
Thanks for all the responses!

Hi @AnXelion ,
could you please share the mbed-os version you are using?
You should find it in tiny/v0.1/reference_submissions/image_classification/mbed-os/platform/include/platform/mbed_version.h
You should have this:

#define MBED_MAJOR_VERSION 6

/** MBED_MINOR_VERSION
  * Mbed OS minor version
  *
  * @note 99 is default value for development version (master branch)
  */
#define MBED_MINOR_VERSION 3

/** MBED_PATCH_VERSION
  * Mbed OS patch version
  *
  * @note 99 is default value for development version (master branch)
  */
#define MBED_PATCH_VERSION 0

Hi @PieMonty ,
It's like the following:
/** MBED_MAJOR_VERSION
  * Mbed OS major version
  *
  * @note 99 is default value for development version (master branch)
  */
#define MBED_MAJOR_VERSION 6

/** MBED_MINOR_VERSION
  * Mbed OS minor version
  *
  * @note 99 is default value for development version (master branch)
  */
#define MBED_MINOR_VERSION 3

/** MBED_PATCH_VERSION
  * Mbed OS patch version
  *
  * @note 99 is default value for development version (master branch)
  */
#define MBED_PATCH_VERSION 0

#define MBED_ENCODE_VERSION(major, minor, patch) ((major)*10000 + (minor)*100 + (patch))

Hi @AnXelion
i see from the screenshot above you get this printed:

m-timestamp-mode-energy

I am using ubuntu 20 and this is what i see when i run the ML Performance 1.0.0 test in single run mode:

Can you make sure you are choosing ML Performance 1.0.0 and not ML Energy 1.0.0 as the benchmark test you want to run?
Let me know if this solves the problem
Thank you for your effort

Hi @PieMonty ,
I'm sure that I chose ML Performance 1.0.0 not  ML Energy 1.0.0 as the benchmark test. The following pics are screenshots I ran the test in single mode.
https://imgur.com/a/glFasDU
If I'm not wrong, it seems like m-timestamp-mode-energy might always be printed since it is defined in submitter_implemented.h
#ifndef MLPERF_TINY_V0_1_API_SUBMITTER_IMPLEMENTED_H_
#define MLPERF_TINY_V0_1_API_SUBMITTER_IMPLEMENTED_H_

/// \brief These defines set logging prefixes for test harness integration.
/// \detail This API is designed for performance evaluation only. In order to
/// gather energy measurments we recommend using the EEMBC test suite.
#define EE_MSG_TIMESTAMP_MODE "m-timestamp-mode-energy\r\n"

and it will always be used in th_printf() in th_timestamp_initialize() in submitter_implemented.cpp
void th_timestamp_initialize(void) {
  /* USER CODE 1 BEGIN */
  // Setting up BOTH perf and energy here
  /* USER CODE 1 END */
  /* This message must NOT be changed. */
  th_printf(EE_MSG_TIMESTAMP_MODE);
  /* Always call the timestamp on initialize so that the open-drain output
     is set to "1" (so that we catch a falling edge) */
  th_timestamp();
}

By the way, the only change I made to the code in mbed_app.json is adding "platform.stdio-baud-rate": 115200, and "platform.default-serial-baud-rate": 115200
"target_overrides": {
        "*": {
            ...
            "platform.stdio-baud-rate": 115200,
            "platform.default-serial-baud-rate": 115200
        }
    }

Thank you again!

It appears a few lines of code were lost during the EEMBC to Google translation, here is the original, it should have been:
#if EE_CFG_ENERGY_MODE == 1
#define EE_MSG_TIMESTAMP_MODE "m-timestamp-mode-energy\r\n"
#else
#define EE_MSG_TIMESTAMP_MODE "m-timestamp-mode-performance\r\n"
#endif

However, that is just there as a reminder to the user when booting the device, and not used by the runner, so it shouldn't be a problem, but should be cleaned up.

Hi @PieMonty and @petertorelli,
Could you kindly provide which boards have successfully run the code in reference folder? I decide to buy a new board for testing my trained model with the benchmark.
Thanks!

Hi @AnXelion ,
this is the board we used for testing the reference benchmarks:
https://www.st.com/en/evaluation-tools/nucleo-l4r5zi.html
Let us know if you encounter any issue with that.
Many thanks for your patience

Can we close this issue now?

Hi,
After I switched to another board, everything worked fine. I believe it's  NUMAKER_IOT_M487's problem.
Again, thank you all for all your support.


[bug]: Button text incorrect after updating to v3.4.Orc1

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Windows
GPU
cuda
VRAM
8GB
What version did you experience this issue on?
v3.4.Orc1
What happened?
The text in all the buttons is replaced with script names.
I tried to reset everything, but the text won't update to the correct names.
Screenshots

Additional context
No response
Contact Details
<EMAIL_ADDRESS>

Try clearing your local storage / browser cache. This is caused by your browser caching an old version of the UI - it should also appear as normal if you open it in different browser


for oauth2-client 2.x support

Haven't you update the tests?
Is it working solution?

@pinguinjkeke Unfrtunatelly i do not understand what's wrong with tests 8(
I change php version 5.6 but error still appear with 5.5.x
So it's working for me well.


Add last page url data to browserHistory

I need a way to know the last page visited for a serverless 404-tracker I setup (and will be releasing soon). It's just a simple ajax call to a lambda function that fires when the 404 component is loaded and sends the 404'd URL along.
Adding a state object to the browser history push would presumably give me this info. https://github.com/MoOx/phenomic/blob/master/src/components/PageContainer/component.js#L154
proposed change:
 browserHistory.push(pageUrl, {url: window.location.href })

// from https://github.com/mjackson/history docs
// Use push, replace, and go to navigate around.
history.push('/home', { some: 'state' })

ref: http://stackoverflow.com/questions/18478602/how-to-get-the-previous-pushstate-with-javascript#answer-18478865
ref2: https://github.com/ReactTraining/react-router/blob/master/examples/pinterest/app.js#L126
I can do this with localstorage/cookies on my end but going to be messy to setup throughout my different templates

looks like my example code doesn't work here...
// This has no effect and doesn't add state to the history or location object =P
 browserHistory.push(pageUrl, {url: window.location.href })

In theory, you should be able to manually listen to history changes using native browser api and save this in an array or something.
Then, in your 404 layout componentDidMount you can handle this registry to read from it.

How about listen to this in PageContainer? componentWillUpdate provide you currentProps and nextProps. You can get params/spat from there

Fixed with a layout refactor https://github.com/serverless/site/blob/master/src/layouts/Default/index.js#L19 https://github.com/MoOx/phenomic/issues/772#issuecomment-250367141


Integration returns a 200 but data is not appearing in New Relic

For more information and links to the payload and other files, please review this case or this (closed) GTSE
Customer reports that the integration returns a 200 but data is not appearing in New Relic.
Impersonation Link: https://login.newrelic.com/impersonate/1002760650
The customer thinks the message related to this issue which started around June 4th is:
event(s) rejected because attribute value exceeded maximum length.
From the customer:
Due to memory issues on the server I started using redis and have my config setup for it. The script connects to it fine and puts the events/logs into the redis cache. The integration script will print the following example of a successful api post, however the events are nowhere in New Relic it seems. Is this related to changing from LogDate to CreatedDate.
However, they are not seeing anything in events.
Link to payload provided in the case/GTSE linked above.

Hi @neilpdx I'm working on an update, is this issue still a thing?

@neilpdx we released v1.0.0 last week. Could you test it and check if the issue is still there?

Closing due to inactivity.


Feature request: Support for ACM activation when a SHA1 hash of custom root certificate is added via MEBx

Describe the bug 🪲
Support for ACM activation when a SHA1 hash of custom root certificate is added via MEBx
To Reproduce 🪜
Steps to reproduce the behavior:

Generate a custom provisioning certificate using OpenSSL or any other tool. See requirements here https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Facquiringanintelvprocertificate.htm
Upload the Provisioning certificate chain PFX using Sample Web UI
Add the root certificate's SHA1 hash via MEBx. This is the hash of root certificate that was used to sign the provisioning certificate
Run rpc activate command on AMT device
AMT should be activated to ACM

Issue is resolved in #1155


How to close the interactive code assistant

The doc does not mention how to close the interactive code assistant window.
On mine, I cannot see an 'X' anywhere, so how do you do it?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 502be84d-8d2a-6c03-a118-279608698898
Version Independent ID: 502be84d-8d2a-6c03-a118-279608698898
Content: About the GitHub Copilot Chat extension for Visual Studio - Visual Studio (Windows)
Content Source: docs/ide/visual-studio-github-copilot-chat.md
Product: visual-studio-windows
Technology: vs-ai-tools
GitHub Login: @anandmeg
Microsoft Alias: meghaanand

@dombat -- Dominic, thank you for your question.  Please consider these resources:

Ask a question or find an answer on the Microsoft Q&A page for Visual Studio.
Check the Visual Studio MSDN Forum.
Stack Overflow
Reddit

@anandmeg -- Megha, please look into this issue.

@dombat, thanks for your feedback. We're working on adding a way to close the interactive code assistant. At the moment, you can close it by pressing Esc. The doc has also been updated and should be live later today.
Thanks!


Not able to create NodeTemplates

Rancher server - Built from master-head - master-3366-head ( HA install and single node install)
Steps to reproduce the problem:
Create a DO NodeTemplate.
Following errors seen in UI:

API call failed:
Request URL: https:///meta/proxy/api.digitalocean.com/v2/regions?per_page=100
Request Method: GET
Status Code: 404 Not Found
Built-In Drivers (including Linode , DO) and seen in "Active" state.

Verified on latest master-head commit id: 6d6199121

Able to deploy DO and custom clusters. No error seen


memory leak for dynamically generated menus

This is a really great library, a joy to use! However, I managed to his an edge case that probably isn't a common one.
I was generating menus dynamically, based on the JIRA Agile boards API, refreshing the menu every 30 seconds. My original approach was a naive:
@rumps.timer(30)
def update_menu(_):
    m = generate_menu()
    app.menu.clear()
    app.menu = m

this worked great, except that it seemed to be leaking a lot of memory. Digging in, it doesn't look like when the Python MenuItem object is deleted, the corresponding Cocoa NSMenu/NSMenuItem memory isn't released?

So I actually had occasion where I had to do a similar thing as well, not as intensive as 30 seconds but the app was intended to run for a long time so it was a concern. I dug into this slightly deeper and have a bit of bad news, I don't know if it is really fixable in rumps itself. What's going on here is that most objects in Obj-C use autorelease pools to manage their memory, this includes Cocoa objects like NSMenu and the like. PyObjC was supposed to use autoreleases to take care of that for you, but it looks to be a kind of obscure problem with PyObjC that when you use Cocoa and autorelease things tend to get funky. I never really got a solution to this, but I would suggest that you talk to the PyObjC people for solutions because fundamentally that is where the problem is stemming from

So I actually had occasion where I had to do a similar thing as well, not as intensive as 30 seconds but the app was intended to run for a long time so it was a concern. I dug into this slightly deeper and have a bit of bad news, I don't know if it is really fixable in rumps itself. What's going on here is that most objects in Obj-C use autorelease pools to manage their memory, this includes Cocoa objects like NSMenu and the like. PyObjC was supposed to use autoreleases to take care of that for you, but it looks to be a kind of obscure problem with PyObjC that when you use Cocoa and autorelease things tend to get funky.
I never really got a solution to this, but I would suggest that you talk to the PyObjC people for solutions because fundamentally that is where the problem is stemming from.
This was probably the closest issue I found that was filed, unfortunately it was closed due to some poor communication from the issuer's part

updated link to the pyObjC issue #199


I have some questions that I would like your answers

When sampling the trajectory, why only use a quartic polynomial in the longitudinal direction, and do not need to determine the longitudinal position of the vehicle at the last moment?
During training and testing, is the result of trajectory sampling to predict or plan the trajectory within the next 5 seconds? I feel like it's planning, but you keep talking about it in your paper as a predictive trajectory.
3.. In the paper, I found that you used the reward function to explain the relationship between the demonstration trajectory and the output trajectory. Is there any intuitive way to directly compare the difference between the original trajectory of the vehicle and the final output trajectory of the sampler? Because when I run the code, I don't see the output of the generated trajectory.
4.How can I get the results in figure 6 and figure7? Your paper focuses on the modeling of the driver, and I pay more attention to the generated trajectory and the comparison with the original trajectory, so I raise the above question.
Looking forward to your reply, thank you very much!

another question: you mentioned in your paper,"For a vehicle in the dataset, its original trajectory throughout the highway section, which is approximately 50 to 70 seconds in time length, is evenly partitioned into 50 short-term trajectories, each with 5 s length of time. Each trajectory represents a driving scene involving different situations and different kinds of interactions with the surrounding vehicles. 35 trajectories among them are randomly selected and serve as the training data for reward function learning. The rest 15 trajectories serve as the testing conditions, where the learned reward function is used to select the candidate trajectories. "
Does this mean that the first 35 tracks used for training were not selected in chronological order of vehicle movement? The vehicle trajectory used for training may actually occur after the trajectory data used for testing？

Here are my answers to your questions:

A quartic polynomial allows for the representation of acceleration and deceleration patterns without excessively complicating the model. It is sufficient for most highway driving scenarios where the key objectives are to maintain a safe distance from other vehicles, adhere to speed limits, and execute smooth accelerations and decelerations.
Prediction refers to forecasting the future positions of surrounding vehicles, while planning involves generating a trajectory for the ego vehicle itself to follow. In the paper, the essence of this sampling process is indeed planning, as it involves deciding on a trajectory for the ego vehicle. However, when applying this process to other vehicles, it is considered as prediction.
I use the human-likeness metric in the paper to directly compare the difference between the original trajectory and the final output trajectory of the sampler. You can also try visualizing both trajectories on the same plot, and this would allow for a straightforward visual comparison of trajectories.
To get the results in Figure 6 and Figure 7, you need to store the sampled trajectories and the original trajectory during testing and load them in MATLAB or other plotting tools to visualize the results.
The tracks are randomly selected for training and testing, and there is no chronological order of vehicle movement. By randomly selecting 35 trajectories out of the 50 short-term trajectories for training, and using the remaining 15 for testing, the approach ensures a diverse representation of scenarios.

Thank you very much for your reply, which is very helpful to me！


ERC721.md contains ERC20.md content

I believe this files contains the wrong Markdown.
https://github.com/Toniq-Labs/extendable-token/blob/main/examples/erc721.md

Sure looks like this file still has the wrong example

https://github.com/Toniq-Labs/extendable-token/pull/21


Rewrite command syntax for all the new attributes

In sapfo there were only three things you could change – title, tags, and description – which meant a simple 1 character long argument to f worked just fine. With between 20 and 25 attributes in nomia this is no longer feasible, so a new syntax for the filter command is needed.
Also, what to do about the pseudotags? (studio/rating/status/type) They're technically tags but only cause I haven't found an easier way. They probably should stay as tags.
Option 1
Example: f attribute value
Regex: f (\S+) (.+)
The attribute is the first chunk of non-whitespace characters after f, and everything after the attribute is the new value (which may include whitespace).
Pros: simple to understand and simple to code.
Cons: unwieldy for long attributes (altho that might be rectified with autocompletion)
Option 2
Example: fa value
Regex:f ?(.) (.+)
We're sticking to the original convoluted way of assigning a fairly arbitrary character to every attribute and hoping we don't run out.
Pros: short to write, prolly simple to code as well
Cons: impossible to remember, we'll run out of characters unless a second is added

Option 1 it is. (more or less)


feat: added overlay-color and overlay-opacity values

Description
Added
  "overlay-color": {
    "ref": "{black}",
    "value": "rgb(0, 0, 0)"
  },
  "overlay-opacity": {
    "sets": {
      "light": {
        "value": "0.4"
      },
      "dark": {
        "value": "0.5"
      },
      "darkest": {
        "value": "0.6"
      }
    }
  },

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

:tada: This PR is included in version 12.0.0-beta.46 :tada:
The release is available on:

GitHub release
npm package (@beta dist-tag)

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


chore: fix compile errors

Changes

#1427  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Question: Is there a way to disable the use of redux?

I would like to manage my own state and just update the data prop which is passed in the board myself. Having redux and my own state is causing performance issues. Is there a way to do disable redux?

Nothing? 😭

Have the same problem. In my redux store I have list of task. If tasks 100+ on the board it looks like all board rerender after one task data changed


Accesing Special AppRoot folder on OneDrive Business account requires Files.ReadWrite.All permission

As per title, I have implemented OneDrvie access in my app with MsGraph Java SDK.
I request "Files.ReadWrite.AppFolder", "User.Read", "offline_access", "openid" and only use special app folder for access.
It works fine on personal OneDrive accounts. Unfortunately, I get access denied error if I test it on OneDrive Business accounts. I have to request "Files.ReadWrite.All" permisison in order to be able to access to special app folder.

@PaoloPia I'm not the OP, but we still receive some complaints about this one from time to time.

Wow, we're almost in 2024 and still no documented solution. I had one years ago and integrated it into MS-TL, which is on the Microsoft Store. I am considering open sourcing it for the sake of it. Just haven't had the time to dedicate to it of late.

Hi,
Thanks for your feedback. Unfortunately this repo is for keeping track of issues or new contributions in the Microsoft Graph docs and not to provide help about how to use Microsoft Graph. You should rely on the Microsoft Graph support area (https://developer.microsoft.com/en-us/graph/support) for this kind of questions. I'm going to close this item. Thanks for your comprehension.

Hi @NLLAPPS, yes you can try with issues list of the Java SDK, if you like. I was suggesting the forum so that you can get support from the whole community, but up to you! Thanks!


Disable sysctl configuration

Hello
Because I already use the sysctl module in my current infrastructure, I need to disable the sysctl configuration in the os_hardening module.
So, I added the "enable_sysctl_config" parameter.
I also fixed some documentation typo.
Thanks.
David.

Hi David, thanks a lot!


[FEATURE] Expose host port services in Cilium

Is your feature request related to a problem? Please describe.
Right now Netreap doesn't have a great way to support host services. The easy way to enable that is to simply add the portmap CNI plugin to the configuration chain, ex.
{
  "name": "cilium",
  "cniVersion": "1.0.0",
  "plugins": [
     {
       "type": "cilium-cni",
       "enable-debug": false
     },
     {
      "type": "portmap",
      "capabilities": {"portMappings": true}
     }
  ]
}

Describe the solution you'd like
Cilium has an API for managing services. Normally these are derived from Kubernetes services, but it looks like we should be able to create services with that API to map host ports in Nomad jobs that request them.
Describe alternatives you've considered
Additional context

https://github.com/cilium/cilium/blob/52c383566e7f22882c0e9c0f038cef110ad5c4cf/pkg/k8s/watchers/pod.go#L644 seems to be the related code within Cilium.

As a workaround for now I've got this hacky way of using a pre and post start task to add and remove service definitions. It requires that the Nomad client's are configured to have the Cilium socket directory declared as a host volume and that jq is installed on the machine. You can define a task that needs host port mapping like the example below.
You will also need to manually manage the service IDs to ensure that they are unique as the Cilium API doesn't seem to provide a way to generate those.
job "fabio" {
  type      = "system"

  group "fabio" {

    network {
      mode = "cni/cilium"
      port "lb" {
        static = 8080
      }
      port "ui" {
        static = 8081
      }
    }

    volume "cilium" {
      type      = "host"
      read_only = false
      source    = "cilium"
    }

    task "create-service" {
      driver = "exec"

      config {
        command = "/bin/sh"
        args = [
          "$${NOMAD_TASK_DIR}/create-service.sh"
        ]
      }

      lifecycle {
        hook    = "poststart"
        sidecar = false
      }

      template {
        destination = "local/create-service.sh"
        data        = <<-EOH
          #!/bin/sh

          ENDPOINT_ID=$(cilium endpoint list -o json | jq -r '.[] | select(.status["external-identifiers"]["container-id"] == "{{ env "NOMAD_ALLOC_ID" }}") | .id')
          BACKEND_IP=$(cilium endpoint get "$ENDPOINT_ID" -o jsonpath='{$[0].status.networking.addressing[0].ipv4}')

          cilium service update \
            --k8s-host-port \
            --id 1 \
            --backends "$BACKEND_IP:8080" \
            --frontend "{{ env "NOMAD_HOST_ADDR_lb" }}"

          cilium service update \
            --k8s-host-port \
            --id 2 \
            --backends "$BACKEND_IP:8081" \
            --frontend "{{ env "NOMAD_HOST_ADDR_ui" }}"
        EOH
        perms = "0755"
      }

      volume_mount {
        volume           = "cilium"
        destination      = "/var/run/cilium"
        propagation_mode = "private"
      }
    }

    task "delete-service" {
      driver = "exec"

      config {
        command = "/bin/sh"
        args = [
          "$${NOMAD_TASK_DIR}/delete-service.sh"
        ]
      }

      lifecycle {
        hook    = "poststop"
        sidecar = false
      }

      template {
        destination = "local/delete-service.sh"
        data        = <<-EOH
          #!/bin/sh

          set -x

          cilium service delete 2
          cilium service delete 1
        EOH
        perms = "0755"
      }

      volume_mount {
        volume           = "cilium"
        destination      = "/var/run/cilium"
        propagation_mode = "private"
      }
    }

# .... rest of the task definition
}


Allow for multiple workers when autopacking

Uses the dataloader worker settings when autopacking

@b-chu Can you add some manual tests? lgtm otherwise


Using a public property extensions with a @Composable backing delegate fails to link for iOS targets

Describe the bug
I have property extensions with a @Composable backing delegate that looks like this
val text: String @Composable get() = "Some text"

This works as expected for android/desktop, but fails to link for ios clients and throws this error
> Task :app:ui:linkPodDebugFrameworkIosSimulatorArm64

Showing All Messages
> Task :app:ios-compose:linkPodDebugFrameworkIosSimulatorArm64 FAILED
e: There is still an unbound symbol after generation of IR module <NyTimes>:

Unbound public symbol IrSimpleFunctionPublicSymbolImpl: io.github.xxfast.nytimes.ios.compose/text.<get-text>|8349765969627210272[0]

This could happen if there are two libraries, where one library was compiled against the different version of the other library than the one currently used in the project. Please check that the project configuration is correct and has consistent versions of dependencies.

Current work around is to keep these either private or internal
private val text: String @Composable get() = "Some text"
// or
private val text: String @Composable get() = "Some text"

Affected platforms
Select one of the platforms below:

iOS

Versions

Kotlin version*: 1.8.10
Compose Multiplatform version*:  1.3.1
OS version(s)*:  iOS 16.2
OS architecture (x86 or arm64): arm64

To Reproduce
Steps and/or the code snippet to reproduce the behavior:

Checkout https://github.com/xxfast/NYTimes-KMP/commit/fc231fca88e46cd7d928c65ac71a1dffbbaf1fb4
Open app/ios/ios.xcworkspace and run

Expected behavior
@Composable backing delegates for iOS targets to behave the same as other platforms.
This is similar to #2903 so feel free to close this or that if it is the same underlying issue

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


Negation of a single dashboard term always returns no results

In attempting to achieve a not equals expression within a Stroom dashboard, it has been noted that a negation of a simple test always returns no results.
For example, the term

returns many thousands of results, but to change this to

and this search returns no results. Add additional terms such as those below return many hundreds of thousands (as expected).

This also is an issue for Text type fields. Given an index which records feedname, simply search with a single term such as AND {Feed = <yourknownfeedname>} and see many results. Change the AND to a NOT in order to search for all events not from  and zero results are returned.

This is just the way Lucene works. Basically you have to search for something you want and then use NOT to remove specific results. I don't think we can change this behaviour without internally altering the query to be:
AND
   Field = *
   NOT Field = negation

Thanks for the clarification. Closing.


Collect all violations instead of short-circuiting.

Short-cuirting validation helps performance, but it is typically more ergonomic for clients when they are provided with all violations. In fact, the Google's BadRequest type which pgv uses allows specifying multiple violations.
More tests should be written around the Result type, but this is submitted to solicit feedback first.

This looks great, and this improvement for collecting all errors is very welcome. I'm OK with not using NonEmptyList for collecting errors - I think it's a reasonable tradeoff at this point between purity (making impossible things unrepresentable) and simplicity. You alluded to more tests around the Result type - happy to get this PR merged in once you there's some coverage there. Thanks again for improving this little new library!

@thesamet I've added unit tests for the Result type in https://github.com/scalapb/scalapb-validate/pull/19/commits/116ec1b7b6e2bb08ac00069ecc90ff9271c5a457
Please take a look. They could be more exhaustive by using ScalaCheck, but this seems sufficient for now.

Thank you!


Fix force try in the FailableIterator.next() and Connection.prepare() methods

The force try is crashing and ideally, the prepare() query should throw the error rather than crashing the app. Thanks!
Thanks for taking the time to submit a pull request.
Before submitting, please do the following:

Run make lint to check if there are any format errors (install swiftlint first)
Run swift test to see if the tests pass.
Write new tests for new functionality.
Update documentation comments where applicable.

anyone please merge this request?


Add Optiva logo

Hello Joy,
we’re in progress to improve the CAMARA website. To have the logos presented in the best way we would ask for a .SVG version.
Would you send us your logo again in .SVG format?
BR, Markus

https://github.com/camaraproject/camara-landscape/pull/22


[PLT-7578] Fix broken UI for expired email invite link

Summary
Fix broken UI for expired email invite link
Ticket Link
Jira ticket: PLT-7578
Checklist

[x] Has UI changes
[x] Includes text changes and localization file (.../webapp/i18n/en.json) updates

Moving this back to PM review since it involves UI changes that weren't specced

Setup Test Server label detected. Spinmint test server created if build succeeds (checks pass and no conflicts with base branch).

Spinmint test server created at: http://i-07a4656ae135399cf.spinmint.com:8065/pr55
Test Account 1: Email<EMAIL_ADDRESS>| Password: passwd
Test Account 2: Email<EMAIL_ADDRESS>| Password: passwd
Instance ID: i-07a4656ae135399cf

I tested and the error page matches the expected case in the ticket (https://mattermost.atlassian.net/browse/PLT-7578)

@hmhealey Please ping me if something else was changed in the UI that PMs should be aware of? I didn't find anything in particular.

Spinmint test server destroyed

@jasonblais I wasn't expecting this page to show "Create an account with..." or "Already have an account?" when it has an error since it's not a signup page, and it feels out of place (2/5). I'm fine if we want it to look like a signup page though.

@jasonblais I agree with @hmhealey and really think we should either remove the "Create an account with:" header or actually add the signup controls to this page. It just looks broken as-is.

That makes sense. @saturninoabril can you help with that?

@jasonblais Noted, see updated patch.


test: add unit test in accordion component

Pull Request Test Coverage Report for Build 1226

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.5%) to 74.188%

Totals

Change from base Build 1206:
1.5%

Covered Lines:
635

Relevant Lines:
817

💛  - Coveralls


properly match style to chosen overlay style

It seems you're doing something custom with how the window looks, namely with how everything is very boxey and feels quite cramped. It would be nice to have default styling that I'm already very accustomed to. The tabs for General and Display don't show which one is selected, the corners are very sharp when they should be rounded with this style, checkboxes are a different color, resizing the window makes a yellow border instead of default, and I'm sure there are some other things I haven't noticed yet. I also happen to use the Next style which the plugin mostly matches, but for those who use another style, it just doesn't match at all.

Plugin has its custom style. I'll look into an option to disable the custom style, but I need to fix some UI size calculations for that.

Fixed in https://github.com/nicoell/tm-editor-route/commit/fc0ddcf58166496cea056266cefb61f08b248bc3
Change will be available in v0.9.2 Beta

Thank you so much! Looks a lot better in my opinion and the palette options are nice too


[WIP] No more hacks for Mono.Cecil and NUnit.

NUnit was upgraded and the bug was fixed. No more hacks are required.
https://github.com/nunit/nunit3-vs-adapter/issues/325

Microsoft.NET.Test.Sdk is still required for building tests project.


PACT-701 Create a stub listener for editorial front-end to respond to an Edit Set request

There are no tests as part of this PR. In the future, PR tests could be incorporated with the JMS request response listener. To manually test this PR:

Start elasticMQ with docker-compose in the project root directory:

docker-compose up -d

Start the application via SBT:

sbt run

With the application running, make a request to the application in a different terminal window to start the play application:

curl http://localhost:9000

Switch to the jms-request-reply project. Run the tests for that project:

sbt test

There request reply project should be able to find the stub server running in this project. A request with the header value for sid set to "OSGEES001" an a payload of """{ "oci": "string", "timestamp": "2019-08-24T14:15:22Z" }""" should get a response with an edit set.

This needs to be formatted, @felixgb .

I understand that we're not involving the EchoServer in tests (I think it's just for a proof-of-concept?), but it is indeed attempting to start itself when running the tests:
2023-02-20 11:13:23 INFO  u.g.n.o.e.services.jms.StubServer  Starting EchoServer...
2023-02-20 11:13:23 INFO  u.g.n.o.e.services.jms.StubServer  Opening context to MQ at Region: elasticmq DirectAddress(HTTP,localhost,Some(9324))...
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Opened context com.amazon.sqs.javamessaging.SQSSession@2d64a23a
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Creating context
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Context com.amazon.sqs.javamessaging.SQSSession@6c4746b4 successfully created
[info] EditSetISpec:
2023-02-20 11:13:24 ERROR c.a.s.j.AmazonSQSMessagingClientWrapper  AmazonClientException: getQueueUrl.
software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: Connect to localhost:9324 [localhost/<IP_ADDRESS>, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)

Could we exclude it?

Why didn't we include any automated tests for this work?

Seems to be working as expected; see QA here.
I'll review the code next.

I understand that we're not involving the EchoServer in tests (I think it's just for a proof-of-concept?), but it is indeed attempting to start itself when running the tests:
2023-02-20 11:13:23 INFO  u.g.n.o.e.services.jms.StubServer  Starting EchoServer...
2023-02-20 11:13:23 INFO  u.g.n.o.e.services.jms.StubServer  Opening context to MQ at Region: elasticmq DirectAddress(HTTP,localhost,Some(9324))...
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Opened context com.amazon.sqs.javamessaging.SQSSession@2d64a23a
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Creating context
2023-02-20 11:13:24 INFO  u.g.n.o.e.services.jms.StubServer  Context com.amazon.sqs.javamessaging.SQSSession@6c4746b4 successfully created
[info] EditSetISpec:
2023-02-20 11:13:24 ERROR c.a.s.j.AmazonSQSMessagingClientWrapper  AmazonClientException: getQueueUrl.
software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: Connect to localhost:9324 [localhost/<IP_ADDRESS>, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)

Could we exclude it?

I intentionally started the stub server in the integration tests, with the thought that we would soon be integrating the request reply client, which would have integration tests. If this isn't required yet I can disable it.

@felixgb , you may want to rebase, given my introduction of the JMS client.


[FIX] resurrected python2.6 support

Hi,
although it is stated on the website. PyHDB doesn't work with Python 2.6 due to some dependencies on features introduced in 2.7. I replaced by 2.6 features and now it works for me.
Cheers,
David

nice job! I hope this gets merged soon and then someone could even update the pip package :)

Thanks for the patch - looks fine to me. I would vote for applying the pull request.

Hi,
it there anything that should be done before this PR can be merged? Otherwise, I would also vote for the merge ;-)
Cheers,
Dave

Did someone tests with other Python versions like 2.7/3.3/3.4?

On 12.10.2015, at 10:30, David Weese<EMAIL_ADDRESS>wrote:
Hi,
it there anything that should be done before this PR can be merged? Otherwise, I would also vote for the merge ;-)
Cheers,
Dave
—
Reply to this email directly or view it on GitHub.

But first of all, thank you for your contribution.

On 12.10.2015, at 10:30, David Weese<EMAIL_ADDRESS>wrote:
Hi,
it there anything that should be done before this PR can be merged? Otherwise, I would also vote for the merge ;-)
Cheers,
Dave
—
Reply to this email directly or view it on GitHub.

I tested your changes and sadly found some problems with the LOB support.
@ralhei You are the LOB expert. Could you please take a look?

@jarus: Can you give me a hint what kind of problem you have? I need to know what you have tried to do ...

Hmm, the only changes I did was to replace constants from package io by constants from os with the same values and to use slightly longer syntax to remove "hana_" prefixes from command line arguments. I am surprised that this might have side-effects on LOB.

I just merged master into my PR and fixed an issue with python 3.x, i.e. replaced iteritems() by items().

And I just verified manually, that the change in pyhdb/__init__.py works for python-2.6 as well as for python-3.4.

The main problem of supporting python 2.6 is the missing unicode support of io.StringIO. We can think about to support Python 2.6 again but without NCLOB support.

As Python 2.6 is now at its end of live. Let's close this pull request.


receive 2 health check requests each time when configure endpoint's healthcheck's hostname field

Envoy Env
Use envoy under istio.
Envoy version: v1.13.2
Some knowledage: we can configure healthcheck's hostname field to make its own endpoint to get the custom Host heade value when get health check request (e.g. the same value with $hostname)

Issue desc

If configure every endpoint's healthcheck's hostname, every backend endpoint server will receive 2 http healthcheck requests for each time,g.
<IP_ADDRESS> - - [26/Oct/2022:16:45:54 +0900] GET /monitor/l7check.nhn HTTP/1.1 200 0 - Envoy/HC - test.test-nyg -
<IP_ADDRESS> - - [26/Oct/2022:16:45:54 +0900] GET /monitor/l7check.nhn HTTP/1.1 200 0 - Envoy/HC - lambda-test.navercorp.com:80

corresponding envoyFilter configuration:
      health_checks:
      - always_log_health_check_failures: true
        event_log_path: /dev/stdout
        healthy_threshold: 10
        http_health_check:
          codec_client_type: HTTP1
          host: test.test-nyg
          path: /monitor/l7check.nhn
        interval: 5s
        no_traffic_healthy_interval: 5s
        no_traffic_interval: 5s
        timeout: 60s
        unhealthy_threshold: 10
      load_assignment:
        cluster_name: outbound|80||test.test-nyg
        endpoints:
        - lb_endpoints:
          - endpoint:
              address:
                socket_address:
                  address: lambda-test.navercorp.com
                  port_value: 80
              health_check_config:
                hostname: lambda-test.navercorp.com:80
          - endpoint:
              address:
                socket_address:
                  address: lambda-real.navercorp.com
                  port_value: 80
              health_check_config:
                hostname: lambda-real.navercorp.com:80

serviceEntry
apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  annotations:
    data-revision: "51843"
  creationTimestamp: "2022-10-24T09:10:45Z"
  generation: 2
  name: test
  namespace: test-nyg
  resourceVersion: "27090013"
  uid: 3a0b204a-8c0f-43f8-97cb-46322f420ed5
spec:
  endpoints:
  - address: lambda-test.navercorp.com
    ports:
      http: 80
  - address: lambda-real.navercorp.com
    ports:
      http: 80
  hosts:
  - test.test-nyg
  ports:
  - name: http
    number: 80
    protocol: http
  - name: https
    number: 443
    protocol: https
  resolution: DNS

My question is:

For each time, why the backend endpoint receives 2 health check request? Seems only 1 request for each time is enough.
For the 2 health check requests

1 request with custom Host header value(lambda-test.navercorp.com:80)

This result is as expected

Another request with orginal Host header value (test.test-nyg)

This result seems not as expected, since i already configured the custom header for every endpoint, why the request with original Host header comes, normally, this request can't be received.

Has any idea of make the endpoint not receive the http request with original Host header when configured the custom Host header for the backend endpoint?

If don't configure every endpoint's healthcheck hostname, every backend endpoint server will receive only 1 http health check request with same header: $backendName.namespace for each time, e.g.
<IP_ADDRESS> - - [26/Oct/2022:16:45:54 +0900] GET /monitor/l7check.nhn HTTP/1.1 200 0 - Envoy/HC - test.test-nyg -

corresponding envoyFilter configuration:
 patch:
   operation: MERGE
   value:
     health_checks:
     - always_log_health_check_failures: true
       event_log_path: /dev/stdout
       healthy_threshold: 10
       http_health_check:
         codec_client_type: HTTP1
         host: test.test-nyg
         path: /monitor/l7check.nhn
       interval: 5s
       no_traffic_healthy_interval: 5s
       no_traffic_interval: 5s
       timeout: 60s
       unhealthy_threshold: 10
      # remove the custom Host header configuration here

This is normal, no question under this scene.

cc @snowp @mattklein123

Please open this against Istio or provide a pure Envoy based repro. Thank you.


[a11y]: color contrast is low and missing labels for the for form

Describe your issue
I ran some accessibility tests on the website and here are the results.
Accessibility Insights

Element has insufficient color contrast of 2.93 (foreground color: #e1e6fe, background color: #3c83f6, font size: 10.5pt (14px), font weight: normal). Contrast ratio: 2.93:1

Expected contrast ratio of 4.5:1 according to WCAG 1.4.3.

WAVE Tester

Steps to reproduce
Not applicable
What was the expected result?
No response
Put here any screenshots or videos (optional)
No response
Would you like to work on this issue?
Yes

Thanks for doing the tests! I'll be really happy to see a PR for this :D


Changed Mod Models in API enhancement

when is tryed use a model that is "pre made" from changed main mod in this case LightLatexWolfMaleModel this erro happen
Type 'net.ltxprogrammer.changed.client.renderer.model.LightLatexWolfMaleModel' does not have type parameters
and i see in the code the model don't allow to be used for other latex entity only for LightLatexWolfMale and is the same thing for all models,and is because this models are linked to a certain latex entity or entity
It would be nice to have an addition that allow use the Latex Entity models so they can be used by any latex entity renderer;
like a new class or function like a LatexEntityModel
Or just replace the line for T Extends LatexEntity instead of a entity
If this is impossible due to the way the models are saved or is just very complex to do that, I understand

If the need arises for you to use the model, make your entity extend LightLatexWolfMale (or whichever entity you're deriving from), but this NEEDS to be solved by adding your own models.


⚠ SceneTime has degraded performance

In 3abd14f, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 21052 ms

Resolved: SceneTime performance has improved in 8bb60d8.


Check for PR branch

before using the API so we hopefully save a call.
This will again close #93  :laughing:

I'll definitely use this if it gets merged!

https://github.com/vsoch/pull-request-action/releases/tag/1.0.24


FreeBSD support

Nice to see a library using raw HCI sockets instead of bluez stuff! I've added the socket setup for FreeBSD. Hopefully didn't break Linux..

Hi,
Sorry for taking so long to reply.... I somehow missed your PR...   I do not have a BSD machine, so I'll try your PR on Linux and if it works, I'll merge it.
Cheers,
François

Thank you again... seems to work, merged.


Add status error codes to responses

Error responses from the VHS always return a status of 200.  We should leverage 404 and 500s at the very least.
404 example https://github.com/ripple/validator-history-service/blob/main/src/api/routes/v1/validator.ts#L233
500 example https://github.com/ripple/validator-history-service/blob/main/src/api/routes/v1/validator.ts#L275

Is this issue still valid? And if yes, should I work on it?

I believe so, and sure


Spatial Alignment Between Hololens 2 Headsets using Spacepins

I hope this is the right place to post these questions and if it's not I'm happy to move them to a more appropriate venue.  I'm new to unity/Hololens development in general.
I'm trying to build an application that allows multiple Hololens 2 headsets (i.e. multiple users) to see/place (in realtime) holograms (primarily on walls) using a shared coordinate space.  I'm fairly certain this is a "solved" problem and my current understanding is that WLT + ASA are the modern tools that should be able to accomplish this.
I've been getting my self up-to-speed on WLT through the main resources archive on it as well as these discussions:

https://github.com/microsoft/MixedReality-WorldLockingTools-Unity/issues/283
https://github.com/microsoft/MixedReality-WorldLockingTools-Unity/issues/281#issuecomment-1102582622
https://github.com/microsoft/MixedReality-WorldLockingTools-Unity/issues/264
https://github.com/microsoft/MixedReality-WorldLockingTools-Unity/issues/261

In my hypothetical application, users will place holograms on the spatial mesh (primarily a wall) and be able to see their manipulation in real-time using PUN2 in a generally confined space of dimensions ~10'x10' on the floor and ~10'x30' on the wall.  From the resources above, I understand that multiple spacepins should allow for higher location accuracy.  Because of the floor+wall "workspace" arrangement of the application, I figured it's best to provide some number of spacepins corresponding to both a floor and wall that the first user in a gameroom would pin to give a common coordinate space for other users later joining the application.  To this end, I've been playing with the pinTestSofa example and simply modified the furniture to be a floor plane with 4 spacepins and a wall plane with 2 spacepins (I'm not certain of the numbers needed for each).  See image below for the scene.  My assumption is that the floor pins would maintain better accuracy in the horizontal plane and the wall pins would help maintain better accuracy in the vertical dimension along the wall.

The idea would be that maybe something very similar to this example would be a first scene in the application that the first user would see, and then all other users might skip to the main application (a second scene) that polls for the updated coordinate space through ASA.  In this way, all users would .
My questions:

When I try modifying the pinTestSofa scene as described above, things seem to work as I would expect when until I start moving more than two pins.  I've noticed that when trying to position a third, fourth, etc spacepin, the spacepin often simply won't move to the desired location.  Additionally, the framerate drops to ~30fps with only two placed pins and with 4 placed pins, it moves to ~10fps.  Finally, I sometimes see the furniture drifts as I move about after having tried to place more than 2 or 3 of the 6 spacepins in the scene.  Is any of this expected behavior?
Is there a better method and/or geometry to use for placement of the spacepins to insure high accuracy of holograms placed on the wall?
I'd like to be able to store the relative positions of the placed objects w.r.t. themselves and be able to re-instantiate that layout later in another session of the application for further editing (i.e. removal/addition/positioning of holograms in the arrangement).  Is this possible and if so, what might be an approach to allow for the configuration to be remembered but not "anchored" to physical space?  I assuming that parenting the placed objects and perhaps having a spacepin corresponding to that parent object that a user can place to anchor the arrangement in a new scene for further editing would be start?

Thanks!

If @fast-slow-still is around he can answer everything better than I, but I'll add what I have learned (sort of), over the past few months.

I'm not sure about the framerate drops, but we see a lot of drift when either
a) the virtual poses (in Unity) and the coordinates of the space pins are not accurate, say you are trying to pin the edges of desk that is 3 meters wide, but your holographic model is only 2.5 meters wide. This is even more dramatic if the rotations are not matched. Generally, we have had success by setting no rotations (just the identity pose) on the virtual positions we want to pin, and then using the spacepinorientables to figure out WLT rotation on its own, or
b) when we have accidentally pinned a bunch of virtual positions that are the same (say all 0,0,0) or we changed those virtual positions but didn't Reset the spacepins (so they are trying to match the wrong virtual position with the pinned location).
Not sure.
The way we handle this is by using image recognition to get the locations of various positions (you could use ray hits, or just placing objects around). We get those world positions and then their relative positions in relationship to the world origin (we set one of those positions as a virtual pose.identity. We save that to disk (and to the room in photon). When we restart and reload those markers, they have the same relative positions to each other. We can then pin them -- after 2-3 they have all rotated into the same orientation as when originally created.


More clarification required for index mainteinance

[Enter feedback here]
This documentation has contradicting information with index maintenance info on
https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15
I doubt whether you need to run index rebuild on Synapse, because of the following in SQL2016
Starting with SQL Server 2016 (13.x), rebuilding the columnstore index is usually not needed since REORGANIZE performs the essentials of a rebuild as an online operation.
Also, in SQL2019
Starting with SQL Server 2019 (15.x), Azure SQL Database, and Azure SQL Managed Instance, the tuple-mover is helped by a background merge task that automatically compresses smaller open delta rowgroups that have existed for some time as determined by an internal threshold, or merges compressed rowgroups from where a large number of rows has been deleted. This improves the columnstore index quality over time. For most cases this dismisses the need for issuing ALTER INDEX ... REORGANIZE commands.
Please clarify whether Synapse is required to run Index Reorg as well.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4635ce5c-c6b4-0401-8aec-19f06923c4ef
Version Independent ID: 948d6df0-be68-b791-d7b3-aefea32dbd8d
Content: Indexing tables - Azure Synapse Analytics
Content Source: articles/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-index.md
Service: synapse-analytics
Sub-service: sql-dw
GitHub Login: @XiaoyuMSFT
Microsoft Alias: xiaoyul

Hi @BenoityipMSFT!
Looks like we improved the messaging around Synapse-specific index maintenance in January with notes in a variety of articles including this one to redirect them to the Synapse-specific indexing article: https://docs.microsoft.com/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-index
Thanks for bringing this to our attention and thanks for the detailed feedback! Will close this issue as we believe this to be addressed.
#assign:KevinConanMSFT
#please-close

#assign:KevinConanMSFT


Investigate StreamMessageDuplicatorVerification failure

https://ci.appveyor.com/project/trustin/armeria/build/master.1635
StreamMessageDuplicatorVerification.stochastic_spec103_mustSignalOnMethodsSequentially: FAILURE
Gradle suite > Gradle test > com.linecorp.armeria.common.stream.StreamMessageDuplicatorVerification.stochastic_spec103_mustSignalOnMethodsSequentially FAILED
    java.lang.AssertionError: Failed in iteration 68 of 100. Expected completion signal after signalling 10 elements (signalled 0), yet did not receive it within 2000 ms

Didn't see this for a while.


Instruct NDIS Scatter-Gather DMA stack to use HAL DMA v3 APIs when available (NDIS_SUPPORT_NDIS650)

NDIS Scatter-Gather DMA APIs are showing signs of old age and are becoming inefficient, especially on SoC systems. This driver should ultimately migrate from NDIS Scatter-Gather DMA APIs and move to either the WDF or WDM (HAL DMA v3) APIs as instructed here.
https://docs.microsoft.com/en-us/windows-hardware/drivers/network/ndis-scatter-gather-dma
This will result in a significantly improved performance, especially on SoC systems.
The migration process can be found here, by Jeffrey_Tippet_[MSFT], maitanier of these APIs in HAL by Microsoft:
https://community.osr.com/discussion/291413/getscattergatherlistex-and-ownership-lifetime-semantics
Meanwhile, the NDIS_SG_DMA_V3_HAL_API flag, added to NDIS_SG_DMA_DESCRIPTION::Flags allows unlocking a small portion of these benefits. One of such benefits is to allow NDIS on ARM64 to honor the PCI cacheable attributes (_CCA) for DMA memory as expressed by the device (or its parent bridge).
This means we can have NDIS naturally allocate cacheable memory, without having to special case / override memory allocation paths for ARM64.

Thanks to @mediouni-m for pointing me in the right direction. I had been under the assumption that _CCA was still missing from this PCI device tree in QEMU and didn't bother check beyond. This was true as some point but has been fixed since then. My mistake for not double-checking.

@pmsjt Can you please do 3 things in this PR?

Squash commits 2 and 3 (otherwise after commit 2 the build fails)
Change the last commit. In the commit "netkvm: Arm Windows support" was erroneously removed the ack for ctrl_vq feature, when the intention was to enable it for all the builds. I.e. should be just "pContext->bControlQueueSupported = AckFeature(pContext, VIRTIO_NET_F_CTRL_VQ);" without any ifdefs around.
Add signoff (git commit -s) for every commit.
Thanks in advance

Thanks a lot for the patch.

Please add “Signed-off-by” line to commit message (it can be done automatically by using git commit -s).

Did you test it on actual HW?

Thanks,
Tan.

Hello,
This change removed acknowledgment of control queue feature completely.
Only the #if !defined should be removed with the debug message.
Thanks.

@YanVugenfirer  and @ybendito , there is a 4th commit which restores the control line. Is the 4th commit not visible to you in the PR?

@pmsjt Can you please do 3 things in this PR?

Squash commits 2 and 3 (otherwise after commit 2 the build fails)
Change the last commit. In the commit "netkvm: Arm Windows support" was erroneously removed the ack for ctrl_vq feature, when the intention was to enable it for all the builds. I.e. should be just "pContext->bControlQueueSupported = AckFeature(pContext, VIRTIO_NET_F_CTRL_VQ);" without any ifdefs around.
Add signoff (git commit -s) for every commit.
Thanks in advance

Sounds good. I'll do that.
Is it OK if I just squash all 4 commits? It seems as the 4th commit is somehow going unnoticed.

Did you test it on actual HW?

I did test the path on:

ARM64: AMD Seattle (Operon A series)
x64: HP Z420

Both running current Ubuntu with stock QEMU.

@pmsjt Can you please do 3 things in this PR?

Squash commits 2 and 3 (otherwise after commit 2 the build fails)
Change the last commit. In the commit "netkvm: Arm Windows support" was erroneously removed the ack for ctrl_vq feature, when the intention was to enable it for all the builds. I.e. should be just "pContext->bControlQueueSupported = AckFeature(pContext, VIRTIO_NET_F_CTRL_VQ);" without any ifdefs around.
Add signoff (git commit -s) for every commit.
Thanks in advance

Sounds good. I'll do that.
Is it OK if I just squash all 4 commits? It seems as the 4th commit is somehow going unnoticed.

Completed:

I quashed commits 2-4 which addresses requests 1 and 2
Added signoff message.

Thank you.

Can confirm that this driver works too. Currently testing the change on... other NICs. Thank you again for finally documenting this. :D

Currently testing the change on... other NICs. Thank you again for finally

Sure! And thanks again for sounding the alarm. When I first looked into it, QEMU still didn't have the _CCA node on the device or any of its parents, so I didn't look any deeper. I wasn't aware that _CCA had been added in the meantime. This is great!
I tested the ARM64 version on my AMD Seattle (Opteron A Series) with Ubuntu 20.04. The x86_64 version I tested on my HP z420 running the same Distro/version.

Tested here in AWS Graviton 2 (Arm Neoverse N1).
@pmsjt for Tx we already use:
`The ENA driver supports two Queue Operation modes for Tx SQs:

Regular mode

In this mode the Tx SQs reside in the host's memory. The ENA
device fetches the ENA Tx descriptors and packet data from host
memory.

Low Latency Queue (LLQ) mode or "push-mode".

In this mode the driver pushes the transmit descriptors and the
first 128 bytes of the packet directly to the ENA device memory
space. The rest of the packet payload is fetched by the
device. For this operation mode, the driver uses a dedicated PCI
device memory BAR, which is mapped with write-combine capability.`

We will still look at using WDM if it'll allow us to drop latency further than what we currently have with that.

Hi @YanVugenfirer. HCK-CI/NetKVM-Win10_1809x64 test seems to be still marked as "failed", but the details/log folder seems to be empty. Do you happen to know what this is about?
Thanks.


test(other): update cypress

🍰 Pullrequest
Todo

[x]  remove experimentalSessionAndOrigin configuration option (it is a generalavailabitiy since Cypress version 12)
[x] update packages cypress, @badeball/cypress-cucumber-preprocessor, @cypress/browserify-preprocessor, eslint-plugin-cypress

Issues

fixes #3055

So and has been replaced by when in the new version!?

Yes, And and But support has been removed from the cypress preprocessor.


Adding prototype for registration page.

Added basic setup for registration page. Note that this does not actually handle user input yet.

Thanks for the review! Merging now.


DOC Calendar in meeting schedule page empty

📚 Documentation

The calendar on the 'meeting schedule' page is empty. I think https://github.com/napari/napari/pull/4914/ was meant to fix but the dev page still shows an empty calendar: https://napari.org/dev/community/meeting_schedule.html
Related - calendar also seems to appear jumbled in safari: https://github.com/napari/napari-sphinx-theme/issues/123

Looking at the CI built documentation from https://github.com/napari/napari/pull/4914, the calendar was empty there too.
Could it be a secret problem like here: https://github.com/napari/napari/pull/4176#issuecomment-1055986791 ?
cc @codemonkey800

I noticed that the calendar ID in the napari sphinx theme docs is not the same as in the napari docs:
sphinx theme:
<EMAIL_ADDRESS>
napari docs:
c_35r93ec6vtp8smhm7dv5uot0v4%40group.calendar.google.com

could this be the reason?
Also a naive question, is the calendar directive in rst:
.. calendar::

the same as using this syntax in md:
```{calendar}

?

It looks like it is working now so maybe it was just the ID that needed to be updated. I think this can be closed now.
https://napari.org/dev/community/meeting_schedule.html


Current project status

Hi, what is the current status of this project? Is it still maintained?

Last commit was 4 years ago, so I don't think so. :disappointed: