Added literal syntax protocols proposal

@dabrahams Are there any changes you would like to see to this before we put it up for review?

Well, I feel that the alternatives section legitimizes an existing misunderstanding of what these protocols mean.  What is cited as "the best explanation of the potential confusion” is complaining that the names are accurate and descriptive!  Also, it leaves out the two alternatives discussed that are actually accurate and more descriptive, XXXLiteralExpressible and ExpressibleAsXXXLiteral.  I might even prefer the latter pattern.  But it’s your proposal ;-)

Thanks for catching that @dabrahams.  It was written before you provided the explanation of why it was inaccurate.  I updated it to reflect the later discussion.
It is my proposal, but I want it to be accurate and to propose what you feel is the best solution.  If you like XXXLiteralExpressible or ExpressibleAsXXXLiteral better than XXXLiteral I will make one of those the proposed solution rather than an alternative.  Let me know what you prefer.

@anandabits you may consider to add Syntax.Literal.*Protocol version.
This is safe to use and actually does work.
func f<T: IntegerLiteralConvertible>() -> T {
    return T(integerLiteral: 43 as! T.IntegerLiteralType)
}

Proof:

@DevAndArtist I don't want to include every alternative mentioned during discussion in the proposal (there have been too many to list them all).  But since you are specifically requesting this one I have added it.

on Fri Jul 01 2016, Matthew Johnson <notifications-AT-github.com> wrote:

Thanks for catching that @dabrahams.  It was written before you
provided the explanation of why it was inaccurate.  I updated it to
reflect the later discussion.
It is my proposal, but I want it to be accurate and to propose what
you feel is the best solution.  If you like XXXLiteralExpressible or
ExpressibleAsXXXLiteral better than XXXLiteral I will make one of
those the proposed solution rather than an alternative.  Let me know
what you prefer.

Frankly I'm ambivalent.  The tricky Syntax. namespace prefix becomes
superflous and verbose IMO with ExpressibleAsXXXLiteral.  Do we want
to namespace these things or do we want the most English-sounding usage?
Should we go with ExpressibleAs.XXXLiteral? <0.25 wink>
--
Dave

I'm ambivalent as well.  Since we both feel that way, maybe we should just put it up for review as-is and you can work with the core team on making a final decision regarding the name we go with after the review completes.  How does that sound?

Dang I hit the wrong button. Reopened.

@dabrahams you got it!

OK, we’ve banished our ambivalence, and I’m sorry to say I’d like to invert the proposal.  We strongly believe that ExpressibleAs*Literal, without the Syntax namespace, is the right answer.  Would you mind doing the honors… again?

Lol, no problem.  Better to decide on a preferred name before the review starts! :)
Awaiting further feedback...

@anandabits If the Syntax namespace is the wrong way to go, I'd appreciate if you also could invert my suggestion from Syntax.Literal.*Protocol to Literal.*Protocol

@DevAndArtist so you want protocols with *Protocol naming scheme inside a Literal namespace?

@anandabits that's correct. That was one of my very first suggestions in the evolution thread. Literal.IntegerProtocol etc.

@dabrahams let me know when you think this is ready to merge and kick off.

@DevAndArtist your requested change has been made

@lattner we’re good to go

The proposal still has this in it, this doesn't seem right:
This namespace will initially be implemented using a case-less enum, but this detail may change in the future if submodules or namespaces are added to Swift. Swift does not currently allow protocols to be declared inside the scope of a type. In order to work around this limitation the protocols themselves will be declared using underscore-prefixed names internal to the standard library. Typealiases inside the Syntax enum will declare the names intended to be visible to user code.

Should I drop that paragraph?

@lattner good catch.  Not sure how I missed that when we changed it.  Feel free to drop it, or let me know if you want me to do it.

Thanks, I removed it in 4fc7d46


[TF] Move all random number APIs from TF stdlib to the deep learning library.

Move Tensor's random number initializers to Initializers.swift.

Replace the obsolete _TFHoistable hack with sane delegate initialization.

Move random number generators and distributions to Random.swift and their tests to PRNGTests.swift.
Update trivial model tests to use concrete numeric weights generated by random initializers using the original configuration.
Adopt the new Optimizer.update(_:along:) type signature in test/AutoDiff/model_autodiff_runtime.swift. This change was introduced in https://github.com/tensorflow/swift-apis/pull/6.

Note: It is unprincipled to add tests here that depend on the deep learning library (circular dependency!). When CI becomes ready, we should move the test over to DeepLearning as an XCTest.

Update checkout to https://github.com/tensorflow/swift-apis/commit/ee69fed18668186fc3961f82bae9f16b989600ba.

This enables developing these APIs without an active compiler build and XCTest (!), and is a part of our "move things out of the compiler repo" effort.
Corresponding PR in the swift-apis repo: https://github.com/tensorflow/swift-apis/pull/8.

@swift-ci please clean test tensorflow

@swift-ci please test tensorflow macOS

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow

@swift-ci please test tensorflow macOS

@swift-ci please clean test tensorflow macOS

@swift-ci please clean test tensorflow Linux GPU

@swift-ci please test tensorflow macOS

macOS CI machine is not working. Tested it locally on macOS. Merging now.


ARROW-6889: [Java] ComplexCopier enable FixedSizeList type & fix RangeEqualsVisitor StackOverFlow

Related to ARROW-6889.
i. Enable ComplexCopier copy FixedSizeListVector value, add related tests
ii. Fix RangeEqualsVisitor#compareFixedSizeListVectors StackOverFlow

@praveenbingo Please help take a look when you have time, thanks!

I think this bug fix in RangeEqualsVisitor should include in 0.15.1, please help take a look, thanks! @emkornfield

I'm not sure I see a unit test for the issue with map copier?

I'm not sure I see a unit test for the issue with map copier?

Right, I just added the test.

@praveenbingo do you have time to look at this?

@emkornfield @praveenbingo Please help take a look since it pending a long time, thanks a lot!

+1 thank you.


Modifications for latest material design and rxjs

Absolutely fantastic effort RichonChen, really well done! I've been looking for something as true to Google's own version for some time and an Angular 4+ version with Angular Material is perfect!
I have made some modifications to get this working in Angular 6, rxjs version 6+ and the latest Angular Material. It seems to work really well now.
I'm new to GitHub, but these changes may be useful to others: -

All references to Angular Material objects should be prefixed Mat instead of Md for imports and mat- instead of md- for HTML elements. For example in feedback.module.ts change the following: -

import {   MatDialogModule,   MatButtonModule,   MatIconModule,   MatInputModule,   MatTooltipModule,   MatCheckboxModule,   MatProgressSpinnerModule } from '@angular/material';
imports: [     MatDialogModule,     MatButtonModule,     MatIconModule,     MatInputModule,     MatTooltipModule,     CommonModule,     FormsModule,     MatCheckboxModule,     MatProgressSpinnerModule   ]

Update to use the most recent version of rxjs.

For example in feedback.service.ts...
import { Subject } from 'rxjs';
In feedback-dialog.component.ts...
import { Observable, fromEvent, from } from 'rxjs'; import {mergeMap, map, finalize, takeUntil} from 'rxjs/operators';
and change the use of the operators to a pipe rather than chaining, as follows: -
return mouseMove.pipe(         map((mouseMoveEvent: MouseEvent) => {           newRectangle.width = mouseMoveEvent.clientX - mouseDownEvent.clientX;           newRectangle.height = mouseMoveEvent.clientY - mouseDownEvent.clientY;           return newRectangle;         }),         finalize(() => {           this.rectangles.push(newRectangle);         }),         takeUntil(mouseUp));
similarly in feedback-toolbar.component.ts...
    return mouseMove.pipe(         map((mm: MouseEvent) => {           mm.preventDefault();           return {             left: mm.clientX - startX,             top: mm.clientY - startY           };         }),         finalize(() => {           this.disableToolbarTips = false;         }),         takeUntil(mouseUp));     }));

By far the most important change is to update the return from html2canvas to be a promise like this: -

html2canvas(wholehtml).then(canvas => {      this.screenshotCanvasSource.next(canvas);     });
Once again, great effort, well done.

Further to the above, there is an issue regarding the final merge of the screenshotCanvas and the mergedCanvas. It might not be the prettiest solution, but I managed to get this to work using the following modification within feedback.dialog.component.ts: -
public mergeCanvas() {     this.showToolbar = false;     this.detector.detectChanges();     this.appendScreenshot();     let mergedCanvas = document.createElement('canvas');     let x;     let y;     let ctx = mergedCanvas.getContext('2d');     if (ctx === null) {       return;     }     x = mergedCanvas.width;     y = mergedCanvas.height;     mergedCanvas.width = this.screenshotCanvas.width;     mergedCanvas.height = this.screenshotCanvas.height;     ctx.drawImage(this.screenshotCanvas, 0, 0);     ctx.drawImage(this.drawCanvas, 0, 0);     this.feedback.screenshot = mergedCanvas.toDataURL('image/png');     mergedCanvas.width = x;     mergedCanvas.height = y;     ctx.clearRect(0, 0, mergedCanvas.width, mergedCanvas.height);     ctx.drawImage(this.screenshotCanvas, 0, 0, 360, 200);     ctx.drawImage(this.drawCanvas, 0, 0, 360, 200);     this.feedbackService.setCanvas(mergedCanvas);   }

Hi gordonmckenzie
Thanks for your attention. I will take some time to review your advice and code.  If there is no issue i will update the code asap. BTW, it is better if you can make pull request so that I could try your code directly. Thanks again!

Hi gordonmckenzie
Thanks for your attention. I will take some time to review your advice and code. If there is no issue i will update the code asap. BTW, it is better if you can make pull request so that I could try your code directly. Thanks again!

@RickonChen  did you manage to look into it? I'm planning to use this great module in my app using Angular 6.0. In case you didn't have the time yet and won't be able to integrate it in the latest version I'd try to implement @gordonmckenzie 's changes in a pull request.

Hi @hakkurishian , the project is being upgraded with the newest version of angular, rxjs, etc. It should be completed before this sunday. Thanks.

The project has been upgraded as advice of @gordonmckenzie . It could be running without issue. I will publish newest package  to npm later. Thanks.

