Add user logins

Probably using Passport
Revoking my own token:
https://security.google.com/settings/security/permissions
Basic setup with Passport:
https://scotch.io/tutorials/easy-node-authentication-google
Using the API:
https://developers.google.com/identity/sign-in/web/sign-in#sign_out_a_user
Sending tokens:
https://developers.google.com/identity/sign-in/web/backend-auth#verify-the-integrity-of-the-id-token
Where I can manage my app with Google:
https://console.developers.google.com/

For the routes, a "higher-order view" is the best way I can think of to add auth. So it'd be like...
auth(layout(view))
or something. auth would return the logged out view if unauthorized, or it would return the argument if authorized.

Done via #315


Added book routes following MVC pattern

Fixes:  #4443
Description

Added book routes following MVC pattern

Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)

Checklist:

[x] I have made this change from my own.
[x] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

what is the MVC pattern ? explain properly what u have done .

@abhi03ruchi : https://www.geeksforgeeks.org/mvc-design-pattern/

I have just added book routes in a separate directory following standard practices


[Beginner]: Project 31 - Project 40

Add beginner project 31 to project 40

All projects successfully added


[flexible-ipam] Enable CI pipeline on feature branch and fix e2e error

The CI config should be reverted before feature branch merged to main.

Codecov Report

:exclamation: No coverage uploaded for pull request base (feature/flexible-ipam@69afbde). Click here to learn what that means.
The diff coverage is n/a.

@@                   Coverage Diff                    @@
##             feature/flexible-ipam    #2564   +/-   ##
========================================================
  Coverage                         ?   42.24%
========================================================
  Files                            ?      148
  Lines                            ?    18270
  Branches                         ?        0
========================================================
  Hits                             ?     7718
  Misses                           ?     9857
  Partials                         ?      695

Flag
Coverage Δ

unit-tests
42.24% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Don't you need kind tests? https://github.com/antrea-io/antrea/blob/48aa434abe0d7b0799e9df67c7a85cada1b7ebeb/.github/workflows/kind.yml#L4

Don't you need kind tests and others?
https://github.com/antrea-io/antrea/blob/48aa434abe0d7b0799e9df67c7a85cada1b7ebeb/.github/workflows/kind.yml#L4

Thanks, added Kind test for this.
Do you also know the status about integration test? I see it last week but it disappeared today.

kind.yml is an example. Please search for branches: under ./.github/workflows and update every occurrence.


fix: Button keymap assignment

This directly addresses two things:

Fixed handling of multi-mode mappings
Allow passing a lua function as the mapping RHS

opts.keymap is now passed to vim.keymap.set instead of nvim_buf_set_keymap because it handles all of the work needed to support multi-mode mappings and functions as RHS, eliminating most of the work needed to be done here.
Example use case
I have a button that loads the last saved session via persistence.nvim and prints a message. With this patch, I can define a button like this:
local function callback()
	print('Loading session')
	require('persistence').load { last = true }
end

local button = {
	type = 'button',
	val = 'Restore Last Session',
	on_press = callback,
	opts = {
		-- blah blah
		keymap = { 'n', shortcut, callback, {} }
	}
}

thanks for your contribution
I think previously I was concerned with changes to the lua api and incompatibilities with the callback option, the rhs not being able to be empty or something like thatl, but testing it just now it works fine and I think the lua keymaps api is probably stable by now


Rider number no longer available

With commit https://github.com/thomascamminady/LeTourDataSet/commit/c102e029b8ab161bcfafcc2063387cac20808fc9, we lost the Riders' bib numbers. Something must have changed on the Tour website. The data is still present if you look e.g. here https://www.letour.fr/en/block/history/11824/dd65e9c72299014821d7ffee104ff5f9. This means that we should be able to recover that data.

fixed: https://github.com/thomascamminady/LeTourDataSet/commit/53420b9c8f0a75c338f95a20ab9ccfe21ab2681c


Update Rocket to latest commit on master

I also updated the examples in https://github.com/async-graphql/examples/pull/38

Thank you so much!


Added @XMLText decorator supporting optional 'required' option

Hi Robin,
please excuse all the unnecessary code changes inside existing files but I wasn't able to find a linter setting which preserved your code.
The code of the newly added XMLText files should be self-explanatory.
Best regards,
Robert

I had to find a way to define the value of instance variable name without having an option name in the XMLText decorator's interface (as it makes no sense to define a name for a XML text node).
As this assignment can only be done within the annotate function (where the key argument exists), which however is a static one, I saw no other chance than to go the way via the class prototype, which gives me access to its instance variables.
The only reason why we need a name property anyhow is to be able to output the name of it within the error message shown in cases, if the XMLText decorator defined it to be required but actually has no value assigned to it.
Maybe you see a better way to solve it.

Maybe you see a better way to solve it.
So, guys, what's about this PR?
Attribute with text node functional would be very helpful


XCode8, IOS10 error:

I am getting this error after upgrade to XCode8 and IOS10.

undefined is not an object (evaluating '_this.state.viewport')

The error points to the line 41

static propTypes = {
    acceptDoubleTap: PropTypes.bool,
    acceptPan: PropTypes.bool,
    acceptTap: PropTypes.bool,
    captureGestures: PropTypes.oneOf([true, false, 'open', 'closed']),   //  THIS IS THE LINE 41
    children: PropTypes.node,
    closedDrawerOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
    content: PropTypes.node,
    disabled: PropTypes.bool,
    elevation: PropTypes.number,
    initializeOpen: PropTypes.bool,
    open: PropTypes.bool,
    negotiatePan: PropTypes.bool,
    onClose: PropTypes.func,
    onCloseStart: PropTypes.func,
    onOpen: PropTypes.func,
    onOpenStart: PropTypes.func,
    openDrawerOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
    panThreshold: PropTypes.number,
    panCloseMask: PropTypes.number,
    panOpenMask: PropTypes.number,
    side: PropTypes.oneOf(['left', 'right']),
    styles: PropTypes.object,
    tapToClose: PropTypes.bool,
    tweenDuration: PropTypes.number,
    tweenEasing: PropTypes.string,
    tweenHandler: PropTypes.func,
    type: PropTypes.oneOf(['overlay', 'static', 'displace']),
    useInteractionManager: PropTypes.bool,

    // deprecated
    panStartCompensation: PropTypes.bool,
    openDrawerThreshold: PropTypes.any,
  };

I am using:

    "react": "15.3.2",
    "react-native": "0.33.0",
    "react-native-drawer": "^2.3.0",

It could be related to:
#216
I am also using:

    "babel-relay-plugin": "^0.9.3",
    "react-relay": "^0.9.3",

This is not an issue with drawer.
It seems that babel-relay-plugin doesn't work as expected with EC6 arraow functions.
I will close this.
If anyone else have this issue, please refer to:
http://stackoverflow.com/questions/37449580/this-is-no-longer-bound-when-using-arrow-functions-after-upgrading-to-react-nati


Unknown Keybinds

What are the keybinds for the PS4 buttons. Is enter the ps4 x button. What are the other buttons? A file with the keybinds included would be nice

There is no keyboard mapping for now. You should use real gamepad connected to PC.
Duplicate of #22


vscode stuck on Initializing JS/TS language features on Apple Silicon.

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.74.0, OS: Darwin arm64 22.1.0
OS Version: Mac OS Ventura 13.0.1 (22A400) (Apple Silicon, M1 Pro)

Steps to Reproduce:

Created a React-Native Project based of typescript, and have path alias added in babel.config.js and tsconfig.json
When project opens, it shows initialising JS/TS features and disappears normally
After some time (around 10 mins while developing in code, this randomly appears and never stops).
This, stops intellisense to work and have to manually restart TS server

I have tried all the possible solutions provided in #68896 and none of them seem to work. I have tried clearing cache and re-installing vscode but issue still seems to persist.
After manually restarting ts server, this message doesn't seem to persist and works normally but after sometime again this appears
Attaching TS server logs and babel.config and tsconfig
babel.config.js
module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    [
      'module-resolver',
      {
        root: ['./src'],
        extensions: ['.ios.js', '.android.js', '.js', '.ts', '.tsx', '.json'],
        alias: {
          '@assets': './src/assets',
          '@api': './src/api',
          '@app': './src/app',
          '@components': './src/components',
          '@config': './src/config',
          '@constants': './src/constants',
          '@content': './src/content',
          '@hooks': './src/hooks',
          '@icons': './src/icons',
          '@interfaces': './src/interfaces',
          '@navigation': './src/navigation',
          '@screens': './src/screens',
          '@services': './src/services',
          '@styles': './src/styles',
          '@types': './src/types',
          '@utils': './src/utils',
        },
      },
    ],
    ['react-native-paper/babel'],
    ['optional-require'],
  ],
};

tsconfig
{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "@api/*": ["api/*"],
      "@app/*": ["app/*"],
      "@assets/*": ["assets/*"],
      "@components/*": ["components/*"],
      "@config/*": ["config/*"],
      "@constants/*": ["constants/*"],
      "@content/*": ["content/*"],
      "@hooks/*": ["hooks/*"],
      "@icons/*": ["icons/*"],
      "@interfaces/*": ["interfaces/*"],
      "@navigation/*": ["navigation/*"],
      "@screens/*": ["screens/*"],
      "@services/*": ["services/*"],
      "@styles/*": ["styles/*"],
      "@types/*": ["types/*"],
      "@utils/*": ["utils/*"]
    },
    "skipLibCheck": true
  },
  "extends"<EMAIL_ADDRESS>}

tsserver.log

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

I think you may have attached the wrong log file. Can you please try uploading it again?

Thanks. Do completions and other IntelliSense feature work when you see the initializing indicator?

Hey @mjbvz, unfortunately they don't work which this is visible


Problem with FireStikTV

Description
In frist time the application in work correctly, but when the firestick Was shutdown, at the new start up the application don’t work correctly at server Streamingcommuntiy and generate the error 403.
I find a solution to temporney fix.
Unistall and reinstall the application.
The version of the app is the last.
Provider
Streamingcommunity
Reproduction steps
Operating system
Firetv stick
Logs
No response
Please confirm the following

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] If related to a provider, I have checked the site and it works, but not the app.

@besidesa did a change on it on the new version 1.7.9, can you check it

@besidesa did a change on it on the new version 1.7.9, can you check it

not working


Ensure dependency issues are not closed incorrectly

Currently the dep checker doesnt discriminate between prs and issues so can close a pr if it looks like a duplicate of an issue
We probs want to filter out the PRs so that doesnt happen
We also may want to filter out any issues/prs that were not created by the bot

closing as dupe of #345


No GitOps updates or relative path switches while using portainer BE

