Drop simpleXPCServer, use fastAPI

Hello, was asking if this can be usefull and worth dev time (can do it) to drop simpleXPCServer (poor performance, very slow) and use fastAPI (which will reduce latence very much). the code transformation isn't difficult the framework are very simillar (Server/client)

I can send you a merge request for poc if you want:
most of server code transform into this :
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class DecompilationResponse(BaseModel):
    decompilation: str
    curr_line: int
    func_name: str

@app.get("/decompile/", response_model=DecompilationResponse)
def decompile(addr: int):
    return {
        "decompilation": "some_code",
        "curr_line": 5,
        "func_name": "some_func"
    }

class FunctionDataResponse(BaseModel):
    args: dict
    stack_vars: dict

@app.get("/function_data/", response_model=FunctionDataResponse)
def function_data(addr: int):
    return {
        "args": {0x0: {"name": "example_name", "type": "some_type"}},
        "stack_vars": {0x10: {"name": "example_name", "type": "some_type"}}
    }

class FunctionHeadersResponse(BaseModel):
    headers: dict

@app.get("/function_headers/", response_model=FunctionHeadersResponse)
def function_headers():
    return {"headers": {0xdeadbeef: {"name": "func_name", "size": 100}}}

class GlobalVarsResponse(BaseModel):
    globals: dict

@app.get("/global_vars/", response_model=GlobalVarsResponse)
def global_vars():
    return {"globals": {0xdeadbeef: {"name": "var_name"}}}

class StructsResponse(BaseModel):
    structs: dict

@app.get("/structs/", response_model=StructsResponse)
def structs():
    return {
        "structs": {
            "example_struct_name": {
                "size": 100,
                "example_member_name": {"offset": 5, "size": 10}
            }
        }
    }

class BreakpointsResponse(BaseModel):
    breakpoints: dict

@app.get("/breakpoints/", response_model=BreakpointsResponse)
def breakpoints():
    return {
        "breakpoints": {
            0xdeadbeef: True,
            0xdeadbeef + 1: False
        }
    }

@app.get("/ping/")
def ping():
    return {"ping": True}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="localhost", port=3662)

@0xMirasio I took a look at your proposed framework shift to fastAPI. Although I think it looks simple and fast, I think it's not a good match for d2d. The chief concern I have is that fastAPI appears to be only for Python. One of the major platforms we support is Ghidra, which is completely written in Java on the server side:
https://github.com/mahaloz/decomp2dbg/tree/main/decompilers/d2d_ghidra
The code you have listed above is for the server-side, which would obviously not work on Ghidra. Secondly, an important reason I chose XMLRPC, although slow af, was because it was simple to install and integrate. XMLRPC is built into Python. This means we don't need to install it. That becomes very important when you look at the context of these decompiler plugins. Look at IDA, for instance:
https://github.com/mahaloz/decomp2dbg/blob/main/decompilers/d2d_ida/d2d_ida/server.py
Notice that there are actually no install requirements on the server side. That means people don't need to struggle to find their decompilers Python instance since they can just chuck that server file in as-is.
Summarization
To summarize, I think fastAPI does not work because:

It does not work on Java
It requires external libraries to be installed into each decompiler

Cavet for fastAPI to be accepted
Although I am opposed right now to fastAPI, with the right numbers, I can be convinced. If you do decide to reimplement this in fastAPI, do a simple plugin like IDA or Binja. Record the speed gain differences (time to update context tab in gdb). If the numbers are really big, like a 40% gain in speed or something, I would be much more open to pushing this change. If the numbers are good, I would need to complete the following PRs, which I will link below.
Convert Ghidra to Python Only
We use BinSync code for nearly everything. If this gets merged: https://github.com/binsync/binsync/pull/312, than we will have it shortly after.
Update installer for Decompiler Deps
Update the d2d installer so things will be installed inside the decompiler now.

hello thanks for the response. well if i have time i will try to do the integration for ida and test response time and perfs checks.
for the external lib things, yep it can be installed inside your install scripts.
i think imo there is no really big problems to install externals python libs as yout project will probably grow bigger and requires more libs for functionnality. i also forget about ghidra. dont know whats binsync and if python is possible gor ghidra / fastapi in java will look for it

I think imo there is no really big problems to install externals python libs as yout project will probably grow bigger and requires more libs for functionality.

I designed d2d in such a way that all dependencies were installed on the client side, since I couldn't ever see needing libraries in the decompiler. All we do is gather essentially strings and send them to the client, which then does all the complicated stuff of this project.
Installing things into the decompiler Python is complicated. It requires the user to know what Python instance their decompiler uses. It has to be done manually. In Binja, this Python is obscured behind a Binja specific venv. In IDA on MacOS, this is nearly impossible to find automatically.

Oh and to update, you need not worry about the linked PR to BinSync. Should the numbers happen to be compelling, I will push the BinSync PR to completion.