The ng-feedback has been uploaded to npm and find no issue after testing.
https://www.npmjs.com/package/ng-feedback


too much optimization

nice, as i thought moving everything to the stack lets us save a lot of bytes. ill fix the merge conflict later


Missing preprocessor event handlers when running with custom config file

Current behavior
Missing preprocessor event handlers (this usally means you've not invoked addCucumberPreprocessorPlugin() or not returned the config object in setupNodeEvents()) (this might be a bug, please report at https://github.com/badeball/cypress-cucumber-preprocessor)
Desired behavior
Setup should start

In project settings i can see that config envs are loaded. If i remove the cucumber part and run directly, works as expected.
Test code to reproduce
`import { defineConfig } from "cypress";
import createBundler from "@bahmutov/cypress-esbuild-preprocessor";
import preprocessor from "@badeball/cypress-cucumber-preprocessor";
import createEsbuildPlugin from<EMAIL_ADDRESS>import allureWriter from<EMAIL_ADDRESS>import { readFileSync } from "fs";
export async function setupNodeEvents(on, config) {
// This is required for the preprocessor to be able to generate JSON reports after each run, and more,
await preprocessor.addCucumberPreprocessorPlugin(on, config);
on(
"file:preprocessor",
createBundler({
plugins: [createEsbuildPlugin.default(config)],
})
);
/**

allure reporting for better reports
*/
allureWriter(on, config);

/**

Reading the env values from jSON
*/
// const envName = config.env.name
// const text = readFileSync(./${envName}.json)

const text = readFileSync('./dev.json')
const values = JSON.parse(text)
config.env = {
...values
}
// Make sure to return the config object as it might have been modified by the plugin.
return config
}
export default defineConfig({
e2e: {
specPattern: "**/*.feature",
setupNodeEvents,
supportFile: false,
},
defaultCommandTimeout: 10000,
watchForFileChanges: false,
chromeWebSecurity: false,
waitForAnimations: true,
pageLoadTimeout: 50000,
requestTimeout: 10000,
responseTimeout: 30000,
viewportWidth: 1600,
viewportHeight: 1200,
screenshotOnRunFailure: true,
trashAssetsBeforeRuns: true,
videoUploadOnPasses: false,
video: false,
videoCompression: false,
fixturesFolder: 'cypress/fixtures',
downloadsFolder: 'cypress/downloads',
screenshotsFolder: 'cypress/screenshots',
retries: {
'runMode': 1,
'openMode': 1
},
});`
Versions

Cypress version: Version 10.9.0
Preprocessor version:     "@badeball/cypress-cucumber-preprocessor": "latest",
Node version: v18.0.0

Read the error message.

For other people which might run in the same situation, the trick is to add data related to env's or any other data that you need for test data before preprocesor/cucumber logic.
export async function setupNodeEvents(on, config) {

  /**
   * allure reporting for better reports
   */
  allureWriter(on, config);

  /**
   * Reading the env values from jSON
   */
  const envName = config.env.name
  const text = readFileSync('./qa.json')
  // const text = readFileSync(`./${envName}.json`)
  const values = JSON.parse(text)
  config.env = {
    ...values
  }

  // This is required for the preprocessor to be able to generate JSON reports after each run, and more,
  await preprocessor.addCucumberPreprocessorPlugin(on, config);

  on(
    "file:preprocessor",
    createBundler({
      plugins: [createEsbuildPlugin.default(config)],
    })
  );

  // Make sure to return the config object as it might have been modified by the plugin.
  return config;
}

And for the owner of the repo, you know that sometimes you need to have a nicer attitude to the community :). Maybe you should invest that bad energy to create better error handling. Have a nice day.

You're wasting my time having me read through il-formatted code. If you want my help, why can't you do this one simple thing for me?

Better?
export async function setupNodeEvents(on, config) {

  /**
   * allure reporting for better reports
   */
  allureWriter(on, config);

  /**
   * Reading the env values from jSON
   */
  const envName = config.env.name
  const text = readFileSync('./qa.json')
  // const text = readFileSync(`./${envName}.json`)
  const values = JSON.parse(text)
  config.env = {
    ...values
  }

  // This is required for the preprocessor to be able to generate JSON reports after each run, and more,
  await preprocessor.addCucumberPreprocessorPlugin(on, config);

  on(
    "file:preprocessor",
    createBundler({
      plugins: [createEsbuildPlugin.default(config)],
    })
  );

  // Make sure to return the config object as it might have been modified by the plugin.
  return config;
}


Update tests cases for ultra-ci and integrate them into workflow

Additionally, remove the previously commented lines in SMARTS/.github/workflows/ci-ultra-tests.yml to keep the code clean.


Bugzilla Spam

Not sure if this is dlang-bot or not, but I'm sure you guys also have some insight on this.
I'm seeing a lot of spam on bugzilla when git merging happens. e.g.: https://issues.dlang.org/show_bug.cgi?id=9287#c7
Is there a way to restrict the commit actions to trigger a comment on bugzilla to

Only stable or master branch commits
The first time a commit happens (i.e. if you merge from stable to master or vice-versa, the commit is ignored)

Not well-versed enough in how this works to have any idea what to do. Just thought I'd post an issue.

Not sure if this is dlang-bot or not, but I'm sure you guys also have some insight on this.

This isn't the bots doing. That's the GitHub-Bugzilla bridge. We could replace this entirely with the bot and prevent the spam, but this more or less depends on @braddr making the Bugzilla REST API publicly available (Bugzilla comes with a REST API).

Just thought I'd post an issue.

Yep I totally agree that it's annoying.

That unfortunately collides a bit with our changed tool when generating changelogs solely based on stable commits. So now building a release would require to merge back stable beforehand for the bug to be closed :/. Somewhat problematic while that still isn't automated.

But a merge back to master from stable is probably a great idea before a release -- it would be odd for a bug fixed in a stable release not to be in master when the release is made.

Atm. I do it as part of the release script [¹].
If building the changelog depended on sth. being merged, then my release process suddenly is spreaded over several hours instead of taking 20 minutes, that's unacceptable.
Already the delayed automated website update (easily 1hr.) is PITA to work with.
I'm sure that we can automate merging back stable, so that things should be clear.
For the time being we might want to change the FIXED&RESOLVED criteria to commit in stable matches fix Issue 12345 & not REOPENED or so to workaround this problem.
It's bad for processes to unnecessarily create dependencies.

But a merge back to master from stable is probably a great idea before a release -- it would be odd for a bug fixed in a stable release not to be in master when the release is made.

What's odd about that? Master is always in development and it's not user-faced.
But sure we want to minimize the time for merging back to avoid unnecessary confusion.
If you have any good idea for automating merging back of stable, leave them at https://github.com/dlang-bots/dlang-bot/issues/165.


Update MMK for OpenVMS x86_64

Thanks @craigberry and @huntergoatley for all your help with this.
Pressing the button...


[NCL-7594] add back pressure on 425

While I appreciate your faith on me, I don't think I have the skills to review this PR. :(
DW, Atleast someone have seen it! :)

I'll write a summary adding the context.

I do have 1 question though: is this for the rex-client codebase to talk to Rex, or is this for when Rex sends a request to a service and the service replies back with 425?

Context:
This is solely for HTTP client that Rex uses to communicate with other services (+ test endpoints), so request to start/stop/notify. With Matej we've found a HTTP code 425 Too Early [1] that we wanted to use for backpressure (although Mozilla states a different use-case, we liked the name of it) Response of 4XX usually means a failure, therefore Rex would transition a task to START_FAILED or STOP_FAILED but 425 is special... Basically, if ANY service that Rex communicates with responds with 425, Rex will retry after some time (exponentially increasing) and the task can still end up as UP or STOPPING.
Responding with 425 means that the request came too early and Rex should wait a bit. For example in Orch we've found an edge case where a Group Build wasn't yet commited into DB and Rex sent a notification to Orch which required the GB to be present. Also, this can solve stuff in general when we have services that are currently fully occupied (OCP pod resources). Maybe this could somehow also be beneficial with RHPAM replacement.
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/425

Is the HTTP 409 tests also related to the HTTP 425 or are they unrelated?

Uff, unrelated. I think I've named the test endpoint 409xxxxx. I'll fix that. 409s happen when someone tries to schedule a task with the same name twice, whilst 425 is for backpressure.
Additional stuff done:

Backpressure is configurable. Basically, you can configure delays, exponential backoff maxs and mins, and choose whether to use a fixed amount of retries for a request like 20 times or
Changed naming of some configuration because it was starting to get vague. Internal FT for transactions vs FT for HTTP requests.
Refactored the HTTP client a bit.
Fixed a bug where Rex wouldn't apply query parameters for HTTP requests.

Sounds good to me!
Ship it! :rocket: :rocket: :rocket:


Phase 9: Final Presentation and Future Planning

Description
At the conclusion of the commitment period, there will be a final presentation at an open meeting. (Within: 1 Month)

Deliverables published to GitHub.
Wrap-up summary of lessons learned published to GitHub.
Recommendations to pass on to the next group published to GitHub.
Feedback on the overall process published to GitHub.
Optional recognition of group managers or participants.
Indication of what managers and participants would continue for another commitment period and in what capacity.

Output

Steering committee representative schedules final presentations with group managers.
Each group prepares the following and releases to their group section of the foundation Github repository:

Their completed content / research.
A wrap-up summary of lessons learned.
Recommendations to pass on to the next group.
Feedback on the overall process.

Each group discusses the following during final presentations:

The content produced and submitted to Github.
Optional recognition of group managers or participants.
Indication of what managers and participants would continue for another commitment period and in what capacity.

Supporting Documents

Phased Plan

Closing issues associated with deprecated project plan. Please see https://github.com/orgs/DevRel-Foundation/projects/7 for new project plan


Added OS detection pending CoreFX implementing Diagnostics.Environment

Updated corefxlab/demos/CoreClrConsoleApplications/HelloWorld/HelloWorld.cs to include a function for OS detection while still allowing args[0] to be used for overriding and showing various OS logos. No break to existing behavior.
Also note, that proper OS detection would use Diagnostics.Environment, which is not yet implemented in CoreFX. This has been noted in the detection method comments.

@ryaneliseislalom could the code be updated to use the OS detection APIs?

