Dashboard - For aggregate tx "From" is presented as initializing cosigner instead multisig account

Version: 1.0.3
Steps to reproduce:

Create multi-sig account (in this example 2 of 2 multi-sig) and not related wallet W1.

M TDJZJWJCW7W7EZSOHPWL4BBCYBVUJEP7WN52KCA
C1 TB2Z6E5VCEFQQN4DTZNYDPJYRFDSYCSQYYLPVXY
C2 TASS5DO72MEOWHZZMTTIOPIVA5F7W4QZGYKRUNA
W1 TBYZ5FOQCJB4GRDUOFJWWPMQYQWHGRBLCVWV2KI

Send multisig (aggregate) transaction from multisig M using cosigner C1 to wallet W1.
Sign transaction using cosigner C2.

Result:
On dashboard you can see From as TB2Z6E5VCEFQQN4DTZNYDPJYRFDSYCSQYYLPVXY which is cosigner instead multisig account:

In details "From" is presented correctly:

Expected result:
Present on dashboard correct "From" value.
If this is a limitation of REST API we should think of fixing it.

@cryptoBeliever I think this will need rest to be updated providing inner transaction Details as with the current version it forces wallet to make an extra call for each aggregate transaction in order to know the initiator of the transaction, which IMO will harm the performance.

@bassemmagdy @yilmazbahadir maybe we can cache information fetch for aggregate (currently only correct sender). This information will not change for specific hash. Currently, each time call to API is made.
What you think about that?

@cryptoBeliever I think it's a good idea to cache this data on the wallet side 👍
For the blinking issue on aggregate transactions, I think we can show "..." instead of the signerPublicKey until we get the aggregate data from the node.


Displaying the message Loading .....

Hello Fredrik,
I want to show the loading in bot message before  I receive the message from the backend. i tried to show the loading in bot message with "loading:true" . But this is not working . Please help me .
Thanks
Shubhnam Kumar

I need this too. I don't want to manually add a new spinner component

^ +1 agreed @FredrikOseberg

Also trying to figure out how to make this ... in the message show however long I want it to while I do an async Action

I think this issue could help you https://github.com/FredrikOseberg/react-chatbot-kit/issues/4

In our case, the solution was to move the slow api request out of the MessageParser into the ActionProvider and create (createChatBotMessage('') and append the new empty before the api call is made. Does that help in your case as well @kikychow ?

@clemenspeters Hi, thank you for your response. I am trying to create an empty bot message before the API call. I would like to ask how did you update the message after a response is returned from the API call? Thanks!

This will be super useful when the backend api call takes few seconds... Any suggestion on how to make the loading status in the bot message?

It is unfortunate that having more control over the loader isn't possible.
A workaround I implemented is to immediately post a chatbot message that a response was being crafted.
Then, when the actual response is ready I replace the "Formulating a response" message with it.
Not ideal, but in some ways helpful to be able to show the user text that could help them know how long they'll be waiting.

HI All So I found a Solution for this. The basic logic behind the solution is create a dummy message just before the API call. & Render a loader instead of dummy message. Remove the dummy message once API call is completed.
Below are the accurate steps to do so.

Create custom bot Response message component (Refer here )

Create a constant DUMMY_MESSAGE = <ANY_UUID>

Pull out your API call from Message parser to Action provider & send the API call through clientMessage function in Action provider. This same function is accessible in message parser.

Whenever user sends a message, in action provider, just before API call send that dummy message (which we kept in constants as shown below)
this.greet({ message: DUMMY_MESSAGE });  // I am using message object due to some reason, you can use string too

Your clientMessage function in action provider will look like this
`clientMessage = async (clientMessage) => {
this.addMessageToState(clientMessage);
const data = {
payloadName: clientMessage,
};
try {
this.greet({ message: DUMMY_MESSAGE });    // I am using message object, you can use string too
const apiResp = await apiCall(data);
if (apiResp.status == 200) {
this.greet({message : apiResp?.data?.response}, true);    // Sending true as second parameter as  i need to stop loading that chat object response once API call is finished. Will discuss it further in next steps
} else {
this.greet({
message: 'FAIL_TO_ANSWER',
}, true);
}
} catch {
this.greet({
message: 'FAIL_TO_ANSWER',
}, , true);
}
};`

In that component (step 1) style your text as you want, and apply a condition, if message === DUMMY_MESSAGE, show bouncing loader instead of instead of dummy message (Refer this).

Add one method in your Action provider below. This will remove your loader message by updating state and adding API response message here.
 removeLoadingMessage = (prevstateArray, removeLoading) => {  if (removeLoading) {    prevstateArray?.messages?.splice(      prevstateArray?.messages?.findIndex(        (a) => a?.message?.message === LOADING_DATA      ),      1    );    return prevstateArray;  } else {    return prevstateArray;  } };

Update your addMessageToState by below. The parameter removeLoading will be by default false
addMessageToState = (message, removeLoading = false) => {  this.setState((prevstate) => ({    ...this.removeLoadingMessage(prevstate, removeLoading),    messages: [...prevstate.messages, message],  })); };

Update your greet method as below
greet = (botMessage, removeLoading = false) => {  const message = this.createChatBotMessage(botMessage);  this.addMessageToState(message, removeLoading); };

You should be good to go now.

HI All So I found a Solution for this. The basic logic behind the solution is create a dummy message just before the API call. & Render a loader instead of dummy message. Remove the dummy message once API call is completed.
Below are the accurate steps to do so.

Create custom bot Response message component (Refer here )

Create a constant DUMMY_MESSAGE = <ANY_UUID>

Pull out your API call from Message parser to Action provider & send the API call through clientMessage function in Action provider. This same function is accessible in message parser.

Whenever user sends a message, in action provider, just before API call send that dummy message (which we kept in constants as shown below)
this.greet({ message: DUMMY_MESSAGE });  // I am using message object due to some reason, you can use string too

Your clientMessage function in action provider will look like this

clientMessage = async (clientMessage) => {
    this.addMessageToState(clientMessage);
    const data = {
      payloadName: clientMessage,
    };
    try {
      this.greet({ message: DUMMY_MESSAGE });    // I am using message object, you can use string too
      const apiResp = await apiCall(data);
      if (apiResp.status == 200) {
        this.greet({message : apiResp?.data?.response}, true);    // Sending true as second parameter as  i need to stop loading that chat object response once API call is finished. Will discuss it further in next steps
      } else {
        this.greet({
          message: 'FAIL_TO_ANSWER',
        }, true);
      }
    } catch {
      this.greet({
        message: 'FAIL_TO_ANSWER',
      }, , true);
    }
  };

In that component (step 1) style your text as you want, and apply a condition, if message === DUMMY_MESSAGE, show bouncing loader instead of instead of dummy message (Refer this).

Add one method in your Action provider below. This will remove your loader message by updating state and adding API response message here.

  removeLoadingMessage = (prevstateArray, removeLoading) => {
    if (removeLoading) {
      prevstateArray?.messages?.splice(
        prevstateArray?.messages?.findIndex(
          (a) => a?.message?.message === LOADING_DATA
        ),
        1
      );
      return prevstateArray;
    } else {
      return prevstateArray;
    }
  };

Update your addMessageToState by below. The parameter removeLoading will be by default false

addMessageToState = (message, removeLoading = false) => {
    this.setState((prevstate) => ({
      ...this.removeLoadingMessage(prevstate, removeLoading),
      messages: [...prevstate.messages, message],
    }));
  };

Update your greet method as below

greet = (botMessage, removeLoading = false) => {
    const message = this.createChatBotMessage(botMessage);
    this.addMessageToState(message, removeLoading);
  };

You should be good to go now.

HI All, So I found a Solution for this. The basic logic behind the solution is create a dummy message just before the API call. & Render a loader instead of dummy message Till API response is pending.
Remove the dummy message once API call is fulfilled.
Below are the accurate steps to do so.

Create custom bot Response message component (Refer here )

Create a constant DUMMY_MESSAGE = <ANY_UUID>

Pull out your API call from Message parser to Action provider & send the API call through clientMessage function in Action provider. This same function is accessible in message parser.

Whenever user sends a message, in action provider, just before API call send that dummy message (which we kept in constants as shown below)
this.greet({ message: DUMMY_MESSAGE });  // I am using message object due to some reason, you can use string too

Your clientMessage function in action provider will look like this

clientMessage = async (clientMessage) => {
    this.addMessageToState(clientMessage);
    const data = {
      payloadName: clientMessage,
    };
    try {
      this.greet({ message: DUMMY_MESSAGE });    // I am using message object, you can use string too
      const apiResp = await apiCall(data);
      if (apiResp.status == 200) {
        this.greet({message : apiResp?.data?.response}, true);    // Sending true as second parameter as  i need to stop loading that chat object response once API call is finished. Will discuss it further in next steps
      } else {
        this.greet({
          message: 'FAIL_TO_ANSWER',
        }, true);
      }
    } catch {
      this.greet({
        message: 'FAIL_TO_ANSWER',
      }, , true);
    }
  };

In that component (step 1) style your text as you want, and apply a condition, if message === DUMMY_MESSAGE, show bouncing loader instead of instead of dummy message (Refer this).

Add one method in your Action provider below. This will remove your loader message by updating state and adding API response message here.

  removeLoadingMessage = (prevstateArray, removeLoading) => {
    if (removeLoading) {
      prevstateArray?.messages?.splice(
        prevstateArray?.messages?.findIndex(
          (a) => a?.message?.message === LOADING_DATA
        ),
        1
      );
      return prevstateArray;
    } else {
      return prevstateArray;
    }
  };

Update your addMessageToState by below. The parameter removeLoading will be by default false

addMessageToState = (message, removeLoading = false) => {
    this.setState((prevstate) => ({
      ...this.removeLoadingMessage(prevstate, removeLoading),
      messages: [...prevstate.messages, message],
    }));
  };

Update your greet method as below

greet = (botMessage, removeLoading = false) => {
    const message = this.createChatBotMessage(botMessage);
    this.addMessageToState(message, removeLoading);
  };

You should be good to go now.

HI All, So I found a Solution for this. The basic logic behind the solution is to create a dummy message just before the API call. & Render a loader instead of dummy message Till API response is pending.
Remove the dummy message once API call is fulfilled.
Below are the accurate steps to do so.

Create custom bot Response message component (Refer here )

Create a constant DUMMY_MESSAGE = <ANY_UUID>

Pull out your API call from Message parser to Action provider & send the API call through clientMessage function in Action provider. This same function is accessible in message parser.

Whenever user sends a message, in action provider, just before API call send that dummy message (which we kept in constants as shown below)
this.greet({ message: DUMMY_MESSAGE });  // I am using message object due to some reason, you can use string too

Your clientMessage function in action provider will look like this

clientMessage = async (clientMessage) => {
    this.addMessageToState(clientMessage);
    const data = {
      payloadName: clientMessage,
    };
    try {
      this.greet({ message: DUMMY_MESSAGE });    // I am using message object, you can use string too
      const apiResp = await apiCall(data);
      if (apiResp.status == 200) {
        this.greet({message : apiResp?.data?.response}, true);    // Sending true as second parameter as  i need to stop loading that chat object response once API call is finished. Will discuss it further in next steps
      } else {
        this.greet({
          message: 'FAIL_TO_ANSWER',
        }, true);
      }
    } catch {
      this.greet({
        message: 'FAIL_TO_ANSWER',
      }, , true);
    }
  };

In that component (step 1) style your text as you want, and apply a condition, if message === DUMMY_MESSAGE, show bouncing loader instead of instead of dummy message (Refer this).

Add one method in your Action provider below. This will remove your loader message by updating state and adding API response message here.

  removeLoadingMessage = (prevstateArray, removeLoading) => {
    if (removeLoading) {
      prevstateArray?.messages?.splice(
        prevstateArray?.messages?.findIndex(
          (a) => a?.message?.message === LOADING_DATA
        ),
        1
      );
      return prevstateArray;
    } else {
      return prevstateArray;
    }
  };

Update your addMessageToState by below. The parameter removeLoading will be by default false

addMessageToState = (message, removeLoading = false) => {
    this.setState((prevstate) => ({
      ...this.removeLoadingMessage(prevstate, removeLoading),
      messages: [...prevstate.messages, message],
    }));
  };

Update your greet method as below

greet = (botMessage, removeLoading = false) => {
    const message = this.createChatBotMessage(botMessage);
    this.addMessageToState(message, removeLoading);
  };

You should be good to go now.

i found a turn around for this problem. create a new file called Loader.js and then add this code
`import React from 'react';
const Loader = () => {
return (

);
};
export default Loader;
`
now if its loading use this this loader. its the same loader from the react-chatbot-kit so you wont notice any difference.
You dont have to add any css. but just dont change anything in this file.

Thanks @nikunjmishra81 , that helped me out. It's a bit hacky though. I feel there needs to be some kind of loading state on the chatbot which you could set pre and post API call and some kind of loader icon or message is shown which isn't an actual chatbot message. Being able to customize the loader icon would be helpful too.

Had anyone found an easy way to handle this? Ideally, I would like to see the standard chatbot loader with dots appear until the backend responds. Right now, the client just sits there for 10 seconds until the backend provides the answer.

In our case, the solution was to move the slow api request out of the MessageParser into the ActionProvider and create (createChatBotMessage('') and append the new empty before the api call is made. Does that help in your case as well @kikychow ?

@clemenspeters I was hoping you could clarify how you got this working? I started going down this path but I still get nothing until the API call is done which takes 2-7 seconds so I really would like to have the loader appear while the call is happening.
`class ActionProvider {
constructor(createChatBotMessage, setStateFunc) {
this.createChatBotMessage = createChatBotMessage;
this.setState = setStateFunc;
}
async helloWorldHandler(inputmes) {
this.createChatBotMessage('');
const airesults = await (
await fetch (...)
.... some cleanup
var message = this.createChatBotMessage(<div dangerouslySetInnerHTML={{ __html: finalresult }} />);
this.setChatbotMessage(message);`
}
setChatbotMessage = (message) => {
this.setState(state => ({ ...state, messages: [...state.messages, message] }))
}
}