I'm currently working on a decomp2dbg client library for Frida.
With XMLRPC, it's reasonably easy for me to implement this in-process by manually banging out HTTP requests via Frida's Socket API.
Having to integrate a Python library for this would either require me to write an external tool (meaning that it'd no longer be possible to use my library with a standalone Frida gadget), or do the painful work of manually implementing a Javascript version of fastAPI.

Would using JSON-RPC work? It is similar in structure to XML-RPC and has many implementations including python and javascript ones. And shouldn't be too hard to implement in any language for which a json implementation exists.

@casept, thanks for the added input. This is why I'm hesitant to do it; however, if it ends up just being too good, it may be worth it in my eyes. But for now, it will stay as XMLRPC.
@bjorn3 same with the fastAPI move, if some one can show me some numbers concerning a speedup using JSON-RPC, than I will consider switching everything over. For now, XMLRPC remains the king because it's built-in to Python.

Since this convo has gone stale, I'll close it. Feel free to reopen if more discussion is wanted.


slow down prettier formating in vscode

i created a button component using tailwind variants like this:
const button = tv(
{
base: "py-2 px-5 ",
variants: {
variant: {
contained: "rounded-[10px] ",
outlined: "rounded-[10px]",
inlined: "bg-transparent ",
},
},
},
{
responsiveVariants: ["lg"],
}
);
type ButtonVariants = VariantProps;
export type IButtonProps = {
children: React.ReactNode;
} &  ButtonVariants;
but when i use this component ,the prettier extenstion formatting on vscode takes to long ... !
and when i remove tailwind variants from this component,prettier formatting working stable and fast !

Expected behavior
dont break another tools and extenstion like prettier !

OS: Windows
Browser Chrome
Version 113

Closing as not re-producable. This is most likely an issue with Prettier, a prettier plugin, or something else.


Fix Readme.txt to become ReadMe.MD to look nicer

Our Readme file can use some work in regards of it being more beautiful.
Please make it look more professional as its the first page people see when they click on our repo.
Thank you.

on it.  I'll clean up the READMEto be .MD first and then make it look nice.


Handler path not being rewritten

The handler path when I look inside the aws console is wrong: handler.app (https://d.pr/i/1lwDqI)
I needs to be _optimize/arena-node-api-dev-app/handler.app for it to work.
I have debug: true and this is my output:
Rodrigos-MacBook-Pro:arena-node-api rodrigoreis$ sls1 deploy -f app
Serverless: Optimize: starting engines
Serverless: Optimize: arena-node-api-dev-app
Serverless: Packaging function: app...
Serverless: Excluding development dependencies...
Serverless: Optimize: debug {
  "functions": [
    {
      "bundle": "/Users/rodrigoreis/Documents/arena-api/arena-node-api/_optimize/arena-node-api-dev-app/handler.js",
      "handlerOriginal": "handler.app",
      "handlerOptimize": "_optimize/arena-node-api-dev-app/handler.app",
      "package": {
        "exclude": [
          "**"
        ],
        "include": [
          "_optimize/arena-node-api-dev-app/**"
        ]
      }
    }
  ],
  "options": {
    "debug": true,
    "exclude": [
      "aws-sdk"
    ],
    "external": [
      "mongoose"
    ],
    "externalPaths": {},
    "extensions": [],
    "global": false,
    "includePaths": [],
    "ignore": [],
    "minify": true,
    "plugins": [],
    "prefix": "_optimize",
    "presets": [
      [
        "/Users/rodrigoreis/Documents/arena-api/arena-node-api/node_modules/babel-preset-env/lib/index.js",
        {
          "targets": {
            "node": "8.10"
          }
        }
      ]
    ],
    "individually": true
  }
}

This is my serverless.yml:
service: arena-node-api

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
# frameworkVersion: "=X.X.X"

custom:
  stage: "${opt:stage, self:provider.stage}"
  optimize:
    debug: true
    external: ['mongoose']

provider:
  name: aws
  stage: dev
  runtime: nodejs8.10
  profile: default
  region: us-west-2
  memorySize: 256
  vpc:
    securityGroupIds:
      - sg-7268ed14
    subnetIds:
      - subnet-28db1d70
      - subnet-44369a0f
      - subnet-f411938d
  environment:
      env: ${self:custom.stage}

# you can add packaging information here
package:
  individually: true

functions:
  app:
    handler: handler.app
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'
    vpc:
      securityGroupIds:
        - sg-7268ed14
      subnetIds:
        - subnet-28db1d70
        - subnet-44369a0f
        - subnet-f411938d
  billing:
      handler: handler.billing
      events:
        - http:
            path: billing
            method: ANY
            cors:
              origin: '*'
              headers:
                - Content-Type
                - X-Amz-Date
                - Authorization
                - X-Api-Key
                - X-Amz-Security-Token
                - X-Amz-User-Agent
                - Preferred-Language
        - http:
            path: billing/{proxy+}
            method: ANY
            cors:
              origin: '*'
              headers:
                - Content-Type
                - X-Amz-Date
                - Authorization
                - X-Api-Key
                - X-Amz-Security-Token
                - X-Amz-User-Agent
                - Preferred-Language
      vpc:
        securityGroupIds:
          - sg-7268ed14
        subnetIds:
          - subnet-28db1d70
          - subnet-44369a0f
          - subnet-f411938d
  live-score-update:
    handler: handler_live_score_update.handler

plugins:
  - serverless-plugin-optimize

Did you come to a solution? What version of SLS are you using?

Hi @goncaloneves , it just started working again without touching anything. When I had this problem I changed the path manually on aws console to _optimize/arena-node-api-dev-app/handler.app .

Great to know. Closing.


Release/Build test automation: Test the output file of the IAP scanner against the sample file we have

Test the output file of the IAP scanner against the sample file we have

Cleanup of old issues. Please re-open if there's still interest.
This is covered in manual testing today. Our efforts to automate our testing further will address this.


⚠ Bofrost.nl has degraded performance

In 183842a, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1174 ms

Resolved: Bofrost.nl performance has improved in 63f7707.


Create docker image tags aligned with agoric-sdk upgrade releases.

We only have the main tag, which does not tell which agoric-sdk version will be included in that image.
Tags similar to agoric-sdk docker images will help pick the right image for testing.

Related : #25
Tagging with a name derived from the SDK version is intriguing. I likely would only want that as a secondary tag since it wouldn't apply to all proposal images.


Spring Cloud Starter Config properties are not decrypted

In our project we are using Jasypt and Spring Cloud Config Client
Our problem is that the password property is not getting decrypted.
spring:
  application:
    name: connector
  profiles:
    active: dev
  config:
    import: configserver:http://XXXXXXXXX
  cloud:
    config:
      username: connector-app
      password: ENC(XXXXXXXXXXXXXXX)

jasypt:
  encryptor:
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    algorithm: PBEWITHSHA1ANDRC2_40
    password: ${JASYPT_SECRET}

If we change the password for the non encrypted password all works fine.
These are our dependencies:
    implementation("org.springframework.cloud:spring-cloud-starter-config:3.1.1")
    implementation("com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4")

Our main:
fun main(args: Array<String>) {
    runApplication<ConnectorApplication>(*args)
}

And we also tried with:
fun main(args: Array<String>) {
    SpringApplicationBuilder()
        .environment(StandardEncryptableEnvironment())
        .sources(ConnectorApplication::class.java).run(*args)
}

But we had the same issue.
If the property encrypted is not the cloud.config one it works perfectly, we try adding:
myprop:
  passoword: ENC(XXXXXXXXXX)

And all worked fine.
The only errors in the logs are the ones related with non being able to create our own beans due to the lack of properties, since they have not been retrieved from the server.

So after a bunch of investigation we found the "issue"
I will write the workaround here just in case it bites someone else:
We need to had a "bootstrap.yml" file, and there we will configure JASYPT and Spring Cloud Config Client:
spring:
  profiles:
    active: dev
  cloud:
    config:
      username: connector-app
      password: ENC(XXXXXXXX)
      uri: http://XXXXX
      enabled: true

jasypt:
  encryptor:
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    algorithm: PBEWITHSHA1ANDRC2_40
    password: ${JASYPT_SECRET}
    bootstrap: true

Note that we have changed the Spring cloud configuration section, and instead of being config.import now all inside the cloud.config section. Also enabled flag is set as true.
For the JASYPT section we use the password in an environment variable (that is why we have ${JASYPT_SECRET} like that.
Note also the boostrap : true
Finally we need to have in gradle the dependency for bootstrap:
implementation("org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.1")
Even if we have find a work around it feels very weird, I would like to know your thoughts about it.
Another funny point is that if you put the spring application name in bootstrap instead of the application yml, the cloud client doesn't resolves and it names the app as "application".
All these weird stuff looks really like Spring Cloud issues and nothing to do with our lovely Jasypt lib
I'm closing the issue now.


Use builders for condition tests

Changes
In #1127, we added test builders for Conditions.
Now, let's actually use them!
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[x] Commit messages follow commit message best practices

See the contribution guide for more details.

/lgtm

Import ordering should be fixed now!

/lgtm
/approve


Revert isort call in pre-commit to ensure consistent errors with CI linter

The isort pre-commit call was edited here so that it calls isort only on changed files rather than recursively on the whole repo.
But there was a comment just above that line explaining in absurd detail why we are calling it recursively on the whole repo...

Note that if the motivation for the change was to exclude submodules from linting, it looks like that can be done with the --extend-skip flag as used in the corresponding call in the astrobee repo.

Forgot to note this was fixed as part of https://github.com/nasa/isaac/commit/7d7852bfa9a70c388a9ad3232542c2378c7ed7dc


lint using clippy

this adds Clippy linting to CI
It also adds warnings for 'pedantic' clippy lints (though the new warnings are not addressed in this PR)
would you be open to me addressing any of the pedantic lint warnings in this PR?

now i just need to figure out why cargo clippy --all-features works locally, but not in CI...


Deactivate SPV in next wallet release by default

Please deactivate the SPV / native Bitcoin function by default in the next release. Too many people thinks they could send native BTC to the wallet and use the DEX

Hi @Mark76DefiChain , thanks for your feedback, will notify the team for consideration.

Hi @Mark76DefiChain , update v2.7.0 is out, this is a mandatory update.
Please read through the release notes before updating. This comment is to notify you about the update.

Hi @Mark76DefiChain , update v2.7.1 is out, this is a mandatory update. Kindly backup wallet before updating.
 Please read through the release notes before updating. This comment is to notify you about the update.

I am against it , as this feature should be developed further integrating it into DEX.
I will open a new enhancement issue asking for this feature, as this enables true decentralization without CAKE involvement.


we need the stylesheet available before initWithStyle

Fixes #103

Good catch!

strangely this passed before but now looks like there is a problem (thats why other PR's are failing) so I am going to look and see why this test fails and send another PR.


Belkis: Welcome to JS : 3 Weeks

Here is my fork of the repo

Learning Objectives
1. What is Programming

[x] Data in, Data Out: You understand that computer programs are used to
transform data, and can explain a JS program from this module in terms of
the data that goes in and the data that comes out.
[ ] Three Audiences: You can explain how a single file of code is used to
communicate with 3 different audiences:
[x] Developers: You can explain how code formatting, comments, logs and
variable names make it easier (or harder!) for a developer to understand a
program.
[x] Computers: You can explain how a computer follows your instructions to
store, read and modify data in program memory.
[ ] Users: You can explain how the computer creates a dynamic user
experience by following different executions paths depending on user
input.
[ ] Tracing Variables: You can complete a trace table for a program that
uses only variables, and can check your work using the "trace" button.

2. Just Enough JavaScript

[ ] JavaScript Syntax: Given a program, you can identify these parts of
JavaScript syntax:
[ ] Primitives
[ ] Operators
[ ] Identifiers
[ ] Keywords
[ ] Checks
[ ] Blocks
[ ] Function Calls
[ ] Listening and Reading: You can read code out loud, and understand your
classmates when they read code to you. You don't need to understand how a
program works to master these learning objectives!
[ ] Listening You can exactly re-write a program that a classmate has read
[ ] Reading You can read a program out loud and guide your classmates to
re-write exactly the same code without them seeing the program. Every
indentation, semi-colon, comment and spelling in their program must be
identical to yours.
[ ] Static vs. Dynamic Analysis: You can explain and use these two ways of
studying a program, each can help you understand different aspects of your
code. To help understand this concept, the options panel in Study Lenses
is organized into static and dynamic study options:
[ ] Static: Studying the text in a code file without running it. Some
static study methods are creating a flowchart, analyzing variables,
filling out a trace table, and drawing on code.
[ ] Dynamic: Running code and studying the computer's behavior. Some
dynamic study methods are running code and reading console logs, using the
trace button, and stepping through in the debugger or JS Tutor.
[ ] Tracing Execution: You can complete a "steps" trace table for all JS
language features in Just Enough JavaScript, and can correct your table
using console output from the "trace" button.
[ ] Analyzing Variables: You can list all the variables in a program, and
answer these 5 questions for each variable:

Where is the variable declared?
What is the variable's scope?
Is the variable initialized with a value?
How many times is its value used (read) in the program?
How many times is the variable assigned a new value?
What types are assigned to this variable during the program's execution?

[ ] Completing Programs: You can successfully fill in blanks for a program
when the missing words are provided, including distractors.
[ ] Translating Pseudo Code: Given a program written in Pseudo Code, you
can translate it to working JavaScript.
[ ] Comparing Programs: You can compare two programs with similar code and
explain if they have the same behavior or not. If they do not, you can
explain how they behave differently and why.
[ ] Constructing Programs: You can reconstruct a program's lines and
indentation, successfully ignoring distractor lines.

3. Understanding Programs

[ ] Stepping Through: You can pause a script in a your browser's debugger,
arrange the debugger, collapse extra panels, and step through a script
written with Just Enough JS. At each point in execution you can make a
prediction of the next line before executing, and can check your
prediction using the scopes panel.
[ ] Imperative Programming: You can explain what the Imperative
Programming paradigm is, and can explain how you know the programs in
Welcome to JS are Imperative.
[ ] Program Goals: You understand that a full JavaScript program can be
explained as a series of smaller goals, and can write names for the goals
in a simple working program.
[ ] Logging: You can tracing specific aspects of a program's execution and
log them to the console.
[ ] Tracing Backwards You can trace backwards from a program's output to
it's input.
[ ] Naming Variables: You can analyze how a variable is used in a program
and give it two names:

[ ]Generic: You can give a generic name to a variable based on how it is
used in the program.
[ ]Specific: You can give a specific name to a variable based on how it's
used and the program's domain (the program's specific data and use-case).

[ ] Describing Programs: You can read a program and describe it with
comments using to the methodology from /describing-programs:

Zoom Out
Zoom In
Find Connections
Describe Goals

[ ] Code Review: Given a working program you can review the code for
clarity, correctness and style.
[ ] Same Behavior, Different Code: You can study simple programs with the
same behavior (data in, data out) but different source code and explain
how the differences matter for each audience.

4. Developing Programs
Learn to modify and write larger programs in JavaScript. You'll cover many of
the hidden skills necessary to develop quality software and to work
collaboratively on a code base.

[ ] Linting: You can find and fix simple linting errors in JavaScript
programs.
[ ] Program Life Cycle: You can explain the two phases of a program's life
cycle.

Creation Phase
Execution Phase

[ ] Fixing Errors: You can use the structured comment to describe an error
in your program, and can make several educated guesses at how to fix the
error.
[ ] Fixing Bugs: You can use the structured comment to describe and fix a
bug in small programs.
[ ] Modifying Programs: You can make small changes in a program to change
its behavior without breaking it.
[ ] Refactoring: Given a working program, you can make changes to the code
without changing the program's behavior.
[ ] Writing Programs: Given a description of a program's behavior (user
story + test cases), you can plan goals for the program and write code to
pass the tests.
[ ] Reverse Engineering: Given a working program with unreadable code, you
can:
[ ] Give the program a name.
[ ] Describe the program's behavior with a user story, acceptance criteria and
test cases.
[ ] Plan goals for the program.
[ ] Develop your own working program with the exact same behavior.
[ ] Imagining Programs: Given an empty page, you can imagine and develop your
own programs using Just Enough JavaScript. This includes:
[ ] A title.
[ ] A description with a user story, acceptance criteria and test cases.
[ ] Commented goals.
[ ] Fully working Code.

Week-1
I Need Help With:
What went well?
What went less well?
Lessons Learned
Sunday Prep Work

@blksck  can you add your check-ins for week 1 and 2

@samirm00 , yes I know but I haven't fully resolved this issue yet. Because I haven't any check-ins.


feat: Allow using opendal with native tls support

I hereby agree to the terms of the CLA available at: https://databend.rs/dev/policies/cla/
Summary
Add native-tls and native-tls-vendored features, just like the way reqwest does.
While rustls is great, it's dependency on ring makes it unfit for architectures like powerpc64le, s390x and MIPS because ring lacks support for them ATM.
See also https://github.com/rustls/rustls/issues/521

Thanks a lot!

Hi @messense, can you add docs here to let users know about those features? Many thanks for considering my request.
https://github.com/datafuselabs/opendal/blob/65252c1a00eaacde05adb89be5b14444c7c3f035/src/lib.rs#L78


⚠ ClamAV has degraded performance

In d7e0353, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 229 ms

Resolved: ClamAV performance has improved in 0232a51.


Boats falling apart due to picking up items

Ships will collect items as it travels through the ocean, anything above -4 z (such as fishing gathering nodes) will be collected by the boat and after a certain amount of things are collected it will break the components and they will fall a part.

duplicate of https://github.com/Sphereserver/Source-X/issues/725
closing


Naming a page button result in wrong display

When setting a page title to button ,I got the following result:

I don't really understand the reason...

@MangelMaxime can you elaborate on what behavior you consider inappropriate?

@ronaldscott The yellow color on the b and u letters.

It's because your searched for "bu". Click on the cross in the search field and yellow should disappear

To fix it, just remove the b and u letters from the search box on the top left.

:) thanks @matcornic

Ah yes, I forgot to answer.
Yes the problems was the search results.. Sorry.


Refactoring the Read me file

@shyam-bhat, I advice you to update Read Me file with the proper formation and in heading please add the features that this Kit is providing. This will be helpful to developers who is coming to your Git and may end their search for IG integration. 👍

Thanks. Noted.


CollectingOutputChannel - IndexError: list index out of range

Rasa version: 1.0.6
Python version: 3.6.8
Operating system: Windows 10 Pro
Issue: Messages list in CollectingOutputChannel always empty. After update version Rasa, the service channels broken. What I do? Help me pls!!!
Error (including full traceback):
ga_connector.py", line 68, in receive
    message = responses[0]
**IndexError: list index out of range**
/opt/conda/lib/python3.6/site-packages/sanic/app.py:948: RuntimeWarning: coroutine 'CustomAction._extract_intent' was never awaited
  "An error occurred while handling an error", status=500

Command or request that led to error:
class CustomAction(InputChannel):

    @classmethod
    def name(cls):
        return 'google_home'

    @staticmethod
    async def _extract_sender(req):
        return req.json['user']['userId']

    @staticmethod
    async def _extract_intent(req):
        return req.json['inputs'][0]['intent']

    @staticmethod
    def _extract_message(req):
        return req.json['inputs'][0]['rawInputs'][0]['query']

    def blueprint(self, on_new_message):
        google_webhook = Blueprint('google_webhook', __name__)

        @google_webhook.route("/", methods=['GET'])
        def health(request: Request):
            return response.json({"status": "ok"})

        @google_webhook.route("/webhook", methods=['POST'])
        async def receive(request: Request):
            sender_id = await self._extract_sender(request)
            text = self._extract_message(request)
            intent = self._extract_intent(request)

            try:
                if intent == 'actions.intent.MAIN':
                    message = "<speak>Olá! <break time=\"1\"/> Seja bem vindo ao Zello, para começarmos diga oi!"
                else:
                    collector = CollectingOutputChannel()
                    await on_new_message(
                        UserMessage(
                            text, collector, sender_id, input_channel=self.name()
                        )
                    )
                    message = [m["text"] for m in collector.messages][0]
            except LookupError as e:
                logger.error("Message handling no reply for user message '{}'.".format(text))
                logger.error(e)
                message = "RASA_NO_REPLY"

            data = json.dumps({
                "conversationToken": "{\"state\":null,\"data\":{}}",
                "expectUserResponse": 'true',
                "expectedInputs": [
                    {
                        "inputPrompt": {
                            "initialPrompts": [
                                {
                                    "ssml": message
                                }
                            ]
                        },
                        "possibleIntents": [
                            {
                                "intent": "actions.intent.TEXT"
                            }
                        ]
                    }
                ]
            })

            return response.json(data)

        return google_webhook

Thanks for raising this issue, @ricwo will get back to you about it soon.

`
import ga_connector as ga
from rasa.core.agent import Agent
from rasa.utils.endpoints import EndpointConfig
action_endpoint = EndpointConfig(url="http://localhost:5055/webhook")
agent = Agent.load(
unpacked_model_path='models/',
# error interpreter
action_endpoint=action_endpoint
)
input_channel = ga.CustomAction()
agent.handle_channels(channels=[input_channel], http_port=8877)
`
I do not know how Agent.load loads the interpreter. When using RasaNLUInterpreter class, occurs error: not found models / metadata.json. How to set interpreter if needed for Agent's lib: from rasa.core.interpreter.NaturalLanguageInterpreter?

@DiegoProtec your _extract_intent() doesn't have to be a coroutine. you can either await it, or just change it to
@staticmethod
def _extract_intent(req):
    return req.json['inputs'][0]['intent']

I hope that helps!


Make duplicate publication check configuration cache compatible

So far, only for Maven publications, as Ivy plugin is not yet CC-compatible.
Checking for duplicate publication upon computing the Spec is not working properly for the configuration cache, as the cache computes it eagerly, ignoring the fact that the task may be disabled. This caused false positive warnings in the conditional publishing documentation snippet.
This commit moves duplicate check back to task execution time. To make it compatible with CC, all non-serializable data (Project, Publication) are replaced with simpler equivalents that can be safely obtained from the cached data.
Fixes #21640

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

OK, I've already triggered a build for you.


Fix api url

API is currently using collections.library.nd.edu for things like showcases/items parts of collections, should be using honeycomb.library.nd.edu
Note: Previous PR was to fix 2.0

:+1:


make epub from scratch

Can you provide an example of creating epub from scratch?
I would like to generate epub from String content (web scraping or RSS).
But the only example seems to be an epub reader.

I'm also interested in this.
I am working through it myself, but for some reason EpubSchema appears not to be exposed, so I can't create the manifest myself. Am I missing something?

Also, I note that navigation_writer.dart doesn't exist. Is that planned at all?

Hi, I am no so familiar with dart.
And I have solved this problem using Kotlin for Android, inspired by this tutorial.
And in fact it is easy,
create html, image, css, and some other metadata files,
then zip them together as an epub file...
So I think we can make an epub file from scracth without using epubx package.


No space left on device error when running with pyspark

Hi, I've had a lot of fun using Prophet and recently I've been trying to use Prophet with pyspark to forecast hundreds of time series, but have been running into

File "/grid/2/tmp/yarn-local/usercache/tuser/appcache/application_1495315135132_1960981/container_e12_1490213517705735_1960981_01_000002/Python2.7.12/lib/python2.7/site-packages/pystan/model.py", line 360, in setstate
f.write(self.module_bytes)
IOError: [Errno 28] No space left on device

My script does the following: for each time series ts, I have a for loop that uses the first "i" days of data to build a model and then forecasts the next 21 days where i ranges from 20 to the length of the time series. Some of these time series could be 200-300 days long.
for i in range(20, len(ts)):
    ts_sub = ts.head(i)
    m.fit(ts_sub)
    m.make_future_dataframe(periods=21)
    forecast = m.predict(future).tail(k)[["ds", "yhat"]]
    del m
    output_df = output_df.append(forecast)

Here's my pyspark code:
if __name__ == "__main__":
    sc = SparkContext(appName="forecaster")
    mydata = sc.textFile('test_time_series.csv')
    mydata_ts = mydata.map(lambda x: x.split(',')).map(lambda y: ((y[1],y[2],y[3]), (y[0],y[4])))
    mydata_ts_g = mydata_ts.groupByKey().map(lambda x: (x[0], list(x[1])))
    mydata_ts_df = mydata_ts_g.map(lambda x: (x[0], pd.DataFrame(x[1], columns=['ds', 'y'])))
    mydata_ts_df = mydata_ts_df.map(lambda x: (x[0], x[1].sort_values(by='ds')))
    mydata_ts_df = mydata_ts_df.filter(lambda x: len(x[1]) >= 20)

    m = Prophet(n_changepoints=0)
    mydata_ts_df_predict = mydata_ts_df.flatMap(fb_forecast)
    mydata_ts_df_predict.saveAsTextFile('forecast_results')

It looks like a bunch of models are being stored on my local tmp directory, but not being cleaned up. Is there a way for me to immediately delete a stan model after I generate forecasts? For each model, I only need the single 20-day forecast.
Thanks!

Hmm this is likely a pystan thing we didn't account for.   We should ask in the Pystan Github and see what temporary files it is creating.

I can replicate this issue. The temp files persist until the Python session is ended, despite https://github.com/stan-dev/pystan/blob/develop/pystan/model.py#L366-L367. Should be able to fix this on our end.

https://github.com/facebookincubator/prophet/commit/5971a2369be1fc76af96c8ab6de1747c835acc95 should fix this issue by only loading the Stan model once, on package import. It fixes it for me, @j-chou do you mind installing from Github and checking if that does it?

Latest changes worked on pyspark! Thanks!

@j-chou  do you have this project in a repository ? I'm doing the same proccess with another data, but i'm facing problems trying to parallelize the code. Seems for me that you could work with prophet and pyspark, and effectively parallelize the execution. Would you help me ?


Split Enum value type from EnumTypeWrapper

This fixes the conflation of the value type from the EnumTypeWrapper in the typing.
Added tests to confirm that we correctly error if used incorrectly.
Fixes #118

Note that this approach takes the opinionated approach of returning a NewType over the int
If you try to construct a message passing an int to the constructor, it will fail, expecting to be wrapped in the NewType

FYI this is breaking our type checks, and it's not as simple as replacing MyEnum by MyEnumValue because MyEnumValue exists only during type checking. I'm converting all those types to string MyEnum => 'MyEnumValue'


Improved ReportService

I've done some minor refactoring and changed the ReportService interface:
https://github.com/openraven/magpie/blob/b1f29aea678fdf323489057b171799dc7f089615/magpie-core/src/main/java/io/openraven/magpie/core/cspm/services/ReportService.java#L5
Same data (+ new) in a wrapper object.
Tasking:

Fill out the ScanResults object in PolicyAnalyzerServiceImpl
You'll need to collect all the unscanned rules from their various sources (there are 3 possible reason's why a rule was ignored).
In the final report, add a section at the end of each policy listing rules that weren't scanned along with their reason.