@KrzysztofCwalina which APIs do you recommend? From what I can tell, System.Environment.OSVersion is not implemented yet.

@ryaneliseislalom, sorry for a long delay. I was on vacation. Please use https://github.com/dotnet/corefx/tree/master/src/System.Runtime.InteropServices.RuntimeInformation

I will close this for now. Please reactivate if you still want to merge it.


Options and Arguments should support multiple types

I have an option which accepts either a string or a float.
While I can create a new parameter type for it, it's rather inconvenient.
There should be an API to specify that this option accepts either type A or type B.
For example:
@click.option('-a', type=click.Either(str, float))
@click.command
def foo(a):
  pass

Interesting idea, but I think this belongs as a custom type in your code, or in an extension.

Why? It should be common enough for people to have such a use case.
The argument in question is a datetime or the time in seconds until expiry...
Naturally both a string and a float are applicable.


jump to contract from ethers.getContractFactory("Greeter")

Feedback from @fvictorio.

it would be great if you could ctrl+click the "Greeter" in ethers.getContractFactory("Greeter") and be taken to the contract

This would be an enhancement on the js/ts side. We would want to override on navigation.

Closing in preference to #113

Closing in preference to https://github.com/NomicFoundation/hardhat-vscode/issues/113


The WebSocket handshake Connection field is missing the upgrade token

I did everything and everything went right just like the instructions and in the video on youtube, but when I open http://localhost:8089/ in the browser I get this error message both in the browser and in the terminal saying : The WebSocket handshake Connection field is missing the upgrade token.
And I have no clue what's wrong !!
Help por favor if you know what may be wrong !!

Please use 8080.


Reactor timer

In CSceneVehicleVisState, there are events for BeginBoost, which I think may be triggered during a refresh. If so, this is the key!

added last second timer #11 but still need first 5 seconds


Add overlay layer in svg for block highlighting

More obvious block highlighting introduced in this PR was making jigsaw confusing. This redoes that highlighting but as an extra layer in the svg.

this is the slack conversation about the bug

Can you add an image/gif of how this does/doesn't impact levels outside of Jigsaw? Other than that, looking good!

Codecov Report

Merging #237 into main will decrease coverage by 0.01%.
The diff coverage is 50.53%.

@@            Coverage Diff             @@
##             main     #237      +/-   ##
==========================================
- Coverage   59.29%   59.28%   -0.02%
==========================================
  Files          95       95
  Lines       11720    11771      +51
==========================================
+ Hits         6949     6978      +29
- Misses       4771     4793      +22

Impacted Files
Coverage Δ

blocks/functional_examples.js
83.33% <ø> (ø)

blocks/functional_parameters.js
73.52% <ø> (-0.76%)
:arrow_down:

blocks/lists.js
5.26% <0.00%> (-0.03%)
:arrow_down:

blocks/loops.js
32.98% <0.00%> (ø)

blocks/math.js
21.48% <0.00%> (ø)

blocks/text.js
11.92% <0.00%> (-0.06%)
:arrow_down:

core/connections/connection.js
69.31% <0.00%> (-0.07%)
:arrow_down:

core/ui/block_space/block_limits.js
92.30% <ø> (ø)

core/ui/block_space/block_space.js
65.82% <ø> (ø)

...ore/ui/block_space/scroll_on_block_drag_handler.js
29.87% <ø> (-0.90%)
:arrow_down:

... and 38 more

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 a140813...a09b9b4. Read the comment docs.

we received a Zendesk report about this, so i double-checked that the highlighting looks good in jigsaw and other blockly labs (it does!), and will merge once the build passes


Checkpoint set and restore

args.restore_step is referenced in train.py and model.py.
Is there any documentation on recommended use for this argument in checkpointing?
Thanks!

@rspiewak47 It is for the case you want to restart the training from an available checkpoint.

args.restore_step is referenced in train.py and model.py.
Is there any documentation on recommended use for this argument in checkpointing?
Thanks!

it will save checkpoint automatically each 100000 steps, you can change save_step in /config/LJSpeech/train.yaml to make it save earlier or later
to restore and continue training, put the checkpoint file (ex: 15000.pth.tar) in /output/ckpt/LJSpeech and add --restore_step 15000 at the end of train command


Redirected/piped output buffers and does not display real time, regardless of buffer mode

Using the -o option and redirecting with > causes the output from the tracer to get buffered regardless of what the -B specified. The below commands all buffer large amounts of data and dump it when it reaches a certain limit.
bpftrace -e 'kprobe:do_sys_open { printf("do_sys_open: %s: %s\n", comm, str(arg1)) }' -o ~/do_sys_open.log -B none

bpftrace -e 'kprobe:do_sys_open { printf("do_sys_open: %s: %s\n", comm, str(arg1)) }' > ~/do_sys_open.log

bpftrace -e 'kprobe:do_sys_open { printf("do_sys_open: %s: %s\n", comm, str(arg1)) }' | myOtherToolThatPrints

Then tail -f ~/do_sys_open.log in another terminal, followed by ls in a third terminal, I can execute ls multiple times before the log file is dumped with many ls call outputs.
This error exists regardless of the output or redirection, unless no output or redirection is specified.
bpftrace -e 'kprobe:do_sys_open { printf("do_sys_open: %s: %s\n", comm, str(arg1)) }'

The above command does not have this buffering issue and will output traces as they happen, which is the desired effect for outputting to a file, or piping to another tool.

Fixed, needed to use unbuffer to keep output in tty mode.
sudo unbuffer bpftrace -e 'kprobe:do_sys_open { printf("do_sys_open: %s: %s\n", comm, str(arg1)) }'

Sounds like something we should fix. Having to run unbuffer to get output is a confusing.

I originally thought this was a bpftrace issue, but I'm not sure how this could be fixed via bpftrace. It was a system imposed buffer, where all process outputs that get redirected will be buffered, not just bpftrace. Using unbuffer simply removes the buffer and allows the process to output as if it is direct to an interactive terminal.


[Request] Windhawk support?

Would be cool to see this as a Windhawk module, would make it easy to use without needing to add it to a project.
Not sure what the effort would be in converting it though.
https://windhawk.net/

Not planned


Unable to link stdc++ for example when building rust library

Problem: cc is unable to find stdc++ when building an example for a library crate.
✅ works: binary crate, call c++ from example

lib_x/
  src/
    main.rs
  examples/
    test.cpp            #include <iostream>
    lib_x_example.rs    call function in test.cpp

✅ works: library crate, call c++ from library

lib_x/
  src/
    test.cpp            #include <iostream>
    lib.rs              call function in test.cpp
  examples/
    lib_x_example.rs    call function in lib.rs

❌ does not work: library crate, call c++ from example

lib_x/
  src/
    lib.rs
  examples/
    test.cpp            #include <iostream>
    lib_x_example.rs    call function in test.cpp

build.rs:
  println!("cargo:rerun-if-changed=examples/test.cpp");
  cc::Build::new()
  .cpp(true)
  .file("examples/test.cpp")
  .cpp_link_stdlib("stdc++")
  .compile("test_cpp");

Error output:
error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/mjforan/.cargo/bin:/home/mjforan/.local/bin:/usr/local/cuda-11.6/bin:/home/mjforan/.local/bin:/usr/local/cuda-11.6/bin:/home/mjforan/.local/bin:/home/mjforan/.local/bin:/usr/local/cuda-11.6/bin:/home/mjforan/anaconda3/bin:/home/mjforan/anaconda3/condabin:/home/mjforan/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcUr3FJl/symbols.o" "/home/mjforan/lib_x/target/release/examples/lib_x_example-06693f701c91b976.lib_x_example.a5b620fa4eee2b6-cgu.0.rcgu.o" "/home/mjforan/lib_x/target/release/examples/lib_x_example-06693f701c91b976.e6xnw6b1lbeu1tod6egd8g1j6.rcgu.o" "-Wl,--as-needed" "-L" "/home/mjforan/lib_x/target/release/deps" "-L" "/home/mjforan/lib_x/target/release/build/lib_x-e4aaea58acf14dea/out" "-L" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-ltest_cpp" "-Wl,-Bstatic" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1c4b19562077c20d.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-85a631ebc91746e0.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-fdace1a0b4cda412.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-e5c28d21823e9a85.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-1e0edbcd516a8cce.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-77a1dc5e8fb357d6.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-8c9d2edb6dff139f.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-ecadd85ae8bacc0c.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-67895a0c8dd8130b.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-5b4263e767961458.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-4f03d5a171522141.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9e4e8543de06315e.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-7fc51dfce9c057eb.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-7ec98a9b1cc1792f.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-2f9b4333f6d32438.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-b6fe0262c36c500a.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-2a862c0b1c86f483.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-500f37ee5bcf0ffe.rlib" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-06dfbf1de02fde3b.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/mjforan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/home/mjforan/lib_x/target/release/examples/lib_x_example-06693f701c91b976" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
  = note: /usr/bin/ld: /home/mjforan/lib_x/target/release/build/lib_x-e4aaea58acf14dea/out/libtest_cpp.a(b688d06bea1307b6-test.o): in function `test_cpp':
          test.cpp:(.text.test_cpp+0x19): undefined reference to `std::cout'
          /usr/bin/ld: test.cpp:(.text.test_cpp+0x21): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)'
          /usr/bin/ld: test.cpp:(.text.test_cpp+0x47): undefined reference to `std::ostream::put(char)'
          /usr/bin/ld: test.cpp:(.text.test_cpp+0x64): undefined reference to `std::ctype<char>::_M_widen_init() const'
          /usr/bin/ld: test.cpp:(.text.test_cpp+0x89): undefined reference to `std::__throw_bad_cast()'
          /usr/bin/ld: test.cpp:(.text.test_cpp+0x55): undefined reference to `std::ostream::flush()'
          collect2: error: ld returned 1 exit status

  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#rustc-link-lib)

error: could not compile `lib_x` (example "lib_x_example") due to 1 previous error

Environment: Raspberry Pi OS (aarch64) and Ubuntu 24.04 (amd64) with fresh install of Rust: cargo 1.81.0,  cc="1.1.18"
I have tried setting various options in build.rs such as manually specifying the path to /lib/aarch64-linux-gnu/libstdc++.so.6

