Feature request - Switch case to "Title Case"

Is your feature request related to a problem? Please describe.
When writing documentation, using title case for section headers is the default for my projects. While the string manipulation plugins provides the capitalize option, this is different than title case. For example:

Title Case: The Quick Brown Fox Jumps over the Lazy Dog
Capitalize: The Quick Brown Fox Jumps Over The Lazy Dog

Because the capitalize option simply capitalizes every word, I've been using online tools for this purpose but an integration in the plugin would improve my workflow a lot! 🙂
Describe the solution you'd like
In the context menu, after selecting String Manipulation > Switch Case ... a new option To Title Case should appear and perform the transformation of the selection to title case
Describe alternatives you've considered
Online tools like https://titlecaseconverter.com/
Additional context
As there are multiple conflicting standards (e.g. AMA, APA, NYT, Wikipedia, ...), it might make sense to define one standard to implement.
If this is a welcome change, I'd be happy to implement this myself but wanted to ask first whether the addition makes sense for the plugin.
Cheers

Sending data to external services might be a security/legal problem for some corporations. It would be better to do it in a new plugin.


MODELIX-784 Clearly state that no module matched the specified conditions when exporting from MPS in the error message

To be verified by reviewers

[ ] Relevant public API members have been documented
[ ] Documentation related to this PR is complete

[ ] Boundary conditions are documented
[ ] Exceptions are documented
[ ] Nullability is documented if used

[ ] Touched existing code has been extended with documentation if missing
[ ] Code is readable
[ ] New features and fixed bugs are covered by tests

:tada: This PR is included in version 8.16.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Rp stack guards

fix up an incorrectly placed bit in the stack guard mpu setup, and allow installing stack guards for core0 as well. that'll allow using dedicated sram for the core0 stack without losing overflow protection entirely.

ah okay I had missed the new pub fn install_stack_guard intended to be called from core0.
I'm not sure if it's UB, it requires owning a &mut Stack for core0 while core0 is already running from it. It could be used to overwrite arbitrary memory of the stack. (vs for core1 you hand the &mut Stack to embassy-rp and then no longer own it when core1 is running).
Maybe it makes more sense to do it with magic symbols set by the linker script? __stack_start, __stack_end for core0, __core1_stack_start, __core1_stack_end for core1


Create a pluggable error reporter with a single default implementation

Maybe the default implementation can emit TAP per #39.

Do you have thoughts about how to configure plugins like this? I'm assuming we don't want to put it in the test plan. There's a wide range of options: a separate config file, environment variables, command line arguments, full plugin frameworks, etcetera.

Actually what you did is good enough for now with --tap. We can reopen in the future if needed.


not working

Everytime i start the start.bat thing it just closes without asking me to enter the osu Songs folder. What do i have to do?

Hi,
to get the error message could you please open PowerShell from the project folder, like so:

And then enter the text .\start.bat and press enter (it might spam the error message - press Ctrl+C to stop it)

I actually got errors when I tried to run it myself just now.
There are a couple of things to try:

I've updating the full .exe file which you can download here. Replace the old one and remove the -full from the name

or

Download the smaller .exe file here to replace the old one
Download and install the .NET Core runtime 3.1 from this direct link or the full downloads page

There would also be

Replace the .exe with all of the files in this .zip
Download and install the .NET Core runtime 3.1 here

It's working now.
Thank you very much for the help!


Can't move Thera system

Can't move Thera system on map. Cant even create manual connection to Thera.

I can create a manual connection fine, but since there's no security status label, if you click carefully around the edge of the node you can find a place that you can click and hold move it.

Confirm. It´s bit tricky to drag it... But it works.


Fix UndefinedFunctionError in show_vars task

Why:

Running mix show_vars '' was returning:

** (UndefinedFunctionError) function EnvVar.Config.config/0 is undefined
(module EnvVar.Config is not available)
    EnvVar.Config.config()
    lib/providers/env_var_provider.ex:140: EnvVar.Provider.show_vars/1
    (mix 1.10.3) lib/mix/task.ex:330: Mix.Task.run_task/3
    (mix 1.10.3) lib/mix/cli.ex:82: Mix.CLI.run_task/2

whoops, but this line was removed in this previous commit 🤔 . Maybe by mistake? Or did we have another plan for making sure the target module is compiled? https://github.com/Shimmur/env_var_provider/commit/eb7b92a56fcacddc9bf8d2c815167cc25f0fc97e

I can't see why I would remove the call to mix compile, so let's re-add it, but please can you bump the patch version in mix.exs too, update the CHANGELOG, and the usual release shenanigans? Thanks!

Messed up leaving a review, but this is blocking until we can bump the release as described in my comment.

bumped version ✅
added and updated changelog ✅  (I assume this is cool but let  me know if you think we shouldn't have one for some reason and I can remove it)


Fail to delete snapshots for ADLS Gen2 blobs

Storage Explorer Version: 1.30.0
Build Number: 20230613.2
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 20.04/MacOS Ventura 13.4 (Apple M1 Pro)
Architecture: x64
How Found: From running test cases
Regression From: Previous release (1.30.0)
Steps to Reproduce

Expand one ADLS Gen2 storage account -> Blob Containers.
Create a blob container -> Upload one blob.
Create a snapshot for the blob -> Go to snapshots view.
Select the snapshot -> Try to delete it.
Check whether succeeds to delete the snapshot.

Expected Experience
Succeed to delete the snapshot.
Actual Experience
Fail to delete the snapshot.

AzCopy log:
2068f3e2-6321-d24c-7acd-8226f1881425.log
Additional Context
This issue has nothing to do with soft delete policy.

@JasonYeMSFT The 'Delete' action is disabled when sleeting more than one ADLS Gen2 blob snapshots. Could you help to take a look?

The new behavior is expected. We have removed the legacy JS code and will only use AzCopy to delete snapshots. AzCopy only supports deleting one snapshot at a time.


Cache tag on game load

Determines tag once per game load and stores it in a shared variable, to avoid calling get_tag_from_hash_db and reading the hash db file repeatedly.

Works great, thank you. Thank you for explaining this too.


feat: enable metadata hash verification

https://github.com/paritytech/polkadot-sdk/pull/4274
https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/guides/enable_metadata_hash/index.html

@Roznovjak how are you building the runtime? Why do you think that it did not set the env variable?

@Roznovjak how are you building the runtime? Why do you think that it did not set the env variable?

I'm building it with cargo build --release -p hydradx-runtime --features=metadata-hash.
After the build, echo $RUNTIME_METADATA_HASH is empty.

After the build, echo $RUNTIME_METADATA_HASH is empty.

The env variable is not only set for the wasm-builder in the build process. It will not be set afterwards.

After the build, echo $RUNTIME_METADATA_HASH is empty.

The env variable is not only set for the wasm-builder in the build process. It will not be set afterwards.

Ah. Thanks.


Marshalling invoke acts strange

Creating an rpc.BroadcastedInvokeV1Transaction, with nonce and maxfee fields, then marshalling seems to change the values of nonce and maxfee?
eg:
txMarsh, _ := json.MarshalIndent(invokeTx, "", "")
fmt.Println(string(txMarsh))

This is the culprit: https://github.com/NethermindEth/starknet.go/blob/main/rpc/types_transaction.go#L309
Other transactions should be updated as well


expose branch view header files in framework

make Branch view header files public in the framework since our umbrella header for building modules imports it

@aaustin @derrickstaten

👍


Lexicon search bug

Sometimes when you focus the search field w/the hotkey, search results don't show up. Hard-refreshing often fixes this, need to figure out exact steps to reproduce the bug / document actual errors.

I can't reproduce this anymore, I think it may have been an issue on the Docsearch side? Maybe....

I can't reproduce this anymore, I think it may have been an issue on the Docsearch side? Maybe....


File Hash Check

Description of the new feature / enhancement
The tool I used to use was "Hash Tab" which I found great.  It is no longer developed I think.
I see you have the Resize Image that was the old Image Re-Sizer, why not have the same context menu check for the Hash with a selection drop-down with the algorithm?  A window opens with the hash output and the option to verify using a different algo if you selected the wrong one to start with.
Scenario when this would be used?
Download or file at rest verification
Supporting information
https://www.tenforums.com/tutorials/78681-add-file-hash-context-menu-windows-8-10-a.html
https://github.com/namazso/OpenHashTab
https://implbits.com/hashtab

/dup https://github.com/microsoft/PowerToys/issues/57


User Story - Delete Listing

Task ID: 86cwt0d27
Description
As a Supplier, I want to delete my listings so that I can keep my product information up-to-date.

Hello, we tried to solve the issue.
This is what we did:
Added DELETE method in the API route and updated the frontend to handle product deletion. This allows suppliers to delete their listings and keep their product information up-to-date.
You can review changes in this commit: https://github.com/mnmnk43434/Dreamsoft-CPU-RawMats-50/commit/c6178f439c457fee20c4cbbc9b6267f0ca269714.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.


I would like IvorySQL to have oracle hierarchical queries support

Hierarchical Query
Hierarchical queries are very useful to operate on hierarchical data. The PostgreSQL does not support it and It would be a good feature to add into the IvorySQL compatible list.
The usual clauses for a hierarchical query support are:
{
CONNECT BY [ NOCYCLE ] condition [AND condition]... [ START WITH condition ]
| START WITH condition CONNECT BY [ NOCYCLE ] condition [AND condition]...
}

CONNECT BY
The query syntax starts with CONNECT BY keywords which define the hierarchical interdependency between parent and child rows. The results must be further qualified by specifying the PRIOR keyword in the condition part for CONNECT BY clause.
The PRIOR keyword is a unary operator which links the previous row with the current one. The keyword can be used on the left or the right hand side of the equality condition. In case a loop is detected in the results, an error is returned to the user and the query aborted.
START WITH
This clause specified from which row to start the hierarchy.
NOCYCLE
This clause instructs to return data even if a cycle exists.

+1.  In my opinion this is of the same priority as the (+) syntax for outer
joins (in case on or the other is more difficult to do).
--Luyss
On Wed, Dec 22, 2021 at 11:31 PM Asif Rehman @.***>
wrote:

Hierarchical Query
Hierarchical queries are very useful to operate on hierarchical data. The
PostgreSQL does not support it and It would be a good feature to add into
the IvorySQL compatible list.
The usual clauses for a hierarchical query support are:
{
CONNECT BY [ NOCYCLE ] condition [AND condition]... [ START WITH condition ]
| START WITH condition CONNECT BY [ NOCYCLE ] condition [AND condition]...
}
CONNECT BY
The query syntax starts with CONNECT BY keywords which define the
hierarchical interdependency between parent and child rows. The results
must be further qualified by specifying the PRIOR keyword in the condition
part for CONNECT BY clause.
The PRIOR keyword is a unary operator which links the previous row with
the current one. The keyword can be used on the left or the right hand side
of the equality condition. In case a loop is detected in the results, an
error is returned to the user and the query aborted.
START WITH
This clause specified from which row to start the hierarchy.
NOCYCLE
This clause instructs to return data even if a cycle exists.
—
Reply to this email directly, view it on GitHub
https://github.com/IvorySQL/IvorySQL/issues/28, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMWOHSRPXXN4Q3ZFBBCJ6DUSKQZFANCNFSM5KT6DT7Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

great stuff.  this is important progress.
On Mon, Feb 28, 2022 at 2:33 AM Asif Rehman @.***>
wrote:

Closed #28 https://github.com/IvorySQL/IvorySQL/issues/28 via #61
https://github.com/IvorySQL/IvorySQL/pull/61.
—
Reply to this email directly, view it on GitHub
https://github.com/IvorySQL/IvorySQL/issues/28#event-6152611402, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMWOHRH6OBQ45A7X3NCDQDU5MQNVANCNFSM5KT6DT7Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you commented.Message ID:
@.***>


[CDSToolkit][ConsentMgr] - UUID value display as the username of logged in user

Description:
UUID value display as the username of logged in user.

Suggested Labels:
Suggested Assignees:
Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:

Login to consent manager portal.
Verify the username.

Related Issues:

Verified the issue as Fixed after configuring the Subject Claim URI "http://wso2.org/claims/username".


CI: test with LEGION_GC

We might have caught https://github.com/StanfordLegion/legion/issues/711 earlier if we'd actually had this test.
Need to build with -DLEGION_GC, run with -level legion_gc=2 -logfile gc_%.log, analyze with legion_gc.py -cl gc_0.log. Should work pretty similarly to our Legion Spy tests.

I confirmed that the fix for #711 has eradicated future leaks in all of our test cases. However, many tests are still leaking layout constraints and index spaces (#606).


Where can I find the changelog?

Describe the problem
Hello, I apologize for opening an issue, but I am having trouble finding the changelog for this project. Could you please help me?
Additional context
No response

I'm sorry, for some reason GitHub didn't display the "Releases" page, refreshing fixed the issue. 🤷♂


multiple elements in the same page malfunctioning

when you put 2 counto elements on the same html then both counts up to the same value. i guess because of a static variable

You should use multiple counto directives like this (each countoChange event value should be set to different variable):

{{a}}

{{b}}

Thanks. working now :)