Please use the existing full_reporting branch.

Should +  private Map<Rule, IgnoredReason> ignored = Map.of(); be in ScanResult rather than PolicyContext ? Makes more sense logically. E.g. MISSING_ASSET("Asset table not found"), is only usable after/during scan run.

Should + private Map<Rule, IgnoredReason> ignored = Map.of(); be in ScanResult rather than PolicyContext ? Makes more sense logically. E.g. MISSING_ASSET("Asset table not found"), is only usable after/during scan run.

I see now that it was there at first, but you moved it later on :)

Correct!  I moved it because we needed missing assets on a per-policy basis and I assumed putting it in the PolicyContext was the easiest way to do that. If you want to make it Map<Map, <Rule, IgnoredReason>> or whatever you could do that as well.

I was thinking of something like
Map<Policy, List<Violation>> violations;
Map<Policy, IgnoredReason> ignoredPolicies; // policy enabled flag set to false
Map<Rule, IgnoredReason> ignoredRules;

in `ScanResults`?

It's not perfect this way either.. But at least everything is encapsulated in ScanResults

Already Done


Fill out definitions document

Link to the definition document on google drive:
https://docs.google.com/document/d/1ROibTKOBcMaCw53zZloVLbhXrMG0lJjW6OKUhJaS2hw/edit#
This document will be used as a glossary for terms relevant to clean slate.