Sorry I don't understand how you are calling std::cout, can you provide the code please?
Just including the header file won't work, and linking with stdc++ also won't work.
C++ ABI is different from rust with its own name demangles so that it can support function overloading.

test.cpp
#include <iostream>
extern "C" void test_cpp() {
    std::cout<<"hello"<<std::endl;
}

lib_x_example.rs
#[link(name = "test_cpp")]
extern { fn test_cpp(); }

pub fn main() {
    unsafe {test_cpp();}
}

Thanks.
And can you also show me the build.rs ?
Because you would need it to be put in the workspace, not in src or examples, but in the workspace .
Only when it's in there, it would be automatically picked up by cargo, and run by cargo to compile and link the c++ file.

Yes, build.rs is in the workspace, as well as Cargo.toml, Cargo.lock, and the target directory. I left them out of the initial issue for simplicity. The relevant section of build.rs is listed above.

Thanks.
I think you would have to define
#[link(name = "test_cpp")]
pub extern { fn test_cpp(); }

in the lib.rs, when you compile and link with an external library, you usually define the API of the external library in the library itself.

That does not work. The example still fails to compile.

Can you remove
.cpp_link_stdlib("stdc++")

I think using the default libstdc++ might work.

No, that value is correct for my platform. Removing it does not help.
https://docs.rs/cc/latest/cc/struct.Build.html#method.cpp_link_stdlib
https://docs.rs/cc/latest/cc/#c-support
Would you mind reproducing on your end? It seems you are just taking guesses here and I have already tried these things.
Another clue: when I  wrap the c++ function in my lib.rs and call that method from my example, then I am also able to use the c++ function directly in my example.

Would you mind reproducing on your end? It seems you are just taking guesses here and I have already tried these things.

Sorry I don't have access to my computer for now.

Another clue: when I wrap the c++ function in my lib.rs and call that method from my example, then I am also able to use the c++ function directly in my example.

Yes, that's pretty much how most crates use cc and external crates.
Creates bindings for it in rust library crate, then call the library crate.
I think the error you experience might be due to how rust links crates.
AFAIK, cargo does a linking per crate to produce rlib, so if the external library function isn't used in the library crate, it might strip out the unused linkage to stdc++.
Since rlib isn't stablised and mostly internal to cargo, there isn't much documentation on it.
For that particular behavior, it might be faster to ask on rust's official zulip in t-cargo channel


module initialization error: TypeError

@brettstack I have deployed a simple application on lambda and  on testing I get:
@brettstack module initialization error: TypeError
at _addListener (events.js:216:11)
at Server.addListener (events.js:276:10)
at new Server (_http_server.js:234:10)
at Object.exports.createServer (http.js:44:10)
at Object.createServer (/var/task/node_modules/aws-serverless-express/index.js:144:25)
at Object. (/var/task/index.js:3:37)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)

You can sometimes get this if you've done npm i with a version of node greater than what Lambda supports - if your run time for your Lambdas is 6.10.3 and you npm i with 8 then you'll get all kinds of funky errors.

I happened to me either because we had unaccessible environment variables (wrong naming), that were needed to initialise environment specific resources e.g. external API endpoint.

For me when this happened I was not properly exporting the app function from my separate source file.
So when aws-serverless-express called createServer it was failing causing the module initialization.
Thank God for https://github.com/dherault/serverless-offline
For providing me with an infinitely more useful stack trace thank the lambda env
export default app;

was all I needed

Thanks @williscool for the tip. Had the same issue but changing from module.exports = { app } to exporting as default fixed it :)


Pretty print 'long' units with long prefixes

This work is related to https://github.com/sharkdp/numbat/issues/133. Any feedbacks are welcome.
I've run the test case on the issue description and it seems to work as expected. cargo test passes with no errors and I've added a roundtrip check as required as well.
If you want, I can squash or change the commits to better fit the project as well

Oh, hold on. This isn't actually fixed completely.
Try typing megabarn, and it will result in Mbarn. I'm currently looking into it.

Thanks for the good work!


compiler: Misc compiler fixes and improvements -- part II

What was the problem with u.dx2? Is there an issue somewhere about this?

These were PRO issues, and all new tests therefore a in PRO
That said, I can assure you that there's no new feature here in OSS territory that hasn't been equipped with at least one test. Most changes here are compilation-related generalisations and improvements which are stress-tested by what de-facto are higher-order regression tests in PRO

@mloubout update: addressed your comments and rebased on latest master


WindowsForms in UI interfaces

Is there an actual reason to why there is a DialogResult used in UI interfaces? As I am looking at it, there are only two interfaces, where DialogResult is used:

IUpdateAvailable.Result - where DialogResult signalises, whether the update should be handled; where, it might be better to have a separate enum with required values and let the implementation of the interface do the translation; this way, it will be separated from a UI framework;
IDownloadProgress.ShowDialog() - where DialogResult signalises a boolean (Abort || Result -> cancel, otherwise continue).

My solution proposal would be to have IUpdateAvailable.Result return custom enum with values InstallUpdate, SkipUpdate, InstallLater and IDownloadProgress.ShowDialog() return just boolean, indicating success.
Tweaks to the existing default forms are trivial, but it is a breaking change for existing custom-UI code, yet the changes are trivial as well (it may even be viable to include some simple converters to help with converting code to default behaviour).
As for the implementation, I am going to implement these changes to the code anyway for my project, but I would kind of like to see it in public release as well, as in my opinion, the changes make sense.

👋 Hi @enscope! That's an interesting (and good, I think) proposal! I'm a bit busy right now with work and (USA) Thanksgiving, but I will try to take a look at this sometime in the next week or two. I'll test it out with the project I'm using NetSparkle in, and if it looks good, we'll move forward. Now is the time for breaking changes as well, since I (eventually) am going to be updating things to a "2.0" version and things are definitely unstable right now.
Related: #26

Cool. I think I will take a look at the last dialog without interface - CheckingForUpdatesWindow - as well, because I need to customise it for my project too. Is it ok with you?

See latest commits (and botched pull request) for resolving this issue. Will close this issue once we resolve whether or not you want to redo that PR due to my mistake.
Feel free to submit another PR for that window if you like! I, er, won't mess up things again this time 😓

Resolved in recent commits (4f378e66b5215ba729b130e1da48f34428c9486a, 58cfe8254970204dbe72cbf4aaf68d86c82dc465) and PR #40


Render sheet and close from Action Pack side panel

Just a quick PR to either render or close the character sheet based on state rendered.

Clicking on the Token's name on the Action Pack side panel, opens and closes the character sheet.


fixed python dependencies text color issue

Fixed Issue #367
This is how the portion looks like now -

Thanks a lot for submitting the fix @kanakmi! We're good to merge it 🙂


[Meta] Make this plugin great again 🧢

This plugin has a bunch of tech debt that keeps piling and blocks other work from being done. Let's try to get the ball rolling again.

[x] https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/958
[ ] https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/247: In order to support many of the auto-setup features, this plugin should be a platform. This way we can connect, find the model, and expose all its features based on that.
[ ] https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/934: Let's replace the fan and switch buttons with a proper vacuum service (when available in HomeKit and Homebridge).
[ ] Migrate to the MIOT spec: supporting this spec will make it easier to integrate new models (and potentially unknown services).
[ ] Add Xiaomi Cloud authentication: This might resolve many issues when trying to find the tokens. If users can set up their mi.com user and password and let the plugin figure out the tokens (maybe even refresh them automatically?).
[ ] https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/104: It's been a long-standing request. Let's see if we can integrate with those tokens as well.

One more function I would like to see in this plugin. I got the Roborock Zeo One this year and would love to use it with the home app. Maybe someone can get the Zeo one washer/dryer to work with this plugin.

@edelmaca, great point! What's exactly the issue that you are facing with that model? Is it that it doesn't work with the Xiaomi app (and hence with this plugin)? A mismatch of the speeds? Or any missing features specific to that robot?

It's a Washer/Dryer combo that only works within the Roborock app. It is no robo vacuum. So maybe that plugin is not exactly the right one for this device. But it's a Roborock, so.... 🤷🏻♂
The Machine can be started remotely but just from within the app. If I could automate it with Apple Home automations (eg. when enough solar energy is produced) that would enhance my smarthome and energy saving a lot.

Thank you. I will try the homeassistant integration of roborocks devices.

@afharo any update on the use of Roborock App tokens?


Adding Scroll to top button

hi i want to contribute on this project by adding scroll to top button

feel free to raise a pull request :)

ok assigned it me under hackoctberfest

hey can you provide commands to run this project locally

cp .env.example .env # may need to set some values in this file
pnpm install
pnpm dev

can you tell me what values should i add in .env file

and did you thought it from pnpm to vite

I am afraid that the env value requires yourself deep diving into the code.
Currently the package management is pnpm. My next plan is to move it to bun rather than vite. Sorry for that.


Uninstall instructions

Can the steps to uninstall be documented on the README, or better yet, automated?  Adding an uninstall flag to the setup.py would be optimal.
Looking at the install logs, is this essentially it?
rm /usr/local/bin/wifi-password
rm /usr/local/lib/python3.9/site-packages/wifi_password-*.egg

Hi @dhergert,
You should be able to uninstall wifi-password by running python3 -m pip uninstall wifi-password.
Let me know how that goes 😊


[communication] new phone numbers library

This PR moves the new phone numbers library from its feature branch to master.

@0rland0Wats0n Looks like this PR brought in some old dependencies... Can you share which package you used as a template to create this new package?


Option: only whisper lv 80 chars

Hey,
is there a option to only whisper lv 80 chars?
spamming all the ppl leveling is not pleasant :)
Greetings :)

Yes, this is a great idea. The idea of this add-on is great, its implementation is toxic—any toggles to accommodate more customization would be amazing.

its implementation is toxic

A whisper directly to the person is toxic? There's literally no way people won't get bent being told they doing something wrong.
Regardless, this is on my roadmap for 2.3.0, just been too busy to do all the things I wanted to. Overhaling settings so stuff like this is easier to add in the future, but a fair bit of work to get there.

Implemented in v2.3.0, whenever I get that out.


[kwokctl] Support Force Delete Cluster

What type of PR is this?
/kind feature

