Make pylint docstring config more strict

Short description
Make pylint docstring config more strict
Proposed changes

Add params & type to documentation
Add yield to documentation
Add return & rtype to documentation

Resolved issues

Fixes: #829

@timoludwig Much better now, Thank you for your review


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.4.169",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b0406b5ef4e2c4fb21d9e7d5c36a0453b4279e9b"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "b0406b5ef4e2c4fb21d9e7d5c36a0453b4279e9b",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.4.169 by commit b0406b5ef4e2c4fb21d9e7d5c36a0453b4279e9b. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2021-1002800


TypeError: Cannot read property 'initializing' of undefined

Hi, I installed the last jhispter version and jhipster-banner, tried to run it after having created my project and got:
yo jhipster-banner TypeError: Cannot read property 'initializing' of undefined     at addInQueue (C:\Users\doublefx\AppData\Roaming\npm\node_modules\generator-jhipster-banner\node_modules\generator-jhipster\node_modules\yeoman-generator\lib\index.js:609:39)     at Array.forEach (<anonymous>)     at C:\Users\doublefx\AppData\Roaming\npm\node_modules\generator-jhipster-banner\node_modules\generator-jhipster\node_modules\yeoman-generator\lib\index.js:624:20     at new Promise (<anonymous>)     at child.run (C:\Users\doublefx\AppData\Roaming\npm\node_modules\generator-jhipster-banner\node_modules\generator-jhipster\node_modules\yeoman-generator\lib\index.js:581:21)     at Environment.runGenerator (C:\Users\doublefx\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\environment.js:616:22)     at Environment.run (C:\Users\doublefx\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\environment.js:603:17)     at C:\Users\doublefx\AppData\Roaming\npm\node_modules\yo\lib\cli.js:167:11     at Environment.resolver.lookup (C:\Users\doublefx\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\resolver.js:73:12)     at init (C:\Users\doublefx\AppData\Roaming\npm\node_modules\yo\lib\cli.js:128:7)
Any clue?

it's normal, as this module is not maintained anymore, so it's not compatible with the current version of JHipster

I've tried to use JHipster 4.6, but it failed

so, what is the solution to fix this?

fork the project
find the fix
commit and push to your fork
propose a pull request

I got the another option. Go to http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type Something
Select the ANSI Shadow font

this is what i see!


User left in a broken state if they log out of social networks while getting access

Seen on Chrome + Firefox, if the user logs out of their social networks while getting access, they are left in a broken state (the browser proxy settings are still set even though the peer connection is broken), and the only way to fix this is to restart the extension or browser.

Fixed in #2235


Add wom service and modify gyro data conversion

WOM is based on accelerometer when the high passed sample from any axis has an absolute value exceeds a user-programmable threshold.
Consequently, for those sensing magnetic field without moving sensortag, wom will be a disadvantage!
I've tested #64 issue with a simple test code and I got magneto values :
https://gist.github.com/Lahorde/9628db14b7319bb210d9b3c6d4f8cbc8
Is issue still reproducible with a recent sensortag firmware?

Is issue still reproducible with a recent sensortag firmware?

@Lahorde for me yes. @zywind any comments on this?


ResultsList: make code sample match how the component actually works

Makes the code example for ResultsList match the code used in the rendered ResultsList. (see line 232 of lib/results-list.js)

:rocket: PR was released in v0.19.0 :rocket:


Unable to start bundles using camel 2.15.2

Hi,
I tried using your tutorial on a fresh karaf 3.0.3 install, I got a bunch of errors trying to start it up:

diag 163
db-examplejpa (163)

Status: Installed
Unsatisfied Requirements:
[163.0] osgi.wiring.package; (osgi.wiring.package=net.lr.tutorial.karaf.db.examplejpa)
[163.0] osgi.wiring.package; (osgi.wiring.package=org.hibernate.proxy)
[163.0] osgi.wiring.package; (osgi.wiring.package=javassist.util.proxy)

diag 164
jpa2jms (164)

Status: Installed
Unsatisfied Requirements:
[164.0] osgi.wiring.package; (osgi.wiring.package=org.apache.openjpa.enhance)
Any idea how to resolve this?
Thanks!

Did you follow the README in the respective project dir? It is not enough to just install the bundle. For example the first unsatisfied requirements point out that hibernate is not installed.

Closing as there was no further feedback.


[BUG]: Range Slider for Line width for Vertical Bar chart

What is the bug?
Range Slider for Line width only allows range from 0 to 10 but if we manually enter a value greater than 10 it still updates the chart according to the entered value.
How can one reproduce the bug?
Steps to reproduce the behavior:

Launch OpenSearch Dashboard UI
Go to Observability->Event Analytics->Explorer
Enter PPL Query and select "Year to date" option from calendar
Click Refresh
Click on Visualizations tab
Select the Vertical bar chart option from chart selector dropdown
Try to enter a value greater than 10 for Line Width

What is the expected behavior?
The chart should not get updated if user enters any value apart from 0 to 10
@anirudha @mengweieric
cc: @abasatwar @spattnaik

Hi @mengweieric,
In all the chart styles we have added the tooltip. Please let me know if any changes are needed in the tooltip message.

Thanks
Abhay
@ruchika-narang @spattnaik

Merged to main


mouse_tracker.dart error and complete freeze

I am using the graph view inside one of my views and struggle getting it to work without freezing.
I get a massive load of errors while the mouse is over the graph:
════════ Exception caught by scheduler library ═════════════════════════════════
'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 201 pos 12: '!_debugDuringDeviceUpdate': is not true.
════════════════════════════════════════════════════════════════════════════════