I'm not sure this document is finished, @seraph776 . Do you feel differently? Otherwise, if you no longer want to be assigned to this issue, you can remove yourself from it as opposed to closing it.

My apologies. I did not mean to close this!


chore(main): release awesome-jekyll-theme 1.2.0

:robot: I have created a release beep boop
1.2.0 (2024-09-23)
Features

add rss icon if plugin jekyll-feed is enabled (9660642)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

awesome-jekyll-theme/v1.2.0
:sunflower:


Remote publication integ test

Description
[Describe what this change achieves]
Related Issues
Resolves #[Issue number to be closed when this PR is merged]

Check List

[ ] Functionality includes testing.
[ ] API changes companion pull request created, if applicable.
[ ] Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

❌ Gradle check result for 0f1b9a3: FAILURE
Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Flaky test testTaskResourceTrackingDuringTaskCancellation.


Added  for int64_t

Signed-off-by: Jamaika1<EMAIL_ADDRESS>

Apologies for the delay in following up, but thanks for the fix. See #268 to save you the CLA step.


Strange score for TCGA

    > Dear bin, Thank you for your great work!

When I reproduce the results on c-16 and TCGA, I follow the provided readme: 1) Using pre-computed features from Download feature vectors for MIL network --> python download.py --dataset=tcga/c16，2）Training the model (with all hyperparameters as default) python train_tcga.py --dataset=TCGA-lung-default/python train_tcga.py --dataset=Camelyon16 --num_classes=1.  For c16, I found there is mild degradation in accuracy of 91% unlike Problem of reproduce Camelyon16 result #54 with only 60%. But I did find each patch will produce the same attention score as Problem of reproduce Camelyon16 result #54. For TCGA, the same attention score can also be found but with quite promising results (e.g.,  train loss: 0.3307 test loss: 0.3239, average score: 0.9000, AUC: class-0>>0.9715089374829871|class-1>>0.9658833136738953). The problem of the same attention score on c16 may sometimes be solved by restarting the training with the init.pth loaded, but never solved on TCGA. How to do with it?
When I use the provided pre-trained aggregator (.test/weights/aggregator.pth or .test-c16/weights/aggregator.pth) to the test set of pre-computed feature from Download feature vectors for MIL network --> python download.py --dataset=tcga/c16. I got reasonable results (average score: 0.9125, AUC: class-0>>0.9546666666666667) on c-16, but unreasonable ones (average score: 0.6857, AUC: class-0>>0.8621722166772525|class-1>>0.8949278649850286) on TCGA. I wonder whether these pre-trained aggregators can only work with the provided embedder (test/weights/embedder.pth or .test-c16/weights/embedder.pth) instead of pre-computed features? In other words, the pre-computed features are not generated by these pre-trained embedders?

Looking forward to your help! Best, Tiancheng Lin

Hi, @HHHedo  & @binli123 .
I have the same question with @HHHedo. I focus on the TCGA part now, and followed the instruction.

Using pre-computed features fromDownload feature vectors for MIL network -->   $ python download.py --dataset=tcga
Training the model (with all hyperparameters as default) $ python train_tcga.py --dataset=TCGA-lung-default
For TCGA, I got the same attention score with @HHHedo , I don't know why at the first epoch, the score is so high. You can see my screenshots.

 ...  and after the 3rd epoch, there is no other better model to be solved. That's very confused me.

Could you tell me why and how to fix it? Thank you very much.
Originally posted by @xiaozhu0816 in https://github.com/binli123/dsmil-wsi/issues/59#issuecomment-1302047914

Youmay try smaller weight decay.

You may try a smaller weight decay.

Thank you for your advice. But I'm not sure why the best results can be obtained in the first few epochs.
For TCGA, may I ask what is  result after you have reduced the weight decay? What were the results in the first few epochs and what was the best result after the final convergence?  Because I think average score in here is Accuracy in the paper. So they are similar?
Aother question is how did you test? I remembered you mentioned that you got the test result. But for me, I followed the instruction $ python download.py --dataset=tcga-test then   $ python test_crop_single.py --dataset=tcga and   $ python testing_tcga.py. In ./test/input  there are only 6 wsi for me to test, and in testing_tcga.pyThere are only printed text results, not numerical results like average scores or anything else.
Thank you very much!

You may try a smaller weight decay.

Thank you for your advice. But I'm not sure why the best results can be obtained in the first few epochs. For TCGA, may I ask what is result after you have reduced the weight decay? What were the results in the first few epochs and what was the best result after the final convergence? Because I think average score in here is Accuracy in the paper. So they are similar?
Aother question is how did you test? I remembered you mentioned that you got the test result. But for me, I followed the instruction $ python download.py --dataset=tcga-test then  $ python test_crop_single.py --dataset=tcga and  $ python testing_tcga.py. In ./test/input  there are only 6 wsi for me to test, and in testing_tcga.pyThere are only printed text results, not numerical results like average scores or anything else.
Thank you very much!

For the TCGA dataset, the model converges very quickly because a large portion of the region in the slides are positive regions.
Regarding testing, you can copy and paste the testing slides to the ./test/input folder. The main purpose of the testing script is to print attention maps.

You may try a smaller weight decay.

Thank you for your advice. But I'm not sure why the best results can be obtained in the first few epochs. For TCGA, may I ask what is result after you have reduced the weight decay? What were the results in the first few epochs and what was the best result after the final convergence? Because I think average score in here is Accuracy in the paper. So they are similar?
Aother question is how did you test? I remembered you mentioned that you got the test result. But for me, I followed the instruction $ python download.py --dataset=tcga-test then  $ python test_crop_single.py --dataset=tcga and  $ python testing_tcga.py. In ./test/input  there are only 6 wsi for me to test, and in testing_tcga.pyThere are only printed text results, not numerical results like average scores or anything else.
Thank you very much!

For the TCGA dataset, the model converges very quickly because a large portion of the region in the slides are positive regions. Regarding testing, you can copy and paste the testing slides to the ./test/input folder. The main purpose of the testing script is to print attention maps.

Thank you for your answer.
I also tried to train Camelyon16 with the same operation as I did in TCGA. It also converges very quickly in the first 10 epochs, and avg_score reached over 90%. Could you give me some advice?
What's more, I notice that in train_tcga.py, you put all WSIs(Both Camelyon16 & TCGA) as train_val dataset.
But no separate test dataset for "TEST". Maybe that's different from what you wrote in your paper because in the paper you actually split them into the training set and test set. Am I right?
Should I split the training set(Camelyon 270 WSI and TCGA 840WSI into train&val) and use the left (unseen) WSIs for the test?