What this PR does / why we need it:
This PR introduces a new --force flag for the kwokctl delete cluster command. This flag allows users to force delete a cluster, even if the runtime is unavailable or the cluster does not exist.
Which issue(s) this PR fixes:

Fixes #1124
Special notes for your reviewer:
The main changes include:
Addition of the Force field in the flagpole struct.
Modification of the deleteCluster function to handle the force flag.
Addition of the --force command-line flag in the NewCommand function.
Does this PR introduce a user-facing change?

- Added `--force` flag to `kwokctl delete cluster` command to forcefully delete a cluster.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

/ok-to-test

Hey @wzshiming, I've made the required changes, can you please let me know if i've got to change anything else? Thanks!

This requires rebase.

This needs rebase.

I think the changes made in this PR have been made in #1125 and has been merged.

So now you need to rebase this branch to the main.
refer https://stackoverflow.com/questions/29914052/how-to-git-rebase-a-branch-with-the-onto-command

So now you need to rebase this branch to the main. refer https://www.google.com/search?q=git+rebase+and+fix+conflicts

Made the changes

diff --git a/pkg/kwokctl/cmd/delete/cluster/cluster.go b/pkg/kwokctl/cmd/delete/cluster/cluster.go
index 7530a260..571dbefd 100644
--- a/pkg/kwokctl/cmd/delete/cluster/cluster.go
+++ b/pkg/kwokctl/cmd/delete/cluster/cluster.go
@@ -35,9 +35,10 @@ import (
 type flagpole struct {
 	Name       string
 	Kubeconfig string
+	Force      bool
 }

-// NewCommand returns a new cobra.Command for cluster creation
+// NewCommand returns a new cobra.Command for cluster deletion
 func NewCommand(ctx context.Context) *cobra.Command {
 	flags := &flagpole{}
 	flags.Kubeconfig = path.RelFromHome(kubeconfig.GetRecommendedKubeconfigPath())
@@ -52,6 +53,7 @@ func NewCommand(ctx context.Context) *cobra.Command {
 		},
 	}
 	cmd.Flags().StringVar(&flags.Kubeconfig, "kubeconfig", flags.Kubeconfig, "The path to the kubeconfig file that will remove the deleted cluster")
+	cmd.Flags().BoolVar(&flags.Force, "force", false, "Force delete the cluster")
 	return cmd
 }

@@ -77,6 +79,13 @@ func runE(ctx context.Context, flags *flagpole) error {
 		return err
 	}

+	if err := rt.Available(ctx); err != nil {
+		if !flags.Force {
+			return err
+		}
+		logger.Warn("Unavailable runtime but proceed with force delete", "err", err)
+	}
+
 	// Stop the cluster
 	start := time.Now()
 	logger.Info("Cluster is stopping")

NOTICE THIS PATCH

diff --git a/pkg/kwokctl/cmd/delete/cluster/cluster.go b/pkg/kwokctl/cmd/delete/cluster/cluster.go
index 7530a260..571dbefd 100644
--- a/pkg/kwokctl/cmd/delete/cluster/cluster.go
+++ b/pkg/kwokctl/cmd/delete/cluster/cluster.go
@@ -35,9 +35,10 @@ import (
 type flagpole struct {
 	Name       string
 	Kubeconfig string
+	Force      bool
 }

-// NewCommand returns a new cobra.Command for cluster creation
+// NewCommand returns a new cobra.Command for cluster deletion
 func NewCommand(ctx context.Context) *cobra.Command {
 	flags := &flagpole{}
 	flags.Kubeconfig = path.RelFromHome(kubeconfig.GetRecommendedKubeconfigPath())
@@ -52,6 +53,7 @@ func NewCommand(ctx context.Context) *cobra.Command {
 		},
 	}
 	cmd.Flags().StringVar(&flags.Kubeconfig, "kubeconfig", flags.Kubeconfig, "The path to the kubeconfig file that will remove the deleted cluster")
+	cmd.Flags().BoolVar(&flags.Force, "force", false, "Force delete the cluster")
 	return cmd
 }

@@ -77,6 +79,13 @@ func runE(ctx context.Context, flags *flagpole) error {
 		return err
 	}

+	if err := rt.Available(ctx); err != nil {
+		if !flags.Force {
+			return err
+		}
+		logger.Warn("Unavailable runtime but proceed with force delete", "err", err)
+	}
+
 	// Stop the cluster
 	start := time.Now()
 	logger.Info("Cluster is stopping")

NOTICE THIS PATCH

Yeah, should i modify anything here?

Your changes are wrong.

Okay, I'll rethink my approach and will fix this.

It cannot achieve the effect of not forcing deletion

Normal deletion works normal when the --force flag is not set and the runtime is available. If the runtime is not available and the --force flag is not set, the cluster will not be deleted. If the --force flag is set to true, the cluster will be deleted despite the unavailability of the runtime. Is this correct? I was trying to implement this and i've checked with and without the flags on my local build. Can you please explain me in detail if this understanding of mine is wrong?

diff --git a/pkg/kwokctl/cmd/delete/cluster/cluster.go b/pkg/kwokctl/cmd/delete/cluster/cluster.go
index 7530a260..571dbefd 100644
--- a/pkg/kwokctl/cmd/delete/cluster/cluster.go
+++ b/pkg/kwokctl/cmd/delete/cluster/cluster.go
@@ -35,9 +35,10 @@ import (
 type flagpole struct {
 	Name       string
 	Kubeconfig string
+	Force      bool
 }

-// NewCommand returns a new cobra.Command for cluster creation
+// NewCommand returns a new cobra.Command for cluster deletion
 func NewCommand(ctx context.Context) *cobra.Command {
 	flags := &flagpole{}
 	flags.Kubeconfig = path.RelFromHome(kubeconfig.GetRecommendedKubeconfigPath())
@@ -52,6 +53,7 @@ func NewCommand(ctx context.Context) *cobra.Command {
 		},
 	}
 	cmd.Flags().StringVar(&flags.Kubeconfig, "kubeconfig", flags.Kubeconfig, "The path to the kubeconfig file that will remove the deleted cluster")
+	cmd.Flags().BoolVar(&flags.Force, "force", false, "Force delete the cluster")
 	return cmd
 }

@@ -77,6 +79,13 @@ func runE(ctx context.Context, flags *flagpole) error {
 		return err
 	}

+	if err := rt.Available(ctx); err != nil {
+		if !flags.Force {
+			return err
+		}
+		logger.Warn("Unavailable runtime but proceed with force delete", "err", err)
+	}
+
 	// Stop the cluster
 	start := time.Now()
 	logger.Info("Cluster is stopping")

NOTICE THIS PATCH

I've already sent you the changes that need to be made.

There are too many irrelevant changes, please squash all commits

Yep, squashed all the commits

/approve
/lgtm


changes flag order for chmod to work on bsd

Q
A

Bug fix?
Yes

New feature?
No

BC breaks?
No

Deprecations?
No

Fixed tickets
765

deployphp/deployer/issues/765

Goes it will be working on other systems?

For most linux distros the ordering doesn't matter. For BSD based distros (and Mac) it does.
So: Yes, it will still work for linux after merge.

Cool! Please ann same PR for 4.x branch.


Turn of logging for certain events

I have some jobs that run frequently that I'd like to turn logging off for, but leave on for the other scheduled jobs.  It would be nice to pass a log: false option with the job.  Is there anyway to accomplish this?  The only way I can think of would be to parse the job name out of the opts.message using  the logger config option.

I guess for now I'll probably turn logging off and add my own logs in the specific job functions.  If there's an alternative I'd be interested.

+1

+1

+1

+1

I think logging should be off by default, as I don't want the output in my console, or I want to at least be able to control it.

+1

I have a pull request to this
#119

I added a custom logger function, and only are logging warn and error levels, but then I looked at the code and info is being used exclusively. I think if at the minimum the message which are errors would use the correct level (log.error) instead of log.info, the custom logger function would suffice the way it is. Here is my implementation:
import { Log } from 'meteor/logging';

const CustomLogger = (opts) => {
  const { level, message, tag } = opts || {};
  // Do not log info or debug, only warn and Error
  if (level !== 'warn' || level !== 'error') return;
  Log[level]({ message: `${tag}: ${message}` });
  return;
};

SyncedCron.config({
  logger: CustomLogger,
});

This should now work at https://atmospherejs.com/littledata/synced-cron


Fixing portIndex KeyError. when using COMMAND as protocol, there's no…

Fixing portIndex KeyError.  When using COMMAND as protocol, there's no portIndex provided. This causes KeyError to raise on if check['portIndex'] == portIndex line.

Looks good. Could you write a unit test for with/without the command check?

I've written a test. When protocol is command, it assumes it's mode=TCP. This causes removal of some lines like below marked with +. It says lines marked with + are not generated with marathon_lb but exist in my test config. If it is normal to remove these lines, I'll be removing them on the tests and push. I don't know much about the internals of HAProxy and don't have time this week, so asking here.
AssertionError: 'glob[536 chars]ttp\n\nfrontend marathon_https_in\n  bind *:44[184 chars]cp\n' != 'glob[536 chars]ttp\n  acl app__nginx hdr(x-marathon-app-id) -[466 chars]0s\n'
  global
    daemon
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 4096
    tune.ssl.default-dh-param 2048
  defaults
    log               global
    retries           3
    maxconn           2000
    timeout connect   5s
    timeout client    50s
    timeout server    50s
    option            redispatch
  listen stats
    bind <IP_ADDRESS>:9090
    balance
    mode http
    stats enable
    monitor-uri /_haproxy_health_check

  frontend marathon_http_in
    bind *:80
    mode http

  frontend marathon_http_appid_in
    bind *:9091
    mode http
+   acl app__nginx hdr(x-marathon-app-id) -i /nginx
+   use_backend nginx_10000 if app__nginx

  frontend marathon_https_in
    bind *:443 ssl crt /etc/ssl/mesosphere.com.pem
    mode http

  frontend nginx_10000
    bind *:10000
-   mode tcp
?         ^
+   mode http
?        + ^
    use_backend nginx_10000

  backend nginx_10000
    balance roundrobin