I am running the free BE version for a small company and really enjoy working with portainer.
But when creating a Stack from a private github repo using my pat i do not have the options to enable GitOps updates or use relative paths for deploying preconfigured folders ...
I watched some tutorials and they all do the same but in my install (2.19.5) the switches are literally missing.
My license is also still valid.
What am i doing wrong ?

Originally posted by @JulianStremel in https://github.com/portainer/portainer/discussions/11979

Hello @JulianStremel Are you wanting to deploy a Stack or create a custom template. The screenshot above you are setting up a custom template, I just want to confirm what you are attempting to do first

Thanks for the fast response!

Inside the stacks i have all the functions i was looking for.
Please excuse my multiple support request via mail and GitHub as well.
Kind Regards


Map center input convert to string

Hi,
I'm getting this error of the google maps api:

InvalidValueError: setCenter: not a LatLng or LatLngLiteral: in property lng: not a number

Apparently even typing the variable as number the component passes the value as string
http://plnkr.co/edit/iGFgCae0eHflVLvmil7V?p=preview

use parseFloat()

Giving it type information is not going to help. TypeScript does not do any run-time conversion of your code. If you mark something is a number, but pass a string to it, it will only complain in compile time. However, plunker doesn't show and TypeScript errors to you, and your app would at the moment work with JIT mode, too. But it would break in AOT.
The problem is index.html file where you pass in strings.
<my-app lat="51.673858" lng="7.815982">Loading...</my-app>

You need to pass in numbers, or convert them to numbers in the input using a setter or intercept the inputs in some other way, such as an ngOnChanges lifecycle hook.


Bold/Italics don't work in V3.0.4

Describe the bug
Bold and Italics properties don't work on  and  elements following upgrade from 3.0.3 to 3.0.4
To Reproduce
View the text in the Snack link below.
Expected behaviour
Text "Bold" should be in bold, and text "Italics" should be in italics. Works correctly using 3.0.3, but fails on 3.0.4.
CodeSandBox/Snack link
https://snack.expo.io/GJLNRZm6L
Screenshots
V3.0.3

V3.0.4

Platform

NativeBase version 3.0.4
Device: 2020 MacBook Air (M1)
OS: MacOS 11.4
Browser: Vivaldi (Chromium Based)
Browser version: 4.0.2312.38 (Stable channel) (arm64)
React Native version: 0.63
Expo SDK version: 42
node: ??
yarn or npm: ??

Additional information
Also reproducible on Chrome on Windows

@sohcah We just pushed 3.0.5 with the fix. Thanks for reporting!


PDF generated with custom fonts is corrupt

I've tried using putOnlyUsedFonts in the jsPDF options, the html method's fontFaces manual conversion of fonts, using the provided converter, etc and any time I include the fonts, the pdf is corrupted and only visible in chrome. If I open in any other browser or pdf software, the text either doesn't show up (Safari) or the pdf refuses to load altogether (Acrobat DC, error 135).
This is an issue in 2.3.1 and the master branch (as of this posting).
I would include all the code samples but it's replicable with simply this:
const fonts = [
  {
    family: "Nunito Sans",
    src: [
      {
        url: `${process.env.GATSBY_SITE_URL}/NunitoSans-Bold.ttf`,
        format: "truetype",
      },
    ],
    style: "normal",
    weight: 600,
  },
  {
    family: "Nunito Sans",
    src: [
      {
        url: `${process.env.GATSBY_SITE_URL}/NunitoSans-BoldItalic.ttf`,
        format: "truetype",
      },
    ],
    style: "italic",
    weight: 600,
  },
  {
    family: "Nunito Sans",
    src: [
      {
        url: `${process.env.GATSBY_SITE_URL}/NunitoSans-Italic.ttf`,
        format: "truetype",
      },
    ],
    style: "italic",
    weight: 400,
  },
  {
    family: "Nunito Sans",
    src: [
      {
        url: `${process.env.GATSBY_SITE_URL}/NunitoSans-Regular.ttf`,
        format: "truetype",
      },
    ],
    style: "normal",
    weight: 400,
  },
];

const doc = new jsPDF();
const html = document.getElementById("someEl").innerHTML;
doc.html(html, {
  fontFaces: fonts,
  callback: () => {
    doc.save("demo.pdf");
  },
  x: 0,
  y: 0,
});

It works when removing the space from the font name.

@reilnuud thanks for the comment. spent few hours trying to figure out this issue until i came across ur issue here. it would be nice to add this as a 1 liner in custom font generator or readme...

@mlakmal this issue will be fixed with the upcoming release and you will be able to have font names with spaces ;)


I want to easily connect to a token when starting the dApp

User Story
As Chris I want to easily connect to a token when starting the dApp if I am not already connected to one
Acceptance criteria
Tasks

Issue quite old and out of context


Allow to only generate the toolchain

When running ngx update it is often desirable to only update the toolchain and dependencies but leave the app intact (as it was most likely modified).
A new --only-tools (or -ot) option should be added to use generate only the tooling part, whether using new or update command. This option could also be forced by an add-on, if one add-on wants to take care of the templating part (an info message should be issues in this case).
This would also be useful for other scenarios, like upgrading an existing non-ngX-Rocket project to use its toolchain.
To filter out unwanted files, a logic similar to a .gitignore file should be used using https://github.com/kaelzhang/node-ignore.
Tasks:

[ ] Implement .toolsignore file support in @ngx-rocket/core:

default filter is * to enable backward compatibility in addons
filter can be configured either by a toolsFilter array (fed to node-ignore add function) in Generator.make or by adding a .toolsignore file aside the index.js file of the generator

[ ] add --only-tools / -ot option to generator-ngx-rocket: if enabled, the core should filter files automatically during generation
[ ] write doc in core to explain the usage, configuration and behavior
[ ] update officials add-ons with .toolsignore
[ ] update generator-ngx-rocket-addon and addon-example to include a default .toolsignore file with the default * filter and a comment to reference the doc
[ ] add tools, docs and dependency-related files to .toolsignore file
[ ] (optional sugar) allow package.json file to be merged with existing one when running in update mode

This seems related to my #175 . My particular use case is :
1 - ngx new a project
2 - add local features (not with add-ons)
3 - rocket updates the base template as maintenance (new version of Angular etc...). This affects things like core and the toolchain. There is a new release of generator-ngx-rocket.
4 - currently ngx-update will not pull new updates down.
Will this feature address this? Am I missing something?
I know this is a down side of generated project templates. The starter-kit seems to have multiple branches/feature sets. Is it maintained with ngx cli or manually?
Thanks.

4 - currently ngx update will not pull new updates down.

When the new generator version is out, this will work.
Even without being able to generate only the toolchain, the update will work as I indicated in #175, but it will also overwrite templates files (which is not generally wanted) so you'll have to revert them.
This goal of this feature is to simplify the update workflow by keeping the "merging changes" task to a minimum.
As for the starter-kit repo, the master and cordova/ionic branches are generated automatically on new generator-ngx-rocket releases. The other branches are used either when working on new generator features or for bug reports demonstration on angular/ionic/etc.

Got it. Thx.


Update django-allauth lib version

Closes https://github.com/inventree/InvenTree/issues/4139

@matmair I'd love that! The current process is a little complicated imho.

Would it be possible to include this change into a point release?

@gueldenstone just released 0.9.2

@matmair I'd love that! The current process is a little complicated imho.

the feature is mainly meant for business/enterprise users, they can mostly handle 4 steps. You can also set up everything in the config, that is just very inflexible.


[feature] Shell completion

Can it provide completions for common shells? TIA!

I found https://github.com/zunit-zsh/zunit/blob/master/zunit.zsh-completion


logo

I want to push 3 commits just please check it ! And please merge it !
Thanks
On Sun, Oct 16, 2022, 5:46 PM vercel[bot] @.***> wrote:

The latest updates on your projects. Learn more about Vercel for Git ↗
https://vercel.link/github-learn-more
Name Status Preview Updated
resume-maker ✅ Ready (Inspect
https://vercel.com/killerraj369/resume-maker/2j3hYT2NEJBPYw1odyZWh7AaMDqU
) Visit Preview
https://resume-maker-git-fork-aakash1233333-main-killerraj369.vercel.app Oct
16, 2022 at 0:16AM (UTC)
—
Reply to this email directly, view it on GitHub
https://github.com/killerraj369/Resume-Maker/pull/48#issuecomment-1279957987,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A26MIIGNGWRW5ASN7VTPE2DWDPW2JANCNFSM6AAAAAARGKQJPI
.
You are receiving this because you authored the thread.Message ID:
@.***>

This branch has conflicts that must be resolved
I am closing this pull request. Make a new fork and then change the logo with a good one.
I will definitely merge it then

I have resolved the issue if you are saying I may do it again with new logo
.
On Sun, Oct 16, 2022, 5:58 PM Vaibhav Raj @.***> wrote:

Closed #48 https://github.com/killerraj369/Resume-Maker/pull/48.
—
Reply to this email directly, view it on GitHub
https://github.com/killerraj369/Resume-Maker/pull/48#event-7596315095,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A26MIIFQDPJYHYZGL37BPBDWDPYF3ANCNFSM6AAAAAARGKQJPI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Now please check
Thanks for answering my query really appreciate it
On Sun, Oct 16, 2022, 9:22 PM Vaibhav Raj @.***> wrote:

Reopened #48 https://github.com/killerraj369/Resume-Maker/pull/48.
—
Reply to this email directly, view it on GitHub
https://github.com/killerraj369/Resume-Maker/pull/48#event-7596559579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A26MIIEJLVWNSFF2E3TFJKLWDQQD7ANCNFSM6AAAAAARGKQJPI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Now please check all the conflicts resolved added 5 new commits
On Sun, Oct 16, 2022, 9:25 PM Aakash Gandhi @.***>
wrote:

Now please check
Thanks for answering my query really appreciate it
On Sun, Oct 16, 2022, 9:22 PM Vaibhav Raj @.***>
wrote:

Reopened #48 https://github.com/killerraj369/Resume-Maker/pull/48.
—
Reply to this email directly, view it on GitHub
https://github.com/killerraj369/Resume-Maker/pull/48#event-7596559579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A26MIIEJLVWNSFF2E3TFJKLWDQQD7ANCNFSM6AAAAAARGKQJPI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Please check it soon and tell me
On Mon, Oct 17, 2022, 12:02 AM Aakash Gandhi @.***>
wrote:

Now please check all the conflicts resolved added 5 new commits
On Sun, Oct 16, 2022, 9:25 PM Aakash Gandhi @.***>
wrote:

Now please check
Thanks for answering my query really appreciate it
On Sun, Oct 16, 2022, 9:22 PM Vaibhav Raj @.***>
wrote:

Reopened #48 https://github.com/killerraj369/Resume-Maker/pull/48.
—
Reply to this email directly, view it on GitHub
https://github.com/killerraj369/Resume-Maker/pull/48#event-7596559579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A26MIIEJLVWNSFF2E3TFJKLWDQQD7ANCNFSM6AAAAAARGKQJPI
.
You are receiving this because you authored the thread.Message ID:
@.***>


Added Twitter Handle

Related Issue

Info about Issue or bug

Closes: #1818
Describe the changes you've made
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] New and existing unit tests pass locally with my changes.

Screenshots
Put any screenshot(s) of the project here.

Hey @Vishal-raj-1
Please Review it


[WIP] Try to keep the number of jobs as high as possible

Remove this paragraph
Please have a look at our developer documentation before submitting your Pull Request.
https://scons.org/guidelines.html
Contributor Checklist:

[ ] I have created a new test or updated the unit tests to cover the new/changed functionality.
[ ] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[ ] I have updated the appropriate documentation

@bdbaddog - Per discussions from a month or so ago, here is a WIP PR about some ideas I had for a different way to schedule jobs.
This came from a long ago discussion where I'd observed something of a sawtooth pattern of job execution. In the existing implementation of Job.py, we queue up N active jobs, and then reap all the results. As a result, the number of concurrent jobs rises towards N until the loop can't find more work, then falls back to zero as we consume all the enqueued results, then climbs back towards N, etc.
One consequence of this is that if you have a distributed compile cluster (icecream, etc.), and you build with a very large N, you can actually spend a lot of time trying to build up to N jobs, even though SCons can't actually drive that much concurrency due to the latency of finding the next task. Then, concurrency drops to zero as we reap perhaps several hundred pending jobs.
Had we actually reaped some of those jobs that we had already started, this might have been better, as it would have unblocked other jobs, potentially allowing us to better exploit the available concurrency.
The approach here works differently. It enqueues just one job and then goes to reap the results. If results are available we process all of them, otherwise, we go back to enqueueing. If we can't find any new jobs, or if we have as many jobs as we are allowed, then we do a blocking get instead, since we either must consume results to unblock additional work, or are prohibited from executing any more.
The overall result is that when the -j argument is something we can actually achieve, we avoid the sawtooth pattern because we toggle back and forth between enqueueing and dequeuing jobs. With some printf debugging, I find that the number of executing jobs is usually very close to the -j value, with out sudden drop offs towards zero.
One consequence of this model is that if you request far more jobs than you can actually execute, you may never actually have that many jobs executing. In other words, the -j value becomes aspirational. For me, building with -j1000 on a machine with 8 cores never gets past 25 jobs in flight.

I was going to say: I bet you break some of the more fragile tests.  This is what Travis thinks:
8/1202 (0.67%) /home/travis/virtualenv/python2.7.14/bin/python -tt src/engine/SCons/JobTests.py
F......
======================================================================
FAIL: runTest (__main__.ParallelTestCase)
test parallel jobs
----------------------------------------------------------------------
Traceback (most recent call last):
  File "src/engine/SCons/JobTests.py", line 315, in runTest
    assert ThreadPoolCallList in expect, ThreadPoolCallList
AssertionError: ['put(1)', 'put(2)', 'put(3)']

@mwichmann - Oh for sure. I've made zero efforts to get the tests running. I actually implemented htis directly inside the vendored copy of SCons inside MongoDB and just copied it into my SCons clone and made a PR. I didn't see much value in adjusting the tests unless their is some agreement that this is interesting. Then I'll be happy to work on them.

This sounds like a generally sensible approach, given that I don't actually know what's going on under the covers.  The more "normal" model for concurrent tasks is to fill up a queue, and then have workers pull things off the queue as they're ready for more work - but I gather scons doesn't work like that? The concept of this change seems to get a bit closer to that, where finished jobs are reaped closer to when they're done, clearing space for new work more quickly - which can only be a good thing?

@bdbaddog - I've updated this to fix the failing test.

I saw your note last night about being more aggressive in collecting tasks instead of blocking. To me, that is where the real gains will happen.
I say that because I don't agree with the underlying premise that the Parallel job scheduler has a sawtooth behavior. If that was true, it would indeed be a catastrophic scheduler problem where one long job can hurt build times in a disproportionate manner. After all, it would be very bad if we had room for 16 jobs but we were sitting with only 1 active job and waiting for that last job to be done instead of enqueueing15 more jobs.
This check https://github.com/SCons/scons/blob/master/src/engine/SCons/Job.py#L425 prevents sawtooth behavior. By checking whether resultsQueue is empty, we effectively break out of the loop when there are no more job results available. That's exactly what we want. This loop says "I will process all results until we don't have any results left." That could be all N results if they are all done, but usually it will be 1 or 2 results and then we will go back to gathering more tasks.