[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: 'package:flutter/src/rendering/mouse_tracker.dart': Failed assertion: line 201 pos 12: '!_debugDuringDeviceUpdate': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      MouseTracker._deviceUpdatePhase
package:flutter/…/rendering/mouse_tracker.dart:201
#3      MouseTracker.updateWithEvent.<anonymous closure>
package:flutter/…/rendering/mouse_tracker.dart:309
#4      MouseTracker._monitorMouseConnection
package:flutter/…/rendering/mouse_tracker.dart:190

My code for the view:
@override
  Widget build(BuildContext context) {
    return ViewModelBuilder<TechTreeViewModel>.reactive(
      builder: (context, model, snapshot) => ScaffoldBase(
        body:

// I just tried to see if this is caused by unbound sizes... its not
SizedBox(
          height: 400,
          width: 400,
          child: InteractiveViewer(
            constrained: false,
            scaleEnabled: false,
            maxScale: 1,
            minScale: 1,
            boundaryMargin: EdgeInsets.all(100),
            child: GraphView(
              algorithm: BuchheimWalkerAlgorithm(
                model.builder,
                TreeEdgeRenderer(model.builder),
              ),
              graph: model.graph,
              paint: Paint()
                ..color = Colors.green
                ..strokeWidth = 1
                ..style = PaintingStyle.stroke,
              builder: (Node node) {
                if (node.key.value is TechTreeConditionNode) {
                  return conditionNode(node.key.value);
                } else if (node.key.value is TechTreeTechnologyNode) {
                  return rootNode(node.key.value);
                }

                return Container(
                  width: 100,
                  height: 100,
                );
              },
            ),
          ),
        ),
      ),
    );
  }

  Widget rootNode(TechTreeTechnologyNode nodeModel) {
    return InkWell(
      child: Container(
        height: 100,
        width: 200,
        padding: EdgeInsets.all(16),
        child: Column(
          children: [
            Text(nodeModel.technology.name),
          ],
        ),
      ),
    );
  }

And inside my ViewModel:
  Graph graph;
  BuchheimWalkerConfiguration builder;

  TechTreeViewModel( ) {
    graph = Graph()..isTree = true;
    builder = new BuchheimWalkerConfiguration();
  }

I tried to find out, what is causing this issue, but haven't found anything. If you need more info, please let me know

The error happens for any algorithm ?

Happens also with SugiyamaAlgorithm

Can you try wrapping the text with Center widget
Try updating the flutter channel

Is this still relevant? otherwise I will close this


Only works with VPN

Hello, I used this module and unfortunately it only works with VPN and otherwise it fails.
Is there a solution?

Probably because I am in Iran, I do not have access to Google services
Can you make a way for my situation?
I would be very grateful if you could

I don't know if self-hosting the script somewhere would work, I would be afraid it internally relies on fetch calls on other google services inside. I will need to check !

Hey @Ahmadheysami
I think you can use other workboxes CDN like https://cdn.jsdelivr.net/npm/workbox-cdn/workbox/workbox-sw.js
You can add it by option like the below example on nuxtConfig
workbox: { enabled: true, workboxUrl: "https://cdn.jsdelivr.net/npm/workbox-cdn/workbox/workbox-sw.js" }
And for more information, you can read this.
It works for me😉

Thank you Ali
If it worked for you. So it definitely works for me
Thanks again for your help
I will definitely try

The only issue here is that the workbox-cdn is using Workbox v5, we would need to update it to v6.

@kevinmarrec Feel free to close the issue because in Iran we can't use google URLs. we fix this problem by using other CDNs and It's not about V5 or V6 at all.


Two tables - one page

I have two tables on my page.
And if I search through the second table, loading state always appends to the first one.
I guess the issue is in loadData function:
var wrapper = document.querySelector(this.tableWrapper) always finds first table.
Maybe var wrapper = this.$el could be used instead.

@HenoTaMyJIb tableWrapper is just a prop. If you use different id for each table, it should work fine. If not, please let me know again.

Thanks. This works.

i have the same question? how to resolve it?

@18979687252 You need to make sure you know what to do, then post a more detail explanation on what you want to achieve and what is/are currently your problem to achieve that. Otherwise, it's not possible for me to point you to the solution.


how to do if i want to use into Object-C project

I have create bridging-header.h file, and import #import <**-Swift.h>
when i write UITestServer *server = [UITestServer sharedInstance]; fail:use of undeclared identifier 'server'and use of undeclared identifier 'UITestServer',please help,thanks

i know how to do, thanks


Updates to Async Cookies API article

Whoops!
There were 4 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2018/09/asynchronous-access-to-http-cookies.md#L225 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2018/09/asynchronous-access-to-http-cookies.md#L225 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/09/asynchronous-access-to-http-cookies.md#L54 - Common typo found: 'chrome' Should it be 'Chrome'?
src/content/en/updates/capabilities.md#L146 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

:tada: This has been pushed live to https://developers.google.com/web/


Fix issue #479

Fixes  #479

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Aleksei Ksenzhik seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Should i fix Checkstyle rule violations caused by missing javadoc in code that  not in actual issue or not?  :thinking:

@alvarosanchez could you review PR? :eyes:


Data export updates

WHAT DOES THIS PR DO?

[x] Refactor & update celery to enable bulk data downloads to be done in the background
[x] Code cleanup to remove some redudant modules
[x] Refactor the microservice updating some modules and implementing proper patterns for Flask-restX and celery. Docs available here - flaskrestx docs and here - celery docs

HOW DO I TEST OUT THIS PR?

[x] Analytics: Link to Analytics README

Summary by CodeRabbit

New Features

Introduced new APIs for data export and auto report generation.
Added Celery task for exporting data to Google Cloud Storage.

Improvements

Unified Celery Docker image naming conventions for consistency.
Updated Dockerfile to optimize dependencies installation.
Adjusted resource requests and removed unnecessary job configurations in Kubernetes values files.
Enhanced Flask application setup with improved environment settings and command modifications.

Documentation

Updated README with revised Docker deployment instructions.

Hi guys, the PR is about 97% done. Just need to run it one more time to clean up a few things but you can start reviewing

Looks good.
Should we consider having a metadata database for when the exports scale. Imagine having 1000+ export requests. Could be nice to store the jobs in a database and then pick them up later running them in the background still.

Thanks @NicholasTurner23 for this suggestion, please remember to implement this suggestion in a new followup PR. Thanks!


Columns referenced by FK do not need to be indexed

Background: https://github.com/cockroachdb/cockroach/pull/50771#issuecomment-849701585

This change is


SAM doesn't load up any games except Spacewar.. (already read #152 and didnt work)

Hey, just as the title says.. Can anyone help me please?
Thanks in advance 👍

Second this^

Same, Error : SocketException, cant connect to <IP_ADDRESS>:443 ...

You can still find the game you want to add trophies to. Just type the AppID for the game you want to change and then click the "Add Game" button. It will then appear and should have all of the achievements that you already own ticked. If you don't know the AppID, you can find it by going into you Steam library, finding the game, going into the properties and then into the update section. You will then find the App ID at the bottom of the window.

You can still find the game you want to add trophies to. Just type the AppID for the game you want to change and then click the "Add Game" button. It will then appear and should have all of the achievements that you already own ticked. If you don't know the AppID, you can find it by going into you Steam library, finding the game, going into the properties and then into the update section. You will then find the App ID at the bottom of the window.

Thanks for the reply. But this doesn’t work. Whenever I add a game. It says 0 out of 0 achievements. I tried reinstalling, doesnt work as well… anyone??

Also having this issue. Manually adding game shows 0 achievements and 0 statistics.


Refine diversity model

changed the embedding mode from bert_base_uncased to "sentence-transformers/all-mpnet-base-v2"
changed the scoring from mean difference to 10% quantile, meaning that the diversity reward score would be lowered if your response is the same as 10% of the network.

Some benchmarking results
[fig 1]

here shows the similarity scores from mpnet and bert_base model respectively on the SNLI dataset, which focuses on recognizing textual entailment
label 0 (green) refers to entailment sentences; label 2 (blue) refers to contradiction;  and label 1 (red) refers to contradiction
mpnet is outperforming bert_base in classifying the 2 (entailment VS contradiction) classes with threshold at ~0.5
bert_base is failing at giving us clearity in the difference in the dataset

[fig 2]

it shows the benchmark result from mpnet and bert_base model respectively on the c4 200m dataset, which focuses on grammatical error correction (GEC) tasks, so that it can help us see the sensitivity of the model on some slight changes of the sentences. The less sensitive it is the better.
note that although it seems that the model scoring are more diversed in mpnet, all of the values are larger then the TH we have set in fig 1 (> 0.5), so those should be deemed as relevent to each other, so mpnet is accurate in this case.

[fig 3]

it shows the benchmark result from mpnet and bert_base model respectively on a validator run
mpnet is giving a more diversified score then bert_base

Thorough and interesting analysis

C4

help us see the sensitivity of the model on some slight changes of the sentences. The less sensitive it is the better.

Love this idea. We need to be aware that we are assuming that the before/after sentence are semantically equivalent. From looking at the raw dataset, it's not always the true.

For example: "Worthless involved's supporting for the movement." is not equivalent to "Get involved and help the movement!"
This is probably what is causing the long tail in your plot.

note that although it seems that the model scoring are more diversed in mpnet, all of the values are larger then the TH we have set in fig 1 (> 0.5), so those should be deemed as relevent to each other, so mpnet is accurate in this case.

Looks like the mpnet values are sometimes below 0.5.
Again, it would be helpful to know how the plotted values were produced.

Could you add a motivation statement for the 10% quantile choice in this PR, just to complete the record. Also, since it seems a negative similarity is possible in practice, that case need to be handled, and it seems like a clamp preventing negative vals may be simplest.

Agree with @opentaco . Before/after plots of diversity would be ideal. Hit me up if you need me to jump on any of these tasks :)

Thank you for asking questions about the experiments :)

A code snippet of how the plotted values were produced would be helpful here. My guess is you group the dataset by context/premise and then model the completions as the hypotheses?
DiversityRewardModel .get_rewards(prompt=premise, completions=hypotheses)

So the way that I was using the diversity model would be:
DiversityRewardModel .get_rewards(prompt="", completions=[ premise, hypotheses ])`

That is because in the diversity model, what we want to know is the comparisons between completions and it is not related to the prompt.

SNLI
Assuming the intended labels are equivalent to snli: 0 - entailment (logically coherent with the prompt) 1 - neutral (somewhat irrelevant to the prompt) 2- contradiction (logically incoherent with the prompt)

So the correspondence usage of the dataset would be the following

0 - entailment ( completions are logically coherent, thus related to each other or mean about the same thing, so result in less diversity)
1 - neutral ( completions are somewhat irrelevant to each other, so more diversity)
2- contradiction ( completions are logically incoherent with each other or not even related to each other, thus the most diversity)

What are our expectations about the diversity scores on this dataset, and how do the results prove or disprove that the sentence embedding model replacement is superior?

So from this figure

You can see that bert_base fails to identify all of these relationships (0/1/2), and deem all of these to have the same level of correlation to each other;
while mpnet can success in this task by scoring 0 higher and 2 lower on average.

I'm struggling to see the link between entailment and diversity. Seems more like a test of relevance?

So it really depends on what kind of task are we expecting from the models.

relevance model was designed for filtering out some trivial completions that is not related to the prompt
the diversity model here actually main aims to bring more diversity completion to the network by tackling the look up attack (at least for the first step). A more advanced look up attack would slightly augmenting the original retrieved completion, so we have to bring more robustness to the diversity/similarity/entailment by benchmarking with the entailment dataset.

C4

help us see the sensitivity of the model on some slight changes of the sentences. The less sensitive it is the better.

Love this idea. We need to be aware that we are assuming that the before/after sentence are semantically equivalent. From looking at the raw dataset, it's not always the true.

For example: "Worthless involved's supporting for the movement." is not equivalent to "Get involved and help the movement!"
This is probably what is causing the long tail in your plot.

note that although it seems that the model scoring are more diversed in mpnet, all of the values are larger then the TH we have set in fig 1 (> 0.5), so those should be deemed as relevent to each other, so mpnet is accurate in this case.

Looks like the mpnet values are sometimes below 0.5.

Yes, I agree. This dataset is not the best in our use case, with somewhat changed semantic in the midst of changing the sentence structure, which causes the long tail and having the mpnet values goes below 0.5.
So in this case, mpnet would be better then bert_base if we find out that there is a large semantic change in the dataset. And bert_base would be better then mpnet otherwise.
Moreover, I hope that this test on the C4 dataset can help us get a sense of the meaning of the mpnet score or bert_base score at different range.
Let me send you a resulted CSV here for your interest. I think it would be better at illustrating the difference in score / completions.

Again, it would be helpful to know how the plotted values were produced. Not clear how this addresses the questions of diversity..

The values was produced by the same get rewards function without the quantile stuff.
DiversityRewardModel .get_rewards(prompt="", completions=[ premise, hypotheses ])`

    def get_rewards( self, prompt: str, completions: List[str], name: str ) -> torch.FloatTensor:

        # Get embeddings for all completions.
        embeddings = self.get_embeddings( completions )

        # Calculate the pairwise cosine similarity.
        similarity = pairwise_cosine_similarity( embeddings, embeddings )

        # Return all
        return similarity

(just copying from the previous comment)

the diversity model here actually mainly aims to bring more diversified completion to the network by tackling the look up attack (at least for the first step). A more advanced look up attack would slightly augmenting the original retrieved completion, so we have to bring robustness to the diversity/similarity/entailment model by benchmarking them with the entailment dataset.

Could you add a motivation statement for the 10% quantile choice in this PR, just to complete the record.

So this PR here changes the the conversion of similarity to reward
From:
1 - ( mean_similarity / torch.mean( mean_similarity ) )

To:
(1 - similarity).quantile(0.1, dim = 1 )