-   mode tcp
?         ^
+   mode http
?        + ^
+   option forwardfor
+   http-request set-header X-Forwarded-Port %[dst_port]
+   http-request add-header X-Forwarded-Proto https if { ssl_fc }
+   option  httpchk GET /
+   timeout check 10s

Yeah, that looks correct to me. Thanks for checking, and thanks for writing the test!


Fatal signal 8 (SIGFPE), code -6, fault addr 0xee5 in tid 4032 (Worker Thread)

Fatal signal 8 (SIGFPE), code -6, fault addr 0xee5 in tid 4032 (Worker Thread)
How can i handle this?

i tried build from source but same error throwing

also tried bitmap decoding from resources and save it as tiff. Same error revealing. How can I use this library without error? Whats wrong?....

I think that this is error in some of algorithms in native code. It's difficult to found.
Could you attach file that you trying to open and write decode options.
Thank you

              ``  TiffSaver.SaveOptions options= new TiffSaver.SaveOptions();
                options.compressionScheme = CompressionScheme.LZW;
                options.orientation = Orientation.LEFT_TOP;

                boolean saved = TiffSaver.saveBitmap(tiffFileName, bitmap, options);
                Log.e("TIFF ", " Saved " + saved); ``

also tried appendBitmap instead of saveBitmap

bitmap is decoded from small png resource 24x24 px.

Is there any example bitmap file and example code for usage? (except wiki codes)

Sorry, but no other example code. Only on wiki page.
What device did you use?
Have you tried same options but without orientation field?

 wrote: /storage/emulated/0/xyz/TestMandantAktuell2015/Kasse/DOC-20170904-234155.jpg
 nativeTiffOpenForSave /storage/emulated/0/xyz/TestMandantAktuell2015/Kasse/DOC-20170904-234157.tif
 Software Name:  TiffBitmapFactory-<IP_ADDRESS>
 Release:  5.0.1
 Full Release:  Android 5.0.1
 ANDROID_BITMAP_FORMAT_RGBA_8888
 A/libc: Fatal signal 8 (SIGFPE), code -6, fault addr 0x10b7 in tid 4279 (.digitasticplus)

removed options lines
                boolean saved = TiffSaver.saveBitmap(tiffFileName, bitmap);

not working
Device : Samsung Galaxy S4 I9500 Android 5.0.1

As temporary fix for converting png to tiff you could use class TiffConverter.

Can you TiffConverter explain with some example codes ?

Yes, of course.
TiffConverter.ConverterOptions converterOptions = new TiffConverter.ConverterOptions();
converterOptions.compressionScheme = CompressionScheme.LZW;
converterOptions.imageDescription = "Some text description";
converterOptions.resUnit = ResolutionUnit.INCH;
converterOptions.xResolution = 72;
converterOptions.yResolution = 72;

boolean isSaved = TiffConverter.convertPngTiff("/sdcard/source.png", "/sdcard/out.tif", converterOptions, listener);

This class is in alpha version, but I using it in my application.

thanks man, it worked but how can i add more files to this tiff?

For appending page to existing tiff add to convert options:
converterOptions.appendTiff = true;

Here is my part of code:
              if (!created) {
                    try {
                        boolean isSaved = false;
                        if (imageFormat == ImageFormat.JPEG) {
                            isSaved = TiffConverter.convertJpgTiff(model.getFilePath(), file.getAbsolutePath(), converterOptions, listener);
                        } else if (imageFormat == ImageFormat.PNG) {
                            isSaved = TiffConverter.convertPngTiff(model.getFilePath(), file.getAbsolutePath(), converterOptions, listener);
                        }
                        if (isSaved) {
                            created = true;
                        }
                    } catch (OutOfMemoryError e) {
                    } catch (RuntimeException e) {
                    }
                } else {
                    converterOptions.appendTiff = true;
                    try {
                        if (imageFormat == ImageFormat.JPEG) {
                            TiffConverter.convertJpgTiff(model.getFilePath(), file.getAbsolutePath(), converterOptions, listener);
                        } else if (imageFormat == ImageFormat.PNG) {
                            TiffConverter.convertPngTiff(model.getFilePath(), file.getAbsolutePath(), converterOptions, listener);
                        }
                    } catch (OutOfMemoryError e) {
                    } catch (RuntimeException e) {
                    }
                }

awesome man :) thanks alot. I achieved my goal with your snippet. thanksss 👍

Tiff saver error fixed with 5550a8644cf89958a79f86670bda3814159b8932
You could build new version from repo or wait while version <IP_ADDRESS> will be available


Discover application on local server

Team,
I tried running this tool on a local server which had applications hosted on local IIS. But I am not able to discover the applications locally. I tried giving "localhost", "HostName", "IP Address" and FQDN. But, none of them work.
Thanks and Regards,
Manjunath

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

ID: ad16ffec-174f-c694-5367-a0f54940dfc6
Version Independent ID: 6ad1098a-ca08-2f48-2858-b54f67605a40
Content: Azure App Containerization ASP.NET; Containerization and migration of ASP.NET applications to Azure Kubernetes. - Azure Migrate
Content Source: articles/migrate/tutorial-app-containerization-aspnet-kubernetes.md
Service: azure-migrate
GitHub Login: @rahugup
Microsoft Alias: rahugup

Thanks for the feedback! We are currently investigating and will update you shortly.

@manzoo79 Please send an email to<EMAIL_ADDRESS>The team will troubleshoot this issue and help you with solution.

@manzoo79 Closing this thread for now as no action pending from documentation perspective.
Please update this thread once the team helps with a solution to your issue.

Thanks, I was able to get it working. I could not get it working on my Official laptop, but worked on one of the Azure VM.

@manzoo79 Thanks for the update. Glad to know it worked.


wrong return value, {(null)} instead of null, of the IsAbstract attribute of the TestServer

Around last year I tried to create an own client application, and eventually succeeded. Now I wanted to try and create an own server application. This seemed to work at first (I could connect with the opc reference client to the TestServer and read some values of the TestServer, where I used the version of Apr 21, 2020 of LibUA), but after updating the LibUA to the latest version it failed, the opc reference client crashed with a null reference, because it tried to read the IsAbstract attribute, but the TestServer returns {(null)}.
There has been a change in the Application.cs, in the function HandleReadRequest(...), where eventually a new DataValue(null, StatusCode.BadAttributeIdInvalid) is returned in the old version, but in the latest version a new DataValue(null, StatusCode.Good) is returned. If I use the latest LibUA version but use StatusCode.BadAttributeIdInvalid, the opc reference client does not crash, and I can read the TestServer values again.
However, after setting a breakpoint in the opc reference client code, I could see the TestServer returns a null value in the old LibUA version, but in the new version it returns a {(null)} value, and therefore the reference client crashes. So I don't think that the  change of the StatusCode is the issue, but that some other change in LibUA causes this issue?

Please upload a binary executable of the test client. I will see what I can sniff with Wireshark and go from there.

ReferenceClient.zip
I attached a zip file containing all dll's and the Quickstarts.ReferenceClient.exe
please note that the exception is not visible in this case, it is only visible when debugging with visual studio. In that case, a null exception is thrown, when stepping through, the data of the server will still be visualized. When you run the executable, you will not be able to see the exception, but you should of course still be able to see the difference in the return values using Wireshark.

Accidently missed this about 3 weeks back. Fixed and pushed, please try now.

yes, this does fixes it, thanks!
I was a bit confused about the {(null}) value, but this value is actually discarded by the reference client if the server returns a BadAttributeIdInvalid, so everything gets handled correctly afterwards.


fix/host-share-screen-only

Implemented the following:

Only Hosts can share screen
Toast Notification component
Toast triggered when non-host tries to share screen or create quiz

Only one point:

When I try entering the page for the first time (i.e. without any prior auth), I get an alert saying "token invalid":

Aside from that - great job, this looks really clean!

Looks good!


make failed with nginx-1.8.0 and nix_pagespeed-<IP_ADDRESS>