option to add on type delay

added an option to add on-type-delay

After delay autocomplete queries server multiple times. As many as you entered characters


Fix: Heuristic wrapper fix

The flow of the optimization is:
OptimizeGroup(root) --> exploreGroup(children)(can only apply logical->logical) --> after exploration, there are physical exprs in the root --> optimizeInput --> optimizeGroup(children)(can apply logical to physical)
While marking the rules as deadend, we cannot mark the impl rules as fired as we might need them to start the optimizeGroup task of the children node after merging of groups even if we know the expr can never be the winner.

After some debugging, I found merge group is ok as long as the two corresponding groups are still having optimizeGroup task after the merge. However, optimizeGroup for children nodes are called by optimizeInput, so the ancestors of the children node cannot be pruned. There might be some problems for merge group in the future if we introduce pruning. @skyzh
If the above example is too abstract, you can try Select a from (select a from (select a from t)) with MergeProjection rules registered as heuristics to see the flow of tasks.

LGTM - I know you're waiting for Chi though

It's ok. Let's merge it first.


[Feature request] option to use random characters instead of animal names

not a major issue, but for just sharing links (over copy/paste) I'd rather it be as short as possible, as the animal names can get pretty long for their relative low density of information

I can relate to this as well.
So +1

hi @szabodanika I'd like to claim this issue. I'd like to...

Use hashids since we need to serialize primary key to animal names and vice versa
Add a new option --hashids for user this feature and let animal names be the default

Seems like a good option to have and @henry40408 I am happy with you creating a PR for this, including using that library if it makes the URLs significantly shorter. The name for the new arg could be --hash-ids just to match the pattern we have with the rest.
I think the following would be the simplest way to implement this, but feel free to be more creative:

create a second coverter hash_ids with hashids library with 2 functions to_u64 and to_hash in the same style as animalnumbers.rs
create a third converter (e.g. id_converter) that also has 2 functions and calls either animalnumbers or the second converter based on the presence of the --hash-ids arg
call this third converter everywhere where animalnumbers::to_u64 or animalnumbers::to_animal_names is called currently
profit

I don't see us adding more numbering schemes in the future but if we want emoji-based ID's or whatever, it should be fairly simple to add it following this pattern

@szabodanika I have submitted a pull request. Please help review thanks.


Now i need a script that makes the icons bop like in cassette girl lmao pls

What is your question?
yea

ñ


LabelFewShot and Dspy.Suggest

Can I use LabeledFewShot with dspy suggestion?  I want to compile use that program and do assertions on newly generated outputs. Am I thinking about this the right way? Since I have labeled example already I just need ensure the new outputs from the model are generated per a rule set.
Here is what I'm looking to do:
kbb_page_content = '''
Several things can caus ..
'''
carparts = '''
Codes that illuminate the MIL (Check Engine)
'''
rp_page_content = '''
OBD-II Code P0128 is
''''
KEYWORD ="p0128 code"
fewshot_examples = [
    dspy.Example(keyword=KEYWORD, page_content=kbb_page_content, title="p0128 Code - Coolant Thermostat (Coolant Temperature Below Thermostat"),
    dspy.Example(keyword=KEYWORD, page_content=carparts,title='P0128 Code: Coolant Temperature Below Thermostat Regulating Temperature')
]

class GenerateTitle(dspy.Signature):
    """Generate an SEO-friendly title based on a keyword and page content."""
    keyword = dspy.InputField(desc="The main keyword to include in the title")
    page_content = dspy.InputField(desc="The content of the page")
    title = dspy.OutputField(desc="The generated SEO-friendly title")

# Define the DSPy module
class SEOTitleGenerator(dspy.Module):
    def __init__(self):
        super().__init__()
        self.generate_title = dspy.ChainOfThought(GenerateTitle)

    def forward(self, keyword, page_content):
        title = self.generate_title(keyword=keyword, page_content=page_content).title

        # # Assertions
        dspy.Suggest(keyword_density(title, keyword) >= 2, "Keyword density should be at least 2%")
        dspy.Suggest(title_length(title) <= 60, "Title length should be less than or equal to 60 characters")
        dspy.Suggest(title_readability(title) >= 60, "Title readability should be at least 60")
        dspy.Suggest(title_emotion(title)[0] >= 0, "Title should have a positive sentiment")
        dspy.Suggest(title_relevance(title, page_content) >= 0.5, "Title relevance should be at least 0.5")

        return dspy.Prediction(title=title)

seo_title_suggest = SEOTitleGenerator().activate_assertions()

trained = LabeledFewShot().compile(student=seo_title_suggest, trainset=fewshot_examples)
trained(keyword=KEYWORD,page_content=rp_page_content)

Hi @chiragshah285, to me it seems that it should work (I'm not a maintainer though). Is it not working? Don't know the size of your dataset or what LM you are using, but if you really want to get the best performance, maybe it could make sense to increase the number of samples that LabeledFewShot uses. The default value is 16.

thanks @tom-doerr  yeah I was just take 2 examples as a quick test. The problem is more LabelFewShot doesn't support dspy.Suggestion after compilation, from what I see in the code

Hi @chiragshah285 , your code looks correct in terms of using Suggestion within the program. What error do you get while running the code?
DSPy.Suggestions/Assertions are currently compatible with dspy.BootstrapFewShot and dspy.BootstrapFewShotWithRandomSearch, so they should work with dspy.LabeledFewShot as well (which is a candidate within RandomSearch).

ignore this, this works now! thanks for taking a look


Make blackbox testing easier

I've been enjoying using draft-js; the approach to representing complex text editing states is great, and the API is pretty well documented.
Where I'm getting stuck is performing integration-level blackbox testing of components that I build with Draft.
Example: I've got a <RichTextEditor/> component, largely based on the rich example. The editor lives in an ecosystem of HTML in, HTML out, so I want to assert that the conversion is happening as expected.
I'd like to simulate a keypress with the end result of that character getting pushed onto the editorState, and the onChange callback being called. I can't figure out how to accomplish this.
I've tried grabbing the DOM node corresponding to the [role="textbox"] and simulating (with React TestUtils via Enzyme) a keyDown event with a payload of {which: [someKeyCode]}. I see this being handled in editOnKeyDown, but the onChange handler is never called.
I've tried generating a new editorState with something like this, but there's no obvious way to actually call update() on the <Editor/> instance.
    /**
     * Simulate typing a character into editor by generating a new editorState.
     *
     * @param {string} value Current editor state value serialized to string
     * @param {string} char Character to type
     * @returns {EditorState} A new editorState
     */
    const simulateKeyPress = (currentEditorValue, charToAdd) => {
        const editorState = currentEditorValue.trim().length ?

            // Create internal editor state representation from serialized value
            EditorState.createWithContent(
                ContentState.createFromBlockArray(
                    processHTML(currentEditorValue)
                )
            ) :

            // Create empty editor state
            EditorState.createEmpty();

        // Create a new editorState by pushing the character onto the state.
        return EditorState.push(
            editorState,
            ContentState.createFromText(charToAdd),
            'insert-characters'
        );
    }

Is there an existing approach that I'm missing? If not, I'd be happy to discuss how blackbox testing could be made easier.
Thanks!

keydown and keypress events are not used for character insertion. Rather, the React polyfill for beforeInput is used for this: https://github.com/facebook/draft-js/blob/master/src/component/handlers/edit/editOnBeforeInput.js.
Within the polyfill, the keypress event is used for browsers that do not have a native textInput event (Firefox, IE), since the keypress event is intended to indicate character insertion. keydown, however, is never used for input.
If you can generate an textInput event on the target node instead, you may find success.
I'd be cautious about using the role attribute here. There is a test ID prop that was added internally, and you may be able to use it to target your event: https://github.com/facebook/draft-js/blob/master/src/component/base/DraftEditor.react.js#L252. I haven't tried this myself, but it may solve things for you.

@coopy, did this help resolve the issue for you?

Thanks @hellendag. I spent a little bit of time trying to generate textInput events, without success. I decided to stop trying and spend the cycles on Selenium acceptance tests instead.
If I go back to this approach, I will definitely not use the role attribute but instead use the webDriverTestID prop. Thanks for the 🐮 tip!

This JavaScript is working with ChromeDriver in Selenium to add text at the current cursor position:
function addTextToDraftJs(className, text) {
  var components = document.getElementsByClassName(className);
  if(components && components.length) {
    var textarea = components[0].getElementsByClassName('public-DraftEditor-content')[0];
    var textEvent = document.createEvent('TextEvent');
    textEvent.initTextEvent ('textInput', true, true, null, text);
    textarea.dispatchEvent(textEvent);
  }
}

addTextToDraftJs('welcome-text-rte', 'Add this text at cursor position');

@skolmer
Yes, I can confirm that this works in chrome browser, but does anyone know how to do this on IE11? I just can't make it work, event seems to be dispatched, but nothing happens. Might be related with isTrusted property, but not sure.

@acikojevic  - "Within the polyfill, the keypress event is used for browsers that do not have a native textInput event (Firefox, IE)" from hellendag on Apr 22 - what if you use keypress instead of the textInput event?

Actually, Internet Explorer has native textInput event from version 9+. But still not working, tried with keypress.

I'm tying to get this working in a test using enzyme, I've mounted the component if that matters.
React test utils doesn't have a mapping for the textInput event, so the typical enzyme approach of element.simulate('textInput', {data: 'abc'}) isn't available. Instead, I'm trying to trigger the event manually, which doesn't work either:
// setting both data & target.value, because I'm not sure which is used
const event = new Event('textInput', { data: 'abc', target: { value: 'abc' } });

// finding the draft-js editor & dispatching the event
wrapper.find('div[role="textbox"]').get(0).dispatchEvent(event);

Is there another way to go about this? Or a more manual way I can update EditorState as part of a test?

Is anyone still looking into getting this working with Enzyme?
I've had success with a few other custom React components by simulating a focus event, followed by keyPress or click.
So to get Draft working with Enzyme, I just need to know 2 things:

which element to simulate focus
which element to either simulate keyPress or change

@mikeislearning did you get anything to work?

I agree that this is too hard today - it would be great if there was a library for testing contenteditable implementations.
On 0.8.x we used
var draftEditorContent = field.find('.public-DraftEditor-content')
 draftEditorContent.simulate('beforeInput', { data: value })

But this stopped working when we upgraded to 0.9.1 (and upgraded React to latest) so now we do this instead:
    const editor = field.find(Editor)
    let editorState = editor.props().editorState

    var contentState = Modifier.insertText(editorState.getCurrentContent(),
      editorState.getSelection(),
      value, editorState.getCurrentInlineStyle(), null)
    var newEditorState = EditorState.push(editorState, contentState, 'insert-characters')

    editorState = EditorState.forceSelection(newEditorState, contentState.getSelectionAfter())
    editor.props().onChange(editorState)

It's not exactly black box but it simulates what we need to simulate :)

@mikeislearning
Hello, your solution seems interesting. Would you tell us more, hopefully with working codes?

Sorry for the late reply.
@ryanwmarsh - sadly haven't got anything to work yet with draft-js
@kenju - Sure thing, here are some examples from a test we're running:
// loadRoute is a function we're using to simulate the page going to this route, but is not necessary for this example
const components = await loadRoute('/projects/new');
const page = mount(components);
const form = page.find('form');

// Working with React Select (https://github.com/JedWatson/react-select)
const multiSelect = form.find('Select').find('input');
multiSelect.simulate('focus');
multiSelect.simulate('change', { target: { 'web developer' } });
multiSelect.simulate('keyDown', {keyCode: 13});

// Working with React DatePicker (https://github.com/Hacker0x01/react-datepicker)
const start_date = form.find('DatePicker').first();
start_date.find('input').simulate('focus');
start_date.find('Day').at(14).simulate('click');

const end_date = form.find('DatePicker').last();
end_date.find('input').simulate('focus');
end_date.find('Day').at(15).simulate('click');

@mikeislearning Thank you very much :)
@tarjei 's answer does work, only when what you want is text input. It sure things, but for the case we are encountering is to test command + S key input, that is to test keyCode with modifier key event.
For this case, manipulating EditorState manually fails to simulate the key event.
Here is a pseudo-code (be sure, it does not work):
import { shallow } from 'enzyme';