Taking mean may not be good because if all peers are controlled by the same group, then they can easily separate themselves into 2 groups and response with 2 very different sentences in each group,
Taking min may not be good because I think we still have to reserve some possibility where a honest server can still have about the same response with the rest of the network.
If we take a quantile at 0.1 (adjustable), then their response can only be repeated with 10% of the network to maximise their diversity reward.

Also, since it seems a negative similarity is possible in practice, that case need to be handled, and it seems like a clamp preventing negative vals may be simplest.

Sure! will make the change accordingly.


Preliminary outline for reading/writing docs

This is a preliminary edit to update the reading and writing docs.
I'm hoping to get help getting the NCDatasets and HDF5 examples working that are located at the end of the writing.jl file.

Dont worry about the tests ucdavis (worldclim) is down, as usual

Note we cant write to hdf5 ;)


Switch to styleci recommended settings.

Q
A

Bug fix?
No

New feature?
No

BC breaks?
No

Deprecations?
No

Fixed tickets
N/A

Why? 😄


Support for array parameter in "WHERE IN" clause

Hello.
I have the following code:
import { Client as LibsqlClient, createClient } from '@libsql/client/web';
...
const res = await client.execute({
	sql: 'SELECT * FROM watched_videos WHERE videoId IN (:videos) LIMIT 10;',
	args: { videos: ['--0zLNUmhRI', '--1AEHcLmuk'] },
});

Expected behavior:
Given the table has more than 2 records and the records with videoId '--0zLNUmhRI' and '--1AEHcLmuk' exist, the query should return two rows containing the corresponding videoId.
Actual result - no records are returned:
{
    "columns": [
        "videoId",
        "status"
    ],
    "columnTypes": [
        "varchar(255)",
        "INT",
    ],
    "rows": [],
    "rowsAffected": 0,
    "lastInsertRowid": null
}

I've looked at the code libsql, and it seems that currently there is no support for an array of values as argument, like the above.
https://github.com/tursodatabase/libsql-client-ts/blob/main/packages/libsql-core/src/api.ts#L422

The expected args type for the .execute() function seems to be defined here:
https://github.com/tursodatabase/libsql-client-ts/blob/10cd1501233d4062cfc98b602fb170629b9c1e67/packages/libsql-core/src/api.ts#L65-L89
https://github.com/tursodatabase/libsql-client-ts/blob/10cd1501233d4062cfc98b602fb170629b9c1e67/packages/libsql-core/src/api.ts#L469-L474

From what I'm understanding, the args interface is coming from the libsql package, because .execute() is internally calling executeStmt()
https://github.com/tursodatabase/libsql-client-ts/blob/10cd1501233d4062cfc98b602fb170629b9c1e67/packages/libsql-client/src/sqlite3.ts#L125-L142
and executeStmt() is passing the args down to the libsql db object via the .all() and/or the .run() functions:
https://github.com/tursodatabase/libsql-client-ts/blob/10cd1501233d4062cfc98b602fb170629b9c1e67/packages/libsql-client/src/sqlite3.ts#L324-L391
I'm not smart enough to understand whats happening after, but it seems to be related to these files:
https://github.com/tursodatabase/libsql/blob/a636c9c3b46927833fe17776331bcbd655d7d9dc/libsql/src/statement.rs#L57-L61
https://github.com/tursodatabase/libsql/blob/a636c9c3b46927833fe17776331bcbd655d7d9dc/libsql/src/params.rs#L70-L94
Interestingly, this file contains an example using the 'WHERE IN' clause, but I'm not sure if we can use this somehow.

I ended up writing a custom util/helper function to transform the named placeholders:
export function transformNamedArgsToPositionalArgs({
  sql,
  args,
}: {
  sql: string;
  args: Record<string, InValue | string[]>;
}): { sql: string; args: InValue[] } {
  const positionalArgs: InValue[] = [];
  const transformedSql = sql.replace(/(:\w+)/g, (match) => {
    const argName = match.substring(1);
    const argValue = args[argName];

    if (argValue === undefined) {
      throw new Error(`Missing argument for ${argName}`);
    }

    if (Array.isArray(argValue)) {
      positionalArgs.push(...argValue);
      return argValue.map(() => '?').join(', ');
    }

    positionalArgs.push(argValue);
    return '?';
  });

  return { sql: transformedSql, args: positionalArgs };
}

Usage:
const res = await client.execute(transformNamedArgsToPositionalArgs({
	sql: 'SELECT * FROM watched_videos WHERE videoId IN (:videos) LIMIT 10;',
	args: { videos: ['--0zLNUmhRI', '--1AEHcLmuk'] },
}));


Automate Flat Stat Boxes in Rune Prioritization

All a user really cares about is the final stats of a monster.  There's nothing special about getting each stat from % vs flat.  If we place a "1" in the HP% field, we can figure out the equivalent HP-flat from the monster's base HP (either current or +40 or +40/awakened).  This should vastly simplify making ideal builds.

It does not always make sense to set this to Base HP * 1%.  When filtering for a 5* Colleen, I actually want her to take flat stats because the % stats are more valuable to other 6* mons.  In my case, I was using negative weights so I didn't penalize flats at all.  When using positive weights, it may make sense to use an "opportunity cost" instead of the current value.


how to prepare sqlnet.ora on first startup

I need to set DISABLE_OOB=ON in sqlnet.ora according to
https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/FAQ.md#ora-12637-packet-receive-failed
but how can i do this on first start?
My current approach is to
start the container with docker run
wait for the output, that the database is ready (periodically check docker logs)
execute the mentioned echo-command with docker exec
and finally run docker restart
is there maybe an easier way to add this setting to sqlnet.ora?

You can also add the setting (if you actually need it) to your application "client-side" sqlnet.ora files.

I'd like to have it on the server-side.
So I don't have to care about the clients

or has someone a hint why on some systems DISABLE_OOB=ON is necessary and how to fix this on docker or operating system level?
e.g. to connect from my windows vm to the oracle container on my mac does not need the setting.
but running it on a debian 11 machine and connecting from another container running on the same machine needs the setting.

Please try out the approach I suggested in #2338

As this is not a server side param but related to client connections, having it as an env passed to DB docker image does not seem correct.  You can always install Oracle instance client locally and have this added permanently  for client connections

@yunus-qureshi the name is "Oracle Instant Client" :)

@cjbj Tnx, yes that's what I meant

Of course it os a server-side param - I set it currently only on the server because the are multiple clients (jdbc, odbc, crystal reports, ...)

No it is not, you are just using the client pieces of the software in the docker image to connect to the DB.
The same can be achieved by installing Oracle instant client pieces anywhere on your host
https://www.oracle.com/se/database/technologies/instant-client/downloads.html

for jdbc I do not have to install oracle instant client and I currently set DISABLE_OOB only in the server container and leave the clients untouched.
I was pretty sure that there was a hint in the  FAQ that it can be set on the server-side but maybe I got this information from another site.
oracle documentation says
The sqlnet.ora file is the Net Services profile configuration file. The sqlnet.ora file resides on clients and databases.
https://docs.oracle.com/en/database/oracle/oracle-database/21/netrf/parameters-for-the-sqlnet.ora.html#GUID-19423B71-3F6C-430F-84CC-18145CC2A818

For JDBC have you tried setting oracle.net.disableOob=true
May be put on the Java cmd line -Doracle.net.disableOob=true
https://docs.oracle.com/cd/E18283_01/appdev.112/e13995/constant-values.html#oracle_jdbc_OracleConnection_CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK_DEFAULT

No - because I didn't want to change all client-settings.
Therefore I've added DISABLE_OOB=ON to sqlnet.ora on the server-side which works as expected for java applications as well as for the oracle instant client.
All clients are NOT running in the server container.
Because this problem seems to be occur on some networks and is so easy to fix I thought it would be a good idea to have an environment-variable for the docker run command to automatically add the line to sqlnet.ora

DISABLE_OOB=ON seems to be the current default 👍


Aggressive Cows Problem Statement Solution

Description
A question solving using binary search with proper documentation of it. The question as follows:-
There is a new barn with N stalls and C cows. The stalls are located on a straight line at positions x1,….,xN (0 <= xi <= 1,000,000,000). We want to assign the cows to the stalls, such that the minimum distance between any two of them is as large as possible. What is the largest minimum distance?
Domain
Other
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign


Add DirAccess interface to file_access_memory

Having memory backed res:// folder is useful for hermetic tests that need to mutate contents of the resource directory.
For example in https://github.com/godotengine/godot/pull/98909 we want the res:// folder not to contain a texture imported on previous run to always test the same code path.
It requires changes to core/os/os.h so that we can re-initialize the file/dir handlers during test setup.

This will be failing sanitizers until https://github.com/godotengine/godot/pull/99847


Site not updating Stats

Your site isn't refreshing/displaying current blockchain/node stats, it's about 2 hrs behind now

Fixed.


Set domain for new frontend

connect vercel project to beta.refinebio.bio and staging.beta.refine.bio
Steps in Vercel:

[x] Create a new project for refinebio-web
[x] Define required environmental variables for our API and for the Sentry SDK(*values are temporarily unassigned)
[ ] Add and configure the required (sub)domains

@davidsmejia This ticket should be completed to properly set up the staging (dev) and production (main) environments in Vercel.  Currently the defaul Vercel domain is used as production (points to main).
Let's take a look at this ticket, again 🔍

The following subdomains were created and added on Vercel by @davidsmejia (thank you), thus closing this issue 🎉 !

Preview: staging.web.refine.bio (points to the dev branch)
Production: web.refine.bio (points to the main branch)


url as hash ?

Hi,
This look like a very nice library but I wonder if it's good to use a part of a url, or a uuid as hash.
Can you give your opinion about this ?
Thank you.

+1
Good question!
We are planning to use it in URL also.

It depends. Using Hashids won't expose the user ID to the public. Though, if it is okay to expose the UUID or whatever you're using then there is no problem in using the that within the URL. It really depends on your solution and how you want to implement it.