I incorporated the training/testing into the same pipeline in the latest commit. This change allows you to read the evaluation results on a reserved test set. I also incorporated a simple weights initialization method which helps stabilize the training. You can set --eval_scheme=5-fold-cv-standalone-test which will perform a train/valid/test like this:

A standalone test set consisting of 20% samples is reserved, remaining 80% of samples are used to construct a 5-fold cross-validation.
For each fold, the best model and corresponding threshold are saved.
After the 5-fold cross-validation, 5 best models along with the corresponding optimal thresholds are obtained which are used to perform inference on the reserved test set. A final prediction for a test sample is the majority vote of the 5 models.
For a binary classification, accuracy and balanced accuracy scores are computed. For a multi-label classification, hamming loss (smaller the better) and subset accuracy are computed.

You can also simply run a 5-fold cv --eval_scheme=5-fold-cv
There were some issues with the testing script when loading pretrained weights (i.e., sometimes the weights are not fully loaded or there are missing weights, setting strict=False can reveal the problems.). The purpose of the testing script is to generate the heatmap, you should now read the performance directly from the training script. I will fix the issues in a couple of days.


HBASE-25318 Configure where IntegrationTestImportTsv generates HFiles

Currently IntegrationTestImportTsv is generating HFiles under the working directory of the hdfs user executing the tool, before bulkloading it into HBase.
Assuming you encrypt the HBase root directory within HDFS (using HDFS Transparent Encryption), you can bulkload HFiles only if they sit in the same encryption zone in HDFS as the HBase root directory itself.
When IntegrationTestImportTsv is executed against a real distributed cluster and the working directory of the current user (e.g. /user/hbase) is not in the same encryption zone as the HBase root directory (e.g. /hbase/data) then you will get an exception:
ERROR org.apache.hadoop.hbase.regionserver.HRegion: There was a partial failure due to IO when attempting to load d :
hdfs://mycluster/user/hbase/test-data/22d8460d-04cc-e032-88ca-2cc20a7dd01c/IntegrationTestImportTsv/hfiles/d/74655e3f8da142cb94bc31b64f0475cc

org.apache.hadoop.ipc.RemoteException(java.io.IOException): /user/hbase/test-data/22d8460d-04cc-e032-88ca-2cc20a7dd01c/IntegrationTestImportTsv/hfiles/d/74655e3f8da142cb94bc31b64f0475cc can't be moved into an encryption zone.

In this commit I make it configurable where the IntegrationTestImportTsv generates the HFiles. From now, one can execute this integration test on HDFS Transparent Encryption enabled clusters, like:
./bin/hbase org.apache.hadoop.hbase.mapreduce.IntegrationTestImportTsv -D IntegrationTestImportTsv.generatedHFileFolder=/<my hbase encryption zone path>/testdata

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 30s
Docker mode activated.


Rest api for adding/searching objects / signature store

Hi guys,
Hope you are all well !
It would be awesome to add a rest api executable with all existing functionalities (add/delete/search objects). This web-service would help to create an advanced CIBR.
Also, is there a way to store signatures in a store rather in memory like a Mysql , Postgresql or even sqlite3 datastore ? Is there a way to compress them ?
Thanks in advance for your insights and inputs on these 2 questions.
Ps. the webservice would be really awesome as a feature but I am not really skilled with the QT Framework.
Cheers,
X

Hi!
Thanks for the suggestion. It would be indeed a nice feature to have. It seems that using https://github.com/HerikLyma/CPPWebFramework could be a good fit without too much modifications. This could be based to what we did for the TCP/IP example: https://github.com/introlab/find-object/wiki/TcpRequest
Currently the sessions can be saved in Qt serialized binary file. I already used sqlite3 for RTAB-Map project, where it has similar structure (keypoints and descriptors) for its database (see this schema). For compression, it is possible to saved compressed images or data in the database.
My time is more on RTAB-Map project right now, but if I find some time, I will take a look at the webservice first. We will be happy to accept pull request on any of these issues (restapi or sql storage).
cheers,
Mathieu

Hi,
Thanks for the reply ! My skills in C++/Qt are very weak as I am much more a Gopher.
But waiting with such impatience, for your changes, that I am happy to see one of these features implemented.  :-)
Have a great day.
Cheers,
X

Any luck with the rest feature ?

@matlabbe did you have some free time for this feature ?
It would be really awesome as I want to build a dataset logos.

Other projects have priority right now (as you can see I am almost 20 days late in my emails), but I am open for a pull request if you find someone to implement it.

I have nobody. You are my only hope ^^.
I ll wait for you.

Hi @matlabbe ,
Hope you are all well !
I know, I am persistent but nobody else than you can help me ^^
So just checking if you can still implement that feature as I would like to test a couple of things.
Cheers


IntelliJ toggle TabNine result order to be before or after native autocomplete

Been beta testing TabNine for a while and this is the summary of my experience so far.
The codebase is GraphQL server, a React Frontend, a AWS CDK application and some MD and SQL.
In cases where there are no "native" suggestions, TabNine adds tremendous value.
But to me there is a big difference in how positive and accurate TabNine completions over native IntelliJ symbol suggestions from the indexed-based autocompletion engine they have. The IntelliJ symbol is in a very large majority of cases more relevant when working directly on Types with symbols. So much so that TabNine feels like a nuisance since it's never more accurate, and often fills the result list with suggestions that are redundant.
So my feature request as such is:
Add a setting to keep IntelliJ native symbol suggestions, if they exist, above the TabNine suggestions, as an alternative to having TabNine always on top. This way, you can have the best of both worlds.
Disable TabNine suggestions from "Smart Type" completions. Intellij has two completion modes, "Basic" and "Smart Type", which can be triggered with different key combinations:

As a developer, if I trigger the context-based SmartType completion, I want that context-based Type completion over anything else.
Here it's suggesting strings that dont exist on the type at all.

Here I want to access secret but the TabNine completion is in the way, disallowing me from completing automatically and forcing list navigation.

Huge +1. Came here searching for this feature as I think it's probably the only thing that's stopping me from recommending TabNine to more people.
Specifically though, I'd like the behavior here to be a bit more configurable. It would be nice to choose the order of completion sources generically, though that's maybe more a JetBrains thing.
In terms of what TabNine can control, I would love to at least have a "show before/after other completions" option, and a keybinding that I can set/press when the completion popup is open to hide all TabNine suggestions for as long as that specific completion is open.

Without fixing this it is just not usable. Tried it for the day on Typescript/WebStorm, there was barely a single first suggestion that made sense and they come on top of default (which is already very accurate for statically typed languages in IntelliJ).
Not talking about 14 trial is ridiculous (even IntelliJ Ultimate itself has a 30 day trial) and the price is exorbitant even if it worked correctly (25% of the whole IntelliJ Ultimate price just for autocompletion which already works reasonable built-in, really?!) .
For a new, not-there-yet service trying to acquire the market which is already filled with good IDE native implementations, it seems making too much barriers for itself. IMHO at the bare minimum it should fix issues like this instantly.

I found a workaround that forces tab nine to come after the build in suggestions if you explicitly selected the build in suggestion before.
To for this behavior you have to activate the Machine Learning-Assisted Completion builtin into JetBrains IDEs.
Editor > General > Code Completion > Machine Learning-Assisted Completion > Rank completion suggestions based on Machine learning

Without fixing this it is just not usable. Tried it for the day on Typescript/WebStorm, there was barely a single first suggestion that made sense and they come on top of default (which is already very accurate for statically typed languages in IntelliJ).
Not talking about 14 trial is ridiculous (even IntelliJ Ultimate itself has a 30 day trial) and the price is exorbitant even if it worked correctly (25% of the whole IntelliJ Ultimate price just for autocompletion which already works reasonable built-in, really?!) .
For a new, not-there-yet service trying to acquire the market which is already filled with good IDE native implementations, it seems making too much barriers for itself. IMHO at the bare minimum it should fix issues like this instantly.

“I hate and love. And why, perhaps you’ll ask.
I don’t know: but I feel, and I’m tormented.”
― Catullus
Thanks for trying out Tabnine @fedorl , we highly appreciate any feedback coming from the community and value you taking the time to deliver it to us. Hopefully we will improve in the future.

I found a workaround that forces tab nine to come after the build in suggestions if you explicitly selected the build-in suggestion earlier.
To for this behavior you have to activate the Machine Learning-Assisted Completion built-in into JetBrains IDEs.
Editor > General > Code Completion > Machine Learning-Assisted Completion > Rank completion suggestions based on Machine learning

The TabNine suggestions are still on top or preselected most of the time

Awesome hack @elovin ! We would love to hear back from you after you've accumulated some milage with the setup, to know whether this is a direction worth pointing other users to.

@boaz-codota ancient roman poetry aside, by closing this, are you saying that toggling suggestion orders from TabNine as suggested in the original post will not be implemented ?

"And enterprises of great pith and moment
With this regard their currents turn awry,
And lose the name of action"
@boaz-codota with the above workaround, suggestions are still on top or native most of the time, so it is not clear what is awesome and why the ticket was closed.

Yes, I would like to place TabNine's suggestions after those that were inferred from TypeScript. @boaz-codota Could you please reopen the issue?

plugin-dev.com says You can use CompletionResultSet.runRemainingContributors(...) to filter the completions of the remaining contributors.
so what about a FilteringCompletionContributor like this?
public class FilteringCompletionContributor extends CompletionContributor {