[nginx-1.8.0] make                                                                                9:47:14
make -f objs/Makefile
make[1]: Entering directory /root/nginx-1.8.0' cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g   -Wno-unused-local-typedefs -Wno-error  -I src/core -I src/event -I src/event/modules -I src/os/unix -I /root/ngx_pagespeed/psol/include -I /root/ngx_pagespeed/psol/include/third_party/chromium/src -I /root/ngx_pagespeed/psol/include/third_party/google-sparsehash/src -I /root/ngx_pagespeed/psol/include/third_party/google-sparsehash/gen/arch/linux/x64/include -I /root/ngx_pagespeed/psol/include/third_party/protobuf/src -I /root/ngx_pagespeed/psol/include/third_party/re2/src -I /root/ngx_pagespeed/psol/include/out/Release/obj/gen -I /root/ngx_pagespeed/psol/include/out/Release/obj/gen/protoc_out/instaweb -I /root/ngx_pagespeed/psol/include/third_party/apr/src/include -I /root/ngx_pagespeed/psol/include/third_party/aprutil/src/include -I /root/ngx_pagespeed/psol/include/third_party/apr/gen/arch/linux/x64/include -I /root/ngx_pagespeed/psol/include/third_party/aprutil/gen/arch/linux/x64/include -I objs -I src/http -I src/http/modules -I src/mail \                 -o objs/addon/src/ngx_pagespeed.o \                 /root/ngx_pagespeed/src/ngx_pagespeed.cc {standard input}: Assembler messages: {standard input}:8970: Warning: end of file not at end of a line; newline inserted {standard input}:10738: Error: unknown pseudo-op: .'
cc: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error 4
make[1]: Leaving directory `/root/nginx-1.8.0'
make: *** [build] Error 2

what operating system are you using and what bits (32 or 64).
Are you following the instructions posted or do you have additional flags?
I'm guessing this is a bug in the compiler, but we've built with gcc 4.8 with no issues.

ubuntu 14.04 64bit. Someone say it is the bug with gcc which out of memory...

My gcc version is 4.8.4(Ubuntu 4.8.4-2ubuntu1~14.04)

I think I have solved this problem with expand my vps's memory from 512MB to 2GB. Thanks a lot!


Dead link in the handbook on Modules: isomorphic.net

UMD modules
Some libraries are designed to be used in many module loaders, or with no module loading (global variables). These are known as UMD or Isomorphic modules. These libraries can be accessed through either an import or a global variable. For example:

Isomorphic's link to isomorphic.net is no longer active. Can it just be removed?

Oh just found https://github.com/Microsoft/TypeScript-Handbook after posting this... will x-post.


[SPARK] Empty ("") dataset names for AWSGlue as metastore

// Configure AWSGlue as metastore
spark = (
  SparkSession.builder.appName("SparkSQL")
    .config(
      "spark.hadoop.hive.metastore.client.factory.class",
      "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
    )
    .enableHiveSupport()
    .getOrCreate()
)
// Read / write to S3
.
.

When using AWSGlue, dataset names are empty:
.
.
"inputs": [
  "namespace": "aws-glue-bug"
  "name": ""
  "facets": {
    "dataSource": {
      "name": "s3://aws-glue-bug",
      "uri": "s3://aws-glue-bug"
    }
    .
    .
  }
]

Pretty sure something here is not right. Need to check what path here Glue takes

I'm unable to reproduce with just AWS Glue job - will try on EMR?


Adding tests for getEnvironmentVariables

Adding tests - mainly for my own understanding but thought it might be useful in the future.

Yaay. Will review it shortly :-)


Specify explicit version for "latest" component

It is not clear if there is any way to specify an explicit version for the - at the time - latest version of a component.
This causes the following problem for me:
Currently Microsoft.VisualStudio.Component.VC.ATLMFC maps to C++ MFC for latest v143 build tools (x86 & x64) , but as soon as VS2023 (or similar) is released this could easily map to v144 build tools, which isn't what I want in a .vsconfig file that describes the required components for my solution (since I will still require the old 143 build tools until I update).

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

ID: fe411145-ff47-dfe5-1e57-db8d54671b58
Version Independent ID: 4dac6d72-8c3c-dec8-d473-a2902e4e1fb9
Content: Visual Studio Professional workload and component IDs
Content Source: docs/install/workload-component-id-vs-professional.md
Product: visual-studio-windows
Technology: vs-installation
GitHub Login: @anandmeg
Microsoft Alias: meghaanand

@danstur -- Daniel, thank you for your feedback.  Please consider these resources:

Visual Studio on Microsoft Q&A
Visual Studio MSDN Forum
Stack Overflow
Reddit

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

@danstur - thanks for sharing your feedback!
The tools along with their versions are explicitly listed at the bottom of the page in the Unaffiliated components section. By using one of those explicit component names (instead of Microsoft.VisualStudio.Component.VC.ATLMFC), you can explicitly specify a particular version of the tools.
Hope this helps with your question. Please let us know if you have any other questions. Thanks!


adding pi ai

An text based chatting gen ai tool

prompt based chat
free gen ai tool
no compulsory login required*

@ashitaprasad let me know?


feat: consume profile properties from Okta

This PR consumes profile fields from Okta (as opposed to using email for everything).

@kissmikijr I added a changeset. I haven't used this tool before- so let me know if I did everything correctly.

@DerekTBrown Looks good thank you! Especially kudos for the nice descriptive changeset message! :) I'll merge the PR after the build passes! thank you for your contribution!

What happened to this PR? Just wondering. I do not see it in the latest release


Use parameter classes instead of arguments for all physics queries

Same as what is already done for shape queries, applied to point and ray queries. Easier to document and more flexible to add more parameters.
Also expose intersect_point method to script in 3D.
(closes https://github.com/godotengine/godot-proposals/issues/3262 for 4.0)
Remove intersect_point_on_canvas in 2D, replaced with a parameter.

Updated from @fabriceci's comment and made a couple more fixes around intersect_shape:
In 2D, I've made a little fix that allows motion to work properly and removed the note in doc that says it doesn't.
In 3D, this is not supported (yet) so I've added a similar note in the doc.

And I've pushed one last fix to add the missing motion property in PhysicsShapeQueryParameters3D, since now it's working the same way as in 2D (shape motion in parameters rather than argument).
Should be good to go now :)

Thanks!


Fixing bad link to RN documentation.

Motivation
The link referencing the root of RN documentation was leading to a 404 error. As the docs don't seem to have a true "index" page, it makes sense that it goes to the top level entry in the docs, the "Getting Started Section". The alternative solution may be not linking that phrase at all, this seems helpful though.
Test Plan
No changes in this pull request require any sort of unit/AB testing, the link directing to the correct place should be apparent.
Release Notes
[DOCS] [BUGFIX] [README.md] - Fixing doc resource link.

@facebook-github-bot shipit

Thank you for catching this! Prior to today, that link would have worked. I'll see if I can fix this in the updated website.

@hramos great :) Thanks for getting back to me


Mention in readme about syntax highlighting

Hi! Thank you for this project! :smiley:
Just wanted to note that possibly it's worth to mention in the readme that to make the listed example to be with syntax highlighted it's necessary to add these styles to your project:
https://github.com/satya164/react-simple-code-editor/blob/11e8ce04ec5e59158bc06d2f14525643e2b2f753/example/styles.css#L72-L131

Hey, not necessarily this CSS, but yeah, we should document that you will need to the CSS for the prismjs theme you want when you're using it.

Closing since it's now mentioned in the README:

Note that depending on your syntax highlighter, you might have to include additional CSS for syntax highlighting to work.


Cached store part #1: API

This is a precursor PR for the cached store, it adds an API struct to pass around static API pointers, and makes it available in incoming.Request

Codecov Report
Base: 20.78% // Head: 20.88% // Increases project coverage by +0.09% :tada:

Coverage data is based on head (061a175) compared to base (5eac984).
Patch coverage: 11.61% of modified lines in pull request are covered.

Additional details and impacted files
@@                         Coverage Diff                          @@
##           lev-MM-48793-bot-subs-simplified     #457      +/-   ##
====================================================================
+ Coverage                             20.78%   20.88%   +0.09%
====================================================================
  Files                                    79       79
  Lines                                  5445     5416      -29
====================================================================
- Hits                                   1132     1131       -1
+ Misses                                 4181     4153      -28
  Partials                                132      132

Impacted Files
Coverage Δ

server/config/service.go
0.00% <0.00%> (ø)

server/config/test_service.go
0.00% <0.00%> (ø)

server/proxy/enable.go
4.05% <0.00%> (ø)

server/proxy/install.go
0.00% <0.00%> (ø)

server/proxy/invoke_oauth2.go
0.00% <0.00%> (ø)

server/proxy/invoke_static.go
18.91% <0.00%> (ø)

server/proxy/invoke_webhook.go
0.00% <0.00%> (ø)

server/proxy/notify.go
0.00% <0.00%> (ø)

server/proxy/service.go
6.89% <0.00%> (-0.09%)
:arrow_down:

server/proxy/synchronize.go
0.00% <0.00%> (ø)

... and 13 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!


ensemble

I've attempted to ensemble the models trained using your code and my own strategy, which have scores of lb 0.724 and 0.722, but I encountered some difficulties during your inference process. May I ask if you will be updating anything related to model ensembling in your code?

@ZhangBY-Lab
There are no plans to add ensemble codes, but the policy for implementation is clear.

inference to store keys and preds for each model
Weighted average of preds per keys
The output of my model is the probability of an event occurring at each step, so there is no need to adjust shape.

If you can tell us about the problems that occurred in your "inference", I may be able to provide a more detailed explanation.

`def inference(
duration: int, loader: DataLoader, models: list[BaseModel], device: torch.device, use_amp
) -> tuple[list[str], np.ndarray]:
# Initialize predictions and keys
preds_accumulated = None
keys = None
# Loop through each model
for model in models:
    model = model.to(device)
    model.eval()

    # Initialize a temporary list to store predictions for the current model
    preds_current_model = []

    # Inference
    for batch in tqdm(loader, desc=f"inference {model}"):
        with torch.no_grad():
            with torch.cuda.amp.autocast(enabled=use_amp):
                x = batch["feature"].to(device)
                output = model.predict(x, org_duration=duration)
            if output.preds is None:
                raise ValueError("output.preds is None")
            else:
                preds_current_model.append(output.preds.detach().cpu().numpy())
                if keys is None:
                    keys = batch["key"]

    preds_current_model = np.concatenate(preds_current_model)

    if preds_accumulated is None:
        preds_accumulated = preds_current_model
    else:
        preds_accumulated += preds_current_model

preds_average = preds_accumulated / len(models)

return keys, preds_average`
Here's my modified infer function; it seems to have successfully generated the submission locally, but when I submit it, I get a "Submission Scoring Error". At first, I thought it was due to the threshold, but even after adjusting the threshold, the error persists.

`
def inference(
duration: int, loader: DataLoader, models: list[BaseModel], device: torch.device, use_amp
) -> tuple[list[str], np.ndarray]:
# Initialize predictions and keys
preds_accumulated = None
keys = None
# Loop through each model
for model in models:
    model = model.to(device)
    model.eval()

    # Initialize a temporary list to store predictions for the current model
    preds_current_model = []

    # Inference
    for batch in tqdm(loader, desc=f"inference {model}"):
        with torch.no_grad():
            with torch.cuda.amp.autocast(enabled=use_amp):
                x = batch["feature"].to(device)
                output = model.predict(x, org_duration=duration)
            if output.preds is None:
                raise ValueError("output.preds is None")
            else:
                preds_current_model.append(output.preds.detach().cpu().numpy())
                if keys is None:
                    keys = batch["key"]

    preds_current_model = np.concatenate(preds_current_model)

    if preds_accumulated is None:
        preds_accumulated = preds_current_model
    else:
        preds_accumulated += preds_current_model

preds_average = preds_accumulated / len(models)

return keys, preds_average

`
Here's my modified infer function; it seems to have successfully generated the submission locally, but when I submit it, I get a "Submission Scoring Error". At first, I thought it was due to the threshold, but even after adjusting the threshold, the error persists.

@ZhangBY-Lab
There is a problem with the keys being initialized for each iteration of the "inference loop".
Please refer to my inference function to create keys.

`def inference(duration: int, loader: DataLoader, models: list[BaseModel], device: torch.device, use_amp
) -> tuple[list[str], np.ndarray]:
# Initialize predictions
preds_accumulated = None
# Initialize keys outside the model loop
keys_initialized = False
keys = None