You can look at hashes as permalinks which can be persistent through time (ID's can change for some reason). ID can change if you have software upgrade which has changes to database structure. If you store hash in database you have some sort of persistence for existing records.
Hashes are "better looking":

not incremental as ID's
not so obviously "hackable"

I have a solid part I can use from my URL, as it comes from my database, I only need to shorten my URL this way.
I will use a uuidv4 as hash in my case.
That's why.

Is someone willing to post an example as I'm confused using the example.
This using a uuid
Thanks!

Maybe this helps shed some light? Considering UUID's are strings..
Do not encode strings. We've had several requests to add this feature — "it seems so easy to add". We will not add this feature for security purposes, doing so encourages people to encode sensitive data, like passwords. This is the wrong tool for that.
http://hashids.org/php/ [What not to do, bullet 2]

I'm not sure I'm following this. Is this still an issue?

Closing due to inactivity.


fix: navigation for microfrontends

Fixes issues on module with inner routes and shell not deployed on / path.
It uses native initialize method to handle baseHRef and hashmode correclty.
Note : The method of handle router in bootstrap is not working if the module was already boostrapped.
Using deep link to inner route is not working because it does not trigger a pop_state change.
To workaround this you need to handle route init inside your component onInit method.
This is the only way I found to properly handle route changes if the component was already bootstraped once.
import { Location } from '@angular/common';
import { Router } from '@angular/router';

export class MfeComponent implements OnInit {
  constructor(private router: Router, private location: Location) {}

  ngOnInit() {
    //Using provided helper
    connectRouter(this.router, this.location);

    //Same thing, manually
    this.router.initialNavigation();
    void this.router.navigateByUrl(this.location.path(true));
  }
}

fix: #216, fix: #215

how  to fix this issue please help me out


Extract MSIX building functionality from msix_reinstall.ps1 for CI integration

Fix available in 0.15.0 https://github.com/microsoft/PowerToys/releases


trying to fix nightly, also updating deps

use go mod for the github upgrade action.
ran ./hack/update-deps.sh --upgrade

/lgtm
/approve


Suppress non-API errors such as "ignition on"

Someone stole a gear bag out of my car on two separate occasions, once while I was literally 20ft away in my house packing anothrer dufflebag and another time while I was asleep and forgot to lock my doors. So this addon has suddenly become incredibly important to me.
Cops are useless, so the video camera I have recording my car almost became a waste of money, however I rediscovered the flash lights and honk horn buttons. Now, when there's any motion detected around my car, this home assistant automation will lock my doors, just in case and start the lights flashing and horn honking. This works so well, fortunately it's only scared away a cat so far at 3am, but one issue I have is with the errors when I'm loading up into the car or driving in.
My home assistant persistent notifications are full of failure notifications because the ignition is on when the command is received. I do check the device tracker location for the vehicles location and if ignition sensor is on, but that isn't always accurate. I still want to have errors logged if the API fails, however I run all my automation in node red, so I can detect errors and act on them mid flow.
It would be nice to have the notification setting just log all errors to the home assistant logs and disable persistent notifications, or filter out ignition on responses.
I seriously can't thank you enough for developing this, at first it was just convenient to warm up the car in the morning, but it's proving to be the single most valuable software I've ever used.
V0.6.2

Sorry to hear about the thefts, but I'm glad at least this integration is proving to be useful for hopefully preventing another. I added an option to disable all persistent notifications (errors will still be logged). Give v0.6.3rc0 a try and let me know if it works for you.


formerFrequency and designation length should be optional chaining

Who is this for?
broken e2es
What is it doing for them?
formerFrequency and designation are not always returned so we're making them optional in the chain of conditions.

These should always be populated, it's just that ES hadn't been updated, so closing this PR.


Display Attribute Types - Download

Display all the given Attribute Types corresponding to the selected Object Type (can be large amount of Attribute Types, several hundred even). Probably make something like a scrollable drop down menu. All options should be clickable, and user can click however many options they want.
Time estimate: 2D
Check story #6 for more details/context.

Alonzo completed and tested this.


#increment method & friends

I tried to implement #1067, but I'm having some issues with ActiveRel version of concurrent_increment, maybe because of #1073
Any feedback is appreciated :)

This is great, thanks!
I think that @subvertallchris fixed #1073 in master, so you could merge that in and give it another try.
I have a few other thoughts:

In ActiveRel::Query there is a all_query method which could replace the first part of your ActiveRel#concurrent_increment.
Since the two concurrent methods have a lot of repeated code, I could imagine a method in Neo4j::Shared::Persistence which a lot of the work.  It could take a query and perhaps the variable in question (n in both cases, maybe we should just assume n for now?).  Maybe there could be an increment method on Query in neo4j-core that takes a node and an increment amount?

I already merged #1073 , in fact tests are now passing!

Oh, I missed it
Yep, you're right, I have noticed that there was a lot of repetition. I'm fixing.

About the increment method on neo4j-core, it would be great!
Do you mean something like this?
query.match_nodes(n: some_id).increment(:some_attribute, amount)

@cheerfulstoic  I improved a bit the code, following your suggestions :+1:

This looks great to me!  Could I get a second sign off from @subvertallchris ?
And yeah, the bit that you posted about an increment method in neo4j-core is the sort of thing I was thinking about.  The second argument could default to 1.  Also, I think that it would be an "end cap" type method like pluck and exec which makes the query execute.  I could even imagine there would be room for other helpers.
That said, the more I think about it, the more that I think it might make sense as another gem.  It might be good to keep neo4j-core relatively focused on being a driver and a marshaller of objects.

Going to just merge and if @subvertallchris objects we can fix in master ;)
Thanks again for the contribution!

Going to just merge and if @subvertallchris objects we can fix in master ;)
Thanks again for the contribution!

No objections!
On Thursday, December 31, 2015, Brian Underwood<EMAIL_ADDRESS>wrote:

Merged #1074 https://github.com/neo4jrb/neo4j/pull/1074.
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1074#event-503722215.

No objections!
On Thursday, December 31, 2015, Brian Underwood<EMAIL_ADDRESS>wrote:

Merged #1074 https://github.com/neo4jrb/neo4j/pull/1074.
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1074#event-503722215.

My PR will have fixed the issue preventing that one feature's
implementation. On phone so not sure if that was included here and
failing... If no, give it a shot and it should work fine.
On Thursday, December 31, 2015, Chris Grigg<EMAIL_ADDRESS>wrote:

No objections!
On Thursday, December 31, 2015, Brian Underwood<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Merged #1074 https://github.com/neo4jrb/neo4j/pull/1074.
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1074#event-503722215.

My PR will have fixed the issue preventing that one feature's
implementation. On phone so not sure if that was included here and
failing... If no, give it a shot and it should work fine.
On Thursday, December 31, 2015, Chris Grigg<EMAIL_ADDRESS>wrote:

No objections!
On Thursday, December 31, 2015, Brian Underwood<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Merged #1074 https://github.com/neo4jrb/neo4j/pull/1074.
—
Reply to this email directly or view it on GitHub
https://github.com/neo4jrb/neo4j/pull/1074#event-503722215.

Not sure what you mean ;)
BTW @ProGM this feature has been just been released as part of 6.1.0.  Thanks!

Not sure what you mean ;)
BTW @ProGM this feature has been just been released as part of 6.1.0.  Thanks!


Terragrunt does not check if there is TF file in terraform source block

Terragrunt version: 0.38.4
When I reference Terraform source to path which exists but there are not any TF files - Terragrunt will run the script saying:
"No changes. Your infrastructure matches the configuration."
locals {
  env_vars = read_terragrunt_config(find_in_parent_folders("env.hcl"))
  name     = "test"
}

terraform {
  source = "git@github.com:..//modules/cam?ref=v1.11.0"
}

inputs = {
  new_user            = true
}

Having directory structure such:
- modules
  - cam
     - users
     - policies

and adding source as above - Terragrunt will not complain and output is:
Initializing the backend...

Initializing provider plugins...

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
Acquiring state lock. This may take a few moments...

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.
Releasing state lock. This may take a few moments...

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Very missliding and 1st time not easy to find.
I would expect Terragrunt to through Error or Warning that no TF files can be found under CAM directory.
Modules and TF files are one level below in users and policies directories.
Not sure if that is bug or not but definitely something to look into IMO.

This would be expected behavior to me as terragrunt only fires the terraform command in that directory so terraform would have to decide the behavior of throwing an warning/error. Implementing like a pre-check would be a new feature. Not sure if it would be a nice-to-have thing for terragrunt. I'd forward this issue to the terraform project.
Btw which terraform version are you using?


demo_image.py not working

Hi,
I am running the following code:
python tools/demo/demo_image.py --config_file sgg_configs/vgattr/vinvl_x152c4.yaml --img_file women_fish.jpg --save_file output/woman_fish_x152c4.obj.jpg MODEL.WEIGHT models/vinvl/vinvl_vg_x152c4.pth MODEL.ROI_HEADS.NMS_FILTER 1 MODEL.ROI_HEADS.SCORE_THRESH 0.2 DATA_DIR "." TEST.IGNORE_BOX_REGRESSION False

Here is the error:
    rel_subj_centers = [r['subj_center'] for r in rel_dets]
UnboundLocalError: local variable 'rel_dets' referenced before assignment

I believe the bug is in line https://github.com/microsoft/scene_graph_benchmark/blob/f91725d8b831ba7ee52a583eab3317fbbeffbfe6/tools/demo/demo_image.py#L118

Have the same issue

@JXT218 @EddieKro  Just fixed the bug. Please try again

@pzzhang everything works fine, thank you. You've done an amazing job in this repo!


[PoC] mkLoc with Template Haskell

[!NOTE]
This PR is just a PoC

This PR adds mkLoc that let developers define locations just with one line using Template Haskell.