    @Override
    public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull final CompletionResultSet resultSet) {
        ArrayList<CompletionResult> elements = new ArrayList<>();

        // collect the other completion-contributors results
        resultSet.runRemainingContributors(parameters, elements::add);

        List<Integer> filteredsordedResults = IntStream.range(0, elements.size())
                .filter(i -> {
                    LookupElement tabnine_element = elements.get(i).getLookupElement();
                    if (tabnine_element.getObject() instanceof TabNineCompletion) {
                        String tabnine_autocompl = tabnine_element.getLookupString();

                        boolean already_in_other_contributers_results = elements.stream()
                                .filter(e -> !(e.getLookupElement().getObject() instanceof TabNineCompletion))
                                .anyMatch(e -> {
                                    String another_autocompl = e.getLookupElement().getLookupString();
                                    return another_autocompl.equals(tabnine_autocompl);
                                });
                        return !already_in_other_contributers_results;
                    } else {
                        return true;
                    }
                })
                .mapToObj(i -> (Integer) i) //WTF? I don't know how java works!
                .sorted(Comparator.comparing(i -> {
                    boolean is_tabnine = elements.get(i).getLookupElement().getObject() instanceof TabNineCompletion;
                    return is_tabnine? i + Integer.MAX_VALUE :i; // if is tabnine should go to the very back! behind all others!
                }))
                .collect(Collectors.toList());

        // add to resultSet
        filteredsordedResults.forEach(i -> resultSet.passResult(elements.get(i)));;

    }
}

to make this work one actually needs to:

add <completion.contributor language="any" implementationClass="com.tabnine.FilteringCompletionContributor" order="first"/> to plugin.xml and remove the order="first" from the TabNineCompletionContributor line
./gradlew buildPlugin -> produces a  TabNine zip-file in distributions folder
intellij-plugin settings: Install Plugin from Disk ... (select TabNine zip-file)

plugin-dev.com says You can use CompletionResultSet.runRemainingContributors(...) to filter the completions of the remaining contributors.
so what about a FilteringCompletionContributor like this?
public class FilteringCompletionContributor extends CompletionContributor {

    @Override
    public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull final CompletionResultSet resultSet) {
        ArrayList<CompletionResult> elements = new ArrayList<>();

        // collect the other completion-contributors results
        resultSet.runRemainingContributors(parameters, elements::add);

        List<Integer> filteredsordedResults = IntStream.range(0, elements.size())
                .filter(i -> {
                    LookupElement tabnine_element = elements.get(i).getLookupElement();
                    if (tabnine_element.getObject() instanceof TabNineCompletion) {
                        String tabnine_autocompl = tabnine_element.getLookupString();

                        boolean already_in_other_contributers_results = elements.stream()
                                .filter(e -> !(e.getLookupElement().getObject() instanceof TabNineCompletion))
                                .anyMatch(e -> {
                                    String another_autocompl = e.getLookupElement().getLookupString();
                                    return another_autocompl.equals(tabnine_autocompl);
                                });
                        return !already_in_other_contributers_results;
                    } else {
                        return true;
                    }
                })
                .mapToObj(i -> (Integer) i) //WTF? I don't know how java works!
                .sorted(Comparator.comparing(i -> {
                    boolean is_tabnine = elements.get(i).getLookupElement().getObject() instanceof TabNineCompletion;
                    return is_tabnine? i + Integer.MAX_VALUE :i; // if is tabnine should go to the very back! behind all others!
                }))
                .collect(Collectors.toList());

        // add to resultSet
        filteredsordedResults.forEach(i -> resultSet.passResult(elements.get(i)));;

    }
}

to make this work one actually needs to:

add <completion.contributor language="any" implementationClass="com.tabnine.FilteringCompletionContributor" order="first"/> to plugin.xml and remove the order="first" from the TabNineCompletionContributor line
./gradlew buildPlugin -> produces a  TabNine zip-file in distributions folder
intellij-plugin settings: Install Plugin from Disk ... (select TabNine zip-file)

@dertilo Nice one! That should probably be togglable in the options because most users have probably got used to the current behaviour, and I bet @boaz-codota will merge that as soon as you open a PR!

Trying out TabNine on a recommendation.  +1 to this thread - the extra autocompletion is great when IntelliJ doesn't have a suggestion, but actively makes the existing code-completion worse the rest of the time.
Implementing the ability to have TabNine suggestions show after native ones would make this a much more useful tool.  Disappointed that this got closed out based on a partial workaround - do we have any hope of seeing movement?

Currently tabnine is useless it shows fields that doesnt exists variables that are not defined...
Codata was so much better for intellij IDEA and I cant find settings... and this improves productivity? cmon .

@boaz-codota Can you please reopen this issue? If you're not going to, can you give us an explanation why?
I think you can see from the comments, that this is a pain point for a lot of people, including myself.
Thanks

omg. I'm so happy this thread exists.  It's so painful that Tabnine's ego is so overwhelming that it has determined that its suggestions should always be at the top of the list.
The time I'm saving with Tabnine is completely wasted by having to cursor down through the code completion hints so that I can get to the natively suggested recommendations, which I prefer because:

I know that these are valid methods or variables
Static type hinting information is included

Hi @andychute, we have  released an experimental "inline Completions" feature 🎉
Please share your experience with this feature here 🙏
In order to enable it:

open the Tabnine  Home, go to "Preferences" and check the "inline Completions"  option
restart your IDE

@dimacodota That's good, but having an option to prioritize IDE autocomplete over TabNine without using inline completions would be better.

Actually I stopped using tabnine today because of it

实际上我今天因为它而停止使用 tabnine

me too.

I really like TabNine.  I listened to your episode on The Changelog Podcast and am a big fan of your philosophy.
Unfortunately, not being able to put TabNine suggestions after language-based completions is a deal-breaker for me :(

This is also painful for languages like Elixir where tabnine is pretty great with it. I am trying tabnine as a paid member for a month, which I won't be renewing due to this issue. The cost would be worth it for me when this is fixed.

FIY, another code completion product that was released just recently by a popular Git hosting service doesn't have this problem.

Yeah tabnine sucks, terrible suggestions and all over the top of anything useful. No way to reorder so I'm just gonna remove it completely.

It's two years later and I had the same issue. @elovin's suggestion helps, but as noted, it's only partial. @dimacodota is there any chance of an update on this? Is it somehow different for Pro users? Do Jetbrain really prefer Tabnine completions before Jetbrain's?

@dimacodota This is the single biggest issue stopping me from sticking with tabnine, I test ran it for a month now and would keep it, but it's interfering with the DX of standard typescript autocomplete, inline suggestions can also be a bit distracting.
Please if you can do something about this, I would be so grateful.

why this issue closed?

Having the same issue. Working on VS code and TabNine suggests dictionary key that don't exist; the native suggestions are sometimes more accurate. Would be great to be able to toggle between the two.

I'm also disabling tabnine because of this

Hi @elovin, please, can you elaborate on what you mean by this?

if you explicitly selected the build-in suggestion earlier.

I enabled machine learning order, and it seems to work for java code, but not in xml files. Perhaps that workaround doesn't wokr for xml?

Its 2024 and i am still having this issue. cant work as efficiently since i installed tabnine as the suggestions are dragging me away from my coding flow.

After years of using TabNine, I've just disabled the plugin. Like @raphaeluwadone said, I don't want to have friction in my workflow because I'm forced to scroll through invalid suggestions to get to the class- and method- based native suggestions.
I'm sure this is a tricky development issue, since it involves a shared popup between JetBrains and TabNine. But I'm not sure why this ticket was closed (and not at least marked "wontfix"), since it's still an issue in 2024.


PasswordOverwriteSilent does not prevent user prompt for password

v4.0 build 6266
When setting PasswordOverwriteSilent to true the user is still prompted for local password after a password reset and successful cloud login with a cloud password different than the current local password.
This was tested with a profile also containing these other prefs:

KeychainReset: true
localAdminUserName: valid admin username
localAdminPassword: valid admin password

<key>KeychainReset</key>
<true/>
<key>PasswordOverwriteSilent</key>
<true/>
<key>localAdminUserName</key>
<string>admin</string>
<key>localAdminPassword</key>
<string>twocanoes</string>

the correct behavior is to prompt and when the user presses reset, it doesn't prompt for admin credentials. This was broken and fixed in the latest build.


Error on onboarding.tsx when the validation fails, can't create the account

Description:
When on the onboarding view, filling out the username, name, password, if the user makes a mistake wether it is that passwords don't match, or don't check the TOS checkbox, after they correct those errors and try to create the account, there is an error on the username, and after changing the username there is a 50 error when creating the session because it says the email already exists.
This is reproducible both locally and on production.
Steps to reproduce:
1- Go to create an account view
2- Put email
3- Put code from email
4- Fill out username, name, password and password confirm, don't check the TOS, make the paswords and password confirms different, ex:
password: 123qweasd
password_confirm: 123qweasd.

5- Hit submit, you get an error for the TOS
6- Check the TOS and submit, get an error for the password
7- Fix the passwords, get an error from the username
8- Fix the username, get an error from the server, "unique constraint" when creating the user.
Why do I think this is happening?
When you get the errors, and then go back to fix them, looks like conform sends some submissions to the action with intents like validate/password or validate/theFieldThatHaveTheTosIDontRemember, and because the session is created on the .transform() while parsing the request data, before determinating if the submission.intent is submit, the session is being created on that moment.
...
	const submission = await parse(formData, {
		schema: SignupFormSchema.superRefine(async (data, ctx) => {
			const existingUser = await prisma.user.findUnique({
				where: { username: data.username },
				select: { id: true },
			})
			if (existingUser) {
				ctx.addIssue({
					path: ['username'],
					code: z.ZodIssueCode.custom,
					message: 'A user already exists with this username',
				})
				return
			}
		}).transform(async data => {
			const session = await signup({ ...data, email })
			return { ...data, session }
		}),
		async: true,
	})

	if (submission.intent !== 'submit') {
		return json({ status: 'idle', submission } as const)
	}
	if (!submission.value?.session) {
		return json({ status: 'error', submission } as const, { status: 400 })
	}
...

How did I solved it?
I fixed this on my code by removing the transform() that creates the session, and only creating the session after the validation and the submission.intent !== 'submit' check, there is probably a cleaner way to do it.
...
	const submission = await parse(formData, {
		schema: SignupFormSchema.superRefine(async (data, ctx) => {
			const existingUser = await prisma.user.findUnique({
				where: { username: data.username },
				select: { id: true },
			})
			if (existingUser) {
				ctx.addIssue({
					path: ['username'],
					code: z.ZodIssueCode.custom,
					message: 'A user already exists with this username',
				})
				return
			}
		}),
		async: true,
	})

	if (submission.intent !== 'submit') {
		return json({ status: 'idle', submission } as const)
	}

	let hasError = Object.keys(submission.error).length > 0
	if (hasError || !submission.value) {
		return json({ status: 'error', submission } as const, { status: 400 })
	}

	let { remember, redirectTo, username, password, name } = submission.value
	const session = await signup({ email, username, password, name })
...

I think I've fixed this (though I couldn't reproduce it). I made a video explaining what's probably going on: https://www.epicweb.dev/tips/fixing-a-form-validation-bug-in-the-epic-stack
Here's the commit that should fix it: https://github.com/epicweb-dev/epic-stack/commit/4559ae734ee2df10cc3cee8fbac543240740da39
Please let me know if that fixes it for you!