Very simple solution to this problem.  The idea is that you setState with createChatBotMessage() before API fetch.  When the fetch is complete you just remove the last state message (yes I am well aware that if user submits again this will remove their message but...) Code below
const handleBotApi = async (usrMsg) => {
        // Add Loading before API call
        const loading = createChatBotMessage(<Loader />)
        setState((prev) => ({ ...prev, messages: [...prev.messages, loading], }))

        const botRes = await postAPI('/message', usrMsg)

        // Stop Loading after call is returned
        const botMessage = createChatBotMessage(botRes.bot)
        setState((prev) => {
            // Remove Loading here
            const newPrevMsg = prev.messages.slice(0, -1)
            return { ...prev, messages: [...newPrevMsg, botMessage], }
        })
    }

Very simple solution to this problem. The idea is that you setState with createChatBotMessage() before API fetch. When the fetch is complete you just remove the last state message (yes I am well aware that if user submits again this will remove their message but...) Code below
const handleBotApi = async (usrMsg) => {
        // Add Loading before API call
        const loading = createChatBotMessage(<Loader />)
        setState((prev) => ({ ...prev, messages: [...prev.messages, loading], }))

        const botRes = await postAPI('/message', usrMsg)

        // Stop Loading after call is returned
        const botMessage = createChatBotMessage(botRes.bot)
        setState((prev) => {
            // Remove Loading here
            const newPrevMsg = prev.messages.slice(0, -1)
            return { ...prev, messages: [...newPrevMsg, botMessage], }
        })
    }

@jacobcravinho Thanks so much, I was able to get it working using your example!

@jacobcravinho but this solution causing the chatbox to flicker once received reponse from API , then display loading again and then show message.

Rather than doing slicing the last message that might sliced out user's extra input, one can assign an uuid for the message carrying the loading animation and later on replace the message content with the response from the api.
`
let uuid = self.crypto.randomUUID();
  let curr_msg = createChatBotMessage(<Loader />, {
    id: uuid
  })

  setState((prev) => {
    return {
      ...prev,
      messages: [...prev.messages, curr_msg],
    }
  });

  let result = await callingSomeApi()

  setState((prev) => {
    let messages = prev.messages;
    let idx = messages.findIndex(i => i.id === uuid);
    messages[idx].message = result;
    return {
      ...prev,
      messages: messages,
    }
  });
}

`

This solution I come up with to get around with messing with slicing, so even in case user typing in more stuff, the code is not risking slicing off the wrong messages.
The basic is the create message function actually takes and id as optional field, so assign that when generating the loader message and later replace the loader with the actual API return by finding the message in the chat state with the id generated at the beginning.
const handleApi = async (message) => {
  //create uuid
  let uuid = self.crypto.randomUUID();
  //generate reply with loader, and assign uuid to it
  let curr_msg = createChatBotMessage(<Loader />, {
    id: uuid
  })
  //set the state, so loading message showing up right away
  setState((prev) => {
    return {
      ...prev,
      messages: [...prev.messages, curr_msg],
    }
  });

  //call api and wait for return
  let result = await callingSomeApi(message)

  //set state again with the return message
  setState((prev) => {
    //find the index of the message with the uuid
    let idx = prev.messages.findIndex(i => i.id === uuid);
    //repalce loading message with api return
    prev.messages[idx].message = result;
    return {
      ...prev,
      messages: prev.messages,
    }
  });
}


Fix typedinput width calculation

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes

In some cases, type selection part of typedInput field is displayed in truncated manner as shown below.

This seems to be resolved by adding white-space: nowrap to the calculated html elements as discussed in: https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript
Checklist

[x] I have read the contribution guidelines
[ ] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
[x] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Coverage remained the same at 76.67% when pulling cf8faac7ef8a73578ba712e03aea6bb80109849a on node-red-hitachi:fix-typedinput-appearance into 22855279bd895c47cf59f443b881827844bdf058 on node-red:dev.

Any hints for how to recreate this so we can verify the fix?