This is cool! I like it.


No blocks showing and crash

Description of Issue: No blocks are showing on mcedit, crashes when trying to do anything
MCEdit Version: any version
Minecraft Version the world was last opened in: 1.13 but any version would give me problems
Operating System: Windows 10
A screenshot or full text of the error from the console:
https://ibb.co/hdjDs9
https://ibb.co/eeVEzp
https://ibb.co/jc31ep
How to reproduce: open Mcedit and  load the world
ps: I am now thinking that the problem is the world, when I open it in other versions of Minecraft the world resets itself, and yet, if I run it in 1.13, the world works good, apart from mcedit, which doesn't seem to see the blocks (it's all blank) and crashes
For now, I'd prefer not to send the mc world for 'content' reasons, but won't wait if asked for further investigations.

We don't currently support 1.13. is this an issue in Minecraft worlds created in 1.12 and before?

yes, this issue is valid with pretty much all versions, i have tested it

The second and third images are from MCEdit2. MCEdit2 issues are not meant to be sent here. What version of MCEdit-Unified are you using to get the first error? And are you sure you get the same error from opening a 1.12 world too? A world that was never opened in 1.13?

I know right about the Mc-edit2 thing, i just wanted to show you how both the two programs failed to operate on the same map. The World can be opened in 1.13 and fully works only in this version, i could once lunch the world in any other version ('once' was 2 days ago) but now it just reset whenever i try to, which means that the world returns at its original form, erasing all my actions completely, too odd to be true, and this is why i'm starting to believe that the problem is in the world itself.

little update: none of my worlds seem to work on Mcedit

It does sound like an issue with 1.13 support. The world format changed a lot so a world opened in 1.13 will not be able to be opened in 1.12 or below. Anything to do with 1.13 is not currently supported by MCEdit.

wow, if that's it then it's all clear, thanks


If using fallback cookies, session storage and persistent storage will overwrite one another

STORE_NAME is used for all types of storage at present. This is fine in the case of localStorage/sessionStorage as they are two different stores, but where storage falls back to using cookies, the session storage cookies will overwrite the persistent cookies.
We should also look at setting an expiry for the session cookies.

I don't think #55 addresses:

We should also look at setting an expiry for the session cookies.

Do we want spawn another issue for this @nbrl ?

We should, see #61.


jsonnet/kube-prometheus: update grafana version to 7.3.4

As in title.
/cc @brancz

lgtm on green


PARQUET-977: retire pre-3.2 cmake to simplify and cleanup cmake files

Realistically we need to support cmake 2.8.x for Linux (e.g Ubuntu 14.04 is on 2.8.x)

On my Ubuntu (16.04) "apt-get install cmake" installs 3.5...

Right, but 14.04 LTS has a pretty large install base