Hi @kentcdodds , yes this fixed the problem!


Paper release

http://www4.comp.polyu.edu.hk/~cslzhang/paper/DSL_cvpr22.pdf was linked from Google Scholar but unfortunately returns 404 now. Would be keen to read the paper in better rendering than Google cache :)

@vadimkantorov Hi, Tanks for attention to our work. This work belongs to Alibaba group and the license is now being approved. The code and paper will be released after approval.

About paper: quite interesting given that the camera-ready deadline has passed :)

@vadimkantorov Deadline of camera-ready has no relation to the approval of company. Each paper published by Alibaba must be approved by company itself. If not the staff will violate company rules. Sorry for that.

Camera-ready submission has relation with paper release. During camera-ready submission IIRC you approve copyright waiver to IEEE and CV Foundation. If the paper is not retracted, it will be published in the proceedings and available online anyway - just a few months later. So if Alibaba does not give approvbal to paper release, I guess it should be retracted. So this is the reason of my confusion.

@vadimkantorov Indeed, the paper will be online available and the release will also be finally approved by Alibaba. But it is not now, and the only thing we can do is just wait. From the deadline of camera-ready to the date of online release of CVPR there are enough days for the company to deal with this approval. I know your confusion, so please wait together. Thanks~

thanks for the release!


The option 'Navigate to Container' displays in the 'Open Direct Link' dialog when opening the container's direct link if there is only its SAS attachment

Storage Explorer Version: 1.25.0-dev
Build Number: 20220524.5
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Monterey 12.3 (Apple M1 Pro)
Architecture ia32\x64
How Found: Ad-hoc testing
Regression From: Not a regression
Steps to Reproduce

Expand one ADLS Gen2 storage account -> Blob Containers.
Create a blob container -> SAS attach the blob container.
Right click the blob container -> Click 'Copy Direct Link to Blob Container'.
Open the direct link -> Observe the 'Open Direct Link' dialog.
Check whether there is an 'Attach Container' option.

Expected Experience
There is an 'Attach Container' option.

Actual Experience

There is an 'Navigate to Container' option.
The SAS attached blob container is selected and opened.

@v-xianya can you explain why you expect what you expect?

@MRayermannMSFT
Hi Matthew, if there is no attachment for blob containers. Select to 'Attach Container' in 'Open Direct Link' dialog will create an Azure AD attachment. So, I guess it only navigates to Azure AD attachment. 😐

@v-xianya, ah ok. Ya for now it will recognize an existing attachment of any type. I can see how your thinking makes sense tho.


"Pooled Neuron LDA" under "Diretcion LDA" crashes  when choosing "pool All Experiments"

test exp: /home/skeshav/code/Analysis/data_files/2_Input_Files/Z3 - Multi Experiment Data Files/ALL-fixed-cells-final-Filtered.mdata
LDA parameters: min cell count=12; min trial count=14; comparison conditions=black, uniform, motordrifting; solver=eigen; cell signal type=all cells

This may mean we have to temporarily output data files and recombine them afterwards. I'll look into this.

This error has been resolved with an update now available for Subiculum.

This issue was due to the normalisation step introducing NaN's into the spiking frequency array (due to dividing by a standard deviation of zero - this happens when all spiking frequencies are zero for a given trial). This has been fixed and updated on Subiculum.


Feature Request - Allow domain names and 'localhost' as address in /join  command

Currently the /join command can only take an IPv4 address as an ipaddress argument.
Is it possible to allow 'localhost' and domain names as addresses?
In the ClientManager.cpp file it would be necessary to change the regex which extracts the IP address in the lines:
std::regex ipRegex("([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)");
std::smatch match;
std::regex_search(dataStr, match, ipRegex);
ip_ = match.str();

Thanks you,

Thanks a lot for your report !
I will work on it as fast as i can :)


parallel tracking GA etc

Docs Build status updates of commit 5352640:
:warning: Validation status: warnings

File
Status
Preview URL
Details

Advertising/shopping-content/inventory-resource.md
:warning:Warning

Details

Advertising/shopping-content/manage-product-pricing.md
:warning:Warning

Details

Advertising/bingads-13/bulk-service/account-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/ad-group-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/campaign-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/campaign.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/downloadentity.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/accountproperty.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/maxclicksbiddingscheme.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/productscope.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/shoppingsetting.md
:white_check_mark:Succeeded

Advertising/bingads-13/customer-management-service/getcustomerpilotfeatures.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/audience-ads.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/budget-bid-strategies.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/operation-error-codes.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/product-ads.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/release-notes.md
:white_check_mark:Succeeded

Advertising/bingads-13/reporting-service/productsearchqueryperformancereportfilter.md
:white_check_mark:Succeeded

Advertising/bingads-13/reporting-service/reporting-data-objects.md
:white_check_mark:Succeeded

Advertising/shopping-content/inventory-resource.md

Line 11: [Warning] Markdown content is not allowed before H1.

Advertising/shopping-content/manage-product-pricing.md

Line 11: [Warning] Markdown content is not allowed before H1.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 3241690:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Advertising/bingads-13/bulk-service/account-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/ad-group-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/campaign-promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/campaign.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/downloadentity.md
:white_check_mark:Succeeded

Advertising/bingads-13/bulk-service/promotion-ad-extension.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/accountproperty.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/maxclicksbiddingscheme.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/productscope.md
:white_check_mark:Succeeded

Advertising/bingads-13/campaign-management-service/shoppingsetting.md
:white_check_mark:Succeeded

Advertising/bingads-13/customer-management-service/getcustomerpilotfeatures.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/audience-ads.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/budget-bid-strategies.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/operation-error-codes.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/product-ads.md
:white_check_mark:Succeeded

Advertising/bingads-13/guides/release-notes.md
:white_check_mark:Succeeded

Advertising/bingads-13/reporting-service/productsearchqueryperformancereportfilter.md
:white_check_mark:Succeeded

Advertising/bingads-13/reporting-service/reporting-data-objects.md
:white_check_mark:Succeeded

Advertising/shopping-content/inventory-resource.md
:white_check_mark:Succeeded

Advertising/shopping-content/manage-product-pricing.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


After null, {id,type} is applied to main object instead of nested one.
It's something to do with "rollBackPartialsWhenRequired" not being called if nested object is null.
↪ To Reproduce
// dto
class TagData extends Data
{
    public function __construct(
        public Lazy|int $id,
        public Lazy|TagType $type, // int enum
        public Lazy|TagData|null $parent,
    ) {
    }

    public static function fromModel(Tag $tag): TagData
    {
        return new static(...[
            Lazy::create(fn () => $tag->id),
            Lazy::create(fn () => $tag->type),
            Lazy::create(fn () => $tag->parent ? TagData::from($tag->parent) : null),
        ]);
    }
}

// generate object
$data = TagData::collect($collection, DataCollection::class)
    ->include('id', 'parent.{id,type}');

Result:

✅ Expected behavior
expect null to be null and any existing objects be resolved by given include/exclude rules.
🖥 Versions
Laravel: 10.10
Laravel Data: 4.2.0
PHP: 8.2.9

Hi, could you update your test so that it doesn't use a model to show the issue. Providing an array with some default values looks like the easiest solution here.

I have the same/similar issue, I'll submit a failing test as a PR

@edgars-vasiljevs Can you test with my PR to see if it fixes your issue as well

This should be fixed normally! Let me know if it is not the case


Fix heading annotation in fulltext evaluation and add header levels

<head>Methods<lb/> Preparation<lb/></head> are actually two headings in the original paper.

@Schroedi Great.
Did you check also the segmentation model training output files? If they were perfectly fine we should not include them, but if they had to be corrected, then we should also add them.
See comment here: https://github.com/kermitt2/grobid/issues/1067#issuecomment-1888503015

The segmentation looked fine to me.
Could you share a folder with the PDFs the (fulltext) training data are from? I am currently fetching them one by one.

hi @Schroedi please send me an email and I will send you back the info for accessing the PDF repository used for the training data.

@Schroedi I'm going through the PRs and I was wondering if this PR is completed. I see only one file changed for this PR however I see there are other files for which the level attribute can be added.
I also wantes to thank you anyway for your contributions and sorry for being slow in integrating into Grobid.


Sprint 4 staging

Huma was unavailable to review this merge.
sadie completed testing and demo of app.


Object retrieve by "find" method ?

Hi,
from what I saw, all the "find" methods retrieve a "MvcModelObject" (because of how process_objects method works).
Why does'nt it retrieve an object of the very same nature that the one used to query ?
As a consequence, we would be able to do something like :
$model = mvc_model($class);
$model->find_by_email($email);
$model->save($updated_data);

Thanks in advance for your explanation :)

Sorry, I'm not quite sure what you are asking.
This should work to update one value for one object found by email address:
$model = mvc_model($class); $result = $model->find_one_by_email($email); $result->some_value = 'some_new_value'; $model->save($result);

Thanks for your reply, I did not understand how it was supposed to work.
Thanks again :)