I made a plot (using GNU graph, so sorry it isn't prettier).

I created this by applying the following diff to jobs.py:
diff --git a/src/third_party/scons-3.1.2/scons-local-3.1.2/SCons/Job.py b/src/third_party/scons-3.1.2/scons-local-3.1.2/SCons/Job.py
index 214a0c9fb8..c5009ddbbc 100644
--- a/src/third_party/scons-3.1.2/scons-local-3.1.2/SCons/Job.py
+++ b/src/third_party/scons-3.1.2/scons-local-3.1.2/SCons/Job.py
@@ -35,6 +35,7 @@ import SCons.compat

 import os
 import signal
+import sys

 import SCons.Errors

@@ -394,6 +395,7 @@ else:
                             # dispatch task
                             self.tp.put(task)
                             jobs = jobs + 1
+                            print('XXX JOBS ', jobs, file=sys.stderr)
                         else:
                             task.executed()
                             task.postprocess()
@@ -405,6 +407,7 @@ else:
                 while True:
                     task, ok = self.tp.get()
                     jobs = jobs - 1
+                    print('XXX JOBS ', jobs, file=sys.stderr)

                     if ok:
                         task.executed()

I then ran our build as follows:
/usr/bin/time /opt/mongodbtoolchain/v3/bin/python3 buildscripts/scons.py ... -j 300 install-core 2>baseline.log
Then plotted the results with:
graph -T PNG <(grep JOBS baseline.log  | awk '{ print NR, $3 }') > plot.png

Actually, that first graph got cut off too early due to some noise from compiler warnings that also went to stdout. Here is a complete graph of the baseline run:

And here is a plot of the run with the currently proposed changes in this CR:

This one doesn't implement your observation about having the SCons main thread never block. I'll post updated graphs when I have that working to my satisfaction.
In any event @grossag, I think it is clear that we agree that the scheduler can be better than it currently is.

@acmorrow - What's the status on this?

@acmorrow - any updates on this?

@acmorrow - any updates on this?

@bdbaddog - I've rebased this and force pushed it so it is modern w.r.t. the tree because I'm interested in this work again. I know that @grossag has a competing approach and rewritten task scheduler, but perhaps we can look into merging this as an intermediate state until that work supplants it? It does seem to result in meaningfully better behavior for the MongoDB build. Effectively, trying so hard in the initial loop to find executable jobs up to the concurrency limit doesn't work well when the concurrency limit is very high, for things like icecream builds.

I pushed another commit here, because I had an idea. One of my concerns with this was always that you might not achieve as much parallelism as you could, because it would only ever try to add one job on each pass through. You could get locked into a steady state where each cycle you added one and retired one, but you might have been able to add more.
The second commit attempts to address that concern by not just bailing on the "enqueue" phase of the loop after discovering one task that needs execution, but by attempting to enqueue up to as many jobs were retired on the prior round of job retirement, plus one for growth.
Once maybe nice feature of this is that you are somewhat protected from running with -j1000 or similar on a local build, because your local machine will never be retiring 1000 jobs at once, so you will never try to enqueue that many. Anyway, something to think about.

@bdbaddog - I ran some A/B tests of this in our icecream cluster last night. It is a little faster, but not dramatically so. While watching the behavior of the build cluster in the icecream monitor, it looks to me like the way retired works isn't quite good yet: it is too conservative in ramping up, and too aggressive in ramping back down. I'd like to flip that: more aggressive in ramping up, less aggressive in ramping down. I'm going to see if I can come up with something simple that behaves closer to what I had in mind and re-run my performance experiments.


646 Provide foldl+r( [in,out] Matrix, [in] Matrix, Monoid )

Closes #210

This one needs a bit of re-checking re other recent changes (it's an older MR but should be fully functional). It provides union semantics (intersection semantics are in another MR


[FLINK-27933][coordination] OperationResult is serializable

Based on #19968 because this PR changes some timings that trigger FLINK-27972.
With this PR the OperationResult is serializable, as well as the contained result.
Additionally the switch to force serialization, introduced in FLINK-26780, now also applies to return values (and not just method arguments). Several problematic cases, mostly in tests, were also fixed.

I documented the exceptions in the commit message:
- allow tests to opt-out of serializability force
- never force serialization in AkkaRpcActorOversizedResponseMessageTest, because it affected the payload size
- DispatcherTest no longer relies on retrieving the same object instance via RPC
- ResourceManager#requestTaskExecutorThreadInfoGateway is just not serializable; see FLINK-27954
- ClassLoaderITCase wrongly assumed that serialization occurs

I'll add a comment to the AkkaRpcActorOversizedResponseMessageTest.

@flinkbot run azure


Show own outputs on PSBT signing window

This fixes #732 .
It allows you to identify your own addresses in the outputs of a transaction in the PSBT signing window. This enables easy identification of change outputs, and prevents certain attacks where someone (co-signers of a multisig, or others ) might trick you into signing a transaction while they are stealing the change, since prior to this modification there was no easy way of knowing this.
The identification of the output is similar to the way this is done in the transaction details window.
A sample output is :

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.

ACK 4da243ba023f2987e97fc62886c6ebc70d6ee50a


Docblockr wrap lines error

Uncaught TypeError: Cannot read property '1' of null
/Users/ilanb/.atom/packages/docblockr/lib/docblockr-worker.js:561

@NikhilKalige is this going to be fixed?

With latest atom and docblocker version seems already resolved. Can you confirm there's no more problem about this plz ?

still an issue for me.

/**
 * Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often! Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often!
 * Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often! Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often!
 * Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often! Keeping packages up to date helps keep things speedy and breakage to a minimum. Upgrade often!
 */

Docblockr: Wrap Lines
/**
 * Keeping packages up to date helps keep things speedy and breakage to a
 * minimum. Upgrade often! Keeping packages up to date helps keep things
 * speedy and breakage to a minimum. Upgrade often! Keeping packages up to
 * date helps keep things speedy and breakage to a minimum. Upgrade often!
 * Keeping packages up to date helps keep things speedy and breakage to a
 * minimum. Upgrade often! Keeping packages up to date helps keep things
 * speedy and breakage to a minimum. Upgrade often! Keeping packages up to
 * date helps keep things speedy and breakage to a minimum. Upgrade often!
 */

Can you put up an example?

I get an error when I try to wrap a multiline decorated comment. That case isn't handled.

Ok confirmed here, started to work on this one not so trivial i'll have another look later.
For now i spotted some exp which need rework to get this working for multiline:
in docblockr-worker.js:
line 556:
_col = _text.search(/^\s*\*(\/)/);
// should become
_col = _text.search(/^\s*\*+(\/)/);

line 577 is not made to work with multiline comments either.
finally even getting the two previously mentioned ok it still need to reduce first and ending decoration line length which i had no time to get a look in.
will check again another time.

This seems like a pretty big issue - still experiencing it.

Fixed by #222. Released with version v0.8.7.


Make server side rendering optional

In some cases server side rendering might not be needed. For example if we have in-house web application, that is only accessible from intranet (there is no need for SEO, all users have JS enabled and high speed connection).
My understanding is that I can turn off server side rendering by commenting out following line
<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

Is it enough to just turn it off? Would removal of server-side rendering related code and dependencies speedup webpack build?

All features do work without it and nothing will break when you disable it.
We removed it some time ago for a project we are working on and experienced no issues doing so.
To remove it change your app tag as follows, dont remove it completely:
<app>Loading...</app>

@EduardTheThird is correct that to disable server-side prerendering, you just need to remove the asp-prerender-module attribute.

Would removal of server-side rendering related code and dependencies speedup webpack build?

Yes, slightly. You can disable building the server-side bundle by editing your webpack.config.js and webpack.config.vendor.js files. In both files, near the end of the file, change this line:
return [clientBundleConfig, serverBundleConfig];

... to this:
return [clientBundleConfig];

... so that Webpack only builds the client-side bundles.

Thank you

Handy tip, thank you.


Enabling k3s secret encryption

Description

This PR enables k3s secret encryption by default during installation/upgrade.

GitHub Issues
List the GitHub issues impacted by this PR:

GitHub Issue #

https://github.com/dell/csm/issues/774

Checklist:

[ x ] I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues
[ x ] I have verified that new and existing unit tests pass locally with my changes
[ x ] I have not allowed coverage numbers to degenerate
[ ] I have maintained at least 90% code coverage
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Backward compatibility is not broken

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

run e2e test

run e2e test


gaminglive.tv plugin broken

Due to gaminglive.tv change from alpha to beta stage the URL format has changed.

This is fixed with #721.
There has just not been a new release of Livestreamer that includes said fix. If you are using Windows you can try the nightly builds.


Binding Extension Errors in OOP Languages

For example, in node:
https://github.com/Azure-Samples/azure-serverless-workshop-team-assistant/tree/master/5-voting-service
If you create a CosmoDB binding and fail to install the extension, the function will still execute without errors. We need to raise the error or a warning if unexpected items are found in context.bindings

@fabiocav, @MikeStall  - isn't this a problem for all languages, even C#? I understand dotnet assemblies probably have them bundled, but C# script would have some issues here, right?


Oopsy holminster

This is my first pass at this, per #569. It's not perfect, but given that I ran this as a trust I didn't completely test Fierce Beating to determine which component is which. (My untested assumption is that one element is the actual fist contact, and the other two are the Exaflare markers. Cat O' Nine Tails is the rear attack.)
I'm not sure whether it lines up with your philosophy, but I put Taphephobia (the purple spread circles) as a failure given that it's likely not just going to kill the player but their teammate as well.
Flagellation might also need to be marked as a failure, but given that it's a faster mechanic and more dependent on teammates, I felt it was best to leave it as a warning.

Thanks!  Much appreciated.  :)


Fixed a bug when using pagination

array_filter() expects parameter 1 to be array, object given [2]
triggered in file \plugins\stijnFlipper\philePaginator\Classes\Plugin.php on line 114 .

Sorry for the insanely late response. It had been hectic for me in the last year at the uni. I'm glad you could fix it before I could have a look into. :smile:


Return senders from /v0/api/getSenders endpoint

Example req/res:
❯ curl -i http://localhost:1234/v0/api/getSenders -H 'x-oasis-insecure-auth: 1' -H 'x-oasis-session-k
ey: whatever'
HTTP/1.1 200 OK
Vary: Origin
X-Oasis-Trace-Id: -1
Date: Fri, 30 Oct 2020 11:35:04 GMT
Content-Length: 61
Content-Type: text/plain; charset=utf-8

{"addresses":["0xB8b3666d8fEa887D97Ab54f571B8E5020c5c8b58"]}

This endpoint will be used when creating identities with the gateway's senders as trusted.

directly using "the ur-wallet"

I was hoping we could use several of these. 0xfffff.... >> 4 is still effectively infinity, though.


[MM-23161] Refactor loadRolesIfNeeded

Summary
Note: PR for mobile-only state branch.
Refactor usage of loadRolesIfNecessary to not consider "pending" roles any more. Not used by mobile app.
Ticket Link
MM-23161

@migbot the base branch is failing tests, do we care at this point ?


Ability to browse a project on Progress & Rankings pages without adding it to "My Projects" first

PR #2773

@dwalizer Testing feedback - looks like the Preview button links to administrative page but should link to project's Progress & Ranking page

:+1:


MISSING CODE_OF_CONDUCT.md file

A Code_Of_Conduct.md file outlines the contribution guidelines, coding standards, and procedures for submitting pull requests, thus streamlining the contribution process and ensuring consistency across contributions. It sets clear guidelines for expected behavior and helps ensure that all contributors feel safe and respected.
The repository currently lacks a CODE_OF_CONDUCT.md file which is an important resource for fostering a welcoming and inclusive environment within our community.
@Muskansahuincredible   You can assign this issue to me as I'm working under GSSoC'24 as a contributor. I can add a code of conduct to this project.
Thanks

I would like to work on this issue. Please assign it to me.


Drawer's canvas strokes are smoother than viewer's

The brush strokes on the drawer's canvas appear to be anti-aliased and smoother, whereas the brush strokes on players viewing the drawing are rough. Anyway we can make the viewer's canvas strokes render the same way as the drawer?

Resolved by commit 076d84d90e43e6597c00af585b41d93a939c7125
The bug was caused by the other clients updating the canvas constantly with the array of strokes, causing them to stack the entire drawing on top repeatedly. I fixed this by clearing the canvas before every update. There was also some positional inaccuracy due to floating point inaccuracy, which I fixed by rounding the positions.


Assets not syncing.

Not sure if this is a bug or simply not a feature, but Assets don't sync. Is there a solution for this?
Thanks!

Hmm. Bummer, I would think it would.
I'll put it on my list to check out.
Out of curiosity - do other element fields (Entries, Users, etc) sync, or is it specifically Assets?

Yup, every other field I've tested is syncing correctly.
I'm hoping to dive into it more this week as well and will be sure to share any findings.

@timkelty I've come up with a solution but would appreciate your feedback before I implement it into a live site.
In the LocaleSyncService.php file I added the following code to the updateElement function between line 125 and 126.

if ($field instanceof Fieldmodel) {
     if($field->type == 'Assets') {
          craft()->relations->saveRelations($field, $element, $this->_element->content->$fieldHandle);
     }
}

I came to this conclusion as the craft saveContent function does not handle relationships (as far as I can tell).
Of what you know about craft, do you see any pitfalls about implementing this code?
Thanks!

Taking a look this morning, thanks for your patience.

@timkelty that update has worked. Thanks for the improvement!
Still getting a notice in the admin that the plugin has an update.

@BrandonJamesBorders ah, shoot.
Upgrade to 1.5.1 and that should be taken care of.


Support boolean Aggregate Result Field

Is your feature request related to a problem? Please describe.
The Aggregate Result Field is a checkbox Account.Has_Active_Contacts__c. It would be nice to aggregate whether a child record which matches the filter criteria exists or not.
Describe the solution you'd like
If the COUNT of the child records is greater than zero, return true.
Describe alternatives you've considered
Alternatively, I could add a number field to store the aggregation and use a formula field to test for values greater than zero. But, if there is more than one of these aggregations on the object, there could be a lot of fields.
Additional context

Thanks @hackbac  for raising this idea. 👍

Figured out a workaround for this which seems to be an improvement. Added a checkbox formula on the child object called True__c which is always True. Then you can use the parent object's checkbox in the Aggregate Result Field if you select an Aggregate Operation like "First". Seems to work fine.
It still requires adding an extra field, but only one extra on the child object instead of two per rollup on the parent object.

Hi @sd5000,
do you know whether the workaround with the formula checkbox on child object is still working?
I am not able to get this working.


Window is recomposed 2 times at the start of the application

Compose 1.4.0-alpha01-dev985, Windows
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.ui.window.singleWindowApplication

fun main() = singleWindowApplication {
    BoxWithConstraints {
        println(maxWidth)
    }
}

The window is recomposed 2 times, and the first time we have 0x0 size of the window.
Actual output:
0.0.dp
786.0.dp

Expected output:
786.0.dp

Isn't reproduced in 1.4.0-alpa01-dev984
This behavior can break certain cases. For example, when we need to check the initial size of the window, we can write something like this:
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.ui.window.singleWindowApplication

fun main() = singleWindowApplication {
    BoxWithConstraints {
        val initialWidth = remember { it.maxWidth }
    }
}

(see, for example "set the initial zoom by the screen/window" size here

See also https://kotlinlang.slack.com/archives/C01D6HTPATV/p1680280112367149

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


WoT Projects Visibility

Add a section or visual indicator to display Web of Trust (WoT) projects prominently on the explore page.

To do this we need to support marking projects with Nostr badges
https://github.com/nostr-protocol/nips/blob/master/58.md


added support for typespec lsp

Describe your changes

Hey,
i added the typespec lsp pkg.
the lsp is bundled with the typespec compiler so it will install both.
The LSP bin is tsp-server.
Issue ticket number and link

Checklist before requesting a review

[ ] I have successfully tested installation of the package.
[ ] I have successfully tested the package after installation.

Screenshots

Two minds think alike xD
I already made a pr for tsp-server

Two minds think alike xD I already made a pr for tsp-server

think you was faster

Thanks for the PR! Added in #5862


debug: analyzer: fix incorrect cpu cycle counts

The existing CPU cycle counts do not handle unsigned integer rollover
when taking the diff from previous cycles.
The existing cycles do not reset for the next analyzer interval.
This causes excessive accumulation of execution cycles and does not
provide an accurate run-time usage statistic.
This patch addresses these bugs by implementing runtime_stats_clear
functions for use by the thread analyser, and calculates the difference
from last_switched_cycles with the rollover case.
Fixes #37521
Signed-off-by: Arien Judge<EMAIL_ADDRESS>

@arienjudge - please rebase off of main and resolve conflicts.


Fix #1486

terminal.ReadPassword requires an int.
Passing a string will make the building process fail on Windows.
After changing the type, I ran make watch and it compiled successfully.
Checklist when submitting a final (!draft) PR

[x] Commits are tidied up, squashed if needed and follow guidelines in CONTRIBUTING.md
[x] Code builds
[x] All existing tests pass
[ ] All new critical code is covered by tests
[x] PR is linked to the relevant issue(s)
[x] Rebased with the target branch

Hi @moalamri , thanks for the fix.
Can you please use rebase strategy to update your branch and squash everything into 1 commit? We'd like to keep history clean that way, thank you.

👍


Updates to code generator patterns from Manish

Update name for attribution
Include reference to 'json' in data classes
Move as_json and to_json methods to correct place in class
Reintroduce 'awrence' on client objects
Define all parameters but name them as snake_case
Convert body object to json with camelcase from the client object
Fix initialize vs self.new in API
Accurately convert empty query parameters to nil

Couple of changes left -

to_json in each model file should be like so - "[#{as_json(*options).to_json(*options)}]"
remove body.to_camelback_keys.to_json in Create API calls of every client file
No need for require 'awrence' in the lockstep_api.rb file

Updated!  Does this look right now?

Merging as per review in email


Need more ressources? :)

I am one of the founders of LAION ( https://laion.ai ) and we are very interested in getting retrieval augmented transformers to work.
If you would like to train a bigger model, let me know.
My discord ID is spirit-from-germany#1488

Nice to meet you. I've sent you a friend request on discord


RSI and ATR indicators make the price chart too small

When adding one of these indicators the chart yAxes all get set to the same height. Ideally the price chart should remain larger than the volume chart.

@svk31 should we table all of these and just wait for the react charts?

+1

Yes I was thinking the same thing.

OK, I'm going to close all issues related to charting bugs. Which Milestone should we target for the charting updates?


Add images from govuk elements

This PR adds the remaining image from govuk elements which is used by the govuk elements Sass files.

Add separator images for the breadcrumb divider (these were added in #236).
Add a left pointing arrow image, as a fallback for the back link

This PR adds the left pointing arrow image, which is only used as a fallback for IE8 and below.

:+1:


mkcl: fix

A recent glibc update removed the deprecated/non-standard
  const char *const sys_siglist[];

array which contained textual descriptions of the various signal codes.
The attached patch is merged to master but has not yet been released.

Motivation for this change
mkcl is broken.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] 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/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[x] Fits CONTRIBUTING.md.

/marvin opt-in
/status needs_reviewer

Result of nixpkgs-review pr 132014 run on x86_64-linux 1

1 package built:

mkcl

Result of nixpkgs-review pr 132014 at 1060845f run on aarch64-linux 1

1 package failed to build:

mkcl

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.


Update docs for 0.5.0

0.5.0 is now on Maven Central, but I didn't get a chance to finish the release notes or update the documentation today.

Fixed in #360 and here.


[New Feature]: System Recovery Procedures

Checked for duplicates
Yes - I've already checked
Alternatives considered
Yes - and alternatives don't suffice
Related problems
N/A
Describe the feature request
@LucaCinquini mentioned the need for ensuring we have a set of procedures for system recovery of the SDS.
The key items that need to be included are:

Shutting down a system in the case of a severe problem
Starting a stopped / paused system at the point of stopped processing
Examining logs for diagnosis purposes
Redeploying to a fresh cluster if needed

I think this procedure is not about forensic on the old system (which will probably be a responsibility of the JPL security team) but rather about deploying a new cluster (in the Ops venue?) and restarting processing. As such, key elements are:
o Restart forward processing right away
o Identify the missing data gap
o Execute a script to resubmit processing for those jobs that have been missed

Thanks for the comments in clarification here @LucaCinquini. Will share a draft of this soon to get this squared away.

Closing this ticket as the task has been completed.


Agent update improve [TESTING]

We need to discuss.  I think disabling updates needs more work than this to be viable (I think there's service work).


How to set OPENSSL_DISABLE_OLD_DES_SUPPORT when doing ./Configure ?

how to "#define OPENSSL_DISABLE_OLD_DES_SUPPORT " in opensslconf.h , when doing ./Configure ?

./Configure whateverargs -DOPENSSL_DISABLE_OLD_DES_SUPPORT

./Configure whateverargs -DOPENSSL_DISABLE_OLD_DES_SUPPORT

this does not work.   just cause compile error :
gcc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_DISABLE_OLD_DES_SUPPORT -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o des_old.o des_old.c

des_old.c:86:33: error: unknown type name '_ossl_old_des_cblock'
 void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,
                                 ^
des_old.c:87:33: error: unknown type name '_ossl_old_des_cblock'
                                 _ossl_old_des_cblock *output,
                                 ^
des_old.c:88:33: error: unknown type name 'des_key_schedule'
                                 des_key_schedule ks1, des_key_schedule ks2,
                                 ^

Ah...  I'd forgotten how it was designed.  As I recall it, it's designed for applications that use OpenSSL, to basically do this:
#define OPENSSL_DISABLE_OLD_DES_SUPPORT
#include <openssl/des.h>

In 1.1.0, the old DES code was removed in February of 2015 and that macro does nothing BTW.
No matter what you do, the code is still there in 1.0.2, but as @levitte says, if you use the define in your application than you do not get the declarations.

ok , is see.  thanks .


#1 Change buffer to be used like a ring buffer.

While using ring buffer one for loop is less to execute which will increase the performance. Downside is that code is much more complex.

Amazing, thank you!


Why can't I see the icon on the status bar??

It must be simple ..but I am missing it . The status line showing powerline fine ...but icons are missing ...not showing.

Hello @unixbhaskar 👋
What icons are you talking about?
Can you please give details?

what OS are you running?
what's the terminal emulator?
what's the shell?
can you take a screenshot?

The animated gif has been recorded on macOS so the battery and lightning bolt "icons" are emojis.

Hi,
I am trying it on across different Linux distros. The terminal is "st" . The shell is "bash" .
Well, you can have a look at the picture here :
https://i.imgur.com/XjVs3rx.png

IMHO it's related to your font setup

With a recent version of bash, with the Powerline font installed properly, then the following should print the right triangle symbol:
$ printf '%b' '\uE0B0'


[Bug]: Build is complete without exiting the terminal[exigency!!!]

System Info
System:
OS: macOS 14.4.1
CPU: (12) arm64 Apple M2 Pro
Memory: 398.56 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v18.17.1/bin/yarn
npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm
pnpm: 9.0.4 - /usr/local/bin/pnpm
Browsers:
Chrome: 125.0.6422.113
Safari: 17.4.1
Details
    "@rspack/cli": "^0.7.0",
    "@rspack/core": "^0.7.0",
    "@rspack/plugin-react-refresh": "^0.7.0",

Build is complete without exiting the terminal。
Reproduce link
https://www.rspack.dev/zh/blog/announcing-0-7
No response
Reproduce Steps
Expectation: Automatically exit terminal after build

It is found that this configuration effect causes the command line to not exit automatically.
Could be a bug
{
        test: /\.s[ac]ss$/i,
        use: [
          {
            loader: 'sass-loader',
            options: {
              outputStyle: 'expanded',
              api: 'modern-compiler',
              implementation: require.resolve('sass-embedded'),
            },
          },
        ],
        type: 'css/module',
      },

cc @chenjiahan

please provide a reproduction

It is a bug of @rspack/cli and should be fixed in https://github.com/web-infra-dev/rspack/pull/6835.
You can also remove api: 'modern-compiler' from sass-loader to fix this before Rspack releasing a new version.


change aspect ratio

Given that these are maps, the aspect ratio should default to 1.
Also a minor change to the syntax in the plot.jl file, not sure what you think here.

Your change would set the aspect ratio to 1 if no aspect ratio is specified, is that correct? If so, yes, I fully agree with this.

Yes exactly, it just adjusts the default


File processing caching

Goal
Speed up build time by keeping a cache of files and only updating ones that have been changed since last build.
Requirements

[ ] Find a way to store the information about the last_updated time for files
[ ] Hook into the initial file list system so that it is widdled down to only files that have been updated since last build
[ ] Add build --clean flag to ignore the cache and rebuild all files

Suggested time-based implementation
import os
import time
import datetime

last_updated_time = os.path.getmtime("example-current.md")
ctime_last_updated = time.ctime(last_updated_time )
datetime_last_updated = datetime.datetime.strptime(ctime_last_updated , "%a %b %d %H:%M:%S %Y")

More robust implementation
Cache file

A hash of every template file (since if someone changes a template any content that uses that template automatically needs to be re-rendered)
A hash and the content of every user created content file ( To check if individual pieces of content users created has been changed)
A hash of all the hashes of each piece of content in the folder (allows you to check an entire content folder for any changes in 1 step)

i.e.
{
    "templates":{
        "index.jinja":"<hash here>"
    },

    "content":{

        "folders":{

            "education":{
                "hash":"<hash here>",
                "files":{
                    "example.md":"<hash here>"
                }
            }

        }
    }

}

Processing cache file

If there is no cache file do all the rendering and then generate a new cache file
If a cache file exists:

Check if any template files have been changed, and if they have re-render all the content that uses the template file, then update any of the stored hashes for that content in the cache file
All the content for the site is categorized by folders (see the content folder layout here), so loop through each folder hash and:

compare the hash of the entire folder contents with the stored hash and then if they differ go to step 3, if they are the same then go to next folder since nothing has been changed

If the folder caches differ step into the folder and iterate file hashes to determine which files need to be re-rendered and re-render them, then update the cache file with the new content

Read the new/updated cache file and spit out all the output files

This process will not work for most of the content in a site. This may be possible with blog posts if the schema is kept very rigid, otherwise this will introduce too many bugs because there's no way to tell which pieces of state each template has access to.


Serialization of F# Map

Wire appears to have a problem to serialize a F# Record that contains a Map. For example:
F#
type RecordWithString = {Name:string}
type RecordWithMap = {SomeMap: Map<int,string>}
let createRecordWithMap = {SomeMap = Map.empty }

C#
var s = new Wire.Serializer();

var mem = new MemoryStream();
var r1 = new RecordWithString("somestring");
s.Serialize(r1, mem); //this works!

mem = new MemoryStream();
var r2 = SomeBank.Accounts.Domain.createRecordWithMap;
s.Serialize(r2, mem); //this throws the exception below

This is the exception message.
An exception of type 'System.Exception' occurred in Wire.dll but was not handled in user code
Additional information: Unable to write all fields of RecordWithMap

I've added your code to the test suite.
The issue is that the F# map is treated like a generic dictionary custom dictionary, which it is.
That is, it implements IDictionary<TKey,TValue> but not IDictionary
So far so good, the issue here is that the serializer factory for this case is not implemented, it throws in DictionarySerializerFactory.cs.
(The built in standard .net dictionaries do support the IDictionary interface and are thus not affected)
I will get on this

I have implemented the F# Map serializer:
https://github.com/AsynkronIT/Wire/blob/dev/Wire/SerializerFactories/FSharpMapSerializerFactory.cs
Tests are passing

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>


video recording for driver started in BeforeSuite not assigned to all tests

In 6.5.44 some improvements were delivered into the artifacts registration including adding info about video file artifact after driver quit. As result we lost driver sessions assignments in case of cross-tests driver session.
Need review one more time old declaration to be able to register at the end driver session for all affected tests.
P.S. in 7.0 absolutely new approach will be used using javaagent capabilities so quick fix in 6.5 is ok

done


add end-of-stack normalizations in case normalize_before has been set

tf's implementation with normalizations preceding ops also has normalizations at the end of stack.
https://github.com/tensorflow/models/blob/master/official/transformer/model/transformer.py#L343
https://github.com/tensorflow/models/blob/master/official/transformer/model/transformer.py#L417
This PR makes fairseq consistent with tf, otherwise t2t config explodes.

Ah, good catch. I based this on the tensor2tensor implementation, which I also has the behavior you suggest: https://github.com/tensorflow/tensor2tensor/blob/d4040ae13e90e0a4e43c0669d6ce33ecd23cc0eb/tensor2tensor/models/transformer.py#L1241-L1244
Since some old model checkpoints may still depend on the old (incorrect) version, we don't want to break those checkpoints. Can you please:

Add a version buffer, similar to this: https://github.com/pytorch/fairseq/blob/f7f2dd01ea141cc3303d6735e0fdcf8402b1557b/fairseq/models/fconv.py#L351
Add an upgrade_state_dict method that checks the version and turns off the final normalization for old versions: https://github.com/pytorch/fairseq/blob/f7f2dd01ea141cc3303d6735e0fdcf8402b1557b/fairseq/models/fconv.py#L507-L515

Thanks!


Import Articles That Have Notes but not Highlights

I haven't found a way to do this.
Maybe the issue is because Omnivore doesn't have any way to filter articles (or I haven't found any) this way (similar to 'has:highlights').
I have managed to circumvent this by highlighting something I don't need to, so my notes get imported into Obsidian.
It'd be better though being able to import articles' notes straight away.
Thank you for the continuous development of this extremely useful plugin.

Hey @AaronKnowls , thanks for the suggestion and I agree that has:notes could be really useful.
Will work on this very soon


converge with curried fns

This may be expected behavior, but I want to bring it up anyway. Given the following:
var list = [
  { id: 1, val: 'a' },
  { id: 2, val: 'b' },
  { id: 3, val: 'a' } // NOTE: The same 'val' as the first entry
]

// Suppose we want to find something in the list by referencing its id
var getA = R.curry((id, list) => {
  return R.compose(
    R.prop('val'),
    R.find(R.pipe(R.prop('id'), R.equals(id)))
  )(list);
});

// Then later we want to look at that same list and get all occurrences
// of entries with the same value that we found with getA (get B of A)
var getBA = R.curry((list, rA) => {
  return R.filter(R.pipe(R.prop('val')), R.equals(rA))(list);
});

// We load up getA with the term to search on
// And getBA gets loaded up with the list
//
// getBA(list, getA(1, list))
R.converge(R.call, [getBA, getA(1)])(list);

I had expected (before looking at the source) that this would return:
[{"id": 1, "val": "a"}, {"id": 3, "val": "a"}]

But instead I get:
function (a0) {
  return fn.apply(this, arguments);
}

I understand now that converge gets the arity of the "largest" function and uses that to determine its own arity.
Is this expected/desired behavior?
See this Ramda REPL with the flawed code, and the commented out solution (uncurried): http://goo.gl/GaeIi9

I think the case where you pass unary functions as transformers to converge is the easiest to understand.
The function you get back from converge will take 1 argument, pass it to each of the transforming functions, and then pass the results of each transformation to the final function.
The original formulation is redundant, since the whole point of R.converge is to call the final function at the end of the day:
R.converge(R.call, [getBA, getA(1)])(list)

If your goal is this:
getBA(list, getA(1, list))

then it can be expressed a little more simply as:
R.converge(getBA, [R.identity, getA(1)])(list)

P.S. your example has a typo, I think you meant close the pipe in getBAafter R.eqauls(rA).

@benperez Thanks for your insight. And you are right…I did have a typo!!
As a side note, regarding issue #1447…this new form lends itself to lift, so converge is not necessary.


[Backlog] Shimmer

How to promote this component
Please give a thumbs up reaction to this post to promote this backlog item. Please share your usage scenario in the comments.
Component description
Shimmer is a temporary animation placeholder for when a service call takes time to return data and we don't want to block rendering the rest of the UI.

Fluent UI documentation

This is now available in the August release (Documentation)


fix: respect Winston Formatters

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes https://github.com/googleapis/nodejs-logging-winston/issues/540, maybe (https://github.com/googleapis/nodejs-logging-winston/issues/536) 🦕
The formatted version of the message is stored in info[MESSAGE] not info.message. This PR simply changes it to look at the correct location.

@liboz, could you amend your commit to follow conventional commits? See conventionalcommits.org

@simonz130 Done

@laljikanjareeya  You're right that in that specific example it would return in the format you specified. However, that simply replicates the behavior in the rest of the winston ecosystem. Wouldn't the correct thing to do be to update the quick start example to use one of the default formatters winston provides? For example, winston.format.simple would return info: shields at 99%.
If that's considered problematic, do you think it makes more sense to allow a formatter be passed in and have the plain message be the default formatter?

@laljikanjareeya I changed it so that by default it uses just plain "message". However, it also allows one to pass in their own custom formatter into the logger.

Taking a look this week

Taking a look this week

Hi @liboz , thanks for your contribution. We'd like to get this in for you soon.
I pulled your PR to review your changes, but the log was not formatted. Perhaps I'm not using your fix as intended.
Can you extend the test in system-test/logging-winston to demonstrate your changes, i.e. :
it('should work correctly with winston formats', async () => {
      const MESSAGE = 'A message that should be padded';
      const start = Date.now();
      const LOG_NAME = logName('logging_winston_system_tests_2');
      const logger = winston.createLogger({
        transports: [new LoggingWinston({logName: LOG_NAME})],
        format: winston.format.combine(
          winston.format.colorize(),
          winston.format.padLevels(),
         // TODO: add your format configs here or write a similar test for it
        ),
      });

      logger.error(MESSAGE);

      const [entry] = await pollLogs(
        LOG_NAME,
        start,
        1,
        WRITE_CONSISTENCY_DELAY_MS
      );
      const data = entry.data as {message: string};
      assert.strictEqual(data.message, `   ${MESSAGE}`);
    });

Note: to run system tests in this repo make sure you've set GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS

Hi @liboz , thanks for your contribution. We'd like to get this in for you soon.
I pulled your PR to review your changes, but the log was not formatted. Perhaps I'm not using your fix as intended.
Can you extend the test in system-test/logging-winston to demonstrate your changes, i.e. :
it('should work correctly with winston formats', async () => {
      const MESSAGE = 'A message that should be padded';
      const start = Date.now();
      const LOG_NAME = logName('logging_winston_system_tests_2');
      const logger = winston.createLogger({
        transports: [new LoggingWinston({logName: LOG_NAME})],
        format: winston.format.combine(
          winston.format.colorize(),
          winston.format.padLevels(),
         // TODO: add your format configs here or write a similar test for it
        ),
      });

      logger.error(MESSAGE);

      const [entry] = await pollLogs(
        LOG_NAME,
        start,
        1,
        WRITE_CONSISTENCY_DELAY_MS
      );
      const data = entry.data as {message: string};
      assert.strictEqual(data.message, `   ${MESSAGE}`);
    });

Note: to run system tests in this repo make sure you've set GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS

@nicoleczhu As I mentioned earlier, I changed it so that this now lets you pass in a custom formatter through the constructor.
If one does not do that, the default for LoggingWinston is logform.format.printf(info => `${info.message}`); to maintain compatibility as @laljikanjareeya wanted. Because of this, it will ignore a printf passed in through the format option in the constructor
const logger = winston.createLogger({
        transports: [new LoggingWinston({logName: LOG_NAME})],
        format: winston.format.combine(
          winston.format.colorize(),
          winston.format.padLevels(),
         // TODO: add your format configs here or write a similar test for it (printf HERE WILL BE IGNORED)
        ),
      });

The work around would be to instead do something like this and pass it in through the constructor
const logger = winston.createLogger({
        transports: [new LoggingWinston({logName: LOG_NAME, format: winston.format.printf(info => `TEST123: ${info.message}})],
        format: winston.format.combine(
          winston.format.colorize(),
          winston.format.padLevels(),
         // TODO: add your format configs here or write a similar test for it (printf HERE WILL BE IGNORED)
        ),
      });

If the compatibility that @laljikanjareeya wants is required, I don't think there is an easier way. However, I think if a doc update could happen where people are directed to use a normal formatter like format.printf(info => `${info.message}`); that would simplify a lot of things. What do you think?

@liboz I see what you're saying.
Let's keep the default logform.format.printf(info => ${info.message}); behavior, so your PR is not a breaking change for all users.
Can you add a test to showcase your extension? I can't do it directly as I can't edit your remote branch. Something along the lines of should be able to override loggingWinston print format

@nicoleczhu Done

@liboz I tried to merge but it looks like this PR is still breaking CI. See reports errors test.
Running it locally, I'm getting:
{
insertId: "..........3s1NuTHIp1WdASZcRYqxbC"
jsonPayload: {
metadata: {0}
message: "undefined"
}
resource: {
type: "global"
labels: {
project_id: "log-bench"
}
}
timestamp: "2021-02-02T23:03:31.190000057Z"
severity: "ERROR"
logName: "projects/log-bench/logs/bc230313-3f2b-4c0d-a4e2-5a91bb7fc98c_logging_winston_error_reporting_system_tests"
receiveTimestamp: "2021-02-02T23:03:31.581090452Z"
}

Something in the changes is breaking error message formatting.
 You just need to set GCLOUD_PROJECT GOOGLE_APPLICATION_CREDENTIALS

@nicoleczhu Sorry for the delay. I took a look at it today. I hadn't run the error test because I didn't have the error reporting API enabled so they naturally failed. Thankfully, after enabling them I was able to confirm the issue. It seems like an important use case and I'm glad the tests caught it.
There doesn't appear to be an easy way to handle this case as error are formatted in very interesting ways... It seems that a formatter that is passed into a transport like LoggingWinston behaves very differently from a formatter passed into the createLogger function. The major issue this causes is that any message that is generated from Error will not be passed through. This line seems to be the issue as Object.assign(new Error("test123")) for example returns {}. This makes it impossible to handle error formatting with a custom formatter inside the LoggingWinston.
The only way I can think of to handle this is:

No longer use the fallback

if (!options.format) {
      options.format = logform.format.printf(info => `${info.message}`);
    }

and just allow for a json formatted logging to be the default, the error formatting will work. Unfortunately, in order to get the same display for errors, we would need a special catch case, which does not seem like it would be very robust.
Otherwise, it seems like there isn't a great solution regardless and I can just close this PR.

Hi @liboz , there doesn't seem to be a perfect solution here. Thank you for iterating on this though - now we know! Please feel free to close this PR for now. Thank you for your work here.


[BUG] Random timelines for updating Exchange rates

Describe the bug
Because currency updates are done on App ready and as scheduled, the exchange rates will update whenever a worker is ready or when scheduled.
Steps to Reproduce
Every worker spawned by GUnicorn will run the app ready and update the exchange rates.  In #2241 this was manifesting as a serialization error.  Workers are re-spawned after 500 actions.  This gets worse when running in a cluster that has transient workers (such as Google Kubernetes Engine with Preemptable nodes).
Todo
[ ] - Does Q-Cluster trigger app ready for every worker?
[ ] - Does Q-Cluster trigger app ready for every task?
[ ] -  #2241 raised concerns about changing the exchange rate while calculations are going on.
Expected behaviour
We need to discuss what is the actual expected behaviour of currency exchange.
Deployment Method

All platforms.

Version Information
Master (and probably released versions as well)

My Initial thoughts
We should probably remove the exchange update from app ready and allow it to only run either explicitly by the user from Admin or automatically using Q-Cluster on a scheduled set by the user.

@nwns the current implementation should only update if the exchange rates are too old or the base currency changed; this seems to be broken in some way. If we fix this would this be a solution for this issue?

It probably would. But at the same time, that is in part what I am trying to figure out with this issue:

Figure out how the dynamic currency exchange rates are actually being used by user?
What is the issue that the automatic currency exchange rates solving?
Do we have a problem currently with the exchange rates changing unexpectedly?
Should the exchange rates change without the user being involved (either by scheduling the change or manually by entering the numbers or by pressing an "update now" button).

@nwns we have practically no way to communicate with users. Only a small minority (judging by pulls on the python library, master, docker and the traffic on some random code tests I have on my profile) actually interacts with the issues and we have nothing in regards to telemetry.

Figure out how the dynamic currency exchange rates are actually being used by user?

I and local users I know use it to keep the exchange rates somewhat in step with the market. A few days can make a good difference if you order enough.

What is the issue that the automatic currency exchange rates solving?

Forgetting to hit the update button could be quite expensive while updating the rates on each order will slow down the whole process a lot and put unfair strain on a free API.

Do we have a problem currently with the exchange rates changing unexpectedly?

If they are updated often enough the difference should be small enough. Most of my suppliers update around once a day so something in that range seems to be a good middle ground. Could be configurable if you want, I am happy with the current implementation (except for the bug with starting up - my last attempt at fixing failed).

Should the exchange rates change without the user being involved (either by scheduling the change or manually by entering the numbers or by pressing an "update now" button).

Absolutely, I would forget all the time and I do not think that most users read through all settings (I think, we do not know due to no user survey or telemetry).


Post Signup messages to Conversations v2

Changes path to /v2/messages?origin=signup per https://github.com/DoSomething/gambit-conversations/pull/282

Tested on staging by posting to api/v1/events/user-signup - Confirmed I received a Gambit Signup confirmation SMS.


Fix SccAnnotate when existing acc pragmas declare a copy category more than once

PR #389 introduced a regression in ecphys. There we have an ACC statement like this:
!$acc data copyin(var_a, var_b) &
!$acc &    copyin(var_c) create(var_d)

Now, the ACC statements are checked for existing offload directives. For that, get_pragma_parameters is used to extract offload "categories". However, for situations where a key exists more than once, the values are provided as a list, i.e., for the above we obtain
{'copyin': ['var_a, var_b', 'var_c'], 'create': 'var_d'}

Where previously a simple str.split(',') was used to build a list of variables of each category, we need to be careful to accomodate for the above situation where not a simple string constitutes the value. This PR expands the test to include the above case and fixes the transformation accordingly.

Build appears to be clean, so this is ready for a look. I haven't run ecphys, yet, though.


⚠ File access has degraded performance

In 3d1748a, File access (https://fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 5689 ms

Resolved: File access performance has improved in f614d05 after 12 minutes.


Reinstall entrypoints with --force

Summary
I think this may have just been a typo.
Closes https://github.com/astral-sh/uv/issues/4692.
Test Plan
Run cargo run tool install flask --force --reinstall repeatedly.

Huh? Isn't there test coverage for this?

I think only for the case in which the existing entrypoint was not installed by uv. I will amend.

Thanks!


Feature Request: Multi-Bindings

Before I fork and do a pull request I want to propose my feature idea first.
We use Guice modules a lot, and it happens that a module adds behavior to an already existing feature instead of just implementing a feature. Then there must be a Set of those implementations, not a single concrete implementation.
An example:
public class PaypalModule extends AbstractModule {
  @Override
  protected void configure() {
    bind(PaypalCreditCardProcessor.class).toSet(CreditCardProcessor.class);
  }
}

public class ApplePayModule extends AbstractModule {
  @Override
  protected void configure() {
    bind(ApplePayCardProcessor.class).toSet(CreditCardProcessor.class);
  }
}

Then there are several payment methods available as a set, depending on the modules installed:
public class PaymentProcessor {
  @Inject
  private Set<CreditCardProcessor> processors;

  public List<String> getPaymentMethodNames {
    return processors.stream().map(p -> p.getName()).collect(Collectors.toList());
  }
}

Is there a solution for this pattern already implemented in Guice? We have somehow hacked this pattern using annotatedWith(), but it is not a very useable approach.

Yes, and the solution is in fact called Multibindings.  It should be listed on the wiki.


Error generating cuda files?

Hi I'm running into an issue when building using
catkin build darknet_ros -DCMAKE_BUILD_TYPE=Release
darknet_ros_msgs builds just fine but when it gets to darknet_ros I get this error

any help would be appreciated :)

Hi,
Can you please tell me the GPU that you are using? It might be a problem with the compute capability (version). This means that you need to check the compute capability (version) of your GPU. You can find a list of supported GPUs in CUDA here: https://en.wikipedia.org/wiki/CUDA#Supported_GPUs. Simply find the compute capability of your GPU and replace in darknet_ros/CMakeLists.txt the version number 61 with your version number:
-gencode arch=compute_61,code=sm_61
Best,
Marko

Hi Marko thanks for responding!
Im using a gtx 980 and have already made that change after looking over the past posts

Please undo your changes in the CMakeLists and try again. I already added the code generation for the compute capability 5.2. Can you please send me mor information if it still not working? E.g. Ubuntu version, ROS version and GNU version.

Still having same issue. I'm using:
Ubuntu 16.04
ROS Kinetic
Linux version 4.10.0-30-generic
gcc version 5.4.0
Cuda compilation tools, release 8.0, V8.0.61

@mbjelonic would you mind posting what your versions of cuda, cmake, and gcc you were using?

Hi, I tested darknet_ros on the following systems:
Ubuntu 14.04 and 16.04
ROS Kinetic and Indigo
Linux Version 4.10.0-27-generic
gcc version 5.4.0
Cuda compilation tools, release 8.0, V8.0.61
Graphics cards: Titan X (Compute capability 6.1) and Jetson Tx2 (Compute capability 6.2)
cmake version 3.5.1
Your system is similar to mine. You can try the following:
Build darknet_ros with CUDA and run it on your CPU. Simply copy and paste the following into your CMakeLists.txt:
`cmake_minimum_required(VERSION 2.8.12)
project(darknet_ros)
Set c++11 cmake flags
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
Define path of darknet folder here.
find_path(DARKNET_PATH
NAMES "README.md"
HINTS "${CMAKE_CURRENT_SOURCE_DIR}/../darknet/")
message("Darknet path dir = ${DARKNET_PATH}")
add_definitions(-DDARKNET_FILE_PATH="${DARKNET_PATH}")
list(APPEND LIBRARIES "m")
Find X11
MESSAGE ( STATUS "Searching for X11..." )
FIND_PACKAGE ( X11 REQUIRED )
IF ( X11_FOUND )
INCLUDE_DIRECTORIES ( ${X11_INCLUDE_DIR} )
LINK_LIBRARIES ( ${X11_LIBRARIES} )
MESSAGE ( STATUS " X11_INCLUDE_DIR: " ${X11_INCLUDE_DIR} )
MESSAGE ( STATUS " X11_LIBRARIES: " ${X11_LIBRARIES} )
ENDIF ( X11_FOUND )
Find rquired packeges
find_package(Boost REQUIRED COMPONENTS thread)
find_package(OpenCV REQUIRED)
find_package(catkin REQUIRED
COMPONENTS
cv_bridge
roscpp
rospy
std_msgs
actionlib
darknet_ros_msgs
image_transport
)
Enable OPENCV in darknet
add_definitions(-DOPENCV)
add_definitions(-O4 -g)
catkin_package(
INCLUDE_DIRS
include
LIBRARIES
${PROJECT_NAME}_lib
CATKIN_DEPENDS
cv_bridge
roscpp
actionlib
rospy
std_msgs
darknet_ros_msgs
image_transport
DEPENDS
Boost
)
include_directories(
${DARKNET_PATH}/src
${DARKNET_PATH}/include
include
${Boost_INCLUDE_DIRS}
${catkin_INCLUDE_DIRS}
)
add_library(${PROJECT_NAME}_lib
src/YoloObjectDetector.cpp
src/object_detector_demo.cpp
src/image_interface.c
${DARKNET_PATH}/src/activation_layer.c        ${DARKNET_PATH}/src/im2col.c
${DARKNET_PATH}/src/activations.c             ${DARKNET_PATH}/src/image.c
${DARKNET_PATH}/src/avgpool_layer.c           ${DARKNET_PATH}/src/layer.c
${DARKNET_PATH}/src/batchnorm_layer.c         ${DARKNET_PATH}/src/list.c
${DARKNET_PATH}/src/blas.c                    ${DARKNET_PATH}/src/local_layer.c
${DARKNET_PATH}/src/box.c                     ${DARKNET_PATH}/src/lstm_layer.c
${DARKNET_PATH}/src/col2im.c                  ${DARKNET_PATH}/src/matrix.c
${DARKNET_PATH}/src/compare.c                 ${DARKNET_PATH}/src/maxpool_layer.c
${DARKNET_PATH}/src/connected_layer.c         ${DARKNET_PATH}/src/network.c
${DARKNET_PATH}/src/convolutional_layer.c     ${DARKNET_PATH}/src/normalization_layer.c
${DARKNET_PATH}/src/cost_layer.c              ${DARKNET_PATH}/src/option_list.c
${DARKNET_PATH}/src/crnn_layer.c              ${DARKNET_PATH}/src/parser.c
${DARKNET_PATH}/src/crop_layer.c              ${DARKNET_PATH}/src/region_layer.c
${DARKNET_PATH}/src/cuda.c                    ${DARKNET_PATH}/src/reorg_layer.c
${DARKNET_PATH}/src/data.c                    ${DARKNET_PATH}/src/rnn_layer.c
${DARKNET_PATH}/src/deconvolutional_layer.c   ${DARKNET_PATH}/src/route_layer.c
${DARKNET_PATH}/src/demo.c                    ${DARKNET_PATH}/src/shortcut_layer.c
${DARKNET_PATH}/src/detection_layer.c         ${DARKNET_PATH}/src/softmax_layer.c
${DARKNET_PATH}/src/dropout_layer.c           ${DARKNET_PATH}/src/tree.c
${DARKNET_PATH}/src/gemm.c                    ${DARKNET_PATH}/src/utils.c
${DARKNET_PATH}/src/gru_layer.c
${DARKNET_PATH}/examples/art.c                ${DARKNET_PATH}/examples/regressor.c
${DARKNET_PATH}/examples/captcha.c            ${DARKNET_PATH}/examples/rnn.c
${DARKNET_PATH}/examples/cifar.c              ${DARKNET_PATH}/examples/rnn_vid.c
${DARKNET_PATH}/examples/classifier.c         ${DARKNET_PATH}/examples/segmenter.c
${DARKNET_PATH}/examples/coco.c               ${DARKNET_PATH}/examples/super.c
${DARKNET_PATH}/examples/detector.c           ${DARKNET_PATH}/examples/swag.c
${DARKNET_PATH}/examples/dice.c               ${DARKNET_PATH}/examples/tag.c
${DARKNET_PATH}/examples/go.c                 ${DARKNET_PATH}/examples/voxel.c
${DARKNET_PATH}/examples/lsd.c                ${DARKNET_PATH}/examples/writing.c
${DARKNET_PATH}/examples/nightmare.c          ${DARKNET_PATH}/examples/yolo.c
)
target_link_libraries(${PROJECT_NAME}_lib
m
pthread
stdc++
${Boost_LIBRARIES}
${catkin_LIBRARIES}
)
add_executable(${PROJECT_NAME}
src/yolo_object_detector_node.cpp
)
target_link_libraries(${PROJECT_NAME}
${PROJECT_NAME}_lib
)
install(
TARGETS ${PROJECT_NAME}_lib
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
install(
DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h"
)
Download tiny-yolo-voc.weights
set(PATH "${CMAKE_CURRENT_SOURCE_DIR}/yolo_network_config/weights")
set(FILE "${PATH}/tiny-yolo-voc.weights")
message(STATUS "Checking and downloading tiny-yolo-voc.weights if needed ...")
if (NOT EXISTS "${FILE}")
message(STATUS "... file does not exist. Downloading now ...")
execute_process(COMMAND wget http://pjreddie.com/media/files/tiny-yolo-voc.weights -P ${PATH})
endif()
#############
Testing
#############
if(CATKIN_ENABLE_TESTING)
Download yolo-voc.weights
set(PATH "${CMAKE_CURRENT_SOURCE_DIR}/yolo_network_config/weights")
set(FILE "${PATH}/yolo-voc.weights")
message(STATUS "Checking and downloading yolo-voc.weights if needed ...")
if (NOT EXISTS "${FILE}")
message(STATUS "... file does not exist. Downloading now ...")
execute_process(COMMAND wget http://pjreddie.com/media/files/yolo-voc.weights -P ${PATH})
endif()
find_package(rostest REQUIRED)
Object detection in images.
add_rostest_gtest(${PROJECT_NAME}_object_detection-test
test/object_detection.test
test/test_main.cpp
test/ObjectDetection.cpp
)
target_link_libraries(${PROJECT_NAME}_object_detection-test
${catkin_LIBRARIES}
)
endif()`

So it ended up actually being an error with my cuda installation
I followed these steps and got darknet_ros to run
https://covijn.com/2016/11/fixing-darknet-opencv3-make-error-convolutional_kernels/

Thanks for the update!

I met the same problem and I am wondering more details to solve the problem. Did you reinstall cuda?

@mbjelonic thanks, your suggestion worked for me.
Build darknet_ros without CUDA and run it on your CPU.
Simply remove the following line in the CMakeLists.txt:

FIND_PACKAGE(CUDA)

To be more specific, please comment out the lines 16 and 17 of  CMakeLists.txt under darknet_ros ROS package.
line 16: find package(CUDA QUIET)
line 18: find package(CUDA REQUIRED)


The 3rd post to yourself in a thread (where you are not the original thread poster) mistakenly shows in the "Posts" tab.

Describe the bug

https://bsky.app/profile/samuel.bsky.team/post/3kvujqtaodl2v
To Reproduce
Steps to reproduce the behavior:

Go to a thread, reply to that thread.
Then reply to your reply.
Then make another reply to yourself.

Expected behavior
The post shouldn't be there, because the whole thread isn't yours.
Details
(bsky.app)
Build version: 1.87.0; Bundle info: c4dce4c (prod); Bundle date: 24062618; Platform: web

@mozzius


Markers: AttributeError when calling repr / str

The otio.schema.Marker object's __repr__ and __str__ methods are referencing a 'media_reference' and a 'source_range' attribute.
however Markers do not have those attributes. They do however have a 'marked_range' attribute that is not referenced in the __repr__ / __str__
Printing a Marker instance results in an AttributeError:
>>> otio.schema.Marker()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/devLocal/elabrosse/rdoenv/auto_lineup/otio/lib/python2.7/site-packages/opentimelineio/schema/marker.py", line 25, in __repr__
    repr(self.media_reference),
AttributeError: 'opentimelineio._otio.Marker' object has no attribute 'media_reference'

From what I see it seems that the content of opentimelineio/schema/clip.py was copy/pasted almost as is in opentimelineio/schema/marker.py.
My corporation is waiting for confirmation that our CLA was received. We will submit a PR as soon as possible.

Yep, we got the CLA. Thanks for finding this oversight.

Made a PR:
https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/596

I accidentally resolved this in #740 after it'd already been resolved in #596 (Oops!)


Revised control mode changes, added set_joint_params

This addresses the issues raised in https://github.com/dynamixel-community/dynamixel_hardware/issues/63
It revises the code for determining what control mode to operate in (eg position or velocity mode) based on what type of new commands have been received.  Previously the code changed to velocity mode when non-zero velocity commands had been received, but changed to Position mode when zero-value velocity commands were received.
It sends user-specified parameters to the joints when a control mode occurs (since the Dynamixels resets such parameters when operating mode changes).
Setting of joint positions and velocities was also refactored into seperate functions.

I have made the PR against Humble branch, but same code can be used for Rolling.  Would you like me to make a similar PR for Rolling also?

Yes, please!


Scale Multiple Stages

Hi...
I have a scenario where I need do scale multiple stages, currently I use a Higher-Order-Component that generate for me all the stages and based on a wheel event I get the new scale and save on container component via setState then I pass that scale via props to all stages, the code It's working but the drawback is the slow performance because of the react flow (I think :()...
It's there another approach to pass that info to all stages or something in konva to improve that performance?
I set up a webpackbin to demonstrate the scenario:
https://www.webpackbin.com/bins/-KvVQyVv16El2mBmpb1i
If you zoom in or zoom out on the red boxes the zoom effect is not that fast, I think maybe I misunderstood the concept of scale on konva or react is not fast enough for that kind of scenario, any help are welcome...

For me, the performance is almost ok. But there are "glitches" because of canvas size changes.
You can force synchoniuse stage draw on scale update:
componentDidUpdate(oldProps) {
      if (oldProps.scale !== this.props.scale) {
        this.stage.getStage().draw();
      }
    }

Try to not change (or make it as rare as possible) size of stages. Because browser have to do a lot of work in this case (recalculate layout, etc).

https://www.webpackbin.com/bins/-KvVzU94_2gQlnF8lCJR

https://www.webpackbin.com/bins/-KvVzU94_2gQlnF8lCJR

thanks @lavrton, sadly my webapp needs that zoom feature, maybe I can use another zoom approach outside the konva context

I think it is ok to use the zoom. Just try to debounce stage width update. For example, don't update it in real-time. Only once per second (for example).


ParentViewPager swipe disabled when in media details fragment.

Description (required)
Fixes #4215
What changes did you make and why?

Had to add an extra class ParentViewPager which is a custom View pager whose scrolling can be enabled and disabled.
changed the view pagers to parent view pager.
Disabled the swipe on entering the details fragment and enabling it on exiting.

Tests performed (required)
Tested betaDebug on Nokia 6.1 + with API level 29.

I was not sure where to keep the ParentViewPager Class, so temporarily kept it in explore.
This PR fixes the issue both in the explore and bookmarks fragment.
Up for review
@misaochan , @neslihanturan , @madhurgupta10 .

Codecov Report

Merging #4227 (1ddea50) into master (f3efeb5) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

Continue to review full report at Codecov.

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

I just tested this PR:
On the "Featured" tab I opened the details of a picture, then I swiped left very fast for over 1 minute. Unlike on master, I always saw featured pictures (easily recognizable even when swiping very fast because they all have many categories) and did not start seeing pictures from "uploaded via mobile".
In other words, the PR seems to fix the issue :-)

Javadoc updated.
Thx @nicolas-raoul,
I will keep this in mind.


Bidding gets interupted on artwork page

When I load an artwork page as a registered bidder, as I'm trying to select my bid in the dropdown menu, the browser keeps dismissing the dropdown before I can click it. This goes on for about 10 seconds.

Oof, annoying bug....