const wrapperComponent = shallow(EditorCore, props);
wrapperComponent.simulate('keyDown', {
  keyCode: KeyCode.KEY_S,
  altKey: true,
});

I am working on testing this keyboard input with modifier key to draft-js components, and will share if I can find the solution. But looking for the better/alternatives/workaround if you have ones :)

@kenju: Actually my example can be modified to do anything, but /it does not test draft-js/. I.e. the test is responsible for the output.
I agree that it is an inferior method, but it has the benefit of simpleness. I would love to see a draftjs-testing library :)

I have found a better way for testing draft.js with enzyme in much more declarative way.
tl;dr
In order to test  keyboard event with draft.js,

use mount API for Full DOM Rendering
find a DOM element with '.public-DraftEditor-content' classname
dispatch the 'keyDown' event with simulate API

Example
Here is a reproducible repository: https://github.com/kenju/enzyme-draftjs-sample/blob/master/src/Editor.jsx
import { mount } from 'enzyme';
...
describe('Editor', function () {
  it('dispatch COMMAND_SAVE when command+s key pressesd', function () {
    const dispatchSpy = sinon.spy();
    dispatchSpy.withArgs(COMMAND_SAVE);

    // 1. use `mount` API for Full DOM Rendering
    const wrapper = mount(<Editor dispatch={dispatchSpy} />);

    // 2. find a DOM element with '.public-DraftEditor-content' classname
    const ed = wrapper.find('.public-DraftEditor-content');

    // 3. dispatch the 'keyDown' event with `simulate` API
    ed.simulate('keyDown', {
      keyCode: KeyCode.KEY_S,
      metaKey: false, // is IS_OSX=true, this should be true
      ctrlKey: true,
      altKey: false,
    });

    assert.equal(dispatchSpy.calledOnce, true);
    assert.equal(dispatchSpy.withArgs(COMMAND_SAVE).calledOnce, true);
  });
});

Details
Why find a DOM element with '.public-DraftEditor-content' classname ?
If you dive into the draft.js source code, you will find that the each events are attached to the inner div whose className is '.public-DraftEditor-content'.
See:
https://github.com/facebook/draft-js/blob/master/src/component/base/DraftEditor.react.js#L258-L276

@kenju I've been picking apart your example, but can't figure out how it translates to my own code. I don't need a onKeyCommand handler, so I'm just ensuring that onChange gets called and updates state. Have you found a reliable way for doing that? Thanks for posting a link to your repo too.

@nring

so I'm just ensuring that onChange gets called and updates state.

Um... what kind of changes do you want to watch, and what is supposed to trigger the change?
Unfortunately I have no idea about your problems until looking at the real code though.

@kenju What I'd like to have happen is that whenever a user makes a change in an Editor it triggers a callback to its parent component. For now that's just a keypress, but in the future that could could be richer content like inserting an image. That way I can change the parent's UI based on the Editor's content.
I'm designing it so that I'm wrapping the draft-js component in a more generic component that will have some common functions throughout my app. This wrapper will then be used in different scenarios (a comment, a post, a search input, etc).
This example is abbreviated, but this is my wrapper component.
class DraftEditor extends React.Component {
  static propTypes = {
    onChangeDraft: PropTypes.func.isRequired,
  };

  constructor(props) {
    super(props);

    this.state = {
      editorState: EditorState.createEmpty(),
    };

    this.onChange = (editorState) => {
      this.setState({ editorState }, () => {
        this.props.onChangeDraft(this.state);
      });
    };
  }

  render() {
    // autoComplete and autoCorrect are turned off to prevent a mobile Chrome bug where
    // text is deleted every time the user enters a space
    // https://github.com/facebook/draft-js/issues/1077
    return (
      <Editor
        editorState={this.state.editorState}
        onChange={this.onChange}
      />
    );
  }
}

export default DraftEditor;

In my Enzyme tests, I'm trying to verify that the onChangeDraft function I pass in as a prop is executed when the content in the Editor component is changed. However, I've been unable to trigger this onChange event successfully.

The component looks fine.

I'm trying to verify that the onChangeDraft function I pass in as a prop is executed when the content in the Editor component is changed. However, I've been unable to trigger this onChange event successfully.

How do you test " the content in the Editor component is changed" ? I'd be glad to see the test code.
Do you successfully setup JSDOM ( or alternative ) environment for your Full DOM testing?

@kenju Thanks for taking a look. This is a whittled down version of my test. I've commented where I'm running into problems.
describe('DraftEditor', () => {
  let wrapper;

  const defaultProps = {
    className: 'test-class',
    placeholder: 'Enter some text',
    onChangeDraft: () => {},
  };

  const getMountComponent = (overrideProps) => {
    const props = { ...defaultProps, ...overrideProps };
    return mount(
      <DraftEditor
        className={props.className}
        editingContent={props.editingContent}
        placeholder={props.placeholder}
        onChangeDraft={props.onChangeDraft}
      />
    );
  };

  describe.only('onChangeDraft', () => {

    it('calls props.onChange with JSON options', () => {

      const onChangeSpy = sinon.spy();
      wrapper = getMountComponent({ onChangeDraft: onChangeSpy });

      // How to trigger the onChange event without calling it directly?
      // None of these work:
      // wrapper.find('.public-DraftEditor-content')...trigger keydown event
      // wrapper.simulate('change')...
      // wrapper.update();

      expect(onChangeSpy.callCount).to.equal(1);
    });
  });
});

@nring
I have created a reproducible repo (https://github.com/kenju/draftjs-issues-35-sample ) and trying to figure out, still do not find any better solution.
However, I can tell you why your code does not work:

As you can see at DraftEditor#render, onChange listener is NOT attached to the rendered React Component
Instead, in order to invoke DraftEditor#onChange, _update private methods should be called
In conclusion, how the onChange event triggered is different from other events (e.g. onKeyPress, onFocus, ...), therefore simulate does not work here

Therefore, we should find another way to test on the onChangeSpy. Here is my suggestion:

How about raising the abstraction of your test code (that is, from a single spec test to an integration test) and look at how the Editor behaves?
Instead of invoking onChange, set up another event triggers and use them

Btw, this is just a small advice on OSS activity :)

If you tell others why your code does not work, creating a reproducible repository/gist/etc is a great help for others who want to help you 😉
If you find something does not work as you expect, looking at the library code itself is a good starting point

At this point I see many potential answers to the original question, and some great discussion. This is a pretty old issue now though, so I'm closing it. Feel free to open a new issue if questions remain. Thanks to everyone who added information here!

I managed to get this working by creating fake paste events
function createPasteEvent(html: string) {
  const text = html.replace('<[^>]*>', '');
  return {
    clipboardData: {
      types: ['text/plain', 'text/html'],
      getData: (type: string) => (type === 'text/plain' ? text : html),
    },
  };
}

test('should return markdown onChange', () => {
  const onChange = mock().once();
  const editor = mount(<RichTextEditor value="" onChange={onChange} />);
  const textArea = editor.find('.public-DraftEditor-content');
  textArea.simulate(
    'paste',
    createPasteEvent(`<b>bold</b> <i>italic</i> <br/> stuff`)
  );

  expect(onChange.args).toEqual([[`**bold** _italic_ \n stuff\n`]]);
});

where <RichTextEditor /> is just a in-house wrapper around draftjs Editor that handles markdown