this plugin can be used to run on the Windows server ?

Hello, this plugin can be used to run on the Windows server, such as 2003 or 2012 ?
Thanks.

Technically it should, yes, as PHP and PHP's DateTime code works fine on Windows.
This library is meant to only parse a cron expression and give you a Yes/No answer as to whether the current time matches the expression. This library is not a full cron system. You still need your application to actually do any work.
Hope that helps!


[extractor/common] add helper method to extract html5 media entries

as @dstftw suggested https://github.com/rg3/youtube-dl/pull/6811#issuecomment-139282386, a separate method to extract html5 media entries.

Tests for parse_codecs should be added (e.g. from aforementioned RFC).
Tests for html5 video/audio should be added.
This should be adopted into the generic extractor and replace the current implementation.

sorry for late response.

Tests for parse_codecs should be added (e.g. from aforementioned RFC).

may be putting the RFC url is misleading, the code comply only with the common use of this RFC(vcodec, acodec or acodec) while the RFC doesn't specify the order or the number of codecs.
examples of the cases that can be handled by this code https://www.w3.org/TR/html/embedded-content-0.html#the-source-element.

the RFC doesn't specify the order or the number of codecs.

Tests can be examples in the wild, and this line should be mentioned in parse_codecs.

Tests can be examples in the wild, and this line should be mentioned in parse_codecs.

i will add the line in a comment and maybe a TODO to improve it to detect when the codecs are not in order(somtimes i see the codecs not detected correctly for m3u8 formats so it can be useful to improve it and use it whenever we have to parse the codecs string).

(?s) has no effects in regular expressions without
media_attributes is somewhat misleading. It's the whole tag but not just attributes.
And seems media_type is not used at all?

done(used media_type for detecting audio only formats).

Could you add tests for parse_codecs?

Could you add tests for parse_codecs?
Tests can be examples in the wild, and this line should be mentioned in parse_codecs.

done.

Such cases should be handled, too. I guess a possible approach is creating a table with common video and audio codecs. If given codecs are not on the table, fallback to video,audio order.

done.

Thanks @remitamine the next step is to replace the current implementation in generic.py. I'll fix some extractors that uses HTML5 first.


v0.2.2

Changelog
v0.2.2

Added limit and offset params in KeycloakApiClient.search_users() to control paging

FYI @wsz to deploy to pypi after merge it is required to manually accept circle step for publication of the package.


Unsuccessful deployment on Windows server 2012R2

Hello dears,
First of all, we at our company just found kudu project before 2 months and now found the time to investigate more about it.
So, we implemented it on our test web server which is "Windows server 2012 R2" - virtual machine on Microsoft Azure.
In this moment we established connection with kudu, we are enable to create the projects through kudu web interface and accessing on kudu through our test subdomain dedicated for kudu.
Kudu is really great idea and if we can manage to make everything works on our servers no doubts we will use it a lot.
Basically, our issue is related to the "npm install" part of deployment, git push is OK and nothing to say about this except it works like a charm, even more kudu converts successfully commits to the source code on the same server, but it seems it's problem in permissions when you try to do "npm install".
Here is my npm-debg log: https://drive.google.com/file/d/0BxuRNkB4HQMmUlJXNk56VjNMNDg/view?usp=sharing
Bellow is output in my console.
Please, any help would be so appreciated by us because of we already lost a lot of time on this, but it seems it's all about permissions and few clicks.
Thank you in advance.

C:\work\mss\freetouring-backend>git push test
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 363 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id '398900e808'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling node.js deployment.
remote: KuduSync.NET from: 'F:\inetpub\wwwroot\apps\freetours-backend\site\repository' to: 'F:\inetpub\wwwroot\apps\freetours-backend\site\wwwroot'
remote: Copying file: 'models\index.js'
remote: Using start-up script server.js from package.json.
remote: Generated web.config.
remote: Node.js versions available on the platform are: 5.0.0, 5.1.0, 5.10.0, 6.0.0.
remote: Selected node.js version 6.0.0. Use package.json file to choose a different version.
remote: Selected npm version 3.9.5
remote: Updating iisnode.yml at F:\inetpub\wwwroot\apps\freetours-backend\site\wwwroot\iisnode.yml
remote: npm ERR! Windows_NT 6.3.9600
remote: npm ERR! argv "C:\Program Files (x86)\nodejs\6.0.0\node.exe" "C:\Program Files (x86)\npm\3.9.5\bin\npm-cli.js" "install" "--production"
remote: npm ERR! node v6.0.0
remote: npm ERR! npm  v3.9.5
remote: npm ERR! path C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\cors
remote: npm ERR! code EPERM
remote: npm ERR! errno -4048
remote: npm ERR! syscall mkdir
remote:
remote: npm ERR! Error: EPERM: operation not permitted, mkdir 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\cors'
remote: npm ERR!     at Error (native)
remote: npm ERR!  { Error: EPERM: operation not permitted, mkdir 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\cors'
remote: npm ERR!     at Error (native)
remote: npm ERR!   errno: -4048,
remote: npm ERR!   code: 'EPERM',
remote: npm ERR!   syscall: 'mkdir',
remote: npm ERR!   path: 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\cors',
remote: npm ERR!   parent: 'freetouring-backend' }
remote: npm ERR!
remote: npm ERR! Please try running this command again as root/Administrator.
remote:
remote: npm ERR! Please include the following file with any support request:
remote: npm ERR!     F:\inetpub\wwwroot\apps\freetours-backend\site\wwwroot\npm-debug.log
remote: Failed exitCode=-4048, command="C:\Program Files (x86)\nodejs\6.0.0\node.exe" "C:\Program Files (x86)\npm\3.9.5\bin\npm-cli.js" install --production
remote: An error has occurred during web site deployment.
remote:
remote: Error - Changes committed to remote repository but deployment to website failed.
To http://freetours-backend.scm.kudu.mss.ba/freetours-backend.git
5474aa8..398900e  master -> master

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Crash on launch on the mac

Tested versions

Reproducible in master https://github.com/godotengine/godot/commit/99ff024f78f65ba0bc54fb409cfeca43ba2008fe
Not in 4.3 dev4

System information
Mac Mini, Apple Silicon
Issue description
% git bisect bad
023dcd44c1e628bb654b5472418d6a346b510a71 is the first bad commit
commit 023dcd44c1e628bb654b5472418d6a346b510a71
Author: Rémi Verschelde<EMAIL_ADDRESS>Date:   Wed Mar 6 18:50:35 2024 +0100

    Refactor OS exit code to be `EXIT_SUCCESS` by default

    - `Main::setup` early exits (failure or `--help`/`--version`) now
      consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
      instead of 255 on some and a Godot Error code on others.
    - `Main::start` now returns the exit code, simplifying the handling of early
      failures.
    - `Main::iteration` needs to explicit set the exit code in OS if it errors
      out.
    - Web and iOS now properly return `OS::get_exit_code()` instead of 0.

 core/os/os.h                         |  3 +-
 main/main.cpp                        | 96 ++++++++++++++++--------------------
 main/main.h                          |  2 +-
 platform/ios/godot_ios.mm            | 11 +++--
 platform/linuxbsd/godot_linuxbsd.cpp | 13 ++---
 platform/macos/godot_main_macos.mm   | 19 ++++---
 platform/web/web_main.cpp            | 16 +++---
 platform/windows/godot_windows.cpp   |  8 +--
 8 files changed, 82 insertions(+), 86 deletions(-)

Godot Engine is crashing on launch on the mac. There is no crash log.
Steps to reproduce
Start godot and watch it crash.
I used scons scu_build=yes compiledb=yes
Minimal reproduction project (MRP)
N/A

Main::start() -> return EXIT_SUCCESS; and not more return true;
#define	EXIT_SUCCESS	0
Fix:
	if (ret == EXIT_SUCCESS) {
		os.run();
	} else {
		os.set_exit_code(EXIT_FAILURE);
	}


VMAlert.spec.notifier.selector.namespaceSelector seems have no effect

VMAlert is able to use VMAlertmanagers as notifiers instead of specifing notification URLs. The VMAlertmanagers are specified by VMAlert.spec.notifier.selector or VMAlert.spec.notifiers[].selector, which have type DiscoverySelector. However, its namespaceSelector seems have no effect and VMAlertmanagers in all namespaces are almost always selected. (labelSelector seems have a effect as expected)
--
Probably the following line has a problem: https://github.com/VictoriaMetrics/operator/blob/v0.29.2/controllers/factory/vmalert.go#L89
At this line, if a VMAlertmanager's deletionTimestamp is not set, i.e. it is not being deleted, it is added to notifier list without being checked its namespace. The line should be:
if !item.DeletionTimestamp.IsZero() || (n.Selector.Namespace != nil && !n.Selector.Namespace.IsMatch(&item)) {

Was added at the v0.30.0 release

The modification made in commit https://github.com/VictoriaMetrics/operator/commit/ac8e33db494dbb0cb897546db33979ae88689473 is just an addition of parentheses and the process has not changed. I confiemd that the behavior is not changed in v0.30.0.

Thanks must be fixed at v0.30.1 release

I confirmed that the behavior was fixed in v0.30.1. thank you.


[Feature Request]: Allow access to Wikipedia in languages other than English.

Feature Description
Wikipedia is available in multiple languages, see https://en.wikipedia.org/wiki/List_of_Wikipedias. Some articles are available in languages apart from English. The current Wikipedia reader does not look for articles outside https://en.wikipedia.org.
Reason
Some articles on Wikipedia are not accessible in English.
Value of Feature
Multilingual support.

My pull request seems to be merged and yet the line 30 does not reflect the changes. What am I missing? Thanks.


Standardize control flow

Work to address #177.
Not ready for review.

Jenkins: test this please

Including commit from @pirapira https://github.com/pirapira/evm-semantics/commit/e350e757173ab5c34058a96c8e54533dfb5982ca

This is proving to be a large branch, so going to merge the part relevant to VMTests as #183

Waiting for #187