for model in models:
    model = model.to(device)
    model.eval()

    # Initialize a temporary list to store predictions for the current model
    preds_current_model = []

    for batch in tqdm(loader, desc=f"inference {model}"):
        with torch.no_grad():
            with torch.cuda.amp.autocast(enabled=use_amp):
                x = batch["feature"].to(device)
                output = model.predict(x, org_duration=duration)
            if output.preds is None:
                raise ValueError("output.preds is None")
            else:
                preds_current_model.append(output.preds.detach().cpu().numpy())
                if not keys_initialized:
                    keys = batch["key"]
                    keys_initialized = True

    preds_current_model = np.concatenate(preds_current_model)

    if preds_accumulated is None:
        preds_accumulated = preds_current_model
    else:
        preds_accumulated += preds_current_model

preds_average = preds_accumulated / len(models)

return keys, preds_average`

Thank you for your guidance. I added a conditional statement in the loop to address the issue with the keys. Does this resolve the problem with the keys, and are there any other issues that might still exist? I will try submitting it again to see the results.

@ZhangBY-Lab
The problem has not been solved.
"keys" needs to be stacked.
for model in models:
    model = model.to(device)
    model.eval()

    preds = []
    keys = []
    for batch in tqdm(loader, desc="inference"):
        with torch.no_grad():
            with torch.cuda.amp.autocast(enabled=use_amp):
                x = batch["feature"].to(device)
                output = model.predict(
                    x,
                    org_duration=duration,
                )
            if output.preds is None:
                raise ValueError("output.preds is None")
            else:
                key = batch["key"]
                preds.append(output.preds.detach().cpu().numpy())
                keys.extend(key)

    preds = np.concatenate(preds)

    if preds_accumulated is None:
        preds_accumulated = preds
    else:
        preds_accumulated += preds

preds_average = preds_accumulated / len(models)
return keys, preds_average

Wow, the submission was successful, and the score has broken through to 0.73X. Thank you!

@ZhangBY-Lab
Excellent! I hope you get good results.


[audit] overlay extra classes

Bug, feature request, or proposal:
Suggesting library-wide audit
Currently
Overlay components all accept extra classes differently:

Dialog: string | string[]
Snackbar: string[]
Tooltip: NgClass
Select: NgClass
Menus: class only
Datepicker: none
Autocomplete: none (tracking https://github.com/angular/material2/pull/6618 or https://github.com/angular/material2/pull/7176)

Ideally
Consistent NgClass compatibility would be awesome. If not possible, string | string[] support would be good.
Additionally, consistent naming would be nice. Snackbar uses extraClasses, whereas select uses panelClass. Also, select and dialog both use panelClass, but the class is added to different elements.

Agreed, they should all be consistent. I would want to use panelClass everywhere

@jelbourn - So to clarify, update all the inputs to panelClass with NgClass as the interface? Do we need to deprecate as well?

The template-based components can have NgClass mechanics, but dialog.snack-bar would just stay as strings because there's no binding context

Also this would be a good candidate for a mixin

@jelbourn -

I played around with a mixin but the implementations varied so much, it was tricky. I ended up making a utility parser instead.
Do you want me to rename matTooltipClass to matPanelClass or just leave it for that one?

Tooltip can stay as matTooltipClass

If you make a PR it's easier to leave comments; you can mark it as WIP

One thing I will say is that we don't want to add additional cdk packages for utility methods; each one is a public API that a user would potentially need to know about (such as when adding to a systemjs config)

Would it make sense (maybe in another issue / PR) to add a similar input for the .cdk-overlay-container element?


Add a "download all" option

Dunno how this'd work, but it'd be cool to have a link that downloads all the images on the site. Maybe this is just a zip file I manually create for now?

(Or to automate it, could be a step in the deploy process that creates a zip file!)

Done!


[Feature Request] Add manual control over how slider styles are destroyed

Right now there is an issue with styles being removed from the slider on destroy which leads to visual mess and jumpiness of items when navigating from one vue route to another. Ideally there should be an option to control styles deletion in the destroy process.
What is needed: slider.destroy(cleanStyles);
where cleanStyles  - boolean - (true by default) Set it to false to keep styles on the instance during destroy process

@AndrewBogdanovTSS ^ What have you done to account for this? I am running into the same issue? Basically my slides stack their height with the background color after route change is initialized.

There's nothing that can be done to account for this except the way I requested it. It's a built in functionality that should be implemented within a lib, not somewhere outside. It may also be related to the core tiny slider lib, not the Vue wrapper, or maybe both


Updating groovy:jar

Hello,
I have a vulnerability groovy-2.4.10.jar , CVE-2016-6497 , Severity: Medium ( plugin dependency check in jenkins)
When I run mvn dependency:tree -X :

+- nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:jar:2.2.2:compile
[INFO] |  - org.codehaus.groovy:groovy:jar:2.4.10:compile

So how can I remove this vulnerability

Weird, this project brings in 2.4.6 (https://github.com/ultraq/thymeleaf-layout-dialect/blob/master/build.gradle#L54), so I don't know what's in your build to have chosen 2.4.10?  Anyway, I read up on the vulnerability from the original research paper and don't believe this library or your project are at risk.
From what I can gather, CVE-2016-6497 is about remote code execution through LDAP implementations in the JVM, and one example of this was with a product called Apache Directory via a Groovy LDAP API.  Since being told of this vulnerability, Apache have removed the Groovy LDAP API from their product.
Here's the paper and the relevant quote:
https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf

Example: Apache DS Groovy API
Apache Directory offers a wrapper class (org.apache.directory.groovyldap.LDAP) which provides LDAP functionality to Groovy. This class uses the  returnObjFlag set to true for all search methods and thus renders them vulnerable to LDAP Entry Poisoning.
Disclosure Timeline:
The vulnerability was responsibly disclosed to Apache who decided to remove the Groovy API from its site (still available in cache: http://web.archive.org/web/20160702093242/http://directory.apache.org/api/groovy-ldap.html) and release.
24/Jun/2016 - Initial report of the vulnerability.
07/Jul/2016 - Apache removes the Groovy API from the web site and announce that it was not part of the release

So the vulnerable code in question was in a pre-release version of Apache Directory, and not Groovy itself.  The affected file, org/apache/directory/groovyldap/LDAP.java does not exist in the Groovy JAR imported by this project.
If you want to double-check my findings, I found this site was a good resource since it had links to everything I mentioned: https://nvd.nist.gov/vuln/detail/CVE-2016-6497

groovy 2.4.10 (managed from 2.4.6)
So what should I do , the vulnerability with high priority

Given what I've discovered, I believe this is a false positive report of the Groovy JARs, so I've gone and filed a false positive report on the dependency check library that the Jenkins plugin uses (https://github.com/jeremylong/DependencyCheck/issues/1004.  For now, I would suggest you suppress this warning, which you can read on how to do over on the dependency check plugin's website: https://jeremylong.github.io/DependencyCheck/general/suppression.html

How can I suppress this warning ?? I check the source code of dependency check plugin , I found the file suppression.xml  , So the suppression isn't  automatically done !!

Given the documentation in the link I gave you in my last reply, it seems you can do this from a button in the HTML report:

Suppressing these false positives is fairly easy using the HTML report. In the report next to each CPE identified (and on CVE entries) there is a suppress button. Clicking the suppression button will create a dialogue box which you can simple hit Control-C to copy the XML that you would place into a suppression XML file. If this is the first time you are creating the suppression file you should click the “Complete XML Doc” button on the top of the dialogue box to add the necessary schema elements.

I suggest reading that doc - it looks fairly comprehensive.

yes , finally it works , thanks @ultraq  for your help


fix: duplicate when saving in Draft

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Pressing buttons doesn’t do anything

Alarmo Version
v1.9.7
HA Version
2022.12.8
Bug description
Every now and then the buttons on panel are unresponsive as well automations aren’t able to change mode.  Tried rebooting with no resolution.  As you can see in screen recording the buttons are being pressed but not doing anything.  Can set state in developer tools but nothing else works.
https://user-images.githubusercontent.com/5118059/209889670-7a8ba9fe-0a7b-4a3c-b263-152bcff2e8bd.MOV
Steps to reproduce
Noticed modes weren’t changing via automations, tried manually changing.
Relevant log output
No response

I am also seeing the same issue and tried changing the entity IDs. It occured when updating Alarmo from 1.9.5 to 1.9.7.

Had this problem as well, removing the configuration and re-installing alarmo fixed this.

I had this issue, removed the integration and every related file and readded again and it started working. But now it randomly happened again. What is going on?

Okay just an update. I have figured out that this happens if one of your sensors are in the open state, so make sure none of your sensors are in an open state. I had a sensor being weird and I made sure it went to closed and restarted HA and now it works.

@coleander i recommend installing alarmo-card, which will provide you with feedback of the cause in case arming fails.
Otherwise you should see this in the HA log.

I've also been having this issue. Just doesn't arm or react to anything. Checking HA logs shows nothing, as if I wasn't even interacting with Alarmo at all.

Same issue here, 1.9.7 fresh installed (hadn't alarmo installed on the past)

@FauxHobo @hardwareadictos
Please enable debug logging for alarmo by adding this to the configuration.yaml (requires restarting HA):
logger:
  default: warning
  logs:
    custom_components.alarmo: debug

This should provide additional lines in the HA log which could hopefully pinpoint to the issue.
Please share the results from the HA log when pressing the arm buttons.

@FauxHobo @hardwareadictos
Please enable debug logging for alarmo by adding this to the configuration.yaml (requires restarting HA):
logger:
  default: warning
  logs:
    custom_components.alarmo: debug

This should provide additional lines in the HA log which could hopefully pinpoint to the issue. Please share the results from the HA log when pressing the arm buttons.

Sorry, just realized that I was using a wrong card for the alarm. With the Alarmo HACs card all works perfectly.
Thanks for the support 👍

Thank you, I will. I reinstalled it again. Last time it stopped working after a few hours, this time, so far it's been working a few days. If it breaks again I'll send through the logs.


Does the observation (input) have to be between 0 and 1?

In general, I would recommend normalizing and clamping observations to be within this range, as it makes for a much easier optimization problem. Some RL frameworks, such as sb3 I believe, also check that the observations lie within the domain of the observation space.