The code has changed since it was originally linked, so here's the line of code with webDriverTestID prop: https://github.com/facebook/draft-js/blob/0a1f981a42ba665471bf35e3955560988de24c78/src/component/base/DraftEditor.react.js#L320

For anyone still looking for an answer to this problem, here is what worked for me:
import {
  ContentState,
  EditorState,
} from 'draft-js';

export default async function fillRTE(component, value) {
  const input = component.find('DraftEditor');

  input.instance().update(EditorState.createWithContent(ContentState.createFromText(value)));
}

Obviously this abandons the notion of using simulate, but it does manage to update the editor with whatever value is passed. I found this worked well for testing form submission code when inputs needed to be set ahead of time.

@skolmer Thanks for the snippet 👍 . It working for adding new text. How do I clear the input before adding?


Evolv EScribe Suite 2_SP9

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Hello,
It contains minor fixes for DNA 250, and for DNA 60, it supports Boost.
Thanks.


update(postgresql): add support for 'pgcli'

Overview

Add support support for pgcli as alternative cli client for PostgreSQL.
Pgcli is a rich, postgres client with syntax highlighting, smart completion and multiline support.
More info about pgcli: https://www.pgcli.com/
Type of change

[ ] Created a new plugin
[x] Improved an existing plugin
[ ] Fixed a bug in an existing plugin
[ ] Improved contributor utilities or experience

How To Test

Since pgcli can use the same environment variables as psql it can be used as a psql replacement:
op plugin run -- pgcli

or we can configure it if psql is not already configured:
op plugin init pgcli

Changelog

PostgreSQL plugin now also supports pgcli as an alternative to psql.

Interested in this too, so following this PR. Would be really useful to have this as a plugin!


Provide an API for per-invocation logs

Other cloud vendors provide logs that are specific to an execution. With the current design, customers will often clear their logs before an invocation so that they can see just the latest logs.
Adding an API for per-invocation logs would enable us to add a UI tab such as "Logs from last run" (exact title TBD).
There are two parts:

When calling the admin API, return an invocation ID
Provide an API to get the logs for that invocation ID

Open question: for HTTP triggers, the portal just calls the endpoint directly and does not use the admin API. Need to come up with a design to handle this.
CC @fabiocav for design details.

Duplicate of https://github.com/Azure/azure-webjobs-sdk-script/issues/1288


NAT gateway is not required for PLS

NAT gateway is not required for PLS, but provided in the article as one of the pre-requisites.

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

ID: 1895941d-fa70-08ea-53c4-c49a65300625
Version Independent ID: c41d9420-3dc5-5c49-8135-d208ee13bc14
Content: Quickstart - Create a Private Link service by using the Azure portal - Azure Private Link
Content Source: articles/private-link/create-private-link-service-portal.md
Service: private-link
GitHub Login: @asudbring
Microsoft Alias: allensu

Hi @myers-dev!
Thank you for the feedback.  We are starting to include total solutions and best practices in our quickstarts and tutorials.  NAT gateway is included in the instructions as a recommended solution when deploying any virtual machines in a VNET for outbound access.
#please-close


Merge select MD entries with CW ones

There are a few frequent and central MD dictionary entries that have not been matched with CW ones due to non-conventional orthography. While a more permanent solution is in the works, we would manually want to add the following:
MD: wapimew - He sees him. -> CW: wâpamêw
MD: mitsow - He eats. -> CW: mîcisow

Depending on where this is easiest to implement, we can either change the original XML files, or the internal database.

Implemented the above, not only for the mentioned verbs but related words as well, in:
~/giella/art/dicts/crk/crkeng_cw_md_200314.xml
... which will eventually end up on sapir as well. This will require a new version of engcrk*.xml as well.

The (slighty) revised:  crkeng_cw_md_200314.xml is now on sapir in: /data/texts/crk/dicts/itwewina/

I also created the revised corresponding: engcrk_cw_md_200317.xml, also now on sapir in the directory mentioned above.
There's a few single quotes in the revised files, which I hope do not matter in the XML. If they do, one can convert those to the ' if needed.

@Madoshakalaka The revised XML files, for both the crk-to-eng and eng-to-crk directions, adding a few select frequent MD items are now ready on sapir (see names and directories above). The revision resulted in also multi-word items getting proper ranks in engcrk.xml, when those are available in CW.
Before replacing the current content (which already works), please really do double-check programmatically that there are no issues with the XML code.
We can deal with the itwêwina update within this issue, or keep here the creation of the XML files, and create a new issue for their uploading and integration.

This should be resolved through #369.

The modifications to the XML source appear now to be in place.


gradlew works, but plugin throws error

Extension Name: vscode-gradle
Extension Version: latest
OS Version: WSL2
VSCode version: latest
When I run from terminal:
./gradlew build

it works. BUT when I do it from the Gradle plugin (using the run task button form the GUI) it fails with:
error: package com.sun.javadoc does not exist
import com.sun.javadoc.Tag;

I think this is due to the fact that project needs jdk 1.8 which it picks up when I do gradlew from terminal BUT from gradle, it tries to use jdk 11 - which is too new - and it fails.
How do I fix this?

the extension picks the value of java.import.gradle.java.home as the java home. you can set it the same as the system JAVA_HOME to keep them consistent.

This is what's stumping me,
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 ./gradlew build

The above succeeds. And so I add this to .vscode/settings.json:
{
    "java.import.gradle.java.home": "/usr/lib/jvm/java-1.8.0-openjdk-amd64",
}

Now running build by clicking on the gradle button from the plugin should work too right? But it doesn't! Throws that same error that happens when you use a newer java version.


Enhanced the components category in home page

Fixes Issue🛠

Closes #747
Description👨💻

The hover effect styling and color combinations in the components category section have been enhanced.
Type of Change📄

[x] Style (non-breaking change which improves website style or formatting)

Checklist✅

[x] I am an Open Source contributor
[x] I have performed a self-review of my code
[x] My code follows the style guidelines of this project

Screenshots/GIF📷

Hi @Rakesh9100 ,
if orange color dosen't look good here is the anthor design for components section.

Pls mention the issue number in the PR description which you are assigned to @Mdazar123

Pls mention the issue number in the PR description which you are assigned to!
Implement the second color and remove the orange @Mdazar123

Pls mention the issue number in the PR description which you are assigned to!
Implement the second color and remove the orange by making the new commit in this same PR, don't close this @Mdazar123

Hi @Rakesh9100,
being a newbie to open source ,I'm not sure how to commit changes to the same pull request (PR). I accidentally created another PR with the same branch, #1117.
Thank you!

This you should have asked me before, as I clearly mentioned to not create new PR. You have to learn to how to make new commits in opened PR and that is why these open source programs are there @Mdazar123

Hi @Rakesh9100,
I apologize for my mistake. I thought it would be committed in the same PR, but it generated a new one.
What should I do now? Also, could you please let me know how to commit in the same PR?

Hi @Rakesh9100,
Please give me a chance to correct my mistake. Due to a strict schedule of classes, assignments, and exams, I was unable to focus completely on contributions.

No problem. Since you're new to contributions, you can learn to make new commits in the same open PR using web resources and GPTs. Additionally, familiarize yourself with git commands, how to resolve merge conflicts, and other related topics to assist you in making open source contributions @Mdazar123

Hi @Rakesh9100 ,
thank you so much for accepting my PR.


[FV] refactoring referrings to fields of structures

Changes in the flavor of:  #mapping.keys[_key] + 1  =>  #mapping.keys[_key].key.
Found a bug connected to brackets - to report to KLAB team.
Checklist

[x] Change is small and easy to review (please split big changes into multiple PRs)
[x] Change is consistent with architecture
[x] Change is consistent with test architecture
[x] Change is consistent with naming conventions
[x] New code is covered with tests
[x] Tests related to old code are updated
[ ] Documentation is up to date with changes

Also, a few improvements to README and comments in spec files added.

Added split to four independent machines for CI on branch fv.


Update qs

Description
Update qs to latest patch version
Check List

[ ] New functionality includes testing.
[ ] New functionality has been documented.
[x] All tests pass

[x] yarn lint
[x] yarn test-unit

[x] Commits are signed per the DCO using --signoff

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.

What's the motivation for this? I ask because the older<EMAIL_ADDRESS>still remains.

This is because ~6.5.2 is only allowed to upgrade for patch versions. ^6.7.3 is allowed to upgrade minor versions, so they should stay separate, as per https://docs.npmjs.com/about-semantic-versioning

Oui dependencies arent shared like OSD's are. I dont think there is a need to follow the same semver restrictions that OSD follows here and we should be able to safely update all the packages without breaking semver


Which code should I recompose if I want to make changes in build/index.js

I want to add a timestamp into the created build/index.js,can I recompose some code to add time stamp into it?

This is somewhat off-topic since it doesn't pertain to anything LVGL-specific, but I would piggyback on this line of the Makefile and prepend something like window.buildTimestamp = \"$(shell date)\"; to the echo string.

This is somewhat off-topic since it doesn't pertain to anything LVGL-specific, but I would piggyback on this line of the Makefile and prepend something like window.buildTimestamp = \"$(shell date)\"; to the echo string.

This is somewhat off-topic since it doesn't pertain to anything LVGL-specific, but I would piggyback on this line of the Makefile and prepend something like window.buildTimestamp = \"$(shell date)\"; to the echo string.

thanks for help，I have a new qusetion now,If I change the limited size to 1920*1080,I will get lots of mem error,what should I do to avoid this?

This is somewhat off-topic since it doesn't pertain to anything LVGL-specific, but I would piggyback on this line of the Makefile and prepend something like window.buildTimestamp = \"$(shell date)\"; to the echo string.

thanks for help，I have a new qusetion now,If I change the limited size to 1920*1080,I will get lots of mem error,what should I do to avoid this?

Are you referring to the screen resolution? You would need to increase the maximum allowed size in lv_conf.h.

Are you referring to the screen resolution? You would need to increase the maximum allowed size in lv_conf.h.

Are you referring to the screen resolution? You would need to increase the maximum allowed size in lv_conf.h.

yes I did ,but it shows that
LINK  build/index.html
wasm-ld: error: initial memory too small, 22014176 bytes needed
emcc: error: failed (1)
Makefile:52: recipe for target 'build/index.html' failed

Are you referring to the screen resolution? You would need to increase the maximum allowed size in lv_conf.h.

yes I did ,but it shows that
LINK  build/index.html
wasm-ld: error: initial memory too small, 22014176 bytes needed
emcc: error: failed (1)
Makefile:52: recipe for target 'build/index.html' failed

What values did you increase it to? It's asking for 20GB of RAM! :confused:

What values did you increase it to? It's asking for 20GB of RAM! :confused:

What values did you increase it to? It's asking for 20GB of RAM! 😕

I only change the lv_conf.h with
#define LV_HOR_RES_MAX 1920
#define LV_VER_RES_MAX 1080

What values did you increase it to? It's asking for 20GB of RAM! 😕