We could possibly vendor CMake, which is not that uncommon (e.g. see Apache Kudu https://github.com/apache/kudu/tree/master/thirdparty)

Windows build will fail on 2.8

And actually it would be nive to have 3.7 to cleanup arrow_ep by using SOURCE_SUBDIR

Perhaps the build can error out on MSVC for CMake below a certain version. I think it's fine to only support CMake 2.8.x on Linux

Hm.. - "The Travis CI build passed"

The Travis CI Trusty VM has cmake 3.2 installed, which is different from what comes from apt-get http://packages.ubuntu.com/trusty/cmake

To summarize, I'm +0 on dropping cmake < 3.2 in the build. If we do drop it, we have to provide instructions how to install a newer CMake in the project README. I am interested in opinion of @xhochy and @majetideepak or others

I'm -0.5 on dropping support for CMake < 3.2. Currently, we need at least 2.8.11 for gtest but all other dependencies should build with 2.8. Given the current build toolchain, cmake, boost and gcc are the main requirements, all other dependencies can be build directly through CMake's external project mechanism.
Personally I got used to do pip install cmake or conda install cmake on all my systems but as cmake is really the "first impression" you get when building parquet-cpp (and also arrow which is quite dependent on what we do here), I would like to keep 2.8 support for a bit until we have more users (This could already be in some months).

I agree with @wesm and @xhochy. Apart from some Ubuntu versions, even Centos versions come with CMake 2.8. @wesm's idea of vendoring CMake for windows is a good way to resolve this.

Goal of my proposal - avoiding duplicated code to simplify ThirdpartyToolchain.
If support of pre-3.2 cmake is critical, I can remove using of post-3.2 features (actually, AFAIK, it is only BUILD_BYPRODUCTS)
On Windows using of latest version cmake is not a problem, it is 3rdparty anyway.

I would like to see more what is involved with getting a newer CMake on the major Linux platforms. Building cmake from source is a bit of a can of worms because of the dependence on on various system libraries. See for example the build toolchain on conda-forge: https://github.com/conda-forge/cmake-feedstock/blob/master/recipe/meta.yaml#L26


Remove golint errors and add config file for golint

I have removed most of the golint errors. You will need to add comments to all the exported function in the following format:
// Add adds two given numbers and returns their value func Add(a,b int){ return a+b }
Since i have less idea of your project and usage of functions, i'll the adding comments to you. I have fixed the other linting issue.
Also i have added a golang config file (.golangci.yml) which would check for golint errors using the command golangci-lint run in the terminal itself. I have only added golint checks in the file configs. I have also added a sample file name (.golangci_sample.yml) with other checks like gosec and errcheck which i use personally for my go projects. Please have a look over them.
Otherwise inserting the comments for each exported functions and variables would give you full score in the report card itself.

It builds and run on my system. Could you please tell why is it failing in checks here?

Thanks for the changes @burnerlee . This looks good. Travis is failing because it does make test-style too. I will accept the changes now, and will fix the build in the next commit.
Please do feel free to continue to contribute to the project.


Undercutting Not Working for higher priced items

A few general descriptions in the curse forum, see specifically: http://www.curse.com/addons/wow/auctionator?comment=5610
Reported by http://www.curse.com/users/Cyn27 on 7/28/2015
Comment above

Also noted by http://www.curse.com/users/Rman8981 on 7/19/2015 in http://www.curse.com/addons/wow/auctionator?comment=5597

Closing, unable to repeat.


updating the favicon

how should we change that line?

Maybe this can be the solution: https://stackoverflow.com/questions/18447970/content-security-policy-data-not-working-for-base64-images-in-chrome-28

I think I found the reason why the favicon doesn't show up.
As you can see the link tag ends up in the html body rather the the head.
Trying to understand why this is  happing...


Warning: apt-key output should not be parsed (stdout is not a terminal)

I am having trouble adding the ROCm apt repository.
after entering:
wget -qO – http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key |
sudo apt-key add -echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' |
sudo tee /etc/apt/sources.list.d/rocm.list

The warning message starting with:

Warning: apt-key output should not be parsed (stdout is not a terminal)

is outputted into the rocm.list file too.
Is there another way to add this repository?
I am on Ubuntu 19.10 if that is relevant

I guess the instructions got broken with this commit. Before this commit the instructions were
wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list

@seesturm the instructions you listed is the same, the issue is that apt-key is throwing a warning message implying this isn't a recommended approach.

The irony here is that the "recommended approach" would need to parse the output of apt-key to get rid of the warning that says not to parse the output of apt-key.
We should probably just separate out the last step and instruct the user to manually add to the sources.list file.

@seesturm my bad.... I misread the lines. Still learning Linux...
So the first line is to download the gpg key and name it -
the second line is actually creating the list of the repo.
Is that right?


[MMB-44] Ensure we're setting proper error codes

The majority of errors we are throwing are default InvalidArgumentError type errors.
Otherwise, we only really have two other errors:

Attempting to connect to a space where the name is missing
Trying to do something when they have entered a space

I've copied the way that locks used errors.

@Srushtika I went with OUT_OF_SPACE error as a reference to the Prodigy song, but I'm happy to do something more useful as suggested! :wink:

@Srushtika updated!


correct typo in first Actions example (custom roles in RBAC)

minor change to correct Microsoft.Computer/ provider name to Microsoft.Compute/ in documentation/articles/role-based-access-control-custom-roles/

Hi @jmutchek-msft, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@jmutchek-msft : Thanks for your contribution to the Azure documentation! The author, @kgremban, has been notified to review your proposed change.

@jmutchek-msft Thanks for catching this error!

#sign-off


Improvement in Thymeleaf checkbox Documentation for feeding toggled value back to controller back-end

I had recently faced the problem while using th:checked attribute as described in thymeleaf checkbox section.
Since th:checked attribute is single valued, its value does not change as checkbox is ticked or unticked. Hence, it cannot be used as user input to submit data from front-end to back-end.
It took me 2 days to find the workaround, but i was able to change checkbox value and get it as input at backend.
For that, i used th:field attribute rather than th:checked attribute in checkbox.
The detailed answer is provided on this stackoverflow link: https://stackoverflow.com/a/72300493/15730570
If possible, kindly add the details about how checkbox can be used to toggle boolean value and feed it back to controller in thymelaef documentation for future reference.
Thank you.

@ultraq  acknowledged. Thank you.


Addon extension

This is a PR to fix https://github.com/ubuntu/microk8s/issues/1241.
The microk8s wrappers to enable and disable addons expect only .sh extensions. However, new addons are being written in python as well. This PR is to avoid restricting in which code the addons must be coded.

LGTM. Should we fix the enable.kubeflow.sh extension in this PR as well, or push that out to another one?

I can add that quickly and let Travis tell us if everything works as expected.

A follow-up PR #2795 has been submitted to address the previous patches attempted in this PR.


Not allowed to load local resource

Describe the bug
Working fine locally, but when i commit to production it fails to load the 'fetchFile.js' file:
_app-89c14310fa418025204d.js:1 Not allowed to load local resource<EMAIL_ADDRESS>
I am on Nextjs 12, and my code:
import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg'

const convertVideo = async (file: any) => {
    const ffmpeg = createFFmpeg({
      corePath: 'https://unpkg.com/<EMAIL_ADDRESS>      log: true
    })

    try {
      await ffmpeg.load()

      ffmpeg.FS('writeFile', 'input.mp4', await fetchFile(file))

      await ffmpeg.run('-i', 'input.mp4', 'output.mp4')

      const data = ffmpeg.FS('readFile', 'output.mp4')
      const videoUrl = URL.createObjectURL(
        new Blob([data.buffer], { type: 'video/mp4' })
      )

      setConvertedVideoSrc(videoUrl)

      ffmpeg.FS('unlink', 'input.mp4')
      ffmpeg.FS('unlink', 'output.mp4')
    } catch (error) {
      console.log('erro ffmpeg', error)
    }
  }

I have the ffmpeg-core.js, ffmpeg-core.wasm and ffmpeg-core.worker.js on my public folder, and it works fine if i put my domain on the corePath or if i am using unpkg like the example before, it doesn't complain about ffmpeg-core, but it fails on the fetchFile function.
I already tried moving the function to this same file, putting on the public folder or an utils folder and importing it, and i always get this error.
To Reproduce
Just write that code and try to use it on production.
Expected behavior
To properly load the function.
Screenshots

Desktop (please complete the following information):

OS: macOS ventura
Browser: Chrome and Firefox have this error.
Version: Chrome Version 114.0.5735.198 (Official Build) (x86_64), Firefox 114.0.2 (64-bit)

Is there anyone to help me with this?

The readme clearly says:
Keep in mind that for compatibility with webworkers and nodejs this will default to a local path, so it will attempt to look for 'static/js/ffmpeg.core.js' locally, often resulting in a local resource error. If you wish to use a core version hosted on your own domain, you might reference it relatively like this:
const ffmpeg = createFFmpeg({
corePath: new URL('static/js/ffmpeg-core.js', document.location).href,
});
However ffmpeg is likely bundled into a file with a random hash to be able to be lazy loaded. I don't know how would you reference that file. I will add another comment if i figure it out.

The readme clearly says:
Keep in mind that for compatibility with webworkers and nodejs this will default to a local path, so it will attempt to look for 'static/js/ffmpeg.core.js' locally, often resulting in a local resource error. If you wish to use a core version hosted on your own domain, you might reference it relatively like this:
const ffmpeg = createFFmpeg({ corePath: new URL('static/js/ffmpeg-core.js', document.location).href, });
However ffmpeg is likely bundled into a file with a random hash to be able to be lazy loaded. I don't know how would you reference that file. I will add another comment if i figure it out.

I see that, and i referenced the own domain in my file that way using document.location as well. And it works fine for the createFFMpeg function, but even doing that, the fetchFile function gives me a problem with the local path, so that's what i find strange.
It is taking both functions, createFFMpeg and fetchFile from the npm package but only on fetchFile it is giving me the local path error.

It is possible to get around this error by loading the core.js from cdn.
      const ffmpeg = createFFmpeg({
        corePath:
          "https://unpkg.com/<EMAIL_ADDRESS>      });

But in my case while this is working in development, it throws a magic word error (incorrectly tries to parse the core.js file as wasm). I will try to further debug the error and running older versions. I will let you know if figure something out.

It is possible to get around this error by loading the core.js from cdn.
      const ffmpeg = createFFmpeg({
        corePath:
          "https://unpkg.com/<EMAIL_ADDRESS>      });

But in my case while this is working in development, it throws a magic word error (incorrectly tries to parse the core.js file as wasm). I will try to further debug the error and running older versions. I will let you know if figure something out.

Did that as well, same thing when in production, it loads ffmpeg correctly but fails on fetchFile.js saying it can't load the file from the local path (in my case, located at codebuild on aws)

Hey I'm on Nextjs 12.1.0 here, any luck on this? I had this issue yesterday as well and I found that the loading the single threaded version from the cdn core-st required that I also set mainName to "main" to work. Not sure if you tried this already but didn't show it above, but if not it seemed to solve the problem for me.
const ffmpeg = createFFmpeg({
	mainName: "main",
	corePath: "https://unpkg.com/<EMAIL_ADDRESS>});

However, I don't intend on loading from the cdn forever, but just wanted to get ffmpeg to stop throwing errors for days. To that end, it seems like copying the ffmpeg-core.js, ffmpeg-core.wasm, ffmpeg-core.worker.js files out of the node_modules /@ffmpeg/core/dist directory, and placing the copies in a folder in the public directory would work. and then setting corePath to the domain/public/ffmpeg-stuff but then again, isn't really solving the errors arising when you are loading from aws hmmm.
Anyway, best of luck resolving the issue, and hopefully maybe something I said might have possible helped slightly :)


Calculate time interval automatically and add level logging for debugging

Nothing major. The logging is the most helpful for me to figure out why it didn't work, which lead me to add the interval calculation

Thank you! We will take a look soon.

Hello! Thanks for your PR. We're closing this for the time being since we haven't heard back, but if you reopen we'll happily take another look.


nep29: drop py39 and support py312

🚀 Pull Request
Description

Consult Iris pull request check list

Add any of the below labels to trigger actions on this PR:

https://github.com/SciTools/iris/labels/benchmark_this

As this pull-request is being automatically benchmarked, I'll add an associated whatsnew entry in a follow-up pull-request :+1:

As this pull-request bumps our python support to include py312 the benchmarking task will fail, as there is no equivalent py312 on main to compare with.
After discussing options with @trexfeathers, we've added a temporary workaround to force the benchmarking to complete successfully so that we can review the final performance report, see here.
We're happy to see that there are many performance wins using py312 🔥🚀🤩
I'm now going to back out the workaround, which will result in the benchmarking failing. This is expected, and it's acceptable to merge this pull-request with failing benchmarking.


Creating arrays of abstract objects needs to be restricted to support array implicit initial value rules

Description:
type Person abstract object {
    public int age;
    public string firstName;
    public string lastName;

    function getFullName() returns string;
}

Person[] people = [];  // should emit error: array element type 'Person' does not have an implicit initial value, use 'Person?'

note: checking abstract flag in Types.analyzeObjectType function's parameter should fix this.

This should now fail at runtime instead, when trying to grow the array.

Closing as semantic has change with https://github.com/ballerina-platform/ballerina-lang/pull/16118


More Columns

More than 4 columns for all the forks might be useful to make most of displays without scrolling, perhaps 5 or 6, or auto fit the width of the window?!

Resolved with latest release enabling the container-fluid class


Broken link on the "Develop Connectors" page

Describe the bug
On the following page, https://pulsar.apache.org/docs/en/io-develop/ , the link pointing to the KafkaSource as a good example to follow takes us to a 404 => https://github.com/apache/pulsar/tree/master/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaAbstractSource.java
To Reproduce
Steps to reproduce the behavior:

Go to  https://pulsar.apache.org/docs/en/io-develop/
Click on "Source Connector" link
See error

Expected behavior
We expect to be taken to the https://github.com/apache/pulsar/blob/master/pulsar-io/kafka/src/main/java/org/apache/pulsar/io/kafka/KafkaStringSource.java page
Screenshots

This is fixed by #4674


Future plans for xray?

Hi there. With the recent merger within the last year, I am very curious about the ongoing status of the xray experiment?

See https://github.com/atom/xray/issues/177.
Somebody forked it: https://github.com/fdionisi/xray/issues/1

Thanks  @bjorn3.
I diverged from my initial roadmap in favour of an integration w/ memo_core. After studying the code I figured that lots of improvements and TODOs are handled in memo already and it would make Xray's code simpler and more focused.
Unluckily I'm working on this in my spare time, so I'm going a bit slow, but I still believe in this amazing project.


Added header documentation to (most) public interfaces

See #25
Hey @czechboy0, I had a go at adding header docs to Jay. Please take a look.
Note that not all public interfaces have header docs at the moment; please let me know what / how I can change them for the better. 👍

Looks great, thank you @BasThomas! 👍


"The type or method 'NAV App' cannot be used for 'Extension' development

I am trying to use a record from a page I have subscribed to but I get the error "The type or method 'NAV App' cannot be used for 'Extension' development".
I am using VS code to publish an App but I have no work around.
sample code:
[EventSubscriber(ObjectType::Page, Page::"Extension Details", 'OnBeforeActionEvent', 'Uninstall', false, false)]
local procedure UninstalledSTDSTMTImportCode(var Rec: Record "NAV App")
This is possible in nor C/AL but I cannot get this to work in AL.
Thanks in advance.

Hi @Waynerad2000,
We have restricted access to only those system tables which could compromise safety when running a cloud multi-tenant environment.
If you are developing an on-premise solution though, you can switch to "target": "Internal" in the app.json file and you will have access to all system tables as before. However, note that you will not be able to publish such extensions to the cloud.
See also #2769


[Jenkins] Publish job will publish all the packages under a directory

When trying to publish one package in Key Vault project using this job, all packages gets published.
Key Vault has multiple NuGet packages and we tried to only publish one package using these parameters. However, the job published all the packages.

@markcowl any update?

@markcowl @pomortaz We could do with a fix here, our last publish job published our private test framework to the public NuGet servers...

as part of this, we should ensure that Batch and DataLake packages (including StoreUploader) can be individually signed and published

This has been fixed a while back (see issue# 2549). Please let me know or reopen this issue if you still see any problem.


[Feature Request] Sort By Column

Currently I have a column that looks like this. Where 'age' is a computed assessor (that is getAgeAttribute from date_of_birth database column).
[
                'name'  => 'age',
                'label' => 'Age (From DOB)',
                'type'  => 'number',
],

Given that it is computed, there is no sorting on the column. I wonder if there is any way for me to specify that i want this to be able to be sort by date_of_birth?
Thank you

Hi @ziming ,
For computed columns there's no way for Backpack to know how it can sort it - as you imagine, the PHP processing comes after MySQL has already done its job.
But for any column, including columns that point to an Eloquent accessor, you can specify the search logic. In fact, the default search logic is very basic - we don't expect it to be perfect 100% of the time. Use the searchLogic attribute in columns.
Similarly, we have the orderLogic attribute in columns which helps you do exactly what you're looking for - provide a way for the column to be ordered.
Hope it helps. Let me know if it doesn't and we'll reopen.
Cheers!


[CredScan] Remove potential SAS explored

In the https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1895967&view=sariftools.scans.build-tab
fixes the latest credential issue:
CSCAN-AZURE0061
: Azure Storage Account Shared Access Signature for High Risk Resources

API change check
API changes are not detected in this pull request.


How can I create long code-39

Hi there.
I tried to create a QR code by code-39, but it was cut.
Do you know how I can do it?

The flipper screen is too small to support that many characters. The maximum number of characters the flipper supports is 8, this includes the start and stop characters (*). With the barcode provided, you would need to remove the last 2 characters 3 and 4 in order for a reader to scan the barcode. *Abc-12*


added js module docs

@coderislive07 closing this PR as not relevant to this project. You can add topics of JavaScript.


Extend observability to connect to external cos

Add options in observability feature to take
external cos offers and integrate the sunbeam
grafana-agents to external cos.

I wonder if it does not make more sense to have this separated as another plugin ?
Make them work like TLS, a Mutual Exclusive plugin.
Thinking about the UX, having to either have all the options or none of them does not make much sense in a CLI pov, but having:
sunbeam enable observability
sunbeam enable observability-ext offer1 offer2 offer3 (notice no params, only mandatory arguments)
We can also discuss who gets the observability name. I think the external one should get it, as it is the one we would want people to use the most.
Maybe observability-embedded? Longer to type, and shows that it's deployed inside the cluster?

I wonder if it does not make more sense to have this separated as another plugin ?
Make them work like TLS, a Mutual Exclusive plugin.
Thinking about the UX, having to either have all the options or none of them does not make much sense in a CLI pov, but having:
sunbeam enable observability
sunbeam enable observability-ext offer1 offer2 offer3 (notice no params, only mandatory arguments)
We can also discuss who gets the observability name. I think the external one should get it, as it is the one we would want people to use the most.
Maybe observability-embedded? Longer to type, and shows that it's deployed inside the cluster?

Modified as per the dicussion and updated the PR commit message to list the new commands.


New Arabic Source

Source name
Ok Anime
Source link
https://okanime.tv/
Language
Arabic
Other details
It is not an inappropriate content site
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

Duplicate of #35


How to find cause of scan error

Summary
Scan finds device, then crashes

Preconditions
Scan for devices with a single Service UUID filter, use .take(1) and .take(120L) to limit scan

Steps to reproduce actual result
Code that does the scan
    scanSubscription = asBleClient
            .scanBleDevices( asServiceIdArray )          // argument must be an array, apparently
            .take( 1 )
            .take( 120L, TimeUnit.SECONDS )
            .observeOn( AndroidSchedulers.mainThread() )
            .subscribe(
                    this::addRxBleScanResult,
                    this::handleRxBleScanError,
                    this::completeRxBleScan
            );

Expected result
When the first device is found, addRxBleScanResult() should be called, then since the .take(1) has been satisfied, completeRxBleScan() should be called.

Actual result
Fatal program error. The log mentions a ClassCastException (for 2 of my classes), but I am unable to find where or why this is taking place. The log indicates that the device was found, but none of the .subscribe() methods are called. The last thing before the crash is startRegisteration:
04-14 14:31:47.412 15670-15687/io.aeroscope.aeroscope D/BluetoothLeScanner: onScanResult() - ScanResult{mDevice=CC:C6:B5:9F:9A:F7, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=[f9541234-91b3-bd9a-f077-80f2a6e57d00], mManufacturerSpecificData={}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=Jack's Aeroscope������], mRssi=-57, mTimestampNanos=1892890531330833}
04-14 14:31:47.415 15670-15670/io.aeroscope.aeroscope D/BluetoothDevice: mAddress: CC:C6:B5:9F:9A:F7
04-14 14:31:47.425 15670-15670/io.aeroscope.aeroscope D/BluetoothAdapter: stopLeScan()
04-14 14:31:47.426 15670-15670/io.aeroscope.aeroscope D/BluetoothAdapter: 523560835: getState(). Returning 12
04-14 14:31:47.427 15670-15670/io.aeroscope.aeroscope D/BluetoothAdapter: 523560835: getState(). Returning 12
04-14 14:31:47.427 15670-15670/io.aeroscope.aeroscope I/BluetoothLeScanner: startRegisteration: mLeScanClients={android.bluetooth.BluetoothAdapter$2@3ab9d939=android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper@38c5992c} ,callback=android.bluetooth.BluetoothAdapter$2@3ab9d939
04-14 14:31:47.447 15670-15670/io.aeroscope.aeroscope E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: io.aeroscope.aeroscope, PID: 15670
                                                                        java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
                                                                            at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:114)
                                                                            at android.os.Handler.handleCallback(Handler.java:815)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                            at android.os.Looper.loop(Looper.java:194)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5576)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
                                                                         Caused by: rx.exceptions.OnErrorFailedException: Error occurred when trying to propagate error to Observer.onError
                                                                            at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:187)
                                                                            at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115)
                                                                            at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:216)
                                                                            at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139)
                                                                            at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:224)
                                                                            at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107)
                                                                            at android.os.Handler.handleCallback(Handler.java:815)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                            at android.os.Looper.loop(Looper.java:194)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5576)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)

