Trailing slash resolves in 404

Hi,
The pwa works great but I would like to know how to redirect
/blog/post/ to blog/post trailing slashes in the url are not resolving.
It is a static build
build: {
    format: "file"
  },

AstroPWA({
      mode: "production",
      base: "/",
      scope: "/",
      includeAssets: [`icons/${process.env.THEME}/favicon.svg`],
      registerType: "autoUpdate",
      manifest: manifest,
      workbox: {
        navigateFallback: "/404",
        globPatterns: ["**/*.{js,css,html,txt,json,svg,woff,woff2,ico,xml}"],
      },
      devOptions: {
        enabled: false,
        navigateFallbackAllowlist: [/^\/404$/],
      },
    }),

I have a similar problem, where trailing slashes always end up on the root path

Can you configure tralingSlash in Astro? https://github.com/vite-pwa/astro/blob/main/src/index.ts#L54

Can you configure tralingSlash in Astro? https://github.com/vite-pwa/astro/blob/main/src/index.ts#L54

thanks for the quick answer. yes I've now done that, trying both combinations.

trailingSlash: 'always' + build.format: 'directory': only trailing slashes work, without trailing slashes the service worker loads the root page. A hard refresh gives a 404
trailingSlash: 'never' + build.format: 'file': same as above but flipped.. this is how I have currently deployed it.

Example Links:

https://strudel.tidalcycles.org/workshop/getting-started correct page is loaded
https://strudel.tidalcycles.org/workshop/getting-started/ root route is loaded by the SW. cache refresh gives 404

The optimal case would be if it did not matter if a trailing slash is used or not.
I am not entirely sure if this is a vite / astro / vite-pwa or github pages problem...

Just found: https://github.com/slorber/trailing-slash-guide which explains the behavior of github pages for different links, notably:
/file - ✅
/file/ - 💢 404
/folder - ➡ /folder/
/folder/ - ✅
This further confirms that build.format: 'file' will cause a 404 with a trailing slash.
Without using a service worker, it looks like it would work with build.format: 'directory', as it will just do a redirect.
So is suspect that the service worker will interpret urls without trailing slashes as a file and for some reason serve the root file.

I have done a quick test repro with a simple astro project that builds using build.format: 'directory': https://github.com/felixroos/astro-test/
Both of these urls work:

https://felixroos.github.io/astro-test/test/
https://felixroos.github.io/astro-test/test (redirects to above url)

So it seems the problem is really service worker related..

IIRC there is a directoryIndex and cleanUrl in workbox option:
https://developer.chrome.com/docs/workbox/modules/workbox-precaching/#directory-index

I Will try to check your repro tmr.

IIRC there is a directoryIndex and cleanUrl in workbox option: https://developer.chrome.com/docs/workbox/modules/workbox-precaching/#directory-index

EDIT: maybe both options wth another names, the link is about using the workbox modules.

On first sight that sounds like it would help in this case!

I Will try to check your repro tmr.

Thanks!
For completeness sake, I've now done a full reproduction that shows how adding @vite-pwa/astro to the mix results in wrong caching behavior:

https://felixroos.github.io/astro-test-pwa/ ✅ works
https://felixroos.github.io/astro-test-pwa/test ✅ works, redirects to test/ on hard refresh (!)
https://felixroos.github.io/astro-test-pwa/test/ ❌ loads index.astro, works without hard refresh (once)