I only change the lv_conf.h with
#define LV_HOR_RES_MAX 1920
#define LV_VER_RES_MAX 1080

I did the calculation wrong; it's actually only asking for 20MB, which is much more reasonable. Try adding -s INITIAL_MEMORY=67108864 beside the other -s argument on lines 49 and 53.

I did the calculation wrong; it's actually only asking for 20MB, which is much more reasonable. Try adding -s INITIAL_MEMORY=67108864 beside the other -s argument on lines 49 and 53.

Thanks for help,I will try it later


RTL: inline comments

Follow up to #9914.
The inline comment icon doesn't show if you start in RTL mode

📹 screencast of issue with comments
rtl-and-comments.webm

👋 I believe this has been fixed already. See https://static-wagtail-v5-2.netlify.app/admin/pages/60/edit/ (manually edit the dir attribute to rtl).


Python Javascript Shenanigans

Hi,
I've been fiddling with using base2048 using js2py. I can get the encode to work, but the decode is returning an empty list?
My python is as following:
import js2py
from js2py import require
base2048 = require('base2048')
t = [1, 2, 4, 8, 16, 32, 64, 128] # 'GƸOʜeҩ'
print(t)
a = base2048.encode(t)
print(a)
b = base2048.decode(a)
print(b)
And returns:
[1, 2, 4, 8, 16, 32, 64, 128]
GƸOʜeҩ
[]
Was wondering if you had any idea what's happening? I can't tell if its a js2py or base2048 thing - but decode seems to work in the sense that it doesn't like taking non-strings.
Thanks for the time

Looks like js2py does not support uint8Array2s


Plan for upcoming API name changes

Now that I'm getting closer to writing non-trivial uses of pyopenxr, I want to change some symbol names in pyopenxr.

[x] Rename System, Instance, Session classes to SystemObject, InstanceObject, etc. These are confusing because they differ from the use of System etc. in the C API.
[x] Rename InstanceHandle, SessionHandle, etc. to Instance, Session, etc. to better match the usage in C.
[x] Revert renaming of type, next structure fields back from structure_type, next_structure. Again, to better match the C usage. #72

Fixed for 1.0.2401


[0.10.0-beta1] Only one or couple CQs are being executed, but not all