Hey!
Are you sure that the log is complete? I don't see any ClassCast you've mentioned.
Could you also post your addRxBleScanResult method? It looks like it's throwing an exception.

Log attached.
logs_13_04-14.txt
Below is the method. However, I can't see in the log where it's being called.
    private void addRxBleScanResult( RxBleScanResult scanResult ) {
        RxBleDevice device = scanResult.getBleDevice();
        Log.d( LOG_TAG, "addRxBleScanResult about to call addRxBleDevice with device " + device.toString() );
        // TODO: add each device to the displayed "found" list when it's found(?)
        addRxBleDevice( device );
    }

The method it calls is well tested and has never had a problem:
    private boolean addRxBleDevice( RxBleDevice device ) {
        Log.d( LOG_TAG, "Entering addRxBleDevice with device " + device.getName() );
        if( !rxBleDeviceVector.contains( device ) ) {
            Log.d( LOG_TAG, "Adding RxBleDevice " + device.getName() + " to Vector" );
            addAeroscopeDevice( new AeroscopeDevice( device, this ) );
            return rxBleDeviceVector.add( device ); // true
        } else {
            Log.d( LOG_TAG, "RxBleDevice " + device.getName() + " already in rxBleDeviceVector");
            return false;
        }
    }

Could you also post
AeroscopeDevice and handleRxBleScanError. I'd say it's somewhere there. First, there is a failure in onNext handling, then another one in onError handling.