This problem can be reproduced with subflow UI definition prototype(https://github.com/node-red/node-red/pull/2071).

import attached flow

[{"id":"5de9df7e.91678","type":"subflow","name":"Subflow 1","info":"","in":[],"out":[]},{"id":"57083244.03629c","type":"function","z":"5de9df7e.91678","name":"","func":"\nreturn msg;","outputs":1,"noerr":0,"x":200,"y":80,"wires":[[]]},{"id":"1489f73a.c1ef89","type":"subflow:5de9df7e.91678","z":"ce2bdf75.b5f36","name":"","env":[],"ui":{"params":[{"name":"","label":"","labels":{},"type":"str","value":""}]},"ui_in":{},"x":140,"y":100,"wires":[]}]

open edit ui tab of subflow settings panel

Thanks - looks good.


perf: optimise generic template copying

Description
Closes: https://github.com/UserOfficeProject/issue-tracker/issues/1193
This PR optimises copying generic templates from a previous proposal.
Before optimisation the query was taking on average 23 seconds to load the proposals and generic templates the user has access to.

This PR creates a new database view and a new query to reduce the time to load these proposals to 200ms on average.

Motivation and Context
This change is needed to reduce unnecessary data being retrieved when a user attempts to copy a previous generic template. Currently every generic template is returned by the getGenericTemplates  query and filtering which ones a user can see is done in ProposalAuthorization.ts. Therefore potentially >1000 unnecessary generic templates were being retrieved each time.

How Has This Been Tested
This has been tested manually, I made some changes to frontend tests.
Comparison in time from previous query to new query:
This is for a user with a reasonable amount of previous generic templates, the time will increase if user is also a scientist on an instrument or if they qualify more of the above criteria, but the increases in performance are still significant.

getGenericTemplates (s)
getGenericTemplatesForCopy (s)

23.02
0.135

23.02
0.139

23.04
0.128

23.01
0.131

23.67
0.122

23.61
0.114

23.70
0.123

23.84
0.121

Changes
A new database view generic_templates_view  has been added.

This reduces the complexity of the new query as all database table joins are done within the view.
It lists all generic templates along with it's associated, FAP reviewers, FAP chairs, FAP secretaries, visitors, instrument scientists, instrument contacts, along with generic template data including creator_id.

A new query getGenericTemplatesForCopy has been created.

This query is called when a user tries to retrieved their previous generic templates, it returns all generic templates they have access to according to the previously listed criteria.
As User Officers and Instrument Scientists have access to all generic templates the new query is only used for the User role.

Changes to the frontend tests to fall in line with how generic templates are queried for copying

Adds creator Id to created generic templates in the tests

Tests included/Docs Updated?

[ ] I have added tests to cover my changes.
[ ] All relevant doc has been updated

I realise it's already been done a lot in the UOP, but I don't like that we add extra query endpoints to the backend for what feels like the same data. I really think we should be able to do this with just an extra filter option like investigatorId in the current getGenericTemplates query.
While a user should have access to a proposal (and thus it's generic template answers) in all those listed situations, I think that list is the top level case for proposal access, and not relevant for copying generic templates, which are only done by a user when filling in a questionnaire, and in that role/situation I think it'd be fine to have the query just join and filter on the PI and co investigator ID's

I realise it's already been done a lot in the UOP, but I don't like that we add extra query endpoints to the backend for what feels like the same data. I really think we should be able to do this with just an extra filter option like investigatorId in the current getGenericTemplates query.
While a user should have access to a proposal (and thus it's generic template answers) in all those listed situations, I think that list is the top level case for proposal access, and not relevant for copying generic templates, which are only done by a user when filling in a questionnaire, and in that role/situation I think it'd be fine to have the query just join and filter on the PI and co investigator ID's

I see what you're saying about this new query returning basically the same data but I think the thinking behind it was that these 2 queries are now doing quite different things with where they are called and how they filter. getGenericTemplates is called in quite a few places and having a new query cleanly separates the different functionality they represent.
I have tried to make them into one query and reducing the number of criteria we are filtering by but after a checking with Emma I think the correct functionality is that everyone in the list should have access to these generic templates. And combining them reduced the improvements in efficiency I was getting.

Hi, Ellen, nice PR. I left two quick comments, please let me know.
And one additional thing. I think I saw that we are mixing the two names "copy" and "clone", i.e. cloneGenericTemplate
Maybe it is worth to use one name everywhere.

I think we are using clone when duplicating a generic template from the same proposal and copy when it is from a different proposal, it might get confusing which functionality something is referring to if we use the same name for both of these


feat(TracerImpl): Optionally empty span buffer on max error streak

refs #225
Adds a new option to completely clear the active spans on a certain number of contiguous errors.  Clients can use their configured flush interval, combined with the max possible backoff & jitter, to calculate what to set this value to.  This will allow them to calculate worst case "time between full empties" in the case of multiple errors in a row.

Code looks fine; Could you add a note in the README explaining the option and how to configure it?

Thank you @austinlparker I updated!

Thank you @austinlparker I updated!
@dm03514 I don't see the README update in the commit, could you kindly push? :)

@ishg sorry about that! Pushed


Maximum call stack size exceeded at parse_primary_expr

Describe the bug
Hi there!
First, thank you for this great lib! So, TLDR is that I'm making a language server (Vscode extension) called "Does it Throw?" using your library. It'll be an extension to give you highlights for throw statements.
I've run into an interesting error while trying to utilize the swc_ecma_parser crate. Here's a sample error when parsing this sample file:
RangeError: Maximum call stack size exceeded
    at swc_ecma_parser::parser::expr::<impl swc_ecma_parser::parser::Parser<I>>::parse_lhs_expr::h0bc7904afa98bcfa (wasm://wasm/01fb4bb2:wasm-function[58]:0xeecd5)
    at swc_ecma_parser::parser::expr::ops::<impl swc_ecma_parser::parser::Parser<I>>::parse_unary_expr::h9397db544740f33d (wasm://wasm/01fb4bb2:wasm-function[66]:0x11c4a3)
    at swc_ecma_parser::parser::expr::ops::<impl swc_ecma_parser::parser::Parser<I>>::parse_bin_expr::h3a8a2906da59adde (wasm://wasm/01fb4bb2:wasm-function[194]:0x297739)
    at swc_ecma_parser::parser::expr::<impl swc_ecma_parser::parser::Parser<I>>::parse_cond_expr::h0ecf093bc7734f3f (wasm://wasm/01fb4bb2:wasm-function[166]:0x25b068)
    at swc_ecma_parser::parser::expr::<impl swc_ecma_parser::parser::Parser<I>>::parse_assignment_expr_base::hb0f1c811005a28a2 (wasm://wasm/01fb4bb2:wasm-function[102]:0x1acc8b)
    at swc_ecma_parser::parser::expr::<impl swc_ecma_parser::parser::Parser<I>>::parse_assignment_expr::h21ab362ff1eb7988 (wasm://wasm/01fb4bb2:wasm-function[294]:0x3264f9)
    at swc_ecma_parser::parser::object::<impl swc_ecma_parser::parser::util::ParseObject<alloc::boxed::Box<swc_ecma_ast::expr::Expr>> for swc_ecma_parser::parser::Parser<I>>::parse_object_prop::h0ff86d053fec8e8d (wasm://wasm/01fb4bb2:wasm-function[51]:0xb0e7b)
    at swc_ecma_parser::parser::object::<impl swc_ecma_parser::parser::Parser<I>>::parse_object::{{closure}}::h16bcffde440272fc (wasm://wasm/01fb4bb2:wasm-function[155]:0x24172f)
    at swc_ecma_parser::parser::object::<impl swc_ecma_parser::parser::Parser<I>>::parse_object::hea4118e328a0226d (wasm://wasm/01fb4bb2:wasm-function[1101]:0x4523e1)
    at swc_ecma_parser::parser::expr::<impl swc_ecma_parser::parser::Parser<I>>::parse_primary_expr::hf7c576ce29e8bcc6 (wasm://wasm/01fb4bb2:wasm-function[50]:0x9d5f8

A couple of things about my language server setup:

the code compiles to wasm for node (default rust target)
I'm using swc crates directly so that I can do my throw statement analysis on the AST in rust

Here's what's interesting:
This error happens only twice (when opening the file), and then works the third time. So, two error logs of what you see above, and then it magically works the third time the document is opened:
[dit] textDocument/didClose
[dit] textDocument/didOpen
[dit] 	opening: file:///Users/angelo/bagelhouse/activitystreak/apps/worker/src/strava.worker.ts
[dit] 	getting diagnostics for: file:///Users/angelo/bagelhouse/activitystreak/apps/worker/src/strava.worker.ts
[dit] tracked lines 520
[dit] From line 79 column 2 to line 104 column 3
[dit]   Throw from line 85 column 21 to line 85 column 60
[dit]   Throw from line 86 column 30 to line 86 column 62
[dit] From line 365 column 2 to line 519 column 3
[dit]   Throw from line 369 column 8 to line 369 column 48
[dit]   Throw from line 376 column 8 to line 376 column 49
[dit]   Throw from line 472 column 12 to line 472 column 25
[dit]   Throw from line 504 column 12 to line 504 column 25
[dit] parsed module

Granted, I am compiling to wasm, so that may be the crux of the issue. However, I thought I'd file this bug report in case this is an actual issue in the Lexer/Parser.
Input code
No response
Config
N/A

Playground link (or link to the minimal reproduction)
https://github.com/michaelangeloio/does-it-throw/tree/main
SWC Info output
No response
Expected behavior
It should just parse as normal? The ESVersion and Parser settings are correct (I think) in the Lexer initialization, based on the ESVersion and various other settings in my project.
Actual behavior
No response
Version
swc_ecma_parser = "0.141.3"
Additional context
Steps to Repro:

follow these steps to install the extension and compile the wasm: https://github.com/michaelangeloio/does-it-throw/blob/main/vscode/DEVELOPMENT.md
open the output terminal in vscode, select "Does it throw? Language Server" to view the logs.
open this sample file: https://github.com/michaelangeloio/does-it-throw/blob/main/testing/sample.ts

This reminds me of https://github.com/swc-project/swc/pull/5311, which may indicate some of optimization should be applied to the wasm build to escape overflow.

Closing as this is not actionable. We use variable-length stack on supported platforms, but Wasm does not support it.

Also, I found that you disabled optimization. It's likely the problem.

Also, I found that you disabled optimization. It's likely the problem.

sorry for the dumb question, but where do I enable that?


chore: release main

:robot: I have created a release beep boop
npmrc: 1.0.1
1.0.1 (2024-02-14)
Bug Fixes

npmrc: cannot create profile if profile config does not exist (75967fd)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aversini/node-cli/releases/tag/npmrc-v1.0.1 :sunflower:


Data Dictionary Profiles - Ingestion

Ingestion of Data Dictionary Profiles approved by Data Dictionary Team.

Document 1 - DataDictionaryProfile_comments.xlsx
Document 2 - DataDictionaryProfile_comments_MC_commented.xlsx

James presented these 15/12/21 - need to be tested when we have an instance


[libwebsockets] Build error on x64-mingw-static

Copy issue body from D:/vcpkg/installed/vcpkg/issue_body.md

@zmj646409 Thanks for posting this issue, port pthreads not support windows and mingw.
https://github.com/microsoft/vcpkg/blob/1751f9f8c732c2e6f9e81ce56c10e4c4aa265b4a/ports/pthreads/portfile.cmake#L1


Add support for pluralized forms of valid unit names are not supported

When a label contains pluralized forms of valid unit names, an error is thrown:
ERROR line 12: The unit, "degrees", used for the value of "SOLAR_LATITUDE", was not defined in the dictionary.
ERROR line 13: The unit, "degrees", used for the value of "SOLAR_LONGITUDE", was not defined in the dictionary.
ERROR line 19: The unit, "arcseconds", used for the value of "STAR_DIAMETER", was not defined in the dictionary.

This was a capability that was supported in the previous product tools versions.

Per PDS3 standard, In addition, on page 18-1 of the standards you can find the following:

Both singular and plural unit names, as well as unit symbols, are allowed.

Since the master list does not include pluralized unit names, one can assume that the validation tool should accommodate.
Closing this issue per convo on https://osr.jpl.nasa.gov/jira/projects/PDSEN/issues/PDSEN-267


Asset builds should include vmstat gem

Per the readme, check-ram.rb requires vmstat but that gem is not part of this gem's runtime requirements (not installed by default).
In order to make check-ram.rb functional for those consuming releases as Sensu Go asset builds, we need to explicitly install the vmstat gem as part of the build process.

Any update on this @jspaleta ? I am unable to use this plugin in my Sensu Go 6.2.0 setup because of the missing vmstat gem.

Any update on this @jspaleta ? I am unable to use this plugin in my Sensu Go 6.2.0 setup because of the missing vmstat gem.


Launch tracking

Edit this issue to keep track of the tasks you're working on towards launch.
We have a rough guide for how to launch a track, which is sorely outdated but
quite possibly better than nothing (I'm so sorry, I'm waaaay behind on getting
documentation updated).
https://github.com/exercism/docs/blob/master/language-tracks/launch/README.md
Check out https://github.com/orgs/exercism/teams/track-maintainers/discussions/1
for details about the #maintainers channel in the exercism-team Slack workspace.
Please ask if you have any questions or if anything is confusing!

Should this repository be named x86_Assembly?  I think x86 is an architecture, while Assembly is the language, and while both are important, the first doesn't answer "What language are we practicing?"

That would make sense to me. @bergjohan -- your call, I think!

@kytrinyx I agree with @kotp and I think we should make the change, but I think we should use all lowercase and dash instead of underscore to follow the naming convention of other exercism repositories. So the name would be x86-assembly.

x86-assembly it is! Changing it now.

@kytrinyx Thanks! :) I got a few hits when searching for "x86" in the repository. Does anything else need to be updated to "x86-assembly"?

Thought of something else as well, when "assembly" is the immediately interesting part (such as mirrored by perl5/perl6) should Assembly as the language be first, while the architecture choice is second?  Not sure how the two flavors are normally referenced.

@kotp I understand what you mean, but I don't think I've ever seen it written that way. I think we should stick with the current name.

I think that is definitely fine, as the search on the site for "assem" will pull them both up.

Should we update the track id (config.json, .travis.yml), travis-ci (README.md) and the team name aswell for consistency?

D'oh, I was thinking "oh, this is easy because we're not yet integrated into the site" /facepalm.
Yes, we definitely want to update the config file, etc. Sorry about that.

@kytrinyx Hi, I saw you updated README.md in
https://github.com/exercism/x86-assembly/commit/03e3fe708fdb53995c67d2e2ba5127b0affc14aa. You made a change to "x686-assembly.svg", should it really say "x686"?

It shouldn't have an svg at all. I'm not sure what happened.

No, that's a typo.

Okay, thank you for fixing it :)

Hi @kytrinyx,
Yesterday I read that macOS Mojave "is the final version of macOS to support 32-bit application software", https://en.wikipedia.org/wiki/MacOS_Mojave.
Based on that I think it's better to use 64-bit assembly for this track. This unfortunately means that we should rename the track again to reflect that.
There are a few different names used for 64-bit x86 assembly, x86-64, x64, x86_64, AMD64 and Intel 64. Searching around the most commonly used seems to be x86_64 and x86-64.
I suggest using either x86_64-assembly  or x86-64_assembly as the track name.
If you agree with me, would you mind updating the track repository, the team repository and Travis? Hopefully this will be for the last time, but I think it's better to get it right from the beginning than having to change it later.

Hi again @kytrinyx,
I merged a branch to master yesterday, which should have made the Travis CI build pass. It still shows "build failing" though, and the latest build seems to have run after your "Fix typo" commit. Do you know why no build was run after the merge to master?

We don't use underscores in track names, so I would prefer x86-64-assembly. How does that sound?

Do you know why no build was run after the merge to master?

Ah, I wonder if builds only run for PRs right now, not for branches. We have a ton of repos and lots of activity, and when it runs for both PRs and branches we use double the amount of Travis resources, which means that everything takes twice as long.
I could switch to running for branches only, and not PRs, and see if that would help.
The other thing I can do is to enable the setting which says that a PR must be up to date with master before merging.

We don't use underscores in track names, so I would prefer x86-64-assembly. How does that sound?

@kytrinyx After thinking some more about this, I think x64-assembly would be a better name for this track, I think it looks a lot cleaner.

Ah, I wonder if builds only run for PRs right now, not for branches. We have a ton of repos and lots of activity, and when it runs for both PRs and branches we use double the amount of Travis resources, which means that everything takes twice as long.
I could switch to running for branches only, and not PRs, and see if that would help.
The other thing I can do is to enable the setting which says that a PR must be up to date with master before merging.

@kytrinyx Ah okay! Thanks, but you can leave it as it is. It's more interesting to know if the tests are passing on a PR :)

Alright, x86-64-assembly sounds good! :)

Cool, I'll change the repo name, and leave you to update the various files that need adjustment.

@kytrinyx Perfect, thank you! :) Do you change the name in Travis and the team name aswell?


linting errors on fresh install

First two are related to file extensions: allowing jsx in .js files and dropping the extensions in imports.
Solved by adding those two rules to .eslintrc
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "import/extensions": 0,

Second issue is in ./src/containers/App.js:
//Prop type `object` is forbiddenat line 28 col 3
//Absolute imports should come before relative imports.at line 12 col 36
//Absolute imports should come before relative imports.at line 13 col 25

import {} from '../actions/';
import { bindActionCreators } from 'redux'; //line 12
import { connect } from 'react-redux';

App.propTypes = {
  actions: PropTypes.object.isRequired // line 28
};

Absolute imports are solved by moving them before importing from relative '../actions' path.
But propTypes seems to be related to this issue (i guess it's something new to the specs?):
How can I handle react-router and redux with react/forbid-prop-types? #904
I'm a bit new to react, so i'm not sure, if actions: PropTypes.shape pattern would be appropriate or not in this case.
I know it's just a default template and creating new components seems to work fine (though for me it also failed to add react-css-modules as a dependency on install, was actually surprised that linter noticed that) and i'm free to do whatever with them, but it's a bit confusing to see linting tests fail on an empty project.

Hey @keithriver,
you are of course right, linter should not fail an a fresh project. I adjusted the rules and fixed the import order.
I will need to look into the forbidden prop type, technically I could leave that empty initially and populate it once when actions are added.
Thank you for pointing this out.
Regarding the css modules problem - this is related to the base generator, this should be fixed there, need to check what I have missed on my side.

Actions prop is now a shape too.
Reducers are now per default a shape too when added.

Fixed in 1.1.0 - closing down here. Feel free to re-open if problem persists.


Patient results download

Description
As we see more people using SimpleReport results for things like air travel, we want to make sure they have access to results offline. We also want to make sure that they have the most accurate version of their results, as the patient link results page doesn't include all the information (ordering provider, CLIA, etc) that is occasionally required by patients (i.e. when they're submitting insurance claims).
Proposed solution
We want to add a download link to the patient results experience that prints out the same form that facilities can currently print out. This has already been approved by CDC security. Patients would only be able to download their results once they successfully pass through the DOB login.
Additional context
Once this is completed, @emmastephenson should notify Alex at Oswald's Pharmacy in IL about the change.

@mlighdc Does this capture what we talked about last week?

@emmastephenson looks good. Also maybe one of the acceptance criteria is that patients should have a consistent results across all channels (if printed at the facility, if emailed, and if received via text/SMS).
Thank you!

Also need to update Bruno Tching once this is finished

@kenieh

@tim-skylight @kenieh @Rebecca-LM, what do you think of adding the download link at the bottom of the result header, not this is a mobile view.

if this is ok, @Rebecca-LM what should the Spanish translation be for "Download results"?

@zdeveloper LGTM!

This placement for "Download results" also came to mind, but I lean towards the one Zedd mocked up

thanks @kenieh, the download button on the side or in the header doesn't work for mobile devices, so i guess we're going with the current design.

@zdeveloper to answer your question, "Download result" would be "Descargar resultado".  Can we also please lowercase the words "testing portal"? This appears at the top of the screen.

@Rebecca-LM thanks! will address the testing portal

@zdeveloper thank you!


Migrate from travis-ci.org to .com before EOL

https://mailchi.mp/3d439eeb1098/travis-ciorg-is-moving-to-travis-cicom?e=[UNIQID]

In an effort to ensure that all of our users - whether you build open-source, public or private repositories - receive regular feature updates, security patches and UX/UI enhancements, we are announcing that travis-ci.org will be officially closed down completely on December 31st, 2020, allowing us to focus all our efforts on bringing new features and fixes to travis-ci.com and all of our awesome users like yourself on the travis-ci.com domain.

https://twitter.com/headius/status/1320870340634005512

Anyone seeing travisci take much longer to run jobs lately? In the past week or two, even if I have no other jobs running, even off peak, I'm seeing wait times of hours to queue even single jobs. It's like they massively cut back the number of available servers.

...
https://twitter.com/ButlerPCnet/status/1320878768030928896

Actually... I guess this is just the normal backlog now. Looking back to the week and month graph, it's clear they reduced capacity greatly, and are just depending on the job queue clearing "overnight" as devs go home Disappointed but relieved face

https://www.traviscistatus.com/#week

https://www.traviscistatus.com/#month

Looks like on October 22nd Travis CI halved the capacity to 593 jobs, which could explain hours of queuing.
Even at 9pm Eastern there are still like 3633 jobs on backlog.

https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing

We love our OSS teams who choose to build using TravisCI and we fully want to support that community. However, recently we have encountered significant abuse of the intention of this offering. Abusers have been tying up our build queues and causing performance reductions for everyone. In order to bring the rules back to fair playing grounds, we are implementing some changes for our public build repositories.

For those of you who have been building on public repositories (on travis-ci.com, with no paid subscription), we will upgrade you to our trial (free) plan with a 10K credit allotment (which allows around 1000 minutes in a Linux environment).

They've give open source accounts a free lifetime of 1000 Linux minutes (= 200 macOS minutes). We'd go through that in a matter of days since a single CI job takes about 100 minutes.

I guess we shouldn't be surprised by this. Travis ci was acquired by a private equity firm about two years ago. I'm almost surprised it took this long for them to kill it for oss.


change Logo  twiteer

wee need to change logo current logo is X

Hi, Someone is working on Implementing the footer in homepage to all the other pages.


Add Fobs, sigFobs and FreeR to molecules_container_t::auto_read_mtz_info_t

This is required to use mc.associate_data_mtz_file_with_map() which is in turn a requirement of updating maps.

Implemented in https://github.com/pemsley/coot/commit/9cf49b111e84a681b390e9a970f15f8aedead743 and https://github.com/moorhen-coot/Moorhen/commit/070ba1dd594c4bc01eb0bc9de09d15640fee7fcc


The token is getting invalidated every time I restart the server.

The JWT token is getting invalidated every time I restart the server. Is there anyway to persist the already issued tokens

Please do not ask questions in the issue tracker. Please read https://github.com/mohiva/play-silhouette#support.
Anyway, I've answered this question some days ago.


[QUESTION]

Firstly I'd just like to say awesome awesome work with this project man. You've put a trememdous amount of work into this and it really shows.
So now, moving on to my question, is there a way to implement a find function into the editor? So that, for examle, a user clicks on a find icon, enters some text, and the document is searched for that text, and if it is found, the cursor is programmatically moved to that place?
If its already implemented and I haven't found it, then that's great, but if its not, could you please help me out and implement this feature? It would be useful to a lot of people, including me, and be a really cool feature for the editor. Thanks in advance, and again, great job with this package!

Hi, this might be a bit overkill to implement into the project itself, but at least on mobile you can do this fairly easily:

You will want to create a custom button with the find icon inside the toolbar (see here for details on how to do this)

Use the InAppWebViewController findNext method inside the onPressed of your button, using htmlController.editorController.findNext, and that will move the cursor programatically.

If you are trying to do it on Web, it might just be easiest to make the user use the Ctrl-F dialog rather than making your own implementation.


Compute total_collateral, long_equity and short_equity for BitAsset

We should have a command to get the total BTSX removed from circulation to collateralize BitUSD.  I propose adding a new field total_collateral to the output of the blockchain_get_asset USD command.
It would be nice to also provide long_equity and short_equity.  Each is the fraction of total_collateral that long and short holders would (hypothetically) get if every long BitUSD holder sold at avg_price_1h and every short BitUSD holder bought and covered at avg_price_1h.
Here's how I would compute them (you should probably double check these formulas give the right answers before implementing them):
long_equity = (current_share_supply[USD] / (precision[USD] * avg_price_1h)) / total_collateral[USD]
short_equity = 1.0 - long_equity

I think short_equity is a great macro-economic indicator of the state of a BitAsset:

Exactly 1.0:  BitUSD is trading at zero (this can't actually happen, but we could get arbitrarily close).

Above 0.5:  Short positions, on average, have unrealized profits on their books (or have chosen to use less than maximum leverage)

Exactly 0.5:  Short positions are breaking even.

Below 0.5:  Shorts have taken losses.

Less than 0.25:  The market is in a margin crisis.  The only way this situation can happen is if the Ask book doesn't have enough depth to satisfy demand from automatic margin call orders (or margin calls aren't executing because prices are so high that the entire collateral can't cover the margin, i.e. short_equity is really less than 0.0, but the moving average means the computed short_equity value hasn't quite caught up to reality just yet).

Less than 0.0:  The BitUSD backing is inadequate; margin calls will be unable to execute without a price drop or an FDIC bailout.

For viewing collateralization: https://github.com/BitShares/bitshares/commit/bf5ab92da7e039de50a05bdaf3266dc4a13ce790
The other two values can be calculated by external services.


What are easy ways to tweak the CSS?

I love the idea of uBuild, it seems like it opens up so many possibilities. I'm not a front-end developer. Nonetheless, I really couldn't wrap my head around how to tweak the CSS. How does a user do this? Or how even are you all generating the CSS for the current version of uBuild template?
(PS excited by all the front-end tools Forestry.io is churning out)

@nathanlane You can simply add a link to a CSS file like so:
    <link rel="stylesheet"<EMAIL_ADDRESS>    <link rel="stylesheet" href="my-site-styles.css"/>

And then override or tweak as needed.
Hope that helps!

Thank you!


[Enhancement]Better rcs

📝 Provide a description of the new feature
title says it
➕ Additional Information
No response

because after you shoot around 5 bullets it goes directly in the ground

Its mayb a type of a bug

Never seen it happen to me. Might be an update of the game which modified the recoil pattern and the math in Dexterion might glitch out.

because after you shoot around 5 bullets it goes directly in the ground

Sensitivity in Dexterion is your CS2 mouse sensitivity (to start with....)


Incidence

tacale pau

Trimm for different incidences of the horizontal stabilizer is strange, but we can work on this later.
The main problem I see is that the wing2 is not calculating the CM_alpha. Something is broken here.

Problem is here. It's zeroing at every loop.

CM_alpha trimm for Micro2018

CM_alpha trimm for Micro2018-Biplane


I2C driver slave mode is missing critical features (IDFGH-7462)

This is a follow-up to #2202.  I've looked at the I2C driver in the forthcoming ESP-IDF v5, and it looks like there is no change from v4.4.  The issue is that it's not possible to implement an I2C slave with the current information that is exposed by the driver.  It is possible that manually implementing the I2C ISR would allow me to fix these deficiencies; however a) I should not have to do that myself, and b) I can't seem to find documentation as to how the ISR works, and what the various events mean with respect to what's happened on the wire.
The main issues with the current API are:

The slave cannot tell when the master sends a start, repeated-start, or stop condition.
The slave cannot tell when the master sends an ACK/NACK.
The slave cannot read the low bit of the master-sent address field, which indicates if the master wants to read from or write to the slave.

Some more detail on these: if we look at the SMBus protocol definition, we can see that there are different ways of sending data back and forth.  The master can write or read a byte, word, or block of data (among other things).  The slave needs to be able to know if/when the master sends a stop condition in order to tell which is which.  A write-byte looks like this:
START -> (SLAVE_ADDRESS << 1) | WR -> ACK -> COMMAND_BYTE -> ACK -> DATA_BYTE -> ACK -> STOP

(In this case, the two ACKs are sent back by the slave, while the rest are sent from the master to the slave.  The COMMAND_BYTE bit often specifies a "register" to read or write on the slave side.)
However, a write-word looks like this:
START -> (SLAVE_ADDRESS << 1) | WR -> ACK -> COMMAND_BYTE -> ACK -> DATA_BYTE -> ACK -> DATA_BYTE -> ACK -> STOP

(Again the ACKs are sent back by the slave, while the rest are sent from the master to slave.)
Note that the slave is notified of completion by the use of the STOP condition.  Without being able to read the STOP in my slave code, I cannot tell if the master is intending to write one or two bytes.  There are more complicated examples; in particular both the SMBus "process call" and "block read" operations require notification of the "repeated start" condition bit being sent by the master.
You'll also note the WR bit added to the slave address.  I cannot tell if the master wants to read from or write to the slave without knowing the value of that bit.  The current I2C slave API does not seem to give me access to that information.
I see that #2096 has been stuck waiting on CLA signing for a long time.  I am frankly not sure if that new driver solves the problems I've listed here (I know it solves some other problems, though).  I seems like it's designed to be a higher-level driver that (from what I can tell) more or less implements the SMBus register protocol, which I think is useful, but might be a bit too inflexible as the "default" driver.  Perhaps @loboris can chime in and clarify.
Ideally what I would like to see is, instead of just a simple i2c_slave_read_buffer()/i2c_slave_write_buffer() type API, something that allows me to consume I2C "events", probably via an ISR since timing is so important when it comes to I2C.  If we go a more low-level route, we'd probably want an event for pretty much everything:

Start condition
Repeated start condition
Stop condition
ACK/NACK
Address + rd/wr bit
Data byte

I don't love this, because it feels like there'd be a lot of overhead to get an event per byte, essentially.
I do also like the idea of a higher-level "driver" that implements the SMBus protocol and hides a lot of the details from the developer.  Something like that could be presented in the form of a vtable that the developer would fill in to provide handlers for the various SMBus operations (read byte, write byte, read block, process call, etc.), with automatic handling of register reads/writes.  But I don't think this should be the only interface presented; some people will want to implement their own non-SMBus protocol, or something else like PMBus or IPMI.

Digging through the I2C register descriptions, I found
/* I2C_SLAVE_RW : RO ;bitpos:[1] ;default: 1'b0 ; */
/*description: when in slave mode  1: master read slave  0: master write slave.*/
#define I2C_SLAVE_RW  (BIT(1))
#define I2C_SLAVE_RW_M  (BIT(1))
#define I2C_SLAVE_RW_V  0x1
#define I2C_SLAVE_RW_S  1

That seems like it would be helpful for determining if the master wants to do a read or write.  But I can't seem to find anything that can tell me about START/RSTART/STOP condition.

After examining i2c_dev_t->slave_rw in the I2C ISR, it doesn't seem like we see everything.  For example, for a SMBus read, the master will send the slave address twice, once first with the rw bit set to "write", and then again with the rw bit set to "read".  But the ISR only sees it getting set to "read".  It's possible that the transition does happen, but the original "write" state doesn't trigger an interrupt, so by the time the ISR runs, it's already seen two of them?
I also found that we get an interrupt when we see a STOP condition, which is useful.  The ISR doesn't seem to handle this right now, but it was simple to add.
(I'm working on a i2c_slave_wait_event() type API as a proof of concept just to see what information I can get out of the ISR.)

Frustratingly, I can't seem to get interrupts on START (or RSTART), even if I enable I2C_TRANS_START_IN_ENA_M.  Perhaps this only works in master mode (though master mode appears not to enable it either), or, from the docs, maybe this only does something when the ESP32 sends a START, not when it receives one (which seems not all that useful to me)?
So I'm becoming a bit worried that it may just not be possible to implement a proper I2C slave on ESP32.

I've been doing some questionable things, like setting GPIO interrupts on the SDA and SCL lines so I can detect START, and then wait another 8 clock cycles to check if the hardware finds our device address, and the read/write bit.  This actually mostly works, though there are some odd cases where I miss a START, and I don't know why yet.
At this point, I'm running into more of the problems @loboris was hitting, mainly the issue where the master is requesting a byte from us, but our TX FIFO is empty, and it's seemingly impossible to provide data to the TXFIFO fast enough, so the master ends up getting garbage data.  The possible solutions I've come up with for this aren't really working reliably, and make for a really awkward API anyway.  I'm beginning to think that this whole "generic I2C slave driver" thing just isn't particularly practical, and @loboris's approach of doing something higher-level and essentially implementing a SMBus "memory" driver is the right approach.  This is unfortunate, but I think might be necessary.
Even then, there are still things that are probably difficult to implement with how this hardware works.  For example, the SMBus "quick" command consists of just:
START -> (SLAVE_ADDRESS << 1) | WR -> ACK -> STOP

The idea here is that it's a super simple request to the slave that doesn't require the master to send any data or the slave to reply with any data.  The only bit of information the slave gets is the state of the WR bit in the address field.  As it stands now, it's still really hard to notify an application of this; AFAICT my ugly hack of setting interrupts on the SDA and SCL lines and counting clock cycles is the only way to do it (and then unreliably), unless I'm missing something.
I'm getting pretty close to giving up here.  My original need for this was to emulate an I2C fan controller IC, because nearly all of the parts I'm finding suitable for my project are out of stock and have 1+ year lead times right now.  But I'm thinking it might be simpler to give up on this idea with the ESP32 and instead buy one of the less-suitable, but still probably workable, fan controller ICs I've found that are actually in stock.

Hi @kelnos, I think the feature you are looking for is not available in the ESP32 I2C hardware. In I2C slave mode, the program running on the ESP32 can't "react" to the address specified in the command. Data to be sent to the master should be loaded into the FIFO in advance, before the command is received. This means that you can't implement an SMBus slave using an ESP32.
Starting from the ESP32-S2, it is possible to receive an interrupt when I2C controller in slave mode matches the address, or when the TX FIFO is empty. The hardware will start clock stretching when this happens and the software has time to handle the interrupt and put the required data into the TX FIFO. There is no support for this mode in ESP-IDF I2C slave driver, though. Support for this was recently implemented in the Arduino project (https://github.com/espressif/arduino-esp32/pull/5746), and we will consider adding this feature when reworking the I2C driver in ESP-IDF.

Ah,  I see.  I guess ESP32 just isn't that useful as an I2C slave device, more it was a "prototype" that was fleshed out with the S2.  Thank you for the reply!

@kelnos One year later, I am encountering this same situation now. What approach did you end up taking?

@igrr When is the planned i2c driver rewrite which would support this functionality on supported hardware?

FYI, I have a completely rewritten slave driver that I've used in an internal project, which handles mostly the things that need to work. I also am working with SMBus on top of it.
See my slave driver here: https://github.com/schveiguy/espi2cslave/
I do not handle nack/ack differences, but maybe it can be added. The key thing is to properly implement the clock stretching, and the interrupt handling.


Client side implementation of edit single multiple answer question

Fixed Issues
#21484, #21485,#21486
Files Changed
QuestionController.cs - Add method to fetch question base on id
IQuestionRepository.cs - Create GetQuestionById() method
QuestionRepository.cs - Optimize logic and solve some issue
Starup.cs - Add automapper
questions-dashboard.component.ts - Add routing for edit question
question-dashboard.html - Add edit button event
questions-single-multiple-answer.component.ts - Add methods to handle edit question
questions-single-multiple-answer.html- Make changes for edit question
questions.service.ts - Add method for edit single multiple answer question
questions.routing.ts - Add route path for edit single multiple answer question
Checks

[X] Naming Conventions
[X] Server side code comments (proper English, grammar and no spelling mistakes)
[X] Client side code comments (proper English, grammar and no spelling mistakes)
[X] Unused variables, methods, blank spaces and name spaces.
[X] Optimal Code and code formatting
[X] Commit History is proper, no merge is done.
[X] Commit/pull request messages should be proper to justify your feature
[X] All test cases are executed provided by tester.

Known Issues
N-A
Comments
anything that you want to convey about this pull request

This change is

SonarQube analysis reported 1 issue

 1 major

Watch the comments in this conversation to review them.


Add documentation to 'python-remove'

Added 'python-remove' function description and usage line
Affects #30

Ok, I will make changes accordingly


Incorrect peer dependency on @pulumi/pulumi

Hello!

Vote on this issue by adding a 👍 reaction
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already)

Issue details
warning " ><EMAIL_ADDRESS>has incorrect peer dependency "@pulumi/pulumi@latest".

I think the issue here is that we're specify @latest for the version. This version should probably be a valid range specifying instead such as ^3.3.1.
Steps to reproduce

Create node project
Add dependencies yarn add @pulumi/pulumi @pulumi/aws-apigateway

Expected: Should complete without warnings or errors
Actual: Prints peer dependency warning

@danielrbradley I am pretty sure we don't have this issue anymore since moving to pkg right?

Don't think that affects it - this just relates to the peerDependency in the package.json of the SDK rather than the provider.


Need guidance: How to preserve study progress when updating decks with Brain-Brew

Current Behavior
I'm using Brain-Brew to generate Anki decks from source files. When adding new questions to my deck:

I update the source files with new questions
Recompile using Brain-Brew
Delete the existing deck in Anki
Import the new deck

Problem
I'm concerned that deleting the old deck before importing the updated version might be causing loss of study progress (card scheduling, review history, etc.).
Questions

What is the recommended workflow for updating decks while preserving study progress?
Does deleting the old deck before importing an updated version cause loss of progress?
Is there a way to merge new cards while keeping existing cards' progress intact?

Additional Context

Using Brain-Brew for deck generation
Creating flashcards from book notes
Need to frequently update deck with new questions

(Not @ohare93, (just a happy user of BrainBrew), so I might be wrong.)

What is the recommended workflow for updating decks while preserving study progress?

Your workflow, but without step 3 (deleting existing deck).

Does deleting the old deck before importing an updated version cause loss of progress?

AFAIU almost certainly yes.  I believe that once you delete the deck (and hence the cards), Anki has no way of preserving the progress. (I haven't tested this, but I'd be  surprised if this were not the case.)

Is there a way to merge new cards while keeping existing cards' progress intact?

Assuming that you have a GUID field in your source files and that you don't change the GUID for the old notes/cards, then just reimporting the new version of the deck should do "the right thing":

Update the old notes with any fixes (typo fixes etc.)
Keep your progress for the old cards.
Add the new cards.

(The GUID is the "id" which allows Anki to uniquely identify the note.)
I hope this helps!

@aplaice is correct (as usual!)
Try it out, and let us know if it doesn't seem to work 👍


Cannot connect to obs websocket server

Added my connection then try to use the connection for a button press obs says somethign is connected but it macro deck says it cant connect

in your log, I would either delete or edit it, because it does show your public ip. People are dangerous and directly showing them your ip only fuels them to do weird things. Just letting you know to be safe out there. I am personally trying to solve this problem myself, so if you find a fix, keep me updated! Have a good one!

@drakosoldier298 have you tried writing it this way  i changed my port to 1000 but default is 4455


Remove <header> in official site

Is your feature request related to a problem? Please describe.
I have to scroll over <header> to read the docs. When I switch tabs, I need to scroll again. It's inconvenient.
Describe the solution you'd like
Remove the whole <header>. The website will look like this:

This content can be added under navigation bar.

I'm not a web developer, this is kind of out of my scope. Should be a simple PR if anyone wants to try it


Error handling -1 positions in BEDPE files

epic2 fails when reading a BEDPE file with a -1 value for a start or end position:
Traceback (most recent call last):
File "/share/pkg.7/epic2/0.0.52/install/epic2_env/bin/epic2", line 257, in <module>
_main(args)
File "/share/pkg.7/epic2/0.0.52/install/epic2_env/lib/python3.10/site-packages/epic2/main.py", line 35, in _main
effective_genome_length, chromsizes = egl_and_chromsizes(args)
File "epic2/src/genome_info.pyx", line 320, in epic2.src.genome_info.egl_and_chromsizes
File "epic2/src/genome_info.pyx", line 136, in epic2.src.genome_info.find_readlength
OverflowError: can't convert negative value to uint32_t

uint32_t types are used to read the start/end positions in genome_info.pyx and read_files.cpp, which of course won't correctly handle a negative value. The BEDPE format allows the -1 value to indicate unknown positions.

start1 - The zero-based starting position of the first end of the feature on chrom1.
The first base in a chromosome is numbered 0.
As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required.
Use -1 for unknown.

Any suggestion on how to handle this?

How should I handle unknown positions? I do not see a way.
It would be better to remove unknown positions first:
grep -v '-1' bad.bedpe > good.bedpe
On Fri, Dec 16, 2022 at 8:18 PM Brian Gregor @.***>
wrote:

epic2 fails when reading a BEDPE file with a -1 value for a start or end
position:
Traceback (most recent call last):
File "/share/pkg.7/epic2/0.0.52/install/epic2_env/bin/epic2", line 257, in
_main(args)
File "/share/pkg.7/epic2/0.0.52/install/epic2_env/lib/python3.10/site-packages/epic2/main.py", line 35, in _main
effective_genome_length, chromsizes = egl_and_chromsizes(args)
File "epic2/src/genome_info.pyx", line 320, in epic2.src.genome_info.egl_and_chromsizes
File "epic2/src/genome_info.pyx", line 136, in epic2.src.genome_info.find_readlength
OverflowError: can't convert negative value to uint32_t
uint32_t types are used to read the start/end positions in genome_info.pyx
and read_files.cpp, which of course won't correctly handle a negative
value. The BEDPE format
https://bedtools.readthedocs.io/en/latest/content/general-usage.html#bedpe-format
allows the -1 value to indicate unknown positions.
start1 - The zero-based starting position of the first end of the feature
on chrom1.
The first base in a chromosome is numbered 0.
As with BED format, the start position in each BEDPE feature is therefore
interpreted to be 1 greater than the start position listed in the feature.
This column is required.
Use -1 for unknown.
Any suggestion on how to handle this?
—
Reply to this email directly, view it on GitHub
https://github.com/biocore-ntnu/epic2/issues/67, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEHURUVVSD7IZTEJR5YPVKTWNS6BVANCNFSM6AAAAAATBMZ6UA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


why  this code only in discriminator, but not in generator?:

why  this code only in discriminator, but not in generator?:
with tf.variable_scope(tf.get_variable_scope(), reuse=reuse_variables) as scope:

I don't remember fully without doing more research, but I think it has to do with the fact that the discriminator gets called through two different loss functions on every training cycle, d_loss_real and d_loss_fake, and needs to keep the same variable scope between them, whereas the generator only gets called through g_loss.
That said, I'm feeling rusty on this project as I glance back over it. Maybe @adeshpande3 remembers?


Internal error during login, jwt.split() with jwt value None

On newer Fedora-based VMs we are seeing frequent but sporadic failures during login using globus_auth providers.
A typical stack-trace looks like:
'got exception "\\'NoneType\\' object has no attribute \\'split\\'" during _db_wrapper()'
['Traceback (most recent call last):\\n',
 '  File "/usr/lib/python2.7/site-packages/webauthn2/util.py", line 519, in _db_wrapper\\n    val = db_thunk(db)\\n',
 '  File "/usr/lib/python2.7/site-packages/webauthn2/rest.py", line 458, in db_body\\n    self.context.client = self.manager.clients.login.login(self.manager, self.context, db, **storage)\\n',
 '  File "/usr/lib/python2.7/site-packages/webauthn2/providers/globus_auth.py", line 50, in login\\n    user_id = oauth2.OAuth2Login.login(self, manager, context, db, **kwargs)\\n',
 '  File "/usr/lib/python2.7/site-packages/webauthn2/providers/oauth2.py", line 308, in login\\n    id_result=self.verify_signed_jwt_with_keys(raw_id_token, keys, self.provider.cfg.get(\\'client_id\\'))\\n',
 '  File "/usr/lib/python2.7/site-packages/webauthn2/providers/oauth2.py", line 457, in verify_signed_jwt_with_keys\\n    segments = jwt.split(\\'.\\')\\n',
 "AttributeError: 'NoneType' object has no attribute 'split'\\n"]

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/web/application.py", line 239, in process
    return self.handle()
  File "/usr/lib/python2.7/site-packages/web/application.py", line 230, in handle
    return self._delegate(fn, self.fvars, args)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 447, in _delegate
    return handle_class(f)
  File "/usr/lib/python2.7/site-packages/web/application.py", line 438, in handle_class
    return tocall(*args)
  File "/usr/lib/python2.7/site-packages/webauthn2/rest.py", line 135, in wrapper
    return original_method(*args)
  File "/usr/lib/python2.7/site-packages/webauthn2/rest.py", line 320, in GET
    return self._login_get_or_post(web.input())
  File "/usr/lib/python2.7/site-packages/webauthn2/rest.py", line 475, in _login_get_or_post
    result = self._db_wrapper(db_body)
  File "/usr/lib/python2.7/site-packages/webauthn2/util.py", line 575, in _db_wrapper
    raise ev
AttributeError: 'NoneType' object has no attribute 'split'

Okay, I'm pretty sure at this point that this is a manifestation of https://github.com/pyca/cryptography/issues/3282
One thing that makes me sure of this is that I've run some tests and found the error messages referenced by that bug on Fedora systems when logins are failing but not when they're succeeding.
This leaves us with two options: try to upgrade to a fixed version of the Python cryptography module, or work around it by using a single global instance of mod_wsgi. @karlcz, what do you think?

Note: those messages are in error_log, not ssl_error_log. And they're not timestamped, so you have to watch the log file while you're attempting to log in.

We determined that we did not previously use the Fedora RPM for python-cryptography but it was getting pulled in on new Fedora 25 builds and interfering with our stack due to that bug in the 1.5 version currently shipped in Fedora.
A temporary workaround is to forcibly dnf remove python2-cryptography from the system before building our stack, so that a different set of third-party libraries are chosen for the pip dependencies in the globus_auth and oauth2 packages.  Once they start shipping version 1.7 of the cryptography package, this may no longer be necessary.


Adding temperature quantities can cause surprising results.

Temperature is not universally zeroed.
0°F ≠ 0°C ≠ 0K
but people expect that

0°C + 0°C = 0°C
0°F + 0°F = 0°F
0°K + 0°K = 0°K

If 0°C === 273.15°K then it would be confusing if 0°C + 0°K = 273.15°K.

One way to think of this is to treat numeric addition as vector extension.
That way when the right operand is converted, you don't adjust for the different base, just for scale.
It would be nice if operator overloading allowed extended numeric types libraries that include temperatures to do this kind of late, scale-only coercion.

Yeah, based on the experience in other languages, I'm highly skeptical of adding a type promotion system to JavaScript.  Probably I should include the rationale for that in the README and also include a units example.
(Do people really want to add non-Kelvin temperatures? That seems totally wrong. I'd want to add a temperature to a temperature interval, I think.)

Do people really want to add non-Kelvin temperatures?

In my (limited, long ago) experience with scientific computation, people don't convert values from external sources unless the language requires it, so you might see something like
const normalTemperature = 20 °C    // NTP per nist.gov at experiment start
const tempRate = 0.05 K / sec  // Just as likely to see 0.05 °C / sec
function temperatureAtTime(t) { return normalTemperature + tempRate * t; }

That seems totally wrong. I'd want to add a temperature to a temperature interval, I think.)

Yeah, you can solve it by requiring a distinct type for the right operand when the left is a non-Kelvin temperature.
In systems I worked on, we did a lot of work to avoid surfacing that in the user-visible portion of the type system.

frown emoji react!

Thanks for the context!


The reduced_tx_set_preset, i.e. speed 6 to 5 does not seem work correctly

The reduced_tx_set is enabled from speed 6 and turned on for higher.
AWCY tells that almost no change in speed and bdrate change.
awcy speed 6 --> 5

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

0.0134
0.1496
0.1244
-0.0204
-0.0201
-0.0270
0.0488

From the code, it seems like the only code where this makes a difference in encoding is in rdo_tx_type_decision, and then it only comes into play if rdo_tx_decision is enabled, which is only at speed <= 4. So it seems like possibly the speed settings for rdo_tx_decision and reduced_tx_set should be flipped?

From the code, it seems like the only code where this makes a difference in encoding is in rdo_tx_type_decision, and then it only comes into play if rdo_tx_decision is enabled, which is only at speed <= 4. So it seems like possibly the speed settings for rdo_tx_decision and reduced_tx_set should be flipped?

That is right and I think I have addressed on this long time ago. However, if we just flip here speed 5,6 become much slower since rdo_tx_decision (even it has tx_size decision part only). So, we probably want to consider this.
Another impact, though almost no change on bitstream size, by changing the reduced_tx_set flag is :  self.write_bit(fi.use_reduced_tx_set)?; // reduced tx
Currently:
,,,reduced_tx_set_preset(speed: usize) -> bool {
speed >= 6
}
do_tx_decision_preset(speed: usize) -> bool {
speed <= 4
},,,

As I have reported in #1706, there it biggest coding gain gap -6.42 between speed 4 and 5 (caused by tx_rdo), I proposed to spread out this big gap to two speed levels by changing presets for reduced_tx_set and do_tx_decision as below:
reduced_tx_set_preset(speed: usize) -> bool {
speed >= 5
}
do_tx_decision_preset(speed: usize) -> bool {
speed <= 5
}
So, tx_rdo is enabled for speed 5 but w/o tx_type rdo.

Sounds good to me :+1:

Running the suggested solution on AWCY to ensure proper balance. Will submit a PR with it if it offers a good tradeoff or adjust parameters otherwise.

I have just fixed the last sentence as : "So, tx_rdo is enabled for speed 5 but with "reduced tx_type set".
In summary, current master does not do tx_rdo at speed 5. Proposed change is to do tx_rdo at speed 5 but with reduced tx_type set by revised reduced_tx_set_preset( ).

Speed 4 with the proposed change has weird results, as BD rate worsens in addition to the speed reduction.
https://beta.arewecompressedyet.com/?job=master-s4%402019-10-10T21%3A22%3A48.151Z&job=s4-txset%402019-10-17T16%3A41%3A18.532Z


Cant login

Hi
I just update our IPT to Version 2.5.2-rf5107ce from 2.4.0.
It works fine except I can't log in. Wrong pass or user!
In datadir/logs/admin.log comes:
WARN  03-Dec-2021 11:52:05 [org.gbif.ipt.action.AccountAction] - CSRF login token wrong! A potential malicious attack.
thanks . Hóddi
<EMAIL_ADDRESS>

Uuups
Sorry
I can now.
Ignore the other message
Hóddi


Add stdc++fs lib

close: https://github.com/apache/kvrocks/issues/1939

It is somewhat difficult to determine the versions of gcc/clang/libstdc++/libc++. We can first fix the case for gcc8, and then set a minimum version limit of 13 for Clang @PragmaTwice


update builder image and cosign

Summary

update builder image and cosign

will cherry pick to the 1.0 fork branch as well

Codecov Report

Merging #2407 (7e64023) into main (a70bb28) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #2407   +/-   ##
=======================================
  Coverage   30.10%   30.10%
=======================================
  Files         136      136
  Lines        8451     8451
=======================================
  Hits         2544     2544
  Misses       5578     5578
  Partials      329      329

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


Update the lava testnet2 rpc

I think we'll deal with that in this PR: https://github.com/cosmos/chain-registry/pull/2700

I think we'll deal with that in this PR: #2700

Thank you


Possible incorrect dependencies on conda-forge for tsflex 0.3.0

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
See https://github.com/predict-idlab/tsflex/issues/114 as reported by @DManowitz & @tumbak
Installed packages
/

Environment info
/

@DManowitz & @tumbak - feel free to comment further on your installed packages and environment info!


Add most popular messages to group chat output stats

Add top N most popular messages (messages with most reactions) in a group chat to the output stats

nah


[assets] folder recommendation updated

Minor content update to the experimental assets page.
Updates the suggestion to use store images in src/assets/ to be strong-ish, with a reason, but clearly optional.
Also removes suggestion that images MUST be in this folder to work in component files and Markdown.

Merging to correspond with Assets day! Can always PR adjustments!


add regression test for PEP 587

To follow up #2371
Adds FFI definition Py_ExitStatusException so I can write the test.

Might need to unpin to 3.11 beta 1.


API changed for 1.20.0

Hi,
My powerwall upgraded to 1.20.0, and my code no longer runs.  Any ideas?
$ curl -s http://${powerwall_ip}/api/system_status/soe
Moved Permanently.
$  curl http://<IP_ADDRESS>/api/meters/aggregates
Moved Permanently.

Actually, it looks like http was previously acceptable, but now https is required.

I had the same problem since update of my Powerwall2 to 1.20.0 last week.
My python scripts to retrieve the data from the powerwall did not work any more.
I also found that https is now required, but when I tested it via Firefox,
Firefox complained the connection (in my private home network) was not secure:
"powerwall uses an invalid security certificate.
The certificate is not trusted because it is self-signed.
Error code: SEC_ERROR_UNKNOWN_ISSUER".
So I had to grant a "security exception" and everything went fine, as before.
To verify this, have a try e.g. with the (Linux) command line (where "powerwall" is the hostname or IP address of the Powerwall):
wget https://powerwall/api/system_status/soe --no-check-certificate
or
wget https://powerwall/api/meters/aggregates --no-check-certificate
Good luck!

For now I’ve switched to using curl -sk for my bash Powerwall->Influx scripts, and using https: instead of http:.  Will see if there’s any way to authenticate at a later date.  Glad it was such an easy fix.

It looks like the change to 1.20.0 has affected login credentials too.  http://{$ip_addr}/api/login/Basic returns nothing.  Switching to using curl -k and https gives {"code":401,"error":"bad credentials","message":"Login Error"}.  When I try to log in via the wizard via a web browser, the old method also fails.

I've been told (but not tried - I'm still on 1.15.3) that {"username":"installer","password":"???????","email":"email@email.com","force_sm_off":false} works to log in.  @karllmitchell can you try a login with an additional email and advise if that works?

Just did:
curl -k -H 'Content-Type: application/json' -X POST -d '{"username'"${username}"'", "password":"'"${serialno}"'", "email":"'"${email}"'", "force_sm_off":false}' https://${ip_addr}/api/login/Basic
I tried every combination of the following:
usernames tried: installer, Installer, customer, Customer
passwords tried: Tesla password, gateway serial number with an S in front, reset password from wizard
email tried: personal email address only (same as Tesla login)
In each case, it was the same result:
{"code":401,"error":"bad credentials","message":"Login Error"}
Let me know if you see anything wrong.

Specifically, setting username to installer worked.  However, email was not required.

v1.20.0 made its way onto my Powerwall today. It's been a battle, but I'm making progress.
In regards to dealing with the certificate with Windows, there's a few steps:

Edit your local security policy and navigate to Computer Configuration / Windows Settings / Security Settings / Public Key Policies / Certificate Path Validation Settings. On the 'Stores' tab, tick both 'Per user certificate stores' and ensure the 'Root certificate stores' radio button is selected as 'Third-Party Root CAs'

Import the Certificate from your Powerwall into your Trusted Root Certification Authorities local certificate store

Edit your hosts file in Windows\System32\Drivers\Etc and add the host alias 'powerwall' for your Powerwall's IP address; ie:
<IP_ADDRESS> powerwall

Now when accessing your Powerwall by https://powerwall you don't get any certificate errors and you both trust the certificate and are using a valid common name. The subject alternative names 'teg' and 'powerpack' are also listed in the certificate and could be used instead.
Still not figured out why Invoke-WebRequest in Powershell isn't playing ball...

@karllmitchell I still get 401 Bad Credentials. Have tried it with no email defined at all, email defined as "" but nothing seems to work.
I was able to log in initially using the serial, but then it gave me a new password. I can log into the WebUI as installer using the new password.
curl -s -i -X POST -H "Content-Type: application/json" -d '{"username":"installer","password":"4d#SDwq8","force_sm_off":true}' https://powerwall/api/login/Basic
Anyone have any ideas? @BJReplay @vloschiavo

I'm running Gateway version 1.20 and have just got a raspberry pi running stretch, to pull the State of Charge, (soe) and write it to a file.
$ wget -q -O soe --no-check-certificate https://<IP_ADDRESS>/api/system_status/soe
Quiet operation, ignore certificate and (re)write to file "soe"
$ cat soe
{"percentage":39.1497885599822}

Thanks, AmateurCritic
I used a Node-Red command based on your suggestion
wget -q -O /root/.node-red/soe --no-check-certificate https://<IP_ADDRESS>/api/system_status/soe
Then I read the file after 2 seconds, checking the exit code of the wget

Hi,I'm struggling here. my powerwall is running <IP_ADDRESS> but when I use curl command below:
curl -k -s -i -X POST -H -v "Content-Type: application/json" -d '{"username”:”installer”,”password”:”*********”,"email”:”myemail@mydom.com",”force_sm_off":false}' https://192.168.x.xx/api/login/Basic
I get {"code":401,"error":"bad credentials","message":"Login Error"}
I've tried the gateway sticker password, the password created by the web interface
no user and "installer" as user. I have tried the command from my mac and linux (raspbian) all with the same results.

Try with empty string or null for email
On Sun., 18 Aug. 2019, 10:10 pm enginehead-tes<EMAIL_ADDRESS>wrote:

Hi,I'm struggling here. my powerwall is running <IP_ADDRESS> but when I use
curl command below:
curl -k -s -i -X POST -H -v "Content-Type: application/json" -d
'{"username”:”installer”,”password”:”*********”,"email”:”myemail@mydom.com",”force_sm_off":false}'
https://192.168.x.xx/api/login/Basic
I get {"code":401,"error":"bad credentials","message":"Login Error"}
I've tried the gateway sticker password, the password created by the web
interface
no user and "installer" as user. I have tried the command from my mac and
linux (raspbian) all with the same results.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vloschiavo/powerwall2/issues/9?email_source=notifications&email_token=AJB3YI2XUB6N3EXK2EH4DTLQFE34NA5CNFSM4FIBG2G2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4Q6TQA#issuecomment-522316224,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJB3YI6Q3LEJQN7L7GB7FWLQFE34NANCNFSM4FIBG2GQ
.


The path for pedersen_params.json is broken.

https://github.com/dontpanicdao/caigo/blob/9b016d75d4eb4dbe98a1a124edb4396daa693979/curve.go#L111
The correct path should be:
https://github.com/starkware-libs/cairo-lang/blob/master/src/starkware/crypto/signature/pedersen_params.json

This issue should be fixed. If needed, pls contact us on the discord #🦦 | caigo channel.


If boolean configuration flags are set hardcode them to "true"

What this PR does / why we need it:
I've noticed a few places where it's not possible to set boolean flags. I've been working around this in various ways, and I'm not sure if what I've done here is the correct fix. I'm pushing it up speculatively in any case while I await an answer on https://discuss.concourse-ci.org/t/web-worker-environment-variables/727 . I miss the slack :(

/close


Restoring default usage of content-type for PUT.

Using an empty string results in errors from the API when attempting to rename
a file using the PUT method. Defaults to application/json.

...but this fix breaks uploads.


AB#5035

Proposed changes

Related issues

Checklist

[x] I consider the submitted work as finished
[x] I tested the code for its functionality
[ ] I wrote test cases for the relevant uses case
[ ] I added/update the relevant documentation (either on github or on notion)
[ ] Where necessary I refactored code to improve the overall quality

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

Looks good, @DallasP9124 @r-joyce please review and merge.

@r-joyce good


added sorting by multiple keys; replaced Outlook API provided sort wi…

…th JS implementation
Here's my shot at providing sorting by multiple keys as requested in issue no #11
Outlook's Sort implementation was not up to the task. While it can sort by multiple keys by simply concatenating them (undocumented feature BTW), you can only globally chose the direction to sort. As properties of a task have differing "natural ordering" (e.g. subject ascending, priority descending) I had to replace it to get the required behavior.
The configuration format has also changed in the process. Since the sort feature was introduced only recently, I felt it was OK to do the breaking change, and not care for backwards compatibility.
The keys available for sorting are the properties as defined when the TaskItems are transferred over to the sorted array. i.e.:

entryID
subject
priority
startdate
duedate
sensitivity
categories
notes
status
oneNoteTaskID
oneNoteURL

Default sort order for each key is ascending. Prefixing a key with '-' will sort in descending order for that key (only). I have adjusted config.js so that the behavior is as before, but based on the new configuration scheme.

Looks good Michael, thanks. I was going to do same but didn't have time to check Outlook API vs Java based sorting options. I will update the documentation later.


feat(lsp): goto implementations for trait methods

Considering snippet below
trait Fieldable {
    fn to_field(self) -> Field;
}

impl Fieldable for u32 {
    fn to_field(self) -> Field {
        let res = self as Field;
        res * 3
    }
}

fn main(x: u32) {
    assert(x.to_field() == 15);
}

User should be able to navigate to implementations of to_field when on that symbol of line     assert(x.to_field() == 15); which should result in navigation to     fn to_field(self) -> Field { symbol of impl Fieldable for u32.

This is working through functions navigation.


[Bug] Off-chain actors become unresponsive and consume CPU

Objective
Investigate and resolve intermittent high CPU usage in AppGate (including Gateway) and RelayMiner causing unresponsiveness and E2E test disruptions.
Origin Document
This issue has been observed during E2E testing, where AppGate and RelayMiner occasionally become unresponsive and consume 100% of their allocated CPU resources. This behavior frequently disrupts our E2E tests.
Related to #621
The pprof snapshots are included in the comment below.
Goals

Identify the root cause of the high CPU usage in AppGate and RelayMiner
Implement a solution to prevent or mitigate the unresponsiveness issue
Improve the stability and reliability of our E2E testing environment

Deliverables

[ ] Evaluate the pprof snapshots
[ ] If necessary, add more debug logging output and metrics to help catch the issue
[ ] Merge in a fix and monitor for this behavior in furute

General deliverables

[ ] Comments: Add/update TODOs and comments alongside the source code so it is easier to follow.
[ ] Testing: Add new tests (unit and/or E2E) to the test suite.
[ ] Makefile: Add new targets to the Makefile to make the new functionality easier to use.
[ ] Documentation: Update architectural or development READMEs; use mermaid diagrams where appropriate.

Creator: @okdas
Co-Owners: @red-0ne

A zip file with pprof snapshots from an appgate that experienced this issue: appgate.zip
Each pprof file can be open like this:
go tool pprof -http=:3333 block_profile.pprof

I just observed a DevNet not handling relays, but also not using up all available CPU. That means the symptoms are not related. I'll keep that ticket for CPU consumption and open a separate one for hanged relays.

Path will be a separate project now, no need to troubleshoot the appgate
Haven't seen this in relayminers lately. Will re-create if I do.


Readme issues

The README.md has some minor issues

Missing mod in first line
F8 key specification in settings uses backtick(`) instead of the <code> tag
Possible rewrite of what Damage does?

Fixed in #6


As a publisher I will decide for myself whether an image should have alt text or not depending on if it's presentational or not

How could we achieve and avoid a lot on empty alt tags that should have had an alt text. How much noise will this generate with tools like Axe. How can we explain this in an optimal way inside the Studio. Should we at least use a warning?
Acceptance criteria

[Criteria 1]
[Criteria 2]

In order to ensure good quality we should (Keep the ones we need for this US)

[ ] Perform integration testing
[ ] Perform functional testing
[ ] Extra focus on usability
[ ] Test for portability
[ ] Test for accessibility
[ ] Create automated acceptance test/smoke test
[ ] Perform performance and load test
[ ] Perform user testing
[ ] Perform security testing

@nicholas-haggerty @meols
Added a switch to the image component where you can set an image as being decorative - disabling the requirement for an alt tag. If the image is set as decorative it will render an empty alt tag like alt="" in the web in compliance with the accessibility guidelines.

@SvSven Looks great. Liking the Gif too!


Consider using NFS mounts instead of osxfs

As you may know or experience by yourself volumes mounted by Docker for Mac's osxfs provide slow I/O performance. There is a lengthy topic about this at the Docker Forum.
Even if osxfs seems to do well reading files using the cached configuration it still is slow at writes compared to NFS. Also - as I understand it - cached may have it's drawbacks like delayed synchronisation of host changes to containers.
Are there any plans to use NFS mounts instead of osxfs which seems to be possible since Docker for Mac (around) 18.04? Or is it just not worth it because cached already works well enough?

Oh, I didn't know Docker for Mac shipped NFS support<EMAIL_ADDRESS>has some interesting setup stuff to look into. In any case, it might be worth playing with. Thanks for the heads up!

I'm also hit by poor osxfs performance on maxos. Any alternative like nfs or rsync base synch would be very appreciated.

related issue: https://github.com/drud/ddev/issues/835


prevent frustrating death situations

Is your feature request related to a problem? Please describe.
its kind of annoying when i trying to walk backwards and i end up just pulling the mob im trying to get away from, to me
Describe the solution you'd like
maybe add a config option to make the entity take vanilla's knockback when the player is walking backwards?
Describe alternatives you've considered
when walking backwards, just dont deal knockback at all, though i think i would prefer my other solution
Additional context
i get this is literally the whole point of the mod, but this would actually make the mod good for general play!

Thanks for the feedback, when I get to time to update it I will consider your issues. Should be a pretty easy fix.


Visibility support.

It seems like this adapter does not support visibility. There's a NotSupportingVisibilityTrait trait you can use which throws the expected exception when setVisibility is used.

is visibility something that should work both with folder and files, or files only? i think at least for files, i could actually store that information. what is visibility supposed to do? remove the files from the directory listing calls?

@dbu it's file only.

@frankdejonge just to make sure i understand correctly:

setting visibility is only possible for files, not folders.
visibility is supposed to affect the listContents method by hiding files that are private
(and if the underlying storage knows that concept, it would be reflected there - for phpcr this is not the case, but we can store any metadata along with the file, including this data)

@dbu point 1 is correct. The visibility does not affect listContents, all files are listed. Storing metadata is possible through the api, by passing it in the Config, but it's not the primary reason it's there. Metadata can be retrieved through the getMetadata call and may have that additional metadata.
Does that clear things up?

@frankdejonge thanks. almost there - the thing i still don't get is what visibility private has as effect. is that just something to write and read back, but has no effect on the adapter behaviour?

@dbu this basically only affects direct access to the filesystem. For instance, when using a local filesystem (which can be the webroot) the file can be private to restrict it from being accessed over http. The same goes for S3 assets, which can be accessed over http too. By setting it to private, it's basically saying "don't access it in the fs directly".

@frankdejonge i feel slow (maybe still too much wurst) but: how would the local filesystem handle this information? i know about file ownership and the permissions for owner, group and all, but i would not know how to mark a file in the filesystem to not be read by apache/nginx/whatever.
is this something that the Filesystem class of flysystem is using or is it supposed to be a built-in feature of the underlying storage system?

@dbu for the local filesystem it's basically a chmod, not a chown, which has the desired effect. Maybe we can turn this around. I'm not super familiar with phpcr... Is there a way to access the filesystem you're manipulating directly? Does it expose itself over http (without an API in between)? If not, visibility is not really something you have to be concerned with. If it does, is there a way to say "the public access is restricted or allowed" then this should be reflected in the adapter.

@frankdejonge okay, get it now i think. PHPCR itself is only an API, so no direct HTTP access to it. so i will add the trait as a solution. thanks!