Hello,
I've created quite a lot of CQs. They're pretty much same in the nature. The only difference is the data they're being executed on. Later on, I've noticed that only one CQ is being executed (over and over again). I thought that CQ service got stuck, so I've restarted InfluxDB, and true more than just one CQ was being executed after restart. However, watching logs more closely now, I can see only subset of CQs are being executed and that I'm pretty much seeing the same names. Moreover, I'd say that one CQ is being executed more and more often in favour of the others and that the result will be the same.
cq_trig_1h      CREATE CONTINUOUS QUERY cq_trig_1h ON telegraf BEGIN SELECT min(cosine) AS cosine_min, [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1h."default".trig FROM telegraf."default".trig GROUP BY time(5m), * END
cq_trig_1s      CREATE CONTINUOUS QUERY cq_trig_1s ON telegraf BEGIN SELECT min(cosine) AS cosine_min, [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1s."default".trig FROM telegraf."default".trig GROUP BY time(10s), * END
cq_trig_1m      CREATE CONTINUOUS QUERY cq_trig_1m ON telegraf BEGIN SELECT min(cosine) AS cosine_min,  [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1m."default".trig FROM telegraf."default".trig GROUP BY time(1m), * END
cq_trig_1d      CREATE CONTINUOUS QUERY cq_trig_1d ON telegraf BEGIN SELECT min(cosine) AS cosine_min, [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1d."default".trig FROM telegraf."default".trig GROUP BY time(15m), * END

Actually, it already has reached to the point when only one CQ is being executed over and over again.
[continuous_querier] 2016/01/21 08:58:32 executing continuous query cq_cpu_1s (2016-01-21 08:42:10 +0000 UTC to 2016-01-21 08:42:20 +0000 UTC)
[continuous_querier] 2016/01/21 08:58:40 executing continuous query cq_cpu_1s (2016-01-21 08:42:00 +0000 UTC to 2016-01-21 08:42:10 +0000 UTC)
[continuous_querier] 2016/01/21 08:58:49 executing continuous query cq_cpu_1s (2016-01-21 08:41:50 +0000 UTC to 2016-01-21 08:42:00 +0000 UTC)
[continuous_querier] 2016/01/21 08:58:57 executing continuous query cq_cpu_1s (2016-01-21 08:41:40 +0000 UTC to 2016-01-21 08:41:50 +0000 UTC)
[continuous_querier] 2016/01/21 08:59:05 executing continuous query cq_cpu_1s (2016-01-21 08:41:30 +0000 UTC to 2016-01-21 08:41:40 +0000 UTC)
[continuous_querier] 2016/01/21 08:59:14 executing continuous query cq_cpu_1s (2016-01-21 08:41:20 +0000 UTC to 2016-01-21 08:41:30 +0000 UTC)
[continuous_querier] 2016/01/21 08:59:22 executing continuous query cq_cpu_1s (2016-01-21 08:41:10 +0000 UTC to 2016-01-21 08:41:20 +0000 UTC)
[continuous_querier] 2016/01/21 08:59:31 executing continuous query cq_cpu_1s (2016-01-21 08:41:00 +0000 UTC to 2016-01-21 08:41:10 +0000 UTC)
[continuous_querier] 2016/01/21 08:59:39 executing continuous query cq_cpu_1s (2016-01-21 08:40:50 +0000 UTC to 2016-01-21 08:41:00 +0000 UTC)

@zstyblik what happens if you only start 3 of the 4 CQ's, removing the only one that shows up in your logs?
cq_trig_1h      CREATE CONTINUOUS QUERY cq_trig_1h ON telegraf BEGIN SELECT min(cosine) AS cosine_min, [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1h."default".trig FROM telegraf."default".trig GROUP BY time(5m), * END
cq_trig_1m      CREATE CONTINUOUS QUERY cq_trig_1m ON telegraf BEGIN SELECT min(cosine) AS cosine_min,  [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1m."default".trig FROM telegraf."default".trig GROUP BY time(1m), * END
cq_trig_1d      CREATE CONTINUOUS QUERY cq_trig_1d ON telegraf BEGIN SELECT min(cosine) AS cosine_min, [...], percentile(sine, 99.000) AS sine_p99 INTO telegraf_1d."default".trig FROM telegraf."default".trig GROUP BY time(15m), * END

@mjdesa such setup works.

... or at least so it seems.

@zstyblik so it seems like its the frequently running CQ the clobbers everything else. Would you agree with that?

@mjdesa yes, that's correct. I don't know whether CQs are being executed in parallel or serial one-by-one. But I guess the latter is true. So, CQ is executed, scheduler does some calculations, gets a list of CQs to schedule, may be sorts it, and there it is - it's time to schedule that CQ again despite it just has been executed, because GROUP BY time() is so small. But it's just a wild guess of mine.
Also, it's possible there is complete different issue, because it seems to me that CQ service/scheduler actually "locks up" on such query in an infinite must-execute-this-query loop.

@mjdesa What comes to my mind is, may be the execution of other queries depends on how fast is CQ executed(which also means load, writes, SELECT etc.). Also, it's possible that CQ with time(10s) doesn't make sense or not technically possible. In that case, it should result in an error and such CQ shouldn't be scheduled.

@zstyblik can you verify that this doesn't happen in 0.9.6-

@mjdesa sure, it shouldn't be a problem. However, I will be able to test it with only one Telegraf instance at most.

@mjdesa yes, it seems the issue isn't present in v<IP_ADDRESS>. However, I had only one Telegraf instance to put data in. Also, I've seen the following error message for one of the CQs :)
[continuous_querier] 2016/01/27 13:55:26 error executing query: CREATE CONTINUOUS QUERY  [...] END: err = write failed: field overflow

I had the instance up for almost an hour and it seems that all CQs are being executed.

Same issue in 887df3c73069a11bd4b0753dc6f4348ccd2e4594. If we look at the time stamps, it looks like it's trying to backfill (which I never requested) instead of computing fresh data:
[continuous_querier] 2016/02/12 03:47:02 executing continuous query cq_requests_mean_duration_15s (2016-02-11 20:10:45 +0100 CET to 2016-02-11 20:11:00 +0100 CET)
[continuous_querier] 2016/02/12 03:47:19 executing continuous query cq_requests_mean_duration_15s (2016-02-11 20:10:30 +0100 CET to 2016-02-11 20:10:45 +0100 CET)

This is still happening in 2894234b1ec225752e9ac5bcda1e5cd5a971f87f - now no CQs are being executed at all... even after recreating all of them...
[xxx ~]# grep continu /var/log/influxdb/influxd.log
[continuous_querier] 2016/02/24 08:34:48 continuous query service terminating
[continuous_querier] 2016/02/24 08:37:07 Starting continuous query service
[continuous_querier] 2016/02/24 08:38:48 continuous query service terminating
[continuous_querier] 2016/02/24 08:41:08 Starting continuous query service

[xxx ~]# influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 0.11.0.n1456214433
InfluxDB shell 0.11.0.n1456214433
> use xxx_prod
Using database xxx_prod
> show continuous queries
name: xxx_prod
----------------
name                                    query
cq_xxx_rows_per_minute_total          CREATE CONTINUOUS QUERY cq_xxx_rows_per_minute_total ON xxx_prod BEGIN SELECT sum(num_xxxs) INTO xxx_prod."default".cq_xxx_rows_per_minute_total FROM xxx_prod."default".xxx_requests GROUP BY time(1m) END
cq_tariff_requests_per_minute_method    CREATE CONTINUOUS QUERY cq_tariff_requests_per_minute_method ON xxx_prod BEGIN SELECT count("duration") INTO xxx_prod."default".cq_tariff_requests_per_minute_method FROM xxx_prod."default".tariff_requests GROUP BY time(1m), method END
cq_xxx_requests_per_minute_server     CREATE CONTINUOUS QUERY cq_xxx_requests_per_minute_server ON xxx_prod BEGIN SELECT count("duration") INTO xxx_prod."default".cq_xxx_requests_per_minute_server FROM xxx_prod."default".xxx_requests GROUP BY time(1m), "server" END
cq_xxx_requests_mean_duration_15s     CREATE CONTINUOUS QUERY cq_xxx_requests_mean_duration_15s ON xxx_prod BEGIN SELECT mean("duration") INTO xxx_prod."default".cq_xxx_requests_mean_duration_15s FROM xxx_prod."default".xxx_requests WHERE error = '0' GROUP BY time(15s) END
cq_xxx_requests_min_duration_15s      CREATE CONTINUOUS QUERY cq_xxx_requests_min_duration_15s ON xxx_prod BEGIN SELECT min("duration") INTO xxx_prod."default".cq_xxx_requests_min_duration_15s FROM xxx_prod."default".xxx_requests WHERE error = '0' GROUP BY time(15s) END
cq_xxx_requests_max_duration_15s      CREATE CONTINUOUS QUERY cq_xxx_requests_max_duration_15s ON xxx_prod BEGIN SELECT max("duration") INTO xxx_prod."default".cq_xxx_requests_max_duration_15s FROM xxx_prod."default".xxx_requests WHERE error = '0' GROUP BY time(15s) END
cq_xxx_requests_95pct_duration_15s    CREATE CONTINUOUS QUERY cq_xxx_requests_95pct_duration_15s ON xxx_prod BEGIN SELECT percentile("duration", 95.000) INTO xxx_prod."default".cq_xxx_requests_95pct_duration_15s FROM xxx_prod."default".xxx_requests WHERE error = '0' GROUP BY time(15s) END

> use _internal;
Using database _internal
> show measurements;
name: measurements
------------------
name
cq
httpd
queryExecutor
runtime
shard
subscriber
tsm1_cache
tsm1_filestore
tsm1_wal
udp
write

> select * from cq where time > now() - 1d;
> select * from cq where time > now() - 2d;
> select * from cq where time > now() - 3d;
> select * from cq where time > now() - 4d;
> select * from cq where time > now() - 5d;
name: cq
--------
time                    clusterID               hostname        nodeID  queryOk
1455868217000000000<PHONE_NUMBER>07240708      xxxxx           0       114060

What can I do to help in tracking this down?

Please open a new issue if you're experiencing CQ issues in 1.1 or 1.2rc1.


Magic link to URL endpoint

The bulk_evaluation API endpoint appears midway through the file here:
https://github.com/trustwiseai/trustwise/blob/c1573943929780893d143e4a5667a53fcc0ade0e/trustwise/request.py#L103
Can we move this to the .env file for consistency with the other URLs?

Removed for now as it was out of scope.


Fix omnibus cache missing etc

Seems like the second parameter to instance_eval is not only

used when reporting compilation errors

but also fixes the FILE references. Without this change,
omnibus cache missing

would end up trying to read omnibus_overrides.rb from a path relative to
the CWD, and therefore fail.
Signed-off-by: Stephan Renatus<EMAIL_ADDRESS>

:ping: @chef/chef-server-maintainers

@stevendanna I assume so, too. 😉 I'll schedule an adhoc build later.

Now it started building locally. I've added commits updating the docs and adding zip.


use Albumentations

💡 Your Question
i saw this tutorial
https://github.com/Deci-AI/super-gradients/blob/master/notebooks/albumentations_tutorial.ipynb
but i don't want to use this code
trainset = COCOFormatDetectionDataset(**train_dataset_params)
trainset.plot()
Can I use 'YoloDarknetFormatDetectionDataset'  instead of the above code to utilize the library?
If I can use it, please let me know how to use it
I wasted too much time :(
Versions
No response

Sure, have you encountered any problems doing so?

my code is here
input image size is 1280
how can i fix it?

You are using an old SG version that was released before albumentations integration with SG for object detection was introduced.
Please use versions 3.6 and up.


Update to version 3.3.0

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Ruby - No longer supported

Ruby 2.7+ has been depreciated on Azure App Service. Please update the documentation to reflect that.
https://azure.microsoft.com/en-us/updates/rubysupport/#:~:text=Published date%3A September 30%2C 2022,patches after 12 April 2023.
PS - Hi! I used to work with you all on App Service 👋

Nicolas Garfinkel

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

ID: b9d5437c-5b4f-bf5b-4877-e810d5fefb4f
Version Independent ID: eea67277-74ba-c23c-bee5-af4cf6eb14db
Content: Quickstart: Create a Ruby app - Azure App Service
Content Source: articles/app-service/quickstart-ruby.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

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

Looks like the article was updated with a note to reflect that it's not supported. Closing this out. Thanks for the quick fix folks!


Improvements for SSR

Hi,
I needed to made some improvements for SSR

I added check is platform is browser to interceptor because we do not have storage on the server and even if we add some custom storage like variable dictionary it would not get filled after login so basically SSR is unauthorized requests. But this is not a problem because SSR executes only first requests for rendering initial page later angular takes over and calls autorized endpoints with token.

I added storage null check for the same reason that we do not have storage on server and there is no point to create on because of reason mentioned above.

Can we have this merged ASAP because I still cannot merge Angular 6 branch to dev :)

Can we? :)

Hi @vytautas-pranskunas- ,
thanks for this PR. I'm not sure if we should solve this that way. One could write a special OAuthStorage implementation, like here
https://manfredsteyer.github.io/angular-oauth2-oidc/docs/additional-documentation/server-side-rendering.html
Wishes,
Manfred

I see your point but

There is no extension point for nodejs version of universal like asp.net core has
It is really difficult to find (i coulnd not find) how to put identity server info to cookies at least identity Server 4
But main point is that if we allow to use tokens for SSR then it means that google search spiders will be able to agther some senasative data which hides unde login. For me it more it is clear and SEO should be done in public pages but I see you point and maybe it should be done for somebody. So I am closing this pull request by adding custom storage for server.


rows get out of sync on ctrl+f

Thanks for the fantastic library! One issue I noticed is that the rows can get out of sync when you search the table with ctrl+f. For example if there is a match for the search term on the frozen column, but out of view, ctrl+f will make the match in the frozen column come into view without moving the data table on the right hand size.

For me, the issue happens on Firefox and IE11, but not Chrome.
Note that it does not happen in your original SO example.


config: 'width_percentage' & 'min_width' do not work on snippet column

Description
In the config.yaml file we can define width_percentage and min_width for all columns:
https://github.com/denisidoro/navi/blob/528178e2191eb1467868c78b23db185af5a9738b/src/config/yaml.rs#L34-L46
The settings for the snippet column do not have an effect, though, because they are not evaluated:
https://github.com/denisidoro/navi/blob/528178e2191eb1467868c78b23db185af5a9738b/src/ui.rs#L6-L20
To Reproduce
If I set this in my config.yaml:
style:
  tag:
    width_percentage: 40
  comment:
    width_percentage: 40
  snippet:
    width_percentage: 20
    min_width: 100

The window shows up like this, with a snippet column width far below 100:

This is especially annoying when moving the snippet column to the left using NAVI_FZF_OVERRIDES='--with-nth 3,2', because it destroys the alignment of the other columns:

Expected behavior
The width settings for the snippet column should be used.
@denisidoro Is there a specific reason why the settings are ignored for the snippet column?

I just filed PR #697 which fixes this issue. Would love to see this merged upstream.


Errors identifying files in run directory

On the MITgcm mailing list, @mjlosch reported some problems parsing the files in his run directory

the diagnostics package produces
a file cheapaml at iteration 11 and iceDiag at 12. I acknowledge that
this is hard to catch in a generic reading software. But when I remove
the cheapaml (and iceDiag) files and retry I still get:
OSError: Could not find the expected file prefixes ['W', 'Eta',
'ice_Tice1', 'ice_iceH', 'ice_Qice2', 'ice_snowH', 'S', 'ice_Tsrf',
'ice_Qice1', 'T', 'ice_snowAge', 'ice_fract', 'V', 'VICE', 'U',
'ice_Tice2', 'UICE'] at iternum 12. (Instead found ['ice_Tsrf',
'ice_Qice1', 'T', 'V', 'ice_Tice2', 'Eta', 'Qnet', 'ice_frwAtm', 'Qsw',
'EmPmR', 'ice_flxAtm', 'W', 'PH', 'ice_Tice1', 'ice_Qice2', 'FU',
'ice_snowH', 'VICE', 'U', 'PHL', 'ice_iceH', 'S', 'FV', 'ice_snowAge',
'ice_fract', 'UICE'])
To me this looks like the same list of files but in different order.
ignore_unknown_vars=True does not work.

He then elaborated
cd MITgcm/verification
./testreport -t global_ocean.cs32x15
cd global_ocean.cs32x15/tr_run.icedyn
ipython —pylab
import xmitgcm as xm
d = xm.open_mdsdataset('./‘,geometry='curvilinear')

gives
OSError: Could not find the expected file prefixes ['ice_Tice2', 'W', 'ice_fract', 'U', 'ice_snowH',
'ice_Qice2', 'ice_Tsrf', 'ice_Qice1', 'Eta', 'ice_Tice1', 'V', 'ice_iceH', 'S', 'ice_snowAge', 'T'] at iternum 72010. (Instead found ['ice_iceH', 'ice_Tice2', 'U', 'ice_fract', 'W', 'ice_flxAtm', 'PHL', 'ice_Qice2', 'ice_frwAtm', 'V', 'ice_Tsrf', 'Eta', 'ice_Tice1', 'ice_snowH', 'ice_Qice1', 'S', 'ice_snowAge', 'T', 'PH'])

import glob
vlist = ['ice_Tice2', 'W', 'ice_fract', 'U', 'ice_snowH', 'ice_Qice2', 'ice_Tsrf', 'ice_Qice1', 'Eta', 'ice_Tice1', 'V', 'ice_iceH', 'S', 'ice_snowAge', 'T’]
for v in vlist: print(glob.glob(v+'.*.meta’))
['ice_Tice2.0000072010.meta', 'ice_Tice2.0000072000.meta']
['W.0000072010.meta', 'W.0000072000.meta']
['ice_fract.0000072000.meta', 'ice_fract.0000072010.meta']
['U.0000072010.meta', 'U.0000072000.meta']
['ice_snowH.0000072000.meta', 'ice_snowH.0000072010.meta']
['ice_Qice2.0000072010.meta', 'ice_Qice2.0000072000.meta']
['ice_Tsrf.0000072010.meta', 'ice_Tsrf.0000072000.meta']
['ice_Qice1.0000072010.meta', 'ice_Qice1.0000072000.meta']
['Eta.0000072010.meta', 'Eta.0000072000.meta']
['ice_Tice1.0000072010.meta', 'ice_Tice1.0000072000.meta']
['V.0000072010.meta', 'V.0000072000.meta']
['ice_iceH.0000072010.meta', 'ice_iceH.0000072000.meta']
['S.0000072010.meta', 'S.0000072000.meta']
['ice_snowAge.0000072010.meta', 'ice_snowAge.0000072000.meta']
['T.0000072010.meta', 'T.0000072000.meta’]

so basically all variables have the same “frequency” (a record a 72000 and at 72010), still it does not work. I tried this:
 d = xm.open_mdsdataset('./',prefix = ['ice_Tice2', 'W', 'ice_fract', 'U', 'ice_snowH', 'ice_Qice2', 'ice_Tsrf', 'ice_Qice1', ‘Eta', 'ice_Tice1', 'V', 'ice_iceH', 'S', 'ice_snowAge', 'T’],geometry='curvilinear')

gives
KeyError: "Couln't find metadata for variable ice_Tice2 and `ignore_unknown_vars`==False.”

but the meta files are all there (see above)
d = xm.open_mdsdataset('./',prefix = ['ice_Tice2', 'W', 'ice_fract', 'U', 'ice_snowH', 'ice_Qice2', 'ice_Tsrf', 'ice_Qice1', 'Eta', 'ice_Tice1', 'V', 'ice_iceH', 'S', 'ice_snowAge', 'T'],ignore_unknown_vars=True,geometry='curvilinear')

works, but only U,V,W,T,S,Eta are imported and all variables starting with ‘ice_’ are apparently unknown. Why is this so?

To me this looks like the same list of files but in different order.

The order should not matter, since the two lists are converted to sets before comparison
https://github.com/xgcm/xmitgcm/blob/13352a50c3a28c2fb036728a606ff2806f4bd139/xmitgcm/mds_store.py#L159-L164
We will have to get to the bottom of this...

all variables starting with ‘ice_’ are apparently unknown. Why is this so?

Are you using the diagnostics package to create these files? Or are they part of the "native" seaice output?

The variables starting with "ice_" are "native" thsice variables. I choose the verification experiment global_ocean.cs32x15/tr_run.icedyn, because there is no output from the diagnostics package convoluting the file (as opposed to my first example of verification_other/offline_cheapaml)

Ok, so that is a standalone issue: xmitgcm cannot read the ice_* variables because it doesn't know what they contain. The metadata has to be added manually, as done here for the KPP native output:
https://github.com/xgcm/xmitgcm/blob/master/xmitgcm/variables.py#L404
We would love to have a pull request from you that adds the necessary metadata.
We generally prefer the diagnostic output because it is "self describing"; xmitgcm parses available_diagnostics.log to determine everything it needs to know. This is clearly preferably to manually keeping track of the metadata within xmitgcm itself. But we want both possibilities to be supported.
Whatever is happening with the original error you described is trickier. I still don't understand it. Maybe @raphaeldussin can dig in when he has time.

Hi Ryan,
so it's not really a bug, but a "feature", i.e. there is a list of "known" variables and most packages are not represented in this list. I could start adding "native" output variables to the list (e.g. of the seaice and thsice packages), but eventually this list would become as long or longer than the OrderedDict of state_variables. Is that what you want?

Is that what you want?

Thanks for providing the seaice stace variables in #96. That was a lot of work on your part! It definitely doesn't hurt to have this info in there. The only downside is that we / you are now responsible for maintaining it if it changes. For this reason, it is preferable to work with the diagnostics output.
I am still eager to resolve the original error related to the inconsistent parsing of the "expected file prefixes".


Extend devspace open command to allow access to any container

Is your feature request related to a problem?
Kinda
Which solution do you suggest?
Currently we can use devspace enter --image redis to shell into a container. It'd be great if we could port-forward any container we want using devspace open --image redis. Right now we are forced to kubectl port-forward redis-6885b6c646-qbrcs 6379:6379 which is not as convenient.
Which alternative solutions exist?
Use kubectl port-forward command.
/kind feature

@iSeiryu thanks for opening this issue! Yes that is a good idea, we can add this.

After some consideration, I think this might be not so useful, because:

It is very inflexible and you always need to specify an additional pod port because we cannot infer that from a single --image flag, which needs to be another flag aswell
devspace open asks initially if a service should be exposed via port-forwarding or ingress, this flag completely changes the behaviour and just port-forwards to a pod.
It is probably a better way to create a profile where the only dev configuration is the port-forwarding for a single pod and then run devspace dev -x. Another idea is to have a new command for just port-forwarding like devspace enter or devspace sync for terminal forwarding and syncing.

After giving it more thought and working with devspace more: a separate command would be preferable. Adding file sync to it is an interesting option but how would it know what to sync for each pod?

Closing due to inactivity and it looks like you have a workaround. If you are still facing this issue with our latest DevSpace version, please open a new issue.


extra convenience macros

Address #99

looks good to me! just one remark: unlike mat!, there's no ambiguity when the number of elements in a row or column is zero. in that case we can replace the compile error by $crate::Col::new().

looks good to me! just one remark: unlike mat!, there's no ambiguity when the number of elements in a row or column is zero. in that case we can replace the compile error by $crate::Col::new().

Good point, fixed!


Convert agencies.data_sources column to linking/junction table

Currently, the DATA_SOURCES column in the AGENCIES table is a varying character column which appears to contain a stringified array of all data sources related to that agency. Supplementing this column is a COUNT_DATA_SOURCES column which represents the number of data sources associated with the row.
This poses a few issues:

Updating the DATA_SOURCES column is unlikely to be a straightforward process. While I haven't seen the code that does update this column yet (for example, when a data source is added or removed), I imagine it requires the entire array to be retrieved in memory, updated, and then re-inserted. If I'm correct, such a method is not efficient, and not making use of PostgreSQL's native functionality.
Similarly, updating the COUNT_DATA_SOURCES column is likely to not be straightforward and utilize native PostgreSQL functionality. Again, I'm guessing this data is ascertained outside of SQL, and then the column is updated. There doesn't appear to be any triggers within the table itself indicating this. This raises the risk of the DATA_SOURCES and COUNT_DATA_SOURCES columns gradually going out of sync.
It's unclear how these values are updated if data sources are added or removed, as the logic does not appear to be in the table itself. That runs the risk of data updated in one location not being represented in the other.

A solution of this would be to create a linking/junction table, perhaps called Agencies_Data_Sources, which has as foreign keys:

DATA_SOURCES.AIRTABLE_UID
AGENCIES.AIRTABLE_UID

Entries can be placed here which establish the relationship between the two tables. This formalizes in a more SQL-friendly way the relationship between the two (for example, allowing all of an agency's data sources to be easily summarized via a COUNT query), and allows for constraints to be more easily enforced (for example, that a data source cannot be associated with more than one agency, if that's a requirement).
This would likely break some code currently relying on the current format, but it would save maintenace trouble down the line, and would generally be friendlier for present and future SQL queries.

This appears to have been resolved for a while (given the presence of agency_source_link), so I can happily mark this as closed!


Bug: fix loading local spark config

Fix #281

@jafreck is this change reflected in stable branch too?

yes, it is now. I updated stable and the v0.5.0 tag to have this change.


Server binary max fps steady at 144

Godot version:
3.1.1 April 27, 2019
OS/device including version:
Linux vps227684 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1 (2019-04-12) x86_64 GNU/Linux
Its a OVH VPS Cloud 1 with a 3GHz vCore
Issue description:
I got a project that is a Node with a Node2D as a child, both empty. A singleton that pools a NetworkedMultiplayerEnet on _process().
I uploaded the project to the VPS and ran it. Out of curiosity went to check the FPS using print(Engine.get_frames_per_second()) every 1 sec using a Timer and just got a steady 123 FPS.
Now, if I run the project on my very old and crappy laptop (Celeron 847 @ 1.10GHz) the project runs at ~200 and even spiking to 300 FPS. Tried setting the project to run at fullscreen and also disabling vsync. Also wrote this as to try to force all of it but still doesnt work:
OS.low_processor_usage_mode = false
OS.set_use_vsync(false)
ProjectSettings.set_setting("display/window/vsync/use_vsync", false)

So I'm thinking it has something to do with the server binary. I'm sorry I'm not of more use.

Well, a vCore at 3GHz in the context of VPSs could be a thread of a thread, not an actual dedicated core, so your dedicated Celeron 847 is much faster.
However, the real question is, a server's tick rate should not fluxuate like that, it should be fixed if I am not mistaken.

First off, video settings won't do anything on the server platform. The server platform uses a dummy video driver, such that one is defined but it doesn't do anything.
That being said, for a server to run at a lower framerate (usually called "tickrate" when it comes to servers) than the game clients it will be serving is normal. For example, Minecraft servers normally run at 20 FPS, whereas their client counterparts try to run at 60 FPS or higher.
However, for the server to be reporting as running at such a lower rate than your 9-year-old laptop is a bit curious. I could not find any reason why it would be running so much lower, as I don't believe the server binary caps the framerate normally, and the defaults for the project settings (including the target framerate). Not to mention that it's pretty unlikely that a VPS provider would be using super-old hardware (let alone hardware worse than a celeron).
If you could, please zip up the project files and send them here. I would like to test if I'm capable of replicating this issue on my own server.

@girng I think a thread of VPS should be faster than this laptop core.
@LikeLakers2 I know servers run at a lower tickrate. But for now I'm just pooling on every frame, I do plan on changing that of course.
And yeah I dont think that a vCore could be slower than my laptop. I will upload the source in the morning thanks.

@girng I think a thread of VPS should be faster than this laptop core.

ok

@girng I know they are not real cores. But I have trained simple AIs on that vCore and its 10x faster than my laptop's core.
@LikeLakers2 Here is the project source: map_area_shard.zip. I hope it might lead to something useful :slightly_smiling_face:

So this is odd. Using the official 3.1.1 binaries, I get the same results as you do -- 122 FPS on the server, and around 3000 FPS on the client (I have a pretty beefy GPU). Using the nightly builds of the server binary and the editor, I get the same results, except now the server FPS is wavering between 140 and 141. More than likely, this difference in FPS between the two versions is probably down to optimizations that have been made in the 4000 or so commits since 3.1.1's release.
So this really confuses me. When I initially checked out the issue, I had noted OVH's somewhat poor review scores. However, my server is from DigitalOcean, which is considered the gold standard by many... yet I was getting basically the same results. So I think this somewhat rules out OVH just being a bad host?
My only guess right now is that it has to do with the dummy video driver that the server platform uses. Unfortunately, as I don't have a Linux computer (I run Windows), I can't test how the dummy video driver would perform on my computer, to see if it is the dummy driver, or if it's something with the Linux builds entirely. Perhaps if someone else has a Linux computer, they could check that?
Also @vicguedez I noticed that you included left actual info about your actual server in the res://server.gd file, as well as something about a token in res://singleton/utils.gd. I'm unsure if it'd be okay to leave those be, so you might want to get a new server IP and maybe revoke that token too, just-in-case.

@LikeLakers2 The editor FPS going from ~125 to ~144 after upgrading from 3.1.1 is likely due to #28792.

@Calinou I think you misread. I said the server export FPS goes from 122 to 140, not the client export/editor FPS.
However, that does bring up a question. Does the server export default to using low-processor mode for its dummy driver, or something similar?

@LikeLakers2 Uhm the server token was a test token so no worries. The IP kinda worries me a bit, took down the link just in case xd. If any core dev/contributor needs it I can upload it again.
I also tried to disable low processor usage mode in case that was it, but it does nothing.

@vicguedez If the IP worries you, you might want to get the actual server IP changed. There's some people on this repo (like myself) who receive emails about issue comments, and those emails don't get edited when you edit your comment.

However, that does bring up a question. Does the server export default to using low-processor-usage mode in some way, even when low-processor-usage mode is forced off? Or perhaps something similar?

Yes, that's what I'd suspect too :slightly_frowning_face:
Try lowering Application > Run > Low Processor Mode Sleep Usec to 1 in the Project Settings.

@Calinou Yup, that's exactly it. The server binary forces low-processor-usage mode. I changed it to 1 and it immediately jumped to >10000 FPS.

@LikeLakers2 Yep, mine is at 12/13k. Should I mark this as solved? Perhaps this should be on the docs.

@vicguedez I personally think it's a little unintuitive that it forces low-processor-usage mode, but I don't know if it'd be better to mark it on the docs, or if it should be changed so it doesn't force that mode, or if it even matters. I'll let Calinou decide.
(P.S. if it's decided to change it so it doesn't force low-processor-usage mode, I don't know what files to make a PR on, so this might sit for a while)

I'll let Calinou decide.

Same here, leaving it open. Thanks for the help @Calinou @LikeLakers2

No problem.
Oh, and just to make sure you see my reply to your concern over the server IP @vicguedez:

If the IP worries you, you might want to get the actual server IP changed. There's some people on this repo (like myself) who receive emails about issue comments, and those emails don't get edited when you edit your comment.

Maybe contact OVH support about that. Or, assuming there's nothing else that server is being used for, you could probably cancel the server and get a new one (perhaps in a different region), and that should get you a different IP.

@LikeLakers2 I know it doesn't get deleted from Github servers when removing it from the comment :slightly_smiling_face:. I already contacted OVH support about it. I had other things running on it sadly. Oh well, this are mistakes that you learn from :+1:

So I figured out how this is being caused, and it appears it isn't so much a bug as it is an unintuitive feature:
https://github.com/godotengine/godot/blob/1f40117caa6ad25340261969d377e1b398cd5349/main/main.cpp#L2041-L2042
This is the code that handles low-processor-usage-mode. Note the !OS::get_singleton()->can_draw().
I also noted that the code calling the draw functions (about 50 lines above the low-processor-usage-mode stuff) is wrapped in its own, separate can_draw() conditional:
https://github.com/godotengine/godot/blob/1f40117caa6ad25340261969d377e1b398cd5349/main/main.cpp#L1982-L1994
However, I am concerned that removing the can_draw() conditional from the low-processor-usage-mode conditional may cause CPU usage to rise somewhat even in simple scenes, as we could be running the main loop at upwards of thousands of times a second or more. In some servers, allowing one program to pin the CPU in sufficiently complex scenes may be acceptable, so long as the server maintains a decent tickrate. However, in others (such as where a server is being used for multiple services), allowing Godot to pin the CPU may not be a good idea.
What do you think, @Calinou (or whoever else wants to give their opinion)? Do we remove the conditional? Do we leave it? Maybe we could do something else, such as adding a "target tickrate" setting, or limiting the server to the "target FPS" setting. Or perhaps I'm overthinking this a little, and it doesn't actually matter?

Can anyone still reproduce this bug in Godot 3.2.3 or any later release?

@KoBeWi This is still valid in 3.2.3 and 3.2.4rc3 as far as I know. I'm not sure what's the best solution; ideally, we should do something that decreases CPU usage by default on headless builds.

One option could be to remove the can_draw() check here:
 if (OS::get_singleton()->is_in_low_processor_usage_mode() || !OS::get_singleton()->can_draw())
 	OS::get_singleton()->delay_usec(OS::get_singleton()->get_low_processor_usage_mode_sleep_usec());

And add a feature override for application/run/low_processor_mode for the server feature (and possibly an override for the sleep duration if 144 Hz is not considered a good max/default for servers - maybe it should be lower by default?).

As as a workaround, decrease low_processor_mode_sleep_usec to 1 in the project settings (or any other value you wish).


use default_factory

Guys easy on me i am a beginner i followed all steps i receive this message 👍
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 815, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory. i am mac user. any idea.

maybe it's because the version of fairseq
Our repo is tested in fairseq==0.12.2

maybe it's because the version of fairseq Our repo is tested in fairseq==0.12.2

this is the same on i am using still the same error

I have been trying to fix this by modifying fairseq to support python 3.11, but it does not seem to be working. See https://github.com/wtf-things/fairseq-311/commits/main.
File "/home/theo/.local/lib/python3.11/site-packages/fairseq/__init__.py", line 31, in <module>
    hydra_init()
  File "/home/theo/.local/lib/python3.11/site-packages/fairseq/dataclass/initialize.py", line 24, in hydra_init
    cs.store(name=k, node=v)
  File "/home/theo/.local/lib/python3.11/site-packages/hydra/core/config_store.py", line 85, in store
    cfg = OmegaConf.structured(node)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/omegaconf.py", line 125, in structured
    return OmegaConf.create(obj, parent, flags)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/omegaconf.py", line 178, in create
    return OmegaConf._create_impl(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/omegaconf.py", line 900, in _create_impl
    format_and_raise(node=None, key=None, value=None, msg=str(e), cause=e)
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/_utils.py", line 901, in format_and_raise
    _raise(ex, cause)
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/_utils.py", line 799, in _raise
    raise ex.with_traceback(sys.exc_info()[2])  # set env var OC_CAUSE=1 for full trace
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/theo/.local/lib/python3.11/site-packages/omegaconf/omegaconf.py", line 896, in _create_impl
    raise ValidationError(
omegaconf.errors.ValidationError: Object of unsupported type: '_MISSING_TYPE'
    full_key:
    object_type=None

Am I doing something wrong? I downloaded the latest github release file and extracted it, then I ran
python3 -m pip install -r requirements.txt
python3 -m pip install git+https://github.com/wtf-things/fairseq-311/
python3 infer-web.py

ok now after long time of using codes that may fix my issue. now i am getting this message :
Use Language: en_US
common - <dataclasses._MISSING_TYPE object at 0x10e83fe80>
Traceback (most recent call last):
File "/Users/supercrazy/Downloads/Retrieval-based-Voice-Conversion-WebUI-main 2/infer-web.py", line 82, in
from fairseq import checkpoint_utils
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/fairseq/init.py", line 31, in
hydra_init()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/fairseq/dataclass/initialize.py", line 24, in hydra_init
cs.store(name=k, node=v)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/hydra/core/config_store.py", line 85, in store
cfg = OmegaConf.structured(node)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/omegaconf.py", line 125, in structured
return OmegaConf.create(obj, parent, flags)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/omegaconf.py", line 178, in create
return OmegaConf._create_impl(
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/omegaconf.py", line 900, in _create_impl
format_and_raise(node=None, key=None, value=None, msg=str(e), cause=e)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/_utils.py", line 899, in format_and_raise
_raise(ex, cause)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/_utils.py", line 797, in _raise
raise ex.with_traceback(sys.exc_info()[2])  # set env var OC_CAUSE=1 for full trace
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/omegaconf/omegaconf.py", line 896, in _create_impl
raise ValidationError(
omegaconf.errors.ValidationError: Object of unsupported type: '_MISSING_TYPE'
full_key:
object_type=None
any idea?

Similar thing for me. This is my latest error:
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 815, in _get_field raise ValueError(f'mutable default {type(f.default)} for field ' ValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory.

I am stuck here:
python3.11 infer-web.py
Traceback (most recent call last):
File "/Retrieval-based-Voice-Conversion-WebUI-main/infer-web.py", line 26, in
from fairseq import checkpoint_utils
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/fairseq/init.py", line 20, in
from fairseq.distributed import utils as distributed_utils
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/fairseq/distributed/init.py", line 7, in
from .fully_sharded_data_parallel import (
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/fairseq/distributed/fully_sharded_data_parallel.py", line 10, in
from fairseq.dataclass.configs import DistributedTrainingConfig
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/fairseq/dataclass/init.py", line 6, in
from .configs import FairseqDataclass
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/fairseq/dataclass/configs.py", line 1104, in
@dataclass
^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 1230, in dataclass
return wrap(cls)
^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 1220, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 958, in _process_class
cls_fields.append(_get_field(cls, name, type, kw_only))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/dataclasses.py", line 815, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory

I tried this.
Before
common: CommonConfig= CommonConfig()
After
common: CommonConfig = field(default_factory= CommonConfig())
In the same way, you will have to do it for all the fields required. After that, I got another error. So I uninstalled the fairseq. this absurdism is making me more of a stoic daily.

The official fix of fairseq is too slow. I have created a fixed version of fairseq that works properly on Python 3.11.
You can try this If you need.
pip install git+https://github.com/One-sixth/fairseq.git

I am having the same issue.

Hey guys, I got same problem and I fixed this by install python 3.10.11
During requirement installation, I found some package can only run under <python 3.11
https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
Hope this can help you, enjoy!

Here is the solution for those using Python3.11
https://github.com/facebookresearch/fairseq/issues/5012#issuecomment-1884159687

Ugh, please remove stale bot


Error compiling sample custom rule

Bug Report

TSLint version: 4.5.0, 4.5.1
TypeScript version: 2.1.5, 2.2.1
Running TSLint via: CLI

TypeScript code being linted
import * as ts from "typescript";
import { Rules, RuleFailure, RuleWalker } from "tslint";

export class Rule extends Rules.AbstractRule {
    public static FAILURE_STRING = "import statement forbidden";

    public apply(sourceFile: ts.SourceFile): RuleFailure[] {
        return this.applyWithWalker(new NoImportsWalker(sourceFile, this.getOptions()));
    }
}

// The walker takes care of all the work.
class NoImportsWalker extends RuleWalker {
    public visitImportDeclaration(node: ts.ImportDeclaration) {
        // create a failure at the current position
        this.addFailure(this.createFailure(node.getStart(), node.getWidth(), Rule.FAILURE_STRING));

        // call the base version of this visitor to actually parse this node
        super.visitImportDeclaration(node);
    }
}

Actual behavior
When I try to compile the sampleRule via CLI, i get the following errors:
../node_modules/tslint/lib/language/utils.d.ts(40,82): error TS2694: Namespace 'ts' has no exported member 'ModifierFlags'.
../node_modules/tslint/lib/language/utils.d.ts(53,84): error TS2694: Namespace 'ts' has no exported member 'ObjectFlags'.
../node_modules/tslint/lib/language/utils.d.ts(98,48): error TS2694: Namespace 'ts' has no exported member 'BinaryOperatorToken'.
../node_modules/tslint/lib/language/walker/syntaxWalker.d.ts(74,44): error TS2694: Namespace 'ts' has no exported member 'NumericLiteral'.

Expected behavior
It should compile without an error.

Ok I now tried it with a newer nodeJS version (v7.7.1) and it worked. I tried it with v6.9.5 and it did not work. Maybe you should add this to the documentation of the custom rule setup.

The docs say to use Node 7.x: https://github.com/palantir/tslint#development

Yes, but only in the "Development" part. Not in the "custom rule" part.

but... you have to develop a custom rule... that's what development is...
😕

That error doesn't appear related to node, though. ModifierFlags was added in 2.1, so maybe your Typescript version wasn't updated


Create  hamburg/bsb.txt

Add the Immanuel Kant Gymnasium

@ceoklp Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!