AeroscopeDevice attached (sorry it is a mess; I'm in the middle of redoing it)
Here's handleRxBleScanError():
private void handleRxBleScanError( Throwable scanError ) {
     nowScanning.set( false );        // reset "scan active" flag (synchronized) (error ends scan)
     errorScanning.set( true );       // set the "scan error" flag
     Log.d( LOG_TAG, "scanSubscription onError() received: " + scanError.getMessage(), scanError );
     handleScanError( scanError, callingContext ); // TODO: test
 }

OK, this is where I suspected the problem was days ago, but nothing is getting logged. As you will see below, handleScanError() is an adaptation of your own code, and I'm trying to send it a context so the Toast can be displayed. Since this method exists in the class AeroscopeBluetoothService, which doesn't have a UI, I am trying to send it the context of the MainActivity in the variable callingContext. In MainActivity, the onServiceConnected() routine has this:
asBleServiceRef.setCallingContext( MainActivity.this );
Maybe handleScanError() is trying to cast AeroscopeBluetoothService to MainActivity, causing the ClassCastException, but why isn't anything getting logged?
Here's the routine:
    static void handleScanError( Throwable scanError, Context context ) {
        Log.d( LOG_TAG, "Entering handleScanError: " + scanError.getMessage() );
        Log.d( LOG_TAG, "Context passed to handleScanError is: " + context.getClass().getName() );  // debugging (pushed)
        if (scanError instanceof BleScanException ) {
            switch ( ((BleScanException) scanError).getReason() ) {
                case BleScanException.BLUETOOTH_NOT_AVAILABLE:
                    Log.d( LOG_TAG, "handleScanError: Bluetooth is not available" );
                    Toast.makeText( context, "Bluetooth is not available", Toast.LENGTH_SHORT ).show( );
                    break;
                case BleScanException.BLUETOOTH_DISABLED:
                    Log.d( LOG_TAG, "handleScanError: Bluetooth is disabled" );
                    Toast.makeText( context, "Enable bluetooth and try again", Toast.LENGTH_SHORT ).show( );
                    break;
                case BleScanException.LOCATION_PERMISSION_MISSING:
                    Log.d( LOG_TAG, "handleScanError: Location permission missing" );
                    Toast.makeText( context,
                            "On Android 6.0 location permission is required. Implement Runtime Permissions", Toast.LENGTH_SHORT ).show( );
                    break;
                case BleScanException.LOCATION_SERVICES_DISABLED:
                    Log.d( LOG_TAG, "handleScanError: Location services disabled" );
                    Toast.makeText( context, "Location services needs to be enabled on Android 6.0", Toast.LENGTH_SHORT ).show( );
                    break;
                case BleScanException.BLUETOOTH_CANNOT_START:
                default:
                    Log.d( LOG_TAG, "handleScanError: Bluetooth cannot start" );
                    Toast.makeText( context, "Unable to start scanning (reason unknown)", Toast.LENGTH_SHORT ).show( );
            } // switch
        } else { // exception was not a BleScanException
            Log.d( LOG_TAG, "handleScanError: Unknown scanning error" );
            Toast.makeText( context, "Error scanning for Aeroscopes: " + scanError.getMessage(), Toast.LENGTH_SHORT ).show( );
        }
        Log.d( LOG_TAG, "handleScanError Finished" );
    }

Really appreciate your help on this!
AeroscopeDevice.txt

Well, I think it may be something with the lambdas. Are you using retrolambda?
My concern is the line addAeroscopeDevice( new AeroscopeDevice( device, this ) );

Correct me if I'm wrong, is this method within a service? this should be an AeroscopeDisplay. Is it?
If so, please try replacing this with an explicit ClassName.this or remove lambda at all (just to verify replace with an anonymous class)

I was using retrolambda until you released 1.2.0 of the library, when I switched to Jack (which I know is deprecated and eventually will go away).

addAeroscopeDevice immediately follows in the code:
    private boolean addRxBleDevice( RxBleDevice device ) {
        Log.d( LOG_TAG, "Entering addRxBleDevice with device " + device.getName() );
        if( !rxBleDeviceVector.contains( device ) ) {
            Log.d( LOG_TAG, "Adding RxBleDevice " + device.getName() + " to Vector" );
            addAeroscopeDevice( new AeroscopeDevice( device, this ) );
            return rxBleDeviceVector.add( device ); // true
        } else {
            Log.d( LOG_TAG, "RxBleDevice " + device.getName() + " already in rxBleDeviceVector");
            return false;
        }
    }

    // Add an Aeroscope device to the Vector (returns true if it was not already present)
    // static because there's just 1 vector
    private boolean addAeroscopeDevice( AeroscopeDevice asDevice ) {
        Log.d( LOG_TAG, "Entering addAeroscopeDevice with device " + asDevice.bleDevice.getName() );
        if( !asDeviceVector.contains( asDevice ) ) {
            Log.d( LOG_TAG, "Adding AeroscopeDevice " + asDevice.bleDevice.getName( ) + " to Vector" );
            return asDeviceVector.add( asDevice ); // true
        } else { // don't think we should ever see this(?)
            Log.d( LOG_TAG, "AeroscopeDevice " + asDevice.bleDevice.getName() + " already in asDeviceVector");
            return false;
        }
    }

They are both in AeroscopeBluetoothService. The this is there to pass a reference to the Service to the AeroscopeDevice constructor, which it saves in a variable to allow the Device to call the Service methods.

I have now seen what may be another variation of this "problem with lambdas". First, could you elaborate on what you mean by this? Is it that the lambdas aren't being compiled correctly? Is Jack failing? Is there something wrong with my logic? With release 1.2.0 of your library? Explain please.
In any case, my code to scan for BLE devices has this:
                .take( secondsToScan, TimeUnit.SECONDS )
                .take( numberToFind )

What seems to be happening is that .take( numberToFind ) is satisfied, causing the Subscriber's onCompleted() to be called. Previously, this was a simple method reference: this::completeRxBleScan. AFAIK, it never had a problem until the recent 1.2.0 library update and/or the switch from retrolambda to Jack. Now I am seeing this in the log:
04-24 13:56:39.015 22783-22783/io.aeroscope.aeroscope D/AeroscopeBluetoothServc: Adding AeroscopeDevice Jack's Aeroscope to Vector
04-24 13:56:39.017 22783-22783/io.aeroscope.aeroscope E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: io.aeroscope.aeroscope, PID: 22783
                                                                        java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
                                                                            at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:114)
                                                                            at android.os.Handler.handleCallback(Handler.java:815)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                            at android.os.Looper.loop(Looper.java:194)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5576)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)
                                                                         Caused by: java.lang.IncompatibleClassChangeError: Class 'io.aeroscope.aeroscope.-$Lambda$10' does not implement interface 'rx.functions.Action0' in call to 'void rx.functions.Action0.call()' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
                                                                            at rx.internal.util.ActionSubscriber.onCompleted(ActionSubscriber.java:49)
                                                                            at rx.observers.SafeSubscriber.onCompleted(SafeSubscriber.java:79)
                                                                            at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:281)
                                                                            at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:216)
                                                                            at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107)
                                                                            at android.os.Handler.handleCallback(Handler.java:815)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                            at android.os.Looper.loop(Looper.java:194)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5576)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)

The key line would seem to be this:
Caused by: java.lang.IncompatibleClassChangeError: Class 'io.aeroscope.aeroscope.-$Lambda$10' does not implement interface 'rx.functions.Action0' in call to 'void rx.functions.Action0.call()' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
Of course I can't tell, but I suspect that -$Lambda$10 is the above method reference (I'm guessing that this is a system-created name for an inner class that implements the method reference.)
I've replaced the method reference with an anonymous inner class and am now testing. So far it looks OK.
Could you help me understand what's going on here?

Perhaps someone smarter than me can explain this, but it appears at least some of these errors were due to the fact that several of my Subscribers' onError( Throwable t ) methods were throwing RuntimeException, which I now understand is a no-no.

As it turned out - the cause was jack which was not regenerating lambdas as it should. Clean build solved the problem.


Please do not update software automatically, more user control is required

Please change the update function for software that is already installed so that you have more control.
The reason is that for some programs, let's say Foobar2000, I would like to stay on version 2.1.X and not update to the latest available version.

Try Get Installed and Deselect the Package you doesn't want to upgrade.
Thought this will not update the package that is not in the Toolbox but I think it will get the most of the packages updated.

Whether I select the programs or not, it still tries to update them all.
I also don't want that MSI Afterburner to be updated or a DS4Windows component in the case ViGEmBus which isn't even in the list.

Now I do agree on some level with what've been previously sent, about Getting all installed packages, then De-selecting the apps you don't want to upgrade.
But I would like to have a Config file that WinUtil uses for next times when I run on my system, which contains Apps to Exclude from upgrading when I hit the Install Selected button, because I won't need to remember to De-select specific app(s) everytime I want to upgrade them.
+ this config file can be used to store more User Preferences, like the position of the PowerShell Window on last run, how big it was, and what were the applied tweaks of the previous Tweaks Run, and so on...
This's just a suggestion of mine.

When you click on "Upgrade All", it's winget/chocolatey, that's going through your files, and updating them.
Winutil is NOT a program guys. Sometimes, winget will get the "best of" winutil and update everything, but if you have certain programs that you wish to keep in X version, the best you can do to prevent an update, is to install it separatedly from winutil.

Yes, I do agree that WinUtil is not an Installed Program, it's a Script.
Now quick story, before using WinUtil and Winget as a whole, I was using Chocolatey, and chocolatey had a feature to "Pin" one or more apps to a Specific Version, a quick google search later, and winget has this feature as well.
It would be cool if WinUtil has a way to Pin Selected Packages, but for now @colepcsx2, Install the App + The Specific Version you want it to be, after successfully installing said app, run the following command inside a Terminal (PowerShell or CMD) running as admin: winget pin add --id AppPublisher.AppName
Note: Replace AppPublisher.AppName with the App ID.

Yes, I do agree that WinUtil is not an Installed Program, it's a Script.
Now quick story, before using WinUtil and Winget as a whole, I was using Chocolatey, and chocolatey had a feature to "Pin" one or more apps to a Specific Version, a quick google search later, and winget has this feature as well.
It would be cool if WinUtil has a way to Pin Selected Packages, but for now @colepcsx2, Install the App + The Specific Version you want it to be, after successfully installing said app, run the following command inside a Terminal (PowerShell or CMD) running as admin: winget pin add --id AppPublisher.AppName
Note: Replace AppPublisher.AppName with the App ID.

I wasnt aware of that, will take a look at it later. Maybe its possible with a UI change, because i believe making a "config.txt", would be worst than that. Wont promose anything, but ill take a look


Fix TestIndexWriter.testDeleteUnusedFiles' failure on Windows 11

Fix https://github.com/apache/lucene/issues/12524

@vigyasharma Please take a look when you get a chance.

Thanks for persisting on it @vsop-479.
I think we should dig more into what has changed in Windows 11+ before we change the assert condition on this test. Does it impact any other parts of Lucene? Is it some API behavior change that will persist in subsequent versions as well? Please add if you have any more context on these.

You are right @vigyasharma. I will dig into them.


Router can't generate correct fragments before navigation is committed

Reported by @jadrake75 in #110:
Also if you need to redirect a route in activate (for example, detect a "last visited object and set that on the route path" you have to call the navigateToRoute( ) in a timeout after activate completes or it will remove the current route path.
ie. if the current view-model is mapped to
/details
and has a sub-route that is dynamic such as :name then if you attempt to call navigateToRoute inside Activate instead of getting a full route path of
/#/details/some_name
You get
#/some_name
Placing it in a timeout works, but ideally there should be away to redirect before or during activation.

This happens because the router's baseUrl doesn't get set until the navigation has been committed. I had to work around this issue in #109, but we really need it to work right here.
@EisenbergEffect can we set the router's baseUrl earlier in the pipeline so it's correct when we reach activation?

@bryanrsmith We should be able to do that. You'll need to add that calculation at some point earlier in the navigation pipeline.

Is there any progress with this issue? Because of this bug I have to manually write urls using href.bind

Same here, @Mordred. In #306 it was declared as high-priority, I'm looking for updates too.

@jedd-ahyoung With the merge of the recent PRs around url calculation, how difficult would it be to implement this fix?

Closing this as a duplicate.


subcut has to be added to all parent hierarchies

At least that's what I heard.
PR #275 remedies this.

This is no longed needed;  I have confirmed that recent versions of magic correctly handle isolated substrate without needing to have the layer copied up the layout hierarchy to the top.