@felixroos
can you deploy using mode: 'development' in pwa options (https://github.com/vite-pwa/astro/blob/main/examples/pwa-simple/astro.config.mjs#L14)? this way you will see the sw logs, I'll change the logic in the pwa integration to allow configure external manifestTransform, rn the pwa integration will add always a new one to handle Astro directory and trailing slash options.

Since you're deploying to gh pages, the scope is the project name without final slash (check the sw pre cache manifest in your deployed app) and so the sw maybe intercepting the /test/, I'll fix that also (GH Pages redirecting to /astro-test-pwa/ when requesting /astro-test-pwa

Preparing PR to not modify the sw precache manifest when using directory, on local works for /test/, /test, /test/aboutand/test/about/`, check the pwa-simple example (added same folders).

Astro build is inconsistent, why 404/index.html missing? only 404.html in root dist folder

@felixroos can you test in local with current PR or review it (GH Pages maybe will fail from your url sinde /test/ will return 404)?

You can open the pwa-example using this StackBlitz repro

can you deploy using mode: 'development' in pwa options? this way you will see the sw logs

deployed, but it only logs "SW registered: ..." atm

@felixroos can you test in local with current PR or review it

can test tomorrow (if it's still relevant)

(GH Pages maybe will fail from your url since /test/ will return 404)?

with build.format: 'directory', /test/ should work, as it will lead to /test/index.html which exists.
it also works rn: https://felixroos.github.io/astro-test-pwa/test/ (with hard refresh)
the stackblitz example seems to work fine!

@felixroos don't forget to include registerType: 'autoUpdate' in your pwa options, the new sw will be awaiting to confirm update (default is register type is prompt).
It seems SB has fixed the Open in new window link.
I'll check why mode is not working, maybe Astro build changing it, on local workbox messages are there:

https://felixroos.github.io/astro-test-pwa/ now deployed with autoUpdate + menu

@felixroos can you try building the branch and using file protocol to install it in your repo?

clone this repo (all branches)
checkout userquin/fix-allow-custom-manifest-transform  branch
pnpm install && pnpm build && pnpm pack
copy tgz file and paste in your repo (add it to git)
in your repo: pnpm remove -D @vite-pwa/astro && pnpm add -D ./vite-pwa-astro-0.1.3.tgz

done: https://felixroos.github.io/astro-test-pwa/ works!

@felixroos Now the dilemma in this repo with the PR, I'm afraid to put it as is, perhaps with a flag to activate it?

@felixroos Now the dilemma in this repo with the PR, I'm afraid to put it as is, perhaps with a flag to activate it?
EDIT: in any case, the owner can plug its own manifestTransform and do whatever (s)he wants

You mean because an opt-in flag won't break existing setups that rely on the old behavior?

You mean because an opt-in flag won't break existing setups that rely on the old behavior?

YES

I'm not sure as I have too little knowledge of this project to give my opinion on it. Of course, having less config options is always a plus, but maybe the old behavior is sometimes desired, not sure. From my perspective this looks more like a bug that should probably be fixed by default, but maybe it introduces some regression.
Maybe start with the feature flag and test it with a handful of existing projects to see if it has downsides?
Either way, I would be very happy to be able to use this as it will finally fix this annoying bug I was having for some time now.

You mean because an opt-in flag won't break existing setups that rely on the old behavior?

YES (I'll check it next week, maybe you can update the PR, I need to rest...)

I can see what I can do, please give yourself some rest. I can also wait or use the tgz

The problem, I don't use Astro, I switched to Nuxt 3... This repo should be in Astro repo, but the PR was closed a few times without any explanation and finally added here (íles integration for example in the repo not in Vite Org)

@felixroos I'll add it under experimental, like PWA VitePress Integration, check this PR: https://github.com/vite-pwa/vitepress/pull/23

@felixroos I'll add it under experimental, like PWA VitePress Integration, check this PR: vite-pwa/vitepress#23

thanks!

@felixroos can you run the same process with the branch in this PR in you GH repro and deploy to GH Pages?

clone this repo (all branches)
checkout userquin/feat-experimental-trailing-slashes-handler  branch
pnpm install && pnpm build && pnpm pack
in your repo: run pnpm remove -D @vite-pwa/astro then remove vite-pwa-astro-0.1.3.tgz file
copy new tgz file and paste it in your repo (add it again to git)
in your repo: pnpm add -D ./vite-pwa-astro-0.1.3.tgz
include in pwa options:

experimental: { directoryAndTrailingSlashHandler: true }

in your repo pnpm build && pnpm preview and check it is working
deploy to GH Pages

I'm preparing the docs, the experimental option added in VitePress cannot be added, Astro will clone the PWA options and cannot be referenced, it will require a change in vite-plugin-pwa.

If you cannot checkout the new branch, just clone the new branch directly

@felixroos released v0.1.4

@userquin thanks for the release! I am now using the new flag and it works :)


Supertest should report response body on error

Since #95 got closed 6 years ago and there seems to be no incentive to reopen this, here's an almost 1:1 copy of that issue, but instead of reporting the hard coded .error property, imo the entire response body should be printed out, as currently the server response is disregarded completely.

At the moment when the status message does not match the expectations we get an error message like:
expected 200 "OK, got 500 Internal server error
It would be helpful to display a server custom error message if any, as defined by:
res.send(500, { error: 'something blew up' });
would display:
expected 200 "OK", got 500 with response "{ error: 'something blew up' }"

+1, but maybe we should just add the contents of res.body. It should contain the relevant error messages that would help devs figure out what the errors are.

+1, found myself wishing for this today.

It's a bit complex, but I've worked around this by defining a custom jest matcher
expect.extend({
  toBeOk(response: Response) {
    if (response.ok) {
      return {
        message: () => 'Ok',
        pass: true,
      };
    } else {
      return {
        message: () => {
          const request = response.request;
          // Format the request and response as CURL output for debugging.
          return [
            `> ${request.method} ${request.url} HTTP/1.1`,
            formatHeaders('> ', request.headers),
            `< HTTP/1.1 ${response.status}`,
            formatHeaders('< ', response.headers),
            response.text,
          ]
            .filter(Boolean)
            .join('\n');
        },
        pass: false,
      };
    }
  },
});
function formatHeaders(
  prefix: string,
  headers: Response['headers'] | Response['request']['headers'] | undefined | null,
) {
  if (!headers) return undefined;
  const entries =
    headers instanceof Headers ? Array.from(headers.entries()) : Object.entries(headers);
  entries.map(([key, value]) => `${prefix}${key}: ${value}`).join('\n');
}

and corresponding jest.d.ts
declare global {
  namespace jest {
    interface Matchers<R> {
      toBeOk(): R;
    }
  }
}
export {};

It can be used as
expect(response).toBeOk();


Make icons configurable

It would be great, if we could find a way, to make the icons configurable.
Many administration interfaces use Font Awesome and also personally I prefer it over Glyhicons. The only way to fix this now, is to edit the source code directly, what makes updating way less funnier.
I have no solution to propose yet, but wanted to put this in here for discussion.
A similar issue could also be about allowing grid frameworks other than bootstrap.

Yeah, good suggestion. I would prefer a solution that uses CSS, as it is clearly presentation. However, due to the way these font-icons work, this might be hard to realise.
A different solution might be along the lines of theme objects, which specify things like colors, icons etc.
BTW, the reason it just supports standard bootstrap (grid systems) at this point is to keep the scope narrow and the code simple.

Maybe it could be a similar concept like you implemented the extensible RTEs? Something like $.fn.gridEditor.framework.bootstrap.

I've thought on this one, and decided it's not worth the effort / added complexity. The reason is that someone who want's to use the bootstrap grid will most likely have the full bootstrap included, and the glyphicons look pretty close to the font-awesome ones as not to be an eyesore.
Same goes for allowing different grid systems, the whole reason bootstrap works so well is (in my opinion) that is sets a standard, and sticks to it, instead of making a million things possible. I want to follow the same philosophy for the plugin, and fight feature creep. So we will stick to strictly bootstrap.
Thanks for the suggestion nonetheless! :-)

I respect your point of view and also don't care much for other grid systems.
As for the icons, I've to disagree. To me, the main purpose of this plugin it the integration into existing systems. I already included it as a module into Prestashop and currently work on extensions for Bolt CMS and Thelia e-commerce. Bolt and Prestashop use font awesome and thelia use their own icon font. None of them has glyphicons installed.
But its not the end of the world. As for now i'll just modify the core code.

Hi madc,
I was thinking about this, isn't it possible to use some css to use the fontawesome icons? Something like this (not tested):
.ge-canvas .glyphicon {
    /* Copied from font-awesome.css */
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.ge-canvas .glyphicon-trash {
    /* Copied from font-awesome.css */
    content: "\f1f8";
}

This is a solution that uses css, so you wouldn't have to change the source. :) Would love a PR if you choose to implement this. It would be an extra css file that you could optionally include to use fontawesome.

Sounds like a good solution. Give me a couple of days to check it out..


[Discussion]: Quality Standards and Contributing Guidelines

I would like to start a discussion on the Topic of Quality standards, and Contributing Guidelines.
Currently the Contributing Guideline welcomes "everything" and it was up to me to get a feel for what makes an awesome addition, and what might better be rejected.
I do not like the Idea of Gatekeeping, and thous I would like these Quality Standards to be a general rule of thumb, and not a list of hard criteria every addition must meet.
Also I would not want criteria like a minimum star count on Github as having many stars is often a good indicator for something cool, but not every project with a lot of stars is necessarily awesome, or still actively maintained, you get the Idea!
I propose the following Quality Standards and updated Contributing Guidelines, and would like to get your Thoughts on it.
Thanks a lot!
^C

Contributing Guidelines:

Search previous suggestions/issues before making a new one, to avoid duplicate suggestions.
Make an individual pull request for each suggestion.

Use the following format: - [Title](link) - Description.

Link should preferably point to the GitHub repo of a project.
Keep descriptions short and simple, but descriptive.
Descriptions should not be marketing taglines.
Descriptions should not be title-case.
Start the description with a capital and end with a full stop/period.
Remove any trailing whitespace.
Don't mention Ansible in the description as it's implied.
Each item should be limited to one link.
Please avoid redirection (careful with http vs https!).

ℹ: The formatting is linted by the CI Pipeline. If it fails, please check your formatting.

If you submit a project that is similar to an existing project in the list, please point out how it's different.
New categories or improvements to the existing categorization are welcome.

Add the category description.
Add the category title to Table of Contents.

A pull request should be 100% ready and should adhere to all the guidelines when you open it.
Check your spelling and grammar.

Quality Standards:

The submitted Project/Tool:

should be more than 30 days old.
should be actively maintained.
should be compatible with the latest supported Ansible version.

Tutorials, Videos, Courses, Blog Posts and Opinions:

should use/follow modern Ansible paradigms.
should not teach things that are deprecated in the latest supported Ansible version.

Hey @KeyboardInterrupt - coming in over a year later, but we had a related topic on this at https://github.com/ansible-community/community-topics/issues/220
I'm the docs lead for the Ansible core docs (aka docs.ansible.com). I think the guidelines above are great and perhaps worth putting in the contributing guidelines.
Since I'm not technically savvy enough to know if a new tool is worth adding, maybe a part of this set of guidelines is that each PR is brought up in the docs or community working group meetings to get another set of eyes on it before we merge?

Hey @samccann, life threw me into a whirlwind, and I had to take a hiatus from most online communities and activities. Ready to jump back in now, though!
I'd be super grateful for extra sets of eyes on the list. What's the drill for presenting something like this in our working group meeting? Attending in person is a rarity for me, so if there's an asynchronous option, that would be ideal.
greetings!
^C

Hey @KeyboardInterrupt ! Can you open a forum topic instead? That's where we've been having discussions now across all the Ansible projects. It allows other people to see what's happening and get involved without having to follow a bunch of different repositories.

I feel the forum.ansible.com could really help here, as we have a huge amount of people looking at it.
The forum supports Markdown, so @KeyboardInterrupt it you want, you could just copy your original message and add a link to this repo as your first forum post.
I agree with your comment that making this process asynchronous is best (ie without meetings)


retdec-unpacker: UPX infinite loop

Hi, I'm using the latest release version, and during unpacking, retdec-unpacker gets stuck in infinite loop.
Fileinfo:
Input file               : b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88
CRC32                    : 6f484d36
MD5                      : d8db52bf8f5c2ff1878aea707dca43ee
SHA256                   : b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88
File format              : ELF
File class               : 64-bit
File type                : Executable file
Architecture             : x86-64
Endianness               : Little endian
Entry point address      : 0x401f48
Entry point offset       : 0x1f48
Entry point section name : (entry point does not belong to any section)
Entry point section index: (entry point does not belong to any section)
Bytes on entry point     : e853020000555351524801fe564889fe4889d731db31c94883cdffe85000000001db7402f3c38b1e4883eefc11db8a16f3c3
Detected tool            : UPX (3.9x [NRV2B]) (packer), 84 from 84 significant nibbles (100%)
Detected tool            : UPX (3.94) (packer), strings heuristic
Overlay offset           : 0x2732
Overlay size             : 0x1162
Packed                   : Yes

$ retdec-unpacker b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88
[UPX] Detected NRV2B unpacking stub based on signature & metadata.
[UPX] Started unpacking of file 'b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88'.

Unpacking w/  upx -d works fine:
$ upx -d b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2018
UPX 3.95        Markus Oberhumer, Laszlo Molnar & John Reiser   Aug 26th 2018
        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     42080 <-     14484   34.42%   linux/amd64   b8316b28f6124911221b6f1c9b6a7e163c408870e1ab5a4d09e05e11e50e8a88
Unpacked 1 file.

@metthal or @PeterMatula, could you please take a look at this issue?

Fixed. The resulting file is the same as from upx -d. I added the input file to internal nightly tests.


Jupyter server not  starting - running latest ecember 12.1 release

I am experimenting with vscode on a Samsung Chromebook Plus which runs aarch64 not Intel.  So I use a precompiled version of vscode from last August and the latest Python extention.  Steps to reproduce

Run "jupyter notebook" from command line (opens in browser)
Copy  URI
Input URI into new command palette option
Gets to "Starting Server" but never completes or provides output

Here is the terminal output.  It looks like the right URI is being found and it seems to think it connected to the kernel but I never see any output from the new header or from the cell. I do not understand the javascript error which may be the problem.  It may be related to my platform or the older version of compiled vscode.  Thanks for any tips.

This is now solved.  I purged and reinstalled vscode for arm64 from here and it resolved the problem.
https://packagecloud.io/headmelted/codebuilds?
It may be helpful to leave here for future reference.  Thanks.


Optimization: Opcode fusion of branch and comparison instructions

Blocked by: #729
In the current wasmi bytecode comparison instructions such as I32LtS, I64GtU etc. and conditional branch instructions such as BrIfNez and BrIfEqz could be fused since most often they are used together. Executing fewer instructions usually results in improved performance for interpreters like wasmi.
For example the following Wasm bytecode:
(br_if
    0 ;; some branch target
    (i32.lt_s
        (local.get 0)
        (local.get 1)
    )
)

Which represents something similar to:
if get_local(0) as i32 < get_local(1) as i32 {
    break; // goto branch target
}

Could be reduced to the following new wasmi instruction:
(br.i32.lt_s
    (local.get 0)
    (local.get 1)
)

Of course this means that we need to add plenty of new wasmi bytecode instructions which is a big drawback to this potential optimizations. Due to the increased number of instructions it is also unclear whether this optimization actually improves performance. We are not able to replace old unfused wasmi instructions by the new wasmi instructions since they might still occur in isolation.
Bytecode Changes
Compare + Branch
New wasmi bytecode branch instructions include:

br.{i32, i64, f32, f64}.{eq, ne}: 8 new instructions.
br.{i32, i64}.{lt, le, gt, ge}{_s, _u}: 16 new instructions.
br.{f32, f64}.{lt, le, gt, ge}: 8 new instructions.

In total: 32 new branch+compare instructions. Furthermore for immediate versions we are going to need yet another 32 branch+compare with immediate instructions. Totalling 64 instructions.
Note: We only need immediate versions for the second operand since we can rewrite bytecode where the first operand is an immediate value always as follows: br.i32.lt_s 42 reg0 -> br.i32.gt_s reg0 42.
Note: Wasms br_eqz can be represented by br.{i32, i64}.eq_imm reg 0. Where the _imm suffix represents a bytecode instruction that takes an immediate value as its second operator.
Compare + Return
Beyond branch instructions we could and probably should also introduce new return instruction variants for all the comparators since a branch to the outermost level is simply a return instruction and there already exist conditional return instructions in return.nez and return.eqz in wasmi which act as living examples.

return.{i32, i64, f32, f64}.{eq, ne}: 8 new instructions.
return.{i32, i64}.{lt, le, gt, ge}{_s, _u}: 16 new instructions.
return.{f32, f64}.{lt, le, gt, ge}: 8 new instructions.

Which is yet another 32 new instructions.
Blocked By
This optimization is blocked by the implementation of the register machine bytecode.
Conclusion
The biggest advantage of this potential optimization is that those fused instruction sequences usually occur within loops where they would have the biggest positive impact on the performance of the executed Wasm program.

Today I thought a bit about this issue and since this is "just" an optimization based on the Instruction type of the wasmi register machine implementation I came up with the following idea:
What if we just provide the Instruction variants that are actually going to be very efficient at runtime?
This will leave us with the following variants:
enum Instruction {
    ...
    BrI32Eq { .. },
    BrI32EqImm { .. },
    BrI64Eq { .. },
    BrI64EqImm { .. },
    BrF32Eq { .. },
    BrF32EqImm { .. },
    BrF64Eq { .. },
    BrF64EqImm { .. },

    BrI32Ne { .. },
    BrI32NeImm { .. },
    BrI64Ne { .. },
    BrI64NeImm { .. },
    BrF32Ne { .. },
    BrF32NeImm { .. },
    BrF64Ne { .. },
    BrF64NeImm { .. },

    BrI32LtS { .. },
    BrI32LtSImm { .. },
    BrI32GtS { .. },
    BrI32GtSImm { .. },
    BrI32LeS { .. },
    BrI32LeSImm { .. },
    BrI32GeS { .. },
    BrI32GeSImm { .. },

    BrI64LtS { .. },
    BrI64LtSImm { .. },
    BrI64GtS { .. },
    BrI64GtSImm { .. },
    BrI64LeS { .. },
    BrI64LeSImm { .. },
    BrI64GeS { .. },
    BrI64GeSImm { .. },

    BrF32Lt { .. },
    BrF32Gt { .. },
    BrF32Le { .. },
    BrF32Ge { .. },

    BrF64Lt { .. },
    BrF64Gt { .. },
    BrF64Le { .. },
    BrF64Ge { .. },
    ...
}

With this internal structure as represented exemplary by BrI32Eq and BrI32EqImm:
BrI32Eq {
    lhs: Register,
    rhs: Register,
    offset: BranchOffset16,
},
BrI32EqImm {
    lhs: Register,
    rhs: Const16,
    offset: BranchOffset16,
},

This implies that we only apply this optimization if BranchOffset (which usually is encoded as 32-bit value) can be encoded as 16-bit value AND in case of instructions with an immutable rhs if the rhs value can also be encoded as 16-bit value.
For example this holds true for the common cases of Wasm's i32.eqz or i64.eqz which are both translated to
I{32,64}EqImm16 { result: Register, lhs: Register, imm: Const16::from(0) }

And if followed by a br_if could be optimized to
BrI{32,64}EqImm { lhs: Register, imm: Const16::from(0) }

For most common and practical use cases I assume that a BranchOffset16 will nearly always be encodable so the only real limitation are the 16-bit encoded immutable values.

The register-machine wasmi engine backend has been implemented. It is not yet finalized and likely still contains bugs but I was just running some coremark.wasm benchmarks while counting the executions per wasmi instruction and this is the result:
https://gist.github.com/Robbepop/16ac42197e1c745dd5ad3ab41524ae2d
We can clearly see that conditional branches (branch_nez and branch_eqz) are the most common instruction executed. This might indicate that this optimization might yield valuable results.


Add a section for uv.lock based Python environments

Description
This pull requests adds support for the uv package manager for Python. uv works with virtual environments but does not activate them, since all commands are supposed to be run with the uv prefix: uv run python, uv run pytest, uv pip, etc.
This module checks for a uv.lock file, and for a virtual environment in the .venv folder below. If available, it adds an entry such as via uv 3.13.0.
If a virtual environment is activated, then the uv entry is silenced.
Screenshot

I couldn't find a relevant way to produce tests for similar python, conda or virtualenv sections. I can add some if needed though, provided some guidance


Topic recognition - Vision Transformer for Alzheimer's Classification, s4532823

Name: Lachlan Blaine
Student ID: 45328237
Task 6 - Classify Alzheimer's disease using a visual transformer.
This implementation of a vision transformer was used to classify Alzheimer's disease from brain scans in the Alzheimer's Disease Neuroimaging Initiative (ADNI) dataset.
Further information on model architecture, data loading/preprocessing, training/results, dependencies & reproducibility are available in the README.md file.

This is an initial inspection, no action is required at this point
Difficulty: Hard
Readme:
Excellent
Commit messages: Excellent, detailed.
Code:

Uses Vision transformer
Well commented
Good model design

Functionality/Performance:

Val accuracy is 67%
Did patient-level split
Preprocssing data correctly
Performed data augmentation
Well done

Marking
Good Practice (Design/Commenting, TF/Torch Usage)
Adequate design and implementation
Good spacing and comments
Header blocks
Recognition Problem
Solves problem
Driver Script present
File structure present
Shows Usage & Demo & Visualisation & Data usage
Module present
Commenting
No Data leakage
Difficulty: Hard
Commit Log
Meaningful commit messages
Progressive commits used
Documentation
ReadMe acceptable/good
Model/technical explanation could be better -0.5
Good Description and Comments
Markdown used and PDF submitted
Pull Request
Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch)
No Feedback required
Request Description OK, could be better -0.5

Need to remove gitignore file in parent directory causes conflict. Does not affect grade only merge.

Feedback attempt and no feedback marks lost.


chore(main): release 0.4.50

:robot: I have created a release beep boop
0.4.50 (2024-04-10)
Continuous Integration

build: Fix cargo binstall fd-find (d0bf7f4)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/linrongbin16/cargo-ci-template.rs/releases/tag/v0.4.50 :sunflower:


complete authorisation - for posterity rather than delete another lot of work

closed since Alis has rewritten the component in his own way


Add ATLAS Token (ATLAS)

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[x] Filename in the lowercase format
[x] Image format: png
[x] Image size: 256 by 256 px

Added here https://github.com/TrustWallet/tokens/commit/9e1b7baa30801974fefd25d66058202dff51ecee


openpilot engaged when you hit the brake

Arne's feature to keep openpilot engaged when you hit the brake? This is a killer feature :)

Sorry, closing due to new safety requirements


Will install OS but won't boot afterwards

When creating a VM, I can boot initially to the iso and install the OS. However, after successfully installing it attempts to reboot but won't successfully boot up again. It will run, go into a pause state, then shut down. I have tried it with both Mint and Ubuntu 16 with the same results. No errors pop up in the dashboard, but below are some of the errors that populate in the web server error log.
[Thu Aug 24 10:07:02.168633 2017] [:error] [pid 1914] [client <IP_ADDRESS>:40305] Executing: echo "{\"vmname\":\"ubuntu-source\",\"username\":\"\",\"password\":\"*****\",\"os_type\":\"linux\"}"| socat /usr/local/VDI/kvm-vdi.sock - , referer: http://<IP_ADDRESS>/kvm-vdi/dashboard.php
[Thu Aug 24 10:07:02.959380 2017] [:error] [pid 1913] [client <IP_ADDRESS>:40308] Executing: sudo virsh list --all |tail -n +3|head -n -1|awk '{print $2" "$3}', referer: http://<IP_ADDRESS>/kvm-vdi/dashboard.php
I am saving the VM's and ISO's on a mounted drive but have the permissions opened up so it shouldn't be a permission issue.
Any ideas?

Try running vm manually virsh start vmname on hypervisor side.

I get the following error when I try doing that:
error: failed to get domain 'mint-source-599ef385eb85c.qcow2'
error: Domain not found: no domain with matching name 'mint-source-599ef385eb85c.qcow2'
When I do virsh list, it comes back with a blank list.

mint-source-599ef385eb85c.qcow2  is a disk image name, not vmname.
virsh list --all should list all available vms.

I get the following error when I try doing it correctly:
error: Failed to start domain mint-source
error: monitor socket did not show up: No such file or directory
I have websockify installed and running...if that is what the monitor socket is referring to.

Take a look at your vm error log (usually located at /var/log/libvirt/)

Here is what shows up in it:
2017-08-24 15:40:56.044+0000: starting up libvirt version: 1.3.1, package: 1ubuntu10.13 (Andreas Hasenack<EMAIL_ADDRESS>Tue, 01 Aug 2017 10:50:20 -0300), qemu version: 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.14), hostname: kvm-vdi
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin QEMU_AUDIO_DRV=spice /usr/bin/kvm-spice -name mint-source -S -machine pc-i440fx-xenial,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 03574cb3-ff0f-4ba1-8cce-24144db57113 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-mint-source/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/data/vms/mint-source-599ef385eb85c.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/data/images/linuxmint-18.iso,format=raw,if=none,id=drive-ide0-1-0,readonly=on -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:88:76:f8,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=<IP_ADDRESS>,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 -device AC97,id=sound0,bus=pci.0,addr=0x4 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 -msg timestamp=on
char device redirected to /dev/pts/1 (label charserial0)
((null):2626): Spice-Warning **: reds.c:2189:reds_handle_read_link_done: Peer doesn't support AUTH selection
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 45.655000 ms, bitrate 42434162 bps (40.468370 Mbps)
((null):2626): Spice-Warning **: reds.c:2189:reds_handle_read_link_done: Peer doesn't support AUTH selection
((null):2626): Spice-Warning **: reds.c:2189:reds_handle_read_link_done: Peer doesn't support AUTH selection
((null):2626): Spice-Warning **: reds.c:2189:reds_handle_read_link_done: Peer doesn't support AUTH selection

Don't see anything wrong here. Is vm shown as started via virsh list --all ?

No, it is shown as shut off.

try running vm directly:
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin QEMU_AUDIO_DRV=spice /usr/bin/kvm-spice -name mint-source -S -machine pc-i440fx-xenial,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 03574cb3-ff0f-4ba1-8cce-24144db57113 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-mint-source/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/data/vms/mint-source-599ef385eb85c.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/data/images/linuxmint-18.iso,format=raw,if=none,id=drive-ide0-1-0,readonly=on -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=28 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:88:76:f8,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=<IP_ADDRESS>,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 -device AC97,id=sound0,bus=pci.0,addr=0x4 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 -msg timestamp=on

it errors with the following error:
2017-08-24T17:09:56.009727Z qemu-system-x86_64: -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-mint-source/monitor.sock,server,nowait: Failed to bind socket to /var/lib/libvirt/qemu/domain-mint-source/monitor.sock: No such file or directory
When I navigate to qemu and list the contents it only contains channel, dump, nvram, save, and snapshot.

Is apparmor enabled?

No, I uninstalled it.
This is the only thing I have running on this server so I may just wipe it and start over if you are out of ideas on what it could be.

No, apparmor should be disabled. It was just one thing to check. Try escalating permissions to /var/lib/libvirt/qemu directory.
cmod 777 /var/lib/libvirt/qemu

No change, still getting the same errors.

take a look at your  /etc/libvirt/qemu.conf
maybe there's security_driver enabled?

security_driver is set to selinux, but it is commented out.

I will have to investigate this on ubuntu16 then.

I am going to start over and see if I run into the same issues after a fresh install of everything. I will leave this open for now in the event I run into the same issue after reinstalling.
Thanks for the help.
I am using Ubuntu 16.04 Server.

I've installed complete KVM-VDI solution on to Ubuntu 16.04.3 LTS today. I cannot reproduce the same error. Everything works just fine. So there must be local problem somewhere in your installation.

I reinstalled and everything is working fine now.


Update checkmarx-ast-cli binaries with 2.2.3

Updates checkmarx-ast-cli to 2.2.3
Auto-generated by [create-pull-request][2]

Checkmarx One – Scan Summary & Details – 773f8039-5928-43e0-aa32-b20823e9d80b
No New Or Fixed Issues Found


Add TLS capabilities

This PR adds TLS capabilities for both the Beacon API and for connections to the MongoDB.

Enables the beacon API to serve data over a TLS secured connection
Enables the beacon API to talk to a MongoDB that requires TLS certificates.
Updates the Readme file.

Thanks @jbygdell, it looks like it is perfectly working, so I will accept the PR. Only thing, I will later change the print statements for LOG statements, just to avoid possible I/O related errors with print.


Calculator GUI using Tkinter

https://github.com/Swapnil-Singh-99/PythonScriptsHub/assets/91741581/908bfd84-c2d1-4b2c-98df-a705a8fee034
Closes #8

@Swapnil-Singh-99 its showing PR not accepted in Hacktoberfest site. Please look into it.


Set imagePosition for title-only and image-only init methods

Platforms Impacted

[ ] iOS
[x] macOS

Description of changes
Updated convenience initializers for title-only and image-only buttons to pass appropriate imagePosition values to the designated initializer, so that we don't have to rely on the automatic content-based detection in the titleRect and imageRect methods of ButtonCell.
Verification
Used nuget publish script to bring changes into setupui, and tested via SetupUITestApp.
Pull request checklist
This PR has considered:

[ ] Light and Dark appearances
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)

Microsoft Reviewers: Open in CodeFlow

Correction: The bug I was seeing in Office where Fluent buttons had offset titles was actually resolved by an earlier PR (#384).  I confirmed this by running the publish script on the git master with no changes and testing the effects in SetupUITestApp.  So this change is not fixing a bug, but simply setting some more appropriate defaults for title-only and image-only buttons.

Correction: The bug I was seeing in Office where Fluent buttons had offset titles was actually resolved by an earlier PR (#384).  I confirmed this by running the publish script on the git master with no changes and testing the effects in SetupUITestApp.  So this change is not fixing a bug, but simply setting some more appropriate defaults for title-only and image-only buttons.

Correction: The bug I was seeing in Office where Fluent buttons had offset titles was actually resolved by an earlier PR (#384). I confirmed this by running the publish script on the git master with no changes and testing the effects in SetupUITestApp.

Correction: The bug I was seeing in Office where Fluent buttons had offset titles was actually resolved by an earlier PR (#384). I confirmed this by running the publish script on the git master with no changes and testing the effects in SetupUITestApp.


tests: drop deprecated NewRandomVMWithEphemeralDisk

Drop the deprecated function NewRandomVMWithEphemeralDisk in favor of simple libvmi calls.
NONE

/sig code-quality

/approve

/hold
@dankenigsberg libvmi has just been moved so I think a couple of updates are required here before the lanes will pass.
https://github.com/kubevirt/kubevirt/commit/9c3a52d67c6782cd48ae0702df5493f5023a04cc

/hold
@dankenigsberg libvmi has just been moved so I think a couple of updates are required here before the lanes will pass.
9c3a52d

It should be good now.
/unhold


[pymbar] Renamed pymbar -> pymbar3; restored pymbar2

The pymbar2 packages disappeared off binstar, so for compatibility, we need to retain both pymbar2 and pymbar3 recipes right now.

Something funny is going on with travis-ci, but it's not entirely clear that it is related to this PR.

I don't understand why this is still failing...

The travis checks for this repo are just worthless. We should get rid of them.


The mouse cursor highlight feature doesn't work automatically when restarted

Microsoft PowerToys version
v0.69.0
Installation method
Microsoft Store
Running as admin
Yes
Area(s) with issue?
Mouse Utilities
Steps to reproduce
Once the computer restarted, the mouse cursor highlighting feature disabled. It have to be activated by hand.
It do remember recent settings though.
And also the 'Finding mouse' feature with double ctrl keys do woks even right after the restart
✔ Expected Behavior
I want mouse cursor hightlighting feature to be activated automatically after computer restarted.
It does remember the settings of all powertoys'.
Though in case of mouse highlighting feature, have to be activated by hand so far.
I did re-installed this powertoys and of course, from different sources.
First try was from web, and second try was from microsoft store
❌ Actual Behavior
Highighting feature didn't start automatically and had to be started by hand though
But finding mouse with double ctrl keys works.
Other Software
No response

/bugreport, to see if it's something wrong with the Settings file.
With "Activated by hand", what do you mean? Is it that you have to press the shortcut for it to work or is it that you have to go into Settings and enable it?
/needinfo

/bugreport, to see if it's something wrong with the Settings file. With "Activated by hand", what do you mean? Is it that you have to press the shortcut for it to work or is it that you have to go into Settings and enable it? /needinfo

Yeah, but isn't it normal that have to be activated without activating shortcut, once I set?

we want to see the error logs.  /reportbug


fix launcher args being passed in and resource inclusion

The deepspeed launcher args weren't being passed in in the right position. (launcher args should come before user script / args)
Also, using the --include / --exclude flags wasn't working properly (you can't specify those and num_gpus at the same time, weird stuff was happening with batch size calculations...)

Not quite ready to merge yet, one thing to fix...

Should be ready to merge now. Also updated requirements


refactor: replace substra-tools Docker image name

Signed-off-by: Guilhem Barthes<EMAIL_ADDRESS>Summary
Update substratools Docker image name to the new one using lastr Ubuntu LTS (22.04) and supporting Python 3.10.
Companion PR

https://github.com/Substra/substra/pull/316
https://github.com/Substra/substra-tools/pull/68
https://github.com/Substra/substrafl/pull/49
https://github.com/Substra/substra-documentation/pull/222

/e2e --refs substrafl=feature/add-python3.10-support substra-tests=feature/add-python3.10-support substra=feature/add-python3.10-support substra-tools=feature/add-python3.10-support substra=feature/add-python3.10-support

End to end tests: :hourglass_flowing_sand: STARTING

/e2e --refs substrafl=feature/add-python3.10-support substra-tests=feature/add-python3.10-support substra=feature/add-python3.10-support substra-tools=feature/add-python3.10-support substra=feature/add-python3.10-support

End to end tests: :hourglass_flowing_sand: STARTING


Incompatible declaration of __cxa_get_globals?

It seems that __cxa_get_globals() is non-throwing from what I can see here and here. However, the declaration of __cxa_get_globals in scope-lite does not contain an exception specification, so Clang (on macOS) complains that it "does not match the previous declaration".

For reference, this is the Boost implementation. From the comments in that file the situation seems quite... messy.

As of commit 12748b10388ba5e6d882759eccb258e9b09fcb40, clang on macOS still fails with
[...]/scope-lite.hpp:327:23: error: functions that differ only in their return type cannot be overloaded
    extern "C" char * __cxa_get_globals() scope_noexcept;
               ~~~~~~ ^
/usr/local/include/boost/core/uncaught_exceptions.hpp:75:30: note: previous declaration is here
extern "C" __cxa_eh_globals* __cxa_get_globals() BOOST_NOEXCEPT_OR_NOTHROW __attribute__((__const__));
           ~~~~~~~~~~~~~~~~~ ^
1 error generated.

As I said above, this is a conflict with a boost header, so you may choose to ignore the problem. It'd be great if it could be fix though, for a better out-of-the-box experience.

@mbeutel, I wasn't sure to do the complete dance from the Boost implementation to detect if <cxxabi.h> is available and still handle the situation where __cxa_get_globals() is not declared.

Fair enough, although that's a problem only if you care about gcc versions older than 4.7. If you can assume 4.7 or later, then <cxxabi.h> always declares __cxa_get_globals(), according to the comments in the Boost implementation.

As of commit 12748b1, clang on macOS still fails with
[...]/scope-lite.hpp:327:23: error: functions that differ only in their return type cannot be overloaded
    extern "C" char * __cxa_get_globals() scope_noexcept;
               ~~~~~~ ^
/usr/local/include/boost/core/uncaught_exceptions.hpp:75:30: note: previous declaration is here
extern "C" __cxa_eh_globals* __cxa_get_globals() BOOST_NOEXCEPT_OR_NOTHROW __attribute__((__const__));
           ~~~~~~~~~~~~~~~~~ ^
1 error generated.

As I said above, this is a conflict with a boost header, so you may choose to ignore the problem. It'd be great if it could be fixed though, for a better out-of-the-box experience.

@Pesa Do you have a suggestion to avoid the conflict with Boost?

@Pesa Do you have a suggestion to avoid the conflict with Boost?

Something like 203cce7e07653fda00b133e482c8283a322fc94f is what I had in mind. Essentially the "fallback" declaration should use __cxa_eh_globals*, not char*. (where does the char* come from btw?)

As of commit 203cce7e07653fda00b133e482c8283a322fc94f I can confirm that the following toolchain combinations compile with no warnings:

gcc 5 and later on Linux
clang 4 and later on Linux with libstdc++
Apple clang/Xcode 9 and later on macOS

I have not extensively tested with clang/libc++ on Linux, but it seems to work on godbolt.
Still fails on FreeBSD 11 with clang.

Commit cf39fd7071d90b2620b6675aa90da325caba195f does not fix the problem on FreeBSD, it seems only OpenBSD is handled.

Commit cf39fd7 does not fix the problem on FreeBSD, it seems only OpenBSD is handled.

...hope i'll get there in the end...

Thanks. Commit 197cd4240069b2b8c393ad0d9eabdee601b606b4 seems to work fine on FreeBSD 11 and 12. I consider this issue closed as far as I'm concerned.
One minor observation: on FreeBSD <cxxabi.h> always provides a declaration for __cxa_get_globals, so we could include the header and simply rely on that declaration, similarly to the gcc case (note that it's not the same header, FreeBSD uses libcxxrt as far as I know).

Thanks for your help and perseverance.
Re: FreeBSD, I'll refrain from including its own header for now, one reason being I cannot easily test scenarios with FreeBSD myself.


Frames are not smooth

Is there any way to smooth out the frames? When I run it, the change of frames is very visible and the cutoff from one expression to another is harsh.

Is there any way to smooth out the frames? When I run it, the change of frames is very visible and the cutoff from one expression to another is harsh.

Yes, in many cases, the continuity between frames is not smooth enough. Currently, we have added some smoothing loss during training and applied EMA smoothing to the inferred motion sequence during post-processing, but the results are not yet optimal. We are considering releasing the training code to facilitate community collaboration for further optimization.

cool, thanks for the reply. Are the frames not smooth because of too many motions in every frame generated by your model before running it through liveportrait? Have you tried lip-sync only ? or lip-sync and eyes only ?

cool, thanks for the reply. Are the frames not smooth because of too many motions in every frame generated by your model before running it through liveportrait? Have you tried lip-sync only ? or lip-sync and eyes only ?

Good question. We smoothed the head motions before running the LivePortrait model.
I think another possible reason for residual inconsistencies might be that, during training and inference, we treated different dimensions of the motion sequence as independent units rather than as integrated sequences, as they may have correlations with each other.
We have tried lip-sync only and used head motions from real-life videos, and it works better than predicting whole motions.

I have also done work similar to JoyVASA, and the results I have obtained may not be smooth enough. Sometimes there may even be mutations in Pose. I have tried smoothing the loss, but almost none of them have effectively improved it. Further experiments revealed that this was not caused by changes in Pose, but rather by the delta of the expression, as even if I used a predefined Pose to only change the delta of the expression, this situation would still occur. I speculate that the motion data extracted by LivePortrait is not very good, and there may be some flaws in certain KeyPoints in LP, which needs further verification. If the author solves this problem, we look forward to sharing and exchanging ideas

Have you tried smoothing the keypoints ?

wow, your results actually look much better than me.

I think the main issue is due to sudden pose or keypoint changes, I wonder if there's a way to smooth them out without affecting lipsync.

I have also done work similar to JoyVASA, and the results I have obtained may not be smooth enough. Sometimes there may even be mutations in Pose. I have tried smoothing the loss, but almost none of them have effectively improved it. Further experiments revealed that this was not caused by changes in Pose, but rather by the delta of the expression, as even if I used a predefined Pose to only change the delta of the expression, this situation would still occur. I speculate that the motion data extracted by LivePortrait is not very good, and there may be some flaws in certain KeyPoints in LP, which needs further verification. Looking forward to the author solving this problem.

Exactly, I also think the motion data is not good enough, see these issues: 1. https://github.com/KwaiVGI/LivePortrait/issues/439 2. https://github.com/KwaiVGI/LivePortrait/issues/433


Can it be used with Relay Modern?

Not read it deeply, just wonder can or cannot be used in Relay Modern. Thanks!

Related to https://github.com/apollographql/persistgraphql/pull/59

I've figured out how to implement Persisted Query using relay-compiler. So this issue can be closed.


fix: restore image fallbacks

This PR resolves []
Description

Fixes error causing auctions not to render as well as a few other images I missed in migration.
This restores some behavior we had with the old opaqueImageView, that is if a null or undefined url is passed render a gray box as a fallback. It looks like this:
Screenshot

PR Checklist

[ ] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

fix images not rendering when url is null - brian

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

Thank you 🙏

This PR contains the following changes:

Cross-platform user-facing changes (fix images not rendering when url is null - brian - brainbicycle)

  Generated by :no_entry_sign: dangerJS against 9dc961ae51ac17c6152b1e2bb2bb7d5559f26285


Problem with ESP32 Wrover-B with wifi TCP/IP connection - high latency and anser to cloud connection in HTTP/POST-REST (IDFGH-3960)

Using release v4.1 the wifi seens to be stable and we havent seen disconnection but the TCP/IP stack seens to become lazy and with a very high latency to answer, connection to a http request takes longer and longer until connection become very unstable even with very good rssi and wifi connection.
Seens that somehow the TCP/IP stack and wifi arent working correct.
We will try to reproduce the issues and report it more complete tomorrow, but the problem exist so far.

Thanks for reporting. Would you please help provide more details as suggested in the issue template? Information like elf, sdk configuration, backtrace, log outputs, commit ID, hardware and etc. would help us debug further. Thanks.

@filzek Thanks for reporting, would you please help share if more updates for this issue? Thanks.

@filzek Thanks for reporting, would you please help share if more updates for this issue? Thanks.

We will prepare a working example for this problem so can test it and check where problem relays.

Thanks for the updates.

@filzek Does this issue still exist?

I am experiencing similar problems on IDF v4.0.2. I performed various tests on my custom code and high latency seems to occur within the lwip or wifi stack. Interestingly enough, that does seem to happen only when the ESP module receives data, and not when it sends to the server.
Will try to create a working code stub in the next days.

@maikeriva
Thanks for the updates, you also can check it on IDF v4.2. It's better to share the code when reproduce the issue again.

Turns out in my case that turning off WiFi power saving did the trick.
esp_wifi_set_ps(WIFI_PS_NONE)
It was particularly hard to find out since the latency issue does not appear when stress-testing by firing multiple requests to the ESP32, but only with sparse requests every now and then.

Turns out in my case that turning off WiFi power saving did the trick.
esp_wifi_set_ps(WIFI_PS_NONE)
It was particularly hard to find out since the latency issue does not appear when stress-testing by firing multiple requests to the ESP32, but only with sparse requests every now and then.

I can try it tomorrow to check performance and later return for the results, as far latest v4.2 release still having this problem so far, but lets test this solution idea.

I can try it tomorrow to check performance and later return for the results, as far latest v4.2 release still having this problem so far, but lets test this solution idea.

Problem was that is almost impossible to remove the code to provide one working example, but we test with IIS, NGIX and some other and the problem happen randomly.
We have found out that the answer when the problem happen from the server is correct but the esp32 reads ZERO in the answer, so is something with internal lwip and esp32, so the package was really lost and the content was unread.

Problem was that is almost impossible to remove the code to provide one working example, but we test with IIS, NGIX and some other and the problem happen randomly.
We have found out that the answer when the problem happen from the server is correct but the esp32 reads ZERO in the answer, so is something with internal lwip and esp32, so the package was really lost and the content was unread.

@filzek the esp32 reads ZERO means that the connection is inactive, Could you enable the SOCKETS_DEBUG in lwipopts.h file and test again? if output the log as follows:
lwip_recv_tcp: p == NULL, error is "Connection closed."!

It means that the server close the connection actively.

@filzek the esp32 reads ZERO means that the connection is inactive, Could you enable the SOCKETS_DEBUG in lwipopts.h file and test again? if output the log as follows:
lwip_recv_tcp: p == NULL, error is "Connection closed."!

It means that the server close the connection actively.

Hi @lhespress I have enable it in:
esp-idf\components\lwip\port\esp32\include\lwipopts.h
#define SOCKETS_DEBUG                   LWIP_DBG_ON
Is that right or do I need to change it somewhere else?

Hi @lhespress I have enable it in:
esp-idf\components\lwip\port\esp32\include\lwipopts.h
#define SOCKETS_DEBUG                   LWIP_DBG_ON
Is that right or do I need to change it somewhere else?

Log says:
lwip_recv_tcp: netconn_recv err=-3, pbuf=0x0
lwip_recv_tcp: p == NULL, error is "Timeout."!
lwip_recvfrom(55):  addr=xxx.xxx.xxx.xxx port=80 len=-1
lwip_close(55)
SIZE OF RECEIVED [0] DATA[] is not higher than 0 so, will restart loop

Log says:
lwip_recv_tcp: netconn_recv err=-3, pbuf=0x0
lwip_recv_tcp: p == NULL, error is "Timeout."!
lwip_recvfrom(55):  addr=xxx.xxx.xxx.xxx port=80 len=-1
lwip_close(55)
SIZE OF RECEIVED [0] DATA[] is not higher than 0 so, will restart loop

@filzek  It shows that recv data timeout from the log, the recvmbox maybe full, could you modify the CONFIG_LWIP_TCP_RECVMBOX_SIZE, CONFIG_LWIP_TCPIP_RECVMBOX_SIZE and check again?

@filzek  It shows that recv data timeout from the log, the recvmbox maybe full, could you modify the CONFIG_LWIP_TCP_RECVMBOX_SIZE, CONFIG_LWIP_TCPIP_RECVMBOX_SIZE and check again?

@filzek In addition to that, what did you call setsockopt on SO_RCVTIMEO for change the recv timeout value from zero (default) to the other value.

@filzek In addition to that, what did you call setsockopt on SO_RCVTIMEO for change the recv timeout value from zero (default) to the other value.

In addition to that you also can modify the timeout value as follow steps:
esp_http_client_config_t config = {
        .host = "httpbin.org",
        .path = "/get",
        .query = "esp",
        .event_handler = _http_event_handler,
        .user_data = local_response_buffer,        // Pass address of local buffer to get response
        .disable_auto_redirect = true,
        .timeout_ms = 15000,
    };
   esp_http_client_handle_t client = esp_http_client_init(&config);

In addition to that you also can modify the timeout value as follow steps:
esp_http_client_config_t config = {
        .host = "httpbin.org",
        .path = "/get",
        .query = "esp",
        .event_handler = _http_event_handler,
        .user_data = local_response_buffer,        // Pass address of local buffer to get response
        .disable_auto_redirect = true,
        .timeout_ms = 15000,
    };
   esp_http_client_handle_t client = esp_http_client_init(&config);

Thanks for reporting, feel free to reopen.

So, how was this problem solved ?

Not sure how we solve it, but it was solved
Em sáb., 28 de ago. de 2021 00:03, baldhead69 @.***>
escreveu:

So, how was this problem solved ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/espressif/esp-idf/issues/5846#issuecomment-907557172,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG7JIUZCCDQUSM2W6P7DC3TT7BGY3ANCNFSM4RD3NKOA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@filzek
Did you modify the timeout value as follow steps:
struct timeval receiving_timeout;
        receiving_timeout.tv_sec = 15;
        receiving_timeout.tv_usec = 0;
        if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &receiving_timeout,
                sizeof(receiving_timeout)) < 0) {
            ESP_LOGE(TAG, "... failed to set socket receiving timeout");
            close(s);
            vTaskDelay(4000 / portTICK_PERIOD_MS);
            continue;
        }

@baldhead69 Could you check it again?

Where to put this ?


netty4.100.final supports virtual threads dubbo needs to be adapted

springboot needs to be upgraded to 3.1.6 or later
The Netty Reactor multithreading model needs to be changed to virtual threads

What do you mean? Dubbo adapt Netty Reactor?


Update boxclk to V0.08

Improves performance, responsiveness, and bug fixes

[+] Added box size caching to reduce calculations
[+] Improved step count with real-time updates
[+] Improved battery level update logic to reduce unnecessary refreshes
[+] Fixed optional seconds not displaying in time
[+] Fixed drag handler by adding E.stopEventPropagation()
[+] General code optimization and cleanup

Thanks! I'll merge if your happy?

Yes, it’s ready to merge then. Thanks!

Out of curiosity - what is the advantage of collecting all event listeners in an object?

I thought about removing them all together in one line, but I'm not sure that would work.
I can change them to individual functions to avoid iterating over the object over and over.

I guess it's a balance between memory usage <-> execution speed <-> minification potential?

I changed the event handlers to individual functions since there should be a small performance benefit with the simpler setup. Is a version bump necessary for this change?

I'm inclined to ask for a bump yes 🙃


Better example for sending headers with with Kafka binding for Python

I spend quite a long time debugging why my Python function was unable to set Kafka message headers using the Kafka output binding (the headers were showing up as a property in the message body instead), despite setting the Headers property as shown in the examples.
After diving into the source code, I realized that every single parameter must be provided in order for the message to get parsed  with headers: https://github.com/Azure/azure-functions-kafka-extension/blob/dev/src/Microsoft.Azure.WebJobs.Extensions.Kafka/Output/KafkaProducerAsyncCollector.cs#L98
If any of the Offset, Partition, Topic, Timestamp, Value or Headers fields are missing (or if the message cannot be decoded as JSON), then the whole output is silently used as the message body instead. This is unintuitive and should be noted in the documentation if this is as designed - particularly since it appears Offset, Partition, and Topic shouldn't be user-specified anyways and get ignored.

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

ID: e68eb05e-610d-c3bb-223c-73cdadbd5866
Version Independent ID: 366f5f88-5752-3216-8e18-7fd6c7305c73
Content: Apache Kafka output binding for Azure Functions
Content Source: articles/azure-functions/functions-bindings-kafka-output.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@stewartadam
Thanks for your feedback! We will investigate and update as appropriate.


Update options.js

JSCS merged with ESLint now

Coverage remained the same at 97.754% when pulling c18abac57866c3169b2c10769ab4412641407726 on nadgerz:nadgerz-patch-2 into c63d4d51e73d632f59127a6de5b4db8cc2748291 on jshint:master.

Superseded by gh-3088.


Add 'deploy to oculus hub' feature

Context

I am making a VR solution for the oculus quest two.
I've set up a github repo to work from
Its a unity project
I'm using git LFS
I'm using game-ci to build my project

Suggested solution
You have a means to deploy builds to various app stores(microsoft, steam, etc...) . So far I haven't found a way to deploy to the oculus quest developer hub. I was wondering/hoping this would be possible?
Considered alternatives
I manually download the build file and upload it myself to the oculus developer hub
Additional details
the oculus developer hub is a platform for publishing oculus apps. It has its own process for verifying APK builds.
the quest two only make use of android APK s. You need to include a .keystore file in the 'player' settings when you make a build

Hey Dylan,
Thank you for your suggestion.
I'm moving this issue to our documentation repo.
It doesn't look like there is an action for oculus developer hub yet. So that's definitely a valid use-case for creating one. We'd be happy to maintain such an action together with our community, however we're dependent on that same community for creating something initially.
For building the APK and dealing with the keystore, you should generally be able to follow at least most of the Google Play flow in our documentation.


version 1.0.2 crash on windows server 2019 Datacenter

Describe the bug
After upgrading from version 1.0.0 to 1.0.2 when opening the old bots the Composer app hangs and doesnt start up ever again.

Version
1.0.2
I cannot paste the SHA because the app does not start up.

Browser

[ ] Chrome

OS

[ ] Windows

To Reproduce
Steps to reproduce the behavior:

Install version 1.0.0
Create a bot application test and run in emulator
upgrade to version 1.0.2
Notice the application does not start up

@malotho if you could provide more info with bot assets(dialog, lu, lg files), that can help us to deep dive. Thanks

@malotho if you could provide more info with bot assets(dialog, lu, lg files), that can help us to deep dive. Thanks

botassetsexcludingassets.zip
Let me know if you need anything extra.

@malotho could you provide the root dialog as well which marked in attached file ?

@malotho  Please provide the requested info.  We would like to close this out.

resolved on later versions


build(oxygen): add-on v2.1.1

This pull request publishes the latest master via Oxygen add-on channel.
I tested this change on Oxygen 23.0 build<PHONE_NUMBER> using https://github.com/AirQuick/xspec/raw/oxy-addon_2-1-1/oxygen-addon.xml.

I'm merging this, and directly I will verify the add-on online.

I'm merging this, and directly I will verify the add-on online.

I'm merging this, and directly I will verify the add-on online.

Done. The upgrade from v2.1.0 was offered and v2.1.1 is working fine on Oxygen 23.0 build<PHONE_NUMBER>

I'm merging this, and directly I will verify the add-on online.

Done. The upgrade from v2.1.0 was offered and v2.1.1 is working fine on Oxygen 23.0 build<PHONE_NUMBER>


Mirek/align by ident

For prediction, aligning definitions by node identities instead of names

I wrote a quick script to investigate definitions with duplicate identities:
from pathlib import Path
import sys
from pytact.data_reader import data_reader
from collections import defaultdict

identities = defaultdict(list)

dataset_path = Path(sys.argv[1]).resolve()
with data_reader(dataset_path) as data:
    for datafile in data.values():
        for d in datafile.definitions():
            identities[d.node.identity].append(f"{datafile.filename} : {d.name}")
for i, ls in identities.items():
    if len(ls) > 1:
        print(f"{i}")
        for d in ls:
            print(f"    {d}")

This shows that duplicates are caused by three categories:

Section variables that are repeated amongst multiple sections (these are the definitions with a fully unqualified name like A).
Definitions inside of module functors that are being repeated (these are definitions with names like M.min_l).
Some outliers that are related to the abstract tactic (we can ignore this I think).

Repeating a message I sent to Mirek in slack:

When you align with any nodes that are not in the spine, you'll have to come up with a way to deal with collisions. I can see a couple of methods, not sure which one is the best:

When a collision occurs, just align to a random definition in that collision.
When a collision occurs, don't align it at all.
During training, you can already resolve any collision by lumping all definitions with the same identity together. Not sure what the effect of that would be.
You can try to infer the 'correct' definition to align to by trying to find a 'consistent' set of definitions in the training data (that is, definitions that all occur in the same sub-spine) such that the most definitions are aligned. This is the most complicated solution, but probably also the most correct solution.

When Lasse is happy with this, I am.  I don't think I understand the fine points anyway.

I think that the correct choice also very much depends on the semantics of the model. Not sure if I'm qualified to determine that. Maybe we can discuss it tomorrow.


Update sbt-bloop to 1.4.6

Updates ch.epfl.scala:sbt-bloop from 1.4.2 to 1.4.6.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.epfl.scala", artifactId = "sbt-bloop" } ]

labels: sbt-plugin-update, semver-patch

Superseded by #180.


feat: add qwik city

Discussed with @mhevery and @manucorporat about having Qwik City tested through vite-ecosystem-ci. Qwik City and their Vite plugin are part of the Qwik monorepo, so as an initial approach, I'm using build and the general test. If it takes too much time, we could only run the tests from the Qwik City package (and also the ones in the plugin?).

The audit fail should be fixed in main now.

Had a qwik look, but unfortunately running pnpm test qwik did not work for me locally.
First issue was that qwik uses a pinned rollup version in devDependencies that leads to a type inconsistency for Plugin https://github.com/BuilderIO/qwik/blob/4147d52e979f76ccf763f83135d03d009e5f92e7/package.json#L89  vs vite https://github.com/vitejs/vite/blob/0cfd26c5058fe1642b80dbc530a0e7796d05f271/packages/vite/package.json#L65
After adding and override to use "^2.79.1" in qwik
import { runInRepo } from '../utils'
import { RunOptions } from '../types'

export async function test(options: RunOptions) {
	await runInRepo({
		...options,
		overrides:{
			"rollup":"^2.79.1"
		},
		repo: 'BuilderIO/qwik',
		build: 'build',
		test: 'test'
	})
}

i now get a build error mentioning yarn api.update but it doesn't tell me which api that would be or if that's expected.
I'm lacking the time and expertise to check out qwik build process in more detail and would appreciate if someone from qwik can take a look. @mhevery  @manucorporat :eyes:
qwik ❯ yarn build
(node:10674) ExperimentalWarning: Custom ESM Loaders is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:10674) DeprecationWarning: Obsolete loader hook(s) supplied and will be ignored: getFormat, transformSource
🌎 Qwik v0.12.0-dev20221022102852 [node v18.11.0, linux/x64]
/home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/qwik/qwik/packages/qwik/dist
🐷 generated package.json
🐨 build
🐮 jsx-runtime
🦁 testing
📠 cli
🐸 qwikloader: { original: '1.8kb', brotli: '926b' }
🦊 core.mjs: { original: '244.1kb', brotli: '43.5kb' }
🐭 core.min.mjs: { original: '53kb', brotli: '18.3kb' }
🐹 optimizer
🐰 server
🦉 native binding / wasm (copied from npm v0.12.0-dev20221021220048)
vite v3.2.0-beta.3 building for lib...
✓ 14 modules transformed.
../lib/index.qwik.mjs   16.52 KiB / gzip: 4.75 KiB
../lib/index.qwik.cjs   17.53 KiB / gzip: 4.99 KiB
🏙  qwik-city

❌ Use "yarn api.update" to automatically update the .md files if the api changes were expected
 Error: Use "yarn api.update" to automatically update the .md files if the api changes were expected
    at panic (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/qwik/qwik/scripts/util.ts:210:4)
    at createTypesApi (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/qwik/qwik/scripts/api.ts:133:5)
    at apiExtractor (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/qwik/qwik/scripts/api.ts:96:3)
    at build (file:///home/dominikg/develop/vitejs/vite-ecosystem-ci/workspace/qwik/qwik/scripts/build.ts:82:7)
on  main [!] via  v18.11.0 via 🦀 took 28s
qwik ❯

Please also check your rollup devDependency, ideally that would be in sync with vite, although we might have to add an automatic override to vite-ecosystem-ci for the upcoming switch to rollup@3 in vite-4, cc @patak-dev @sapphi-red

We use api-extractor to detect changes in our public API, it's sort of a bundler for types + comparision... this error is not necessary bad, just means the public API changed, i guess some rollup type is leaking to the public API, going to look at it!

test.vite could be a thing too, let me do some checking

What does the test should do? build an app with vite?

@manucorporat there were errors before merging Rollup 3 support to Vite main, that is what dominikg was describing. Now there may be more errors as you say, for example, type errors.
About what the test should do, we don't need a new app, but probably running your regular CI tests for your vite plugin and QwikCity. Ideally, we would run test wholesale. For example, the laravel integration runs the regular build then test.
Sometimes projects add a new test:vite-ci command when running the whole CI doesn't make sense. For example, astro here does it to avoid testing create-astro and every subpackage because it is time-consuming, so they only run their core CI.

What does the test should do? build an app with vite?

Run as much of qwik ci as possible that depends on vite. unit tests using vite exports, e2e tests using vite dev, preview or build.
Anything that could break when vite changes

We are about to merge this:
https://github.com/BuilderIO/qwik/pull/2349
adding a couple of new scripts: build.vite and test.vite

hope you don't mind i resolved the conflicts and update the tests to your latest changes in qwik repo.


feat(crypto): modular crypto library with 100% backward compatibility

This is an example implementation to initiate a discussion.

This PR makes the crypto library modular and allows the end-user to plug in a custom crypto library for signing without forking the CometBFT codebase.
The solution is 100% backward compatible, so all existing codebases work without any changes.
This solution is a hack. The main goal was 100% compatibility, which restricts us from using best practices. Below, you will find a few examples of where we could do better, either by making it more inconvenient to use (which improves robustness) or by breaking compatibility to some degree (which improves readability and future-proofing).
The problem
Our current crypto/ed25519 and crypto/secp256k1 libraries are not enough for our end users. Adding more libraries would require more maintenance from the core team, and adding some kind of modular implementation would break the existing codebase.
The proposed solution
Repurpose the crypto/ed25519 implementation and add non-breaking functionality to override the library through behavior injection.
First, the publicly shared variables were collected into a CustomOptions struct so that they can be overridden when the new crypto library is registered at startup. Then, the structs with method implementations were collected into interfaces, like CustomPrivKey, CustomPubKey, or CustomBatchVerifier. When a custom library is registered, the ed25519 methods are overridden by these custom implementations.
If an end-user registers a custom crypto library implementation, it overrides the built-in ed25519 implementation. All calls to it will be redirected to the custom crypto library implementation, and the most important publicly accessible variables (PubKeyName, etc.) are also rewritten during the registration.
Why override ed25519?
The crypto libraries are entangled with other parts of the codebase. types/params.go uses some constants directly, priv_val/socker_listeners.go directly uses the PrivKey struct, and the list goes on. If we implemented a crypto/custom module instead, the user would not be able to override these points and change the behavior of the codebase unless we change how those points are implemented.

Limit: The user must decide to either use the built-in ed25519 implementation or override it with their own crypto library. Both cannot be used.

One use case involves a user forking CometBFT to change the underlying cryptographic library. We will likely find more cases like this than cases where the user wants multiple cryptographic libraries in parallel. Multiple libraries will also require breaking changes, so this seemed a better first step.
TL;DR
The file crypto/ed25519/ed25519.go was modified to accept custom crypto libraries. An example of implementing a custom crypto library is in crypto/custom/mysecp_test.go. (It's a secp256k1 implementation different from the built-in one.) The custom implementation is initialized and used in the crypto/custom/custom_test.go file. TestMain shows how to register the custom library, and the tests below show how it is used. The test TestProveCustomSecpCorrect has detailed steps to reproduce the signing process using openssl to confirm that the same algorithm is implemented. (The built-in secp256k1 implementation is incompatible with the OpenSSL implementation because of compression.)
More details
The first problem that makes overriding the crypto libraries hard is that they register their private and public key types for amino-encoding in the module's init function. This means that by the time the user has the chance to rename their private key or public key names, they are already registered. I did not find a standard way to delete entries from this registry.
Golang modules call the init functions in a particular order. For 100% backward compatibility, an earlier module's init function can make recommendations to the init function of the ed25519 module. We are using this to signal to the ed25519 module if it should register the default names (for the default behavior) or not register any PrivKey/PubKey types because the user will do that later. This is achieved by importing the crypto/custom module, an empty module (the user must use import _) that runs earlier than the crypto/ed25519 module. It sets a flag that tells the ed25519 module that a custom implementation will be registered and there is no need to do amino-encoding type registration in the init function. You can see this in action in the example at crypto/custom/custom_test.go.
The second (or better yet, "zeroeth") problem was managing that flag between the custom and ed25519 modules. Both look at the crypto/custom/indicator module to avoid circular dependencies, which store the flag in a global variable that can only be set once. To summarize, if the user imports the custom module, it sets a flag in the indicator module, which is read by the ed25519 module and tells it to wait for a custom crypto library implementation. If the custom module was not imported, the indicator module is untouched, and the ed25519 module will assume the default implementation will be used.

Limit: for 100% compatibility, weird imports have to be used. A small but breaking change could make this initialization much simpler.

The next issue to resolve was how to implement the behavior injection. The proper way would be to create custom functions for each method implemented in ed25519. For example, Sign would have a global variable with a function signature, something like this:
var CustomSign func(privKey PrivKey, msg []byte) ([]byte, error)

We should have around 10 globally reprogrammable function-variables so the ed25519 module can call the user-defined custom code.
To simplify this example, I expanded on the interfaces defining most methods in the crypto library. Most functionality is described by crypto.PrivKey, crypto.PubKey, and other interfaces. So, the CustomPrivKey, CustomPubKey, and similar interfaces were born and added to the crypto/ed25519 library. This has the benefit that I don't have to redefine a bunch of function signatures (Sign(msg []byte) is already defined in the interface). The drawback is that instantiating these interfaces with a specific implementation is done through global variables. The internal state has to be carefully managed (see the BatchVerification example). We might have race conditions when multiple signatures are signed in parallel. This was not observed, but if the assumption is correct, we must fall back to defining every custom method from these interfaces with the added privKey PrivKey as seen above. It's alright; it's just a bit more work. For the sake of discussion, I think this version is fine.

Limit: Defining the custom crypto for ed25519 through global variables may lead to race conditions. Instead, fall back on proper behavior injection with custom function signatures.

As the codebase evolves, we might break the current status quo. In that case, I'd like to highlight generics introduced in Go 1.18, which might make for a better custom implementation for us. It would be nice to define precisely what these crypto libraries have to show and use a standardized interface (or struct) to configure and use them.
This PR's goal was to highlight the compatibility concerns surrounding a modular crypto library system. To stay compatible, we must accept earlier decisions as the status quo. Disregard better design patterns or newer tools that make life simpler. At some point, we will have to start adding breaking changes and decide how much of the codebase we want to overthrow. I hope the discussions around this example and the topic in general will give us a better perspective.
Note: The PR was opened on main, but because this codebase doesn't change much, I expect it to be portable to older releases.

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

It looks like this work is stale. Plus, I don't see a path forward here. The concept is great, but implementing this in a flexible way (meaning something that will work with any curve) will require more work.


ci: fix build

closes #976
closes #978
Checklist

[x] No CHANGELOG update needed

[ ] No new tests needed

[ ] No documentation update needed

Well, this is fun...
Last successful run seems to be https://github.com/mandiant/capa/runs/5674058527?check_suite_focus=true
https://github.com/mandiant/capa/commit/eaf978da0a134e7865244cc0b718c0a0cd2b6a7f
https://github.com/mandiant/capa/compare/eaf978da0a134e7865244cc0b718c0a0cd2b6a7f...master

I tried at least 15 different solutions (unfortunately not documented because I force pushed 😞)
Giving up for now.

... where's that icon? :)


Crash on Button Delete

Describe the bug
When attempting to delete buttons, I believe it's mainly buttons from previous version (2.3.2-dev), I get an error, then it does not delete.  In some cases the MacroDeck 2 program also crashes and will need restarting.
To Reproduce
Steps to reproduce the behavior:

Go to any screen, any button created in previous version 2.3.2-dev
Right-click
Delete
See error

Expected behavior
Deletion of button, without error
Screenshots
Windows version: Windows 10 Pro 64 bit

Object reference not set to an instance of an object.

   at SuchByte.MacroDeck.ActionButton.ActionButton.Dispose(Boolean disposing) in D:\Macro-Deck\Macro Deck 2\ActionButton\ActionButton.cs:line 58
   at SuchByte.MacroDeck.ActionButton.ActionButton.Dispose() in D:\Macro-Deck\Macro Deck 2\ActionButton\ActionButton.cs:line 77
   at SuchByte.MacroDeck.GUI.MainWindowContents.DeckView.ContextMenuDeleteItemClick(Object sender, EventArgs e) in D:\Macro-Deck\Macro Deck 2\GUI\MainWindowViews\DeckView.cs:line 447
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Additional context
Previous version was 2.3.2-dev, buttons tested were "Open application" and "Hotkeys"x10 buttons

Fixed in version 2.4.1-dev.


Modularize neural network models

What does this PR do?

fixing #347;
fixing #242;

Before submitting

[x] This PR is made to fix a typo or improve the docs (you can dismiss the other checks if this is the case).
[x] Was this discussed/approved via a GitHub issue? Please add a link to it if that's the case.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have written necessary tests and already run them locally.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

1021 of 1150 (88.78%)  changed or added relevant lines in 91 files are covered.
4 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.2%) to 81.002%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pypots/clustering/vader/model.py
2
3
66.67%

pypots/imputation/saits/core.py
38
39
97.44%

pypots/imputation/timesnet/core.py
10
11
90.91%

pypots/nn/modules/csdi/backbone.py
11
12
91.67%

pypots/nn/modules/autoformer/auto_encoder.py
7
11
63.64%

pypots/nn/modules/gpvae/backbone.py
32
39
82.05%

pypots/classification/raindrop/core.py
33
46
71.74%

pypots/nn/modules/crossformer/auto_encoder.py
17
31
54.84%

pypots/nn/modules/fedformer/autoencoder.py
17
31
54.84%

pypots/nn/modules/informer/layers.py
3
20
15.0%

Files with Coverage Reduction
New Missed Lines
%

pypots/clustering/vader/model.py
1
84.85%

pypots/imputation/gpvae/model.py
1
85.42%

pypots/cli/env.py
2
57.14%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
7099

Relevant Lines:
8764

💛  - Coveralls


Settings Plugins need a delayed evaluation mechanism like afterEvaluate

Expected Behavior
A user should be able to apply a Settings plugin and that plugin should be able to declare logic that should be evaluated after the user's settings.gradle.kts or settings.gradle file is evaluated.
Current Behavior
Currently, neither the Settings interface, nor the DefaultSettings class support an afterEvaluate mechanism.
Context
This plugin: https://github.com/GradleWeaver/better-build-file-names
I'm authoring probably one of the very few plugins for Settings.
This plugin recursively iterates over all of the ProjectDescriptor's that have been created by the user calling include and changes the ProjectDescriptor::buildFileName to be [project-name].gradle or [project-name].gradle.kts.
This was originally inspired by the logic in Gradle's own build:
https://github.com/gradle/gradle/blob/b752deb35c485d521c0b5d9c10848f716242fd1f/settings.gradle.kts#L147-L163
The problem in this case is that if you apply my plugin first, none of the ProjectDescriptor have been added to the Settings::rootProject so the build isn't changed.
The current workaround is to tell users to do this:
buildscript {
  repositories {
    maven {
      url = uri("https://plugins.gradle.org/m2/")
    }
  }
  dependencies {
    classpath("gradle.plugin.org.gradleweaver.plugins:better-build-file-names:0.0.1")
  }
}

include(":a")
include(":b")
include(":c")
include(":d")
include(":e")

// This line must be last!
apply(plugin = "org.gradleweaver.plugins.better-build-file-names")

Your Environment
------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.14 x86_64

I don't think we want an "afterEvaluate" mechanism for settings scripts.
Like we have for other collection of things (tasks, configurations, publications, etc), we want a container for projects like a NamedDomainObjectContainer.
e.g., settings.gradle
include ":sub1"
include ":sub2"

badNameForContainerOfThings.all { ProjectDescriptor pd ->
    // set conventions for projects
}

include ":sub3" // still works as expected

ProjectDescriptor is probably not quite right for this. It has a mutable name (which NamedDomainObjectContainer doesn't allow) and all of its properties should be migrated to a Provider/Property.

@JLLeitschuh can't you use gradle.settingsEvaluated {} in the meantime?

I didn't know that that API even existed. I'll give it a shot. Thanks @eskatos!

@eskatos Worked like a charm. Thanks!


bugfix/207: dont create logfile when running helper methods + bugfix/969: log not truncated during test execution

PR details
What changes did you make? (Give an overview)

fixes #207
fixes #969

Checklist

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
n/a test scripts updated
n/a Wiki updated (if applicable)

wiki
https://github.com/Accenture/sfmc-devtools/wiki/07.-Advanced-Configuration/_edit
--api=[log|api]
Optionally, you can see API requests & responses in the logfile or directly in CLI.
Examples:
mcdev retrieve --api=log
mcdev deploy --api=cli

--noLogFile
Optionally, you can disable creating the 2 logfiles when running mcdev.
Examples:
mcdev retrieve --noLogFile
mcdev deploy --noLogFile


pythonPackages.internetarchive: 1.9.4 -> 1.9.5

Motivation for this change
Things done

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

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python27Packages.internetarchive python38Packages.internetarchive python39Packages.internetarchive

@GrahamcOfBorg build python27Packages.internetarchive python38Packages.internetarchive python39Packages.internetarchive

Result of nixpkgs-review pr 100142 1

3 packages built:

python27Packages.internetarchive
python37Packages.internetarchive
python38Packages.internetarchive


feat(state): Add trie

Dependent on trie, a generic implementation of the Base-16 Modified Merkle Tree data structure.
To keep compatible with ETH and CITA-1.0, serialization still uses RLP.
cc @mohanson @u2

I will review the code tonight because I need time to understand the TRIE.

Base-16 Modified Merkle Tree

what's this? why do we need it?

What is base-16 doing here? What's the different from MPT?

What is base-16 doing here? What's the advantages over MPT?

Base-16 is a 16 forks tree.
No advantages. The implementation is consistent with MPT and just abstract out the KVDB and serialization

理解成 BASE16 也是对的，因为 node key 的取值范围确实是 BASE16(ASCII 0~F)，所以一个 branch node 才形成了 16 叉。

ohhhhhhhhhhhh... I thought it's BASE16 like BASE64.

I got the same feeling.

Dependent on trie, a generic implementation of the Base-16 Modified Merkle Tree data structure.
To keep compatible with ETH and CITA-1.0, serialization still uses RLP.

@yejiayu
you should also add these comment into the codes, not just the PR description. It will help others to quick understand the codes without reading the whole PR discussions.

OK, I will comment in the new PR.


Added Signet to dApp list

Hey I've tried to add this to dApp list before but I just noticed it was Dev list I don't know the difference but we are voting a lot from our multisig and would love to have Signet access more quickly.
Thanks

Hey hey, JFYI we are revamping the whole DApp page right now, once that is done we will come back to review & test all new DApps. This might take a while — for now you can add any DApp to Favourites:
https://docs.novawallet.io/nova-wallet-wiki/dapps/add-dapp-to-favorites#you-can-add-any-dapp-to-your-favorites-from-in-browser-also


[6.x] Reduces function calls.

No need to call getPropertyValue because accessible already set on the property.

Thanks but this is technically a breaking change because people could be overwriting the getPropertyValue method.


The OverwriteExistingVariables "AddNewWithDefaultValue" doesn't work for non-text variables

Recently a new option was added to the OverwriteExistingVariables parameter, "AddNewWithDefaultValue."  The intention was when that was set any variable would have "REPLACE ME" as the text so you knew what to change.
However, for non text variables (accounts, worker pools, certificates) that doesn't work.  Octopus is expecting an id.

Fixed in 3.2.2


Renaming variables in tests causes to rename only the declaration

I don't know if this is an issue with neovim or with rust-tools. If it is with neovim I'll open the issue on their repo.
When I call vim.lsp.buf.rename() on a variable inside a test in rust it is not renaming the references but rather just the declaration.
In my setup, I tried to rename the req variable in this file: https://github.com/actix/actix-web/blob/master/src/test/test_request.rs#L428
and it changed only the declaration and not the reference(s).

It happens with the following minimal config:
vim.cmd([[set runtimepath=$VIMRUNTIME]])
vim.cmd([[set packpath=/tmp/nvim/site]])
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'
local function load_plugins()
    require('packer').startup({
        {
            'wbthomason/packer.nvim',
            'neovim/nvim-lspconfig',
            'simrat39/rust-tools.nvim',
            -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
        },
        config = {
            package_root = package_root,
            compile_path = install_path .. '/plugin/packer_compiled.lua',
            display = { non_interactive = true },
        },
    })
end
_G.load_config = function()
    require('rust-tools').setup({})
    -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
end
if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system({ 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path })
end
load_plugins()
require('packer').sync()
vim.cmd([[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]])

Sounds like a rust-analyzer issue, does it happen with vs-code?

Yeah I tried in vscode and It does not happen.

Then its probably a neovim issue. If you can, try replicating this with lspconfig
Sorry i've been very busy so I couldn't get back to it faster

I've managed to reproduce it in VSCode, though inconsistently whereas in nvim it always happens... I opened an issue in rust analyser as it seems the issue is there


Optimize line simplification

As @mourner points out, the line simplification can be done once (to the max needed level of detail) and then reused at lower zooms if it retains the knowledge of what zooms each point is needed for, rather than having to redo it from scratch at each zoom level.

Not going to happen.

Any technical limitations preventing this?

I still think it could be done, with the possible exception of --detect-share-borders, which has to figure out which portions of a feature are exact matches to portions of another feature before simplifying.


Add Linux AUR support in docs

Added a PKGBUILD to the AUR repostiory https://aur.archlinux.org/packages/argocd-autopilot-bin for easy installation with arch package managers.

@Ch4s3r Thanks!