Separating visitation logic from the performed action on the node

Is your feature request related to a problem? Please describe.
I'm trying to formulate in my head a feature that would make it implicit to visit sub-nodes in the visitor.
For example, let's say I'm writing a symbolic resolver, I'd need 2 phases:

First, I'd declare all top-level symbols that are order-independent.
Then, I'd define and resolve the remainings in the same step (define order-dependent, resolve all)

Right now, I could write something like so:
[SyntaxTreeVisitor(typeof(Ast), MethodName = "Phase1")]
[SyntaxTreeVisitor(typeof(Ast), MethodName = "Phase2")]
public partial class SymbolResolution
{
    public SymbolTable Resolve(Ast program)
    {
        this.Phase1(program);
        this.Phase2(program);
        return /* ... */;
    }

    // Function definitions are order-independent, define them
    protected void Phase1(FunctionDef def)
    {
        // TODO: Define function symbol

        // We need to manually visit every subnode of FunctionDef here
        foreach (var param in def.Parameters) this.Phase1(param);
        this.Phase1(def.ReturnType);
        this.Phase1(def.Body);
    }

    // Variable definitions are order dependent
    protected void Phase2(VariableDef def)
    {
        // TODO: Define variable symbol

        // We need to manually visit every subnode of VariableDef here
        this.Phase2(def.Type);
        this.Phase2(def.Value);
    }

    // Identifiers need a symbol in phase 2
    protected void Phase2(Identifier ident)
    {
        // TODO: Resolve a symbol for the identifier
        // Identifier has no subnodes fortunately here
    }
}

The thing is, we duplicated the default visitation behavior 2 times (once in Phase1(FunctionDef def) and once in Phase2(VariableDef def))! And this could be worse for more complex trees.
Currently, we could solve this by having a separate visitor base-class and just call base.PhaseX(y) at the appropriate places. I have some concerns with this (with various degree of importance):

It is error-prone: I can forget to call it
It is noise: It's not strictly about this node
I don't necessarily want to create a one-time use base-class for this very specific thing

Describe the solution you'd like
I'd somehow want to annotate, that I need the default behavior injected, even when I don't have a base class.
Describe alternatives you've considered
I have thought a few alternatives.

Generate a base implicitly, if there isn't one. This only partially solves the problem. It will make it possible to fall back to the default behavior, but the call would still be explicit.

Generate a [MethodName]_Fallback for all methods with the default behavior. This slightly improves on the previous alternative by eliminating the need of base-classes at all. The explicitness still remains.

Tell in [SyntaxTreeVisitor(...)], that the default behavior should be called. We could even make multiple options, like VisitChildren.Before, VisitChildren.After and VisitChildren.Explicit that would annotate when to visit children (before the custom visitation, after it, or the user will call it explicitly). These could be overriden case-by-case, just like the ReturnType property.  This would eliminate all explicitness. Note, that implementing this might be hard, error-prone, or straight up impossible. (see next section)

Have an option to generate method calls to simple leaf functions, that are called inside the default-generated visitor methods. Ordering could be maintained with the above idea. An example usage would be:

[SyntaxTreeVisitor(typeof(Ast), MethodName = "Phase1Visit", LeafMethodName = "Phase1")]
[SyntaxTreeVisitor(typeof(Ast), MethodName = "Phase2Visit", LeafMethodName = "Phase2")]
public partial class SymbolResolution
{
    protected void Phase1(FunctionDef def) { /* TODO: Define the symbol */ }
    protected void Phase2(VariableDef def) { /* TODO: Define the symbol */ }
    protected void Phase2(Identifier ident) { /* TODO: Resolve the symbol */ }

    // The generated Phase1Visit and Phase2Visit methods call these Phase1 and Phase2 methods
}

For custom positioning of the leaf-call, we could still override the visitor methods themselves. For the trivial beginning and end cases, the idea from alternative 3 could be used.
Problem with the third alternative
While the third alternative - at least to me - looks like the neatest and most comfortable option, I am not yet sure, if it's implementable. We would need to essentially inject an extra call in the user-defined functions, but Source Generators can't modify existing code. I have not yet found any sensible way to do this yet.
A short summary
I feel like what I'm trying to do is trying to factor out the structural walk from the action we want to perform on the node. There might be a better way to do this, I might have just not figured it out yet. Many times I need to walk the tree, but I don't want to write the tree-walking part, as that seems like another responsibility, that does not belong to the thing I'm doing.

I am not entirely convinced by this, and this is because implicitly traversing the children only works well in some situations, but not all of them. This means the user needs to be capable to choose when it wants this behavior with enough expressivity to be able to express any visitor without more limitations than it would have while using plain C# (ideally).
To be more specific, two important and common situations make it undesirable for the user to desire the visitor to implicitly visit the children of the visited nodes, or make the implementation impossible if we consider the desired expressivity:

The visitor methods do not return void. ln this case, the user will want to write an expression that gathers the visit values (why specificy a return value otherwise?), and this necessarily implies making the calls inside the function controlled by the user, as part of the behavior. Example:

public partial class PrettyPrinterVisitor {
  //...
  public string Visit(Expression.Binary expr) => $"(binary: {Visit(expr.Left)} {expr.Op} {Visit(expr.Right)})";
}

Here, traversing implicitly after (or before) this function is not adequate: the user already indicates what children to visit and how, in a natural way that allows for efficient combination of the results.

I feel like in many passes the user will be searching for some subtrees in particular. If we're in a function node, maybe we only need the name and then we want to bail. In how many cases does the user wish to always visit all the children of every node visited?

Furthermore, we risk introducing silent performance degradations, as if the user naturally and intuitively specificies they desire for the children to be visited (as is natural in a visitor and expected in a recursive function) some children (or all of them) would be visited twice.
So, one thing clear, we need the user to specific explicitly they want us to visit the children of a node for them, like this:
    // Function definitions are order-independent, define them
    protected void Phase1(FunctionDef def)
    {
        // TODO: Define function symbol

        // We need to manually visit every subnode of FunctionDef here
        VisitChildren();
    }

This need already solves the order and other details, so no need for VisitChildren.After or anything similar. I feel like this is overengineered. In my opinion, the only alternatives that don't harm expressivity and are intuitive are the following ones:

Base class: intuitive, but as you said, it introduces a super-class. I don't think it is that horrible, personally. It could be stated in the docs that you can optionally use an empty abstract base class to preserve the default functions alongside your custom ones, with the option to call the default from your one, like this:

    protected void Phase1(FunctionDef def)
    {
        // TODO: Define function symbol

        base.Visit(def); // Very intuitive: delegate behavior to `base` = follow the default behavior = visit the tree for me
    }

This has the advantage of using the same implementation rules (implement the ones not written already), as the abstract base class is empty.
Question: what if the visit methods do not return void? What does base.Visit(...) return then?

"Fallback" method: leaving aside the fact I don't really like the "Fallback" name (maybe DefaultBehavior is better?), this introduces the problem that you will be always generating a copy of all method even if it is not necessary, unless you add an annotation (GenerateDefaultBehaviorMethodsAttribute?) to control this, introducing even more complexity. But you would avoid inheritance, if that is important.

In summary, I like the base class alternative as it adapts elegantly into the streamlined generation rules we already have: the methods not written are provided. A mechanism of the language itself, which is already implemented in CSC for us, allows the user to delegate control to the default behavior taking care of all the details, such as order and expressivity. However, this proposed solution is only well defined for the case where the return type is void.


Question consultation

Dear authors:
Recently I  have looking your this project and feel interested in it !could have a introduction, like paper or tutorial of this project?  Thanks a lot! I am looking forward to your reply Sincerely!
Best regards.

.


Netlify form submission does not work

Hi there,
I love the template and am building something for a ocnference off the back fo it. I noticed that I cannot seem to get native Netlify forms to work. I do not get a default response message either from the native form.
Request Header
Host: naughty-galileo-cdca15.netlify.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://naughty-galileo-cdca15.netlify.com/
Content-Type: application/x-www-form-urlencoded
Content-Length: 75
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Response Header
HTTP/1.0 200 Connection established
cache-control: public, max-age=0, must-revalidate
content-type: text/html; charset=utf-8
date: Thu, 13 Sep 2018 09:54:26 GMT
etag:<PHONE_NUMBER>-ssl
age: 1
server: Netlify
x-nf-request-id: 6fa8e058-568a-46d4-a717-0efe00e00e70-28754067
X-Firefox-Spdy: h2
I am a newbie to gatsby and netlify so apologies if there is something basic missing but help would be appreciated.
URL: https://naughty-galileo-cdca15.netlify.com/

Hey John, I just tested the Netlify forms with this version and it worked for me. Looking at your site, it doesn't look like your <form> tag is correct. You'll need to make sure to include the data-netlify="true". It should look like this:
<form name="contact" method="post" action="/success" data-netlify="true">

In this example, you'll also need to make a new page called success.js that will act like the thank-you page.

Thanks for the feedback. I've tried several ways of including the data-netlify tag. I used your example and created a success page also, which seems to work. However the message itself does not get sent - only the success page.
I do not get this issue with V1 and have set up an instance here. which works perfectly.

That's strange, the version of Gatsby should have nothing to do with how Netlify forms work. You might want to try clearing your browser's cache or visiting the V2 site in an incognito view and see if that works. Do you have the code on Github somewhere?

You can also try and clone this repo https://github.com/codebushi/gatsby-forms which is the one I used in my demo. Try making a new site with that on Netlify and see if the forms work for you.

My repo is here: https://github.com/johnmeredith/interop-live

I cloned your repo and hosted it on Netlify and it was indeed not working. I then added the honeypot field and it started to work. Not sure why this is, maybe the other form was being treated as spam by Netlify? Anyways, I've created a pull request on your repo with the honeypot field, hopefully it starts working for you after that.

Thank you for your help - this is working great.  The only problem is that I redid the site in V1 ;-) Now I'll have to add the changes back into v2...
Great job though. Much appreciated.


[Question Help Wanted] TwilioVoice with Custom PushKit

We had already integrated TwilioVideo and TwilioVoice in our application with Our Logic of Push.

Front: iOS/Android
Back: NodeJS

We have achieved the following things so far

Client to Client Call (iOS to Android and vice versa) with Room mechanism of TwilioVideo
Client to PSTN call (iOS/Android to the mobile number via purchased number) using TwilioAudio

Now we are building the IVR flow where a customer will call on the number and we will route them using Rest API on Node JS and here we have to connect our Support staff(An agent who is either on Android or iOS).
So if we use the Twilio Push service we can register the client and bind the access token on the Twilio server and from there we can provide "client:55" and place a call.
But we want to use our mechanism of sending push to iOS/Android users without relying on the Twilio Push service because we want all control on our Socket server as logic was already implemented.
Any Help?

Hi @hardikdevios Thanks for reaching out.
It sounds like Twilio Call Queuing could help solve the design you are trying to achieve -

A call to a client identity will be queued by your TwiML application
You can then use whichever communication channel (socket, custom push notification, etc) to notify your mobile client with the queued call information
Use TwilioVoice.connect() to dial back to the queued call

Some discussion from a previous thread.
Please note that your application is now responsible of handling the lifecycle of the "incoming call" to the mobile client, i.e. notifying the mobile client the time that an incoming call is received as well as the time when the incoming call has ended (hung up by the caller or timed out)
-bobie

@bobiechen-twilio
Thanks for the support, I will try that out and will let you know for sure. I will auto close this issue in few days. one question form the link which you have provided
const response = new VoiceResponse(); response.enqueue({     waitUrl: 'wait-music.xml' }, 'support');
wait-music.xml here is the default one or we can pass any custom XML there?

Hi @hardikdevios
Yes, you can pass a custom TwiML for waitUrl: https://www.twilio.com/docs/voice/twiml/enqueue#attributes-waitUrl

Hi @hardikdevios
There hasn't been any update for a while so I am assuming things are working.
Closing the issue for now but please feel free to reach out to us any time.
Cheers,
-bobie

Hi @hardikdevios
There hasn't been any update for a while so I am assuming things are working.
Closing the issue for now but please feel free to reach out to us any time.
Cheers,
-bobie

@bobiechen-twilio
Can you please provide the information on how to dial the queue from iOS Swift Application? Here is the sample code that I am trying
        let connectOptions = ConnectOptions(accessToken: request.token) { builder in
            builder.params = ["to": request.phone!, "room": request.room]

            //builder.params = ["queuename":"support","room": request.room]
        }

        // Connect to the Room using the options we provided.
        call = TwilioVoiceSDK.connect(options: connectOptions, delegate: self)

Hi @hardikdevios
Your server endpoint, which is pointed by the URL of the TwiML App SID embedded in the access token, should look for to and room from the request parameter list and use the value(s) to determine what is the TwiML response to be returned. In this case, dial to a queue: https://www.twilio.com/docs/voice/queue-calls?code-sample=code-dialing-a-queue&code-language=Node.js&code-sdk-version=3.x

@bobiechen-twilio Thanks will try and let you know


WoS import cuts keywords up because of newlines in import

Bug description
WoS import cuts keywords up because of newlines in import
Steps to Reproduce

Go to https://www.webofscience.com/wos/woscc/full-record/WOS:000963572100001(overlay:export/exp) and download the publication (see attachment) savedrecs.txt
Go to backoffice biblio test and upload the publication https://backoffice.bibliotest.ugent.be/publication/01H2Q7F9EJ8MZPT497N0BDMRX3?redirect-url=%2Fpublication
See the keywords getting capped:

Testosterone treatment
in vitro maturation
FERTILITY PRESERVATION

Check out the WoS download and see that the capped keywords are on newlines

Expected behavior
Keywords import reflects our import source.
Automatic testing scenario
@verheyenkoen Should we define which fields are imported and how they are mapped per type we allow for import?
Risk classification
Likelihood
How often does this happen?
2: Probable
Consequences
What's the impact?
2: Critical
Core of our tooling: incorrect information, only once principle

newlines are probably not what was intended. Replace by space?

Test added in commit 924abbe50166ee8d9837769acdbce9b3ef072654 on branch issue-1123. Merge in dev when fixed.

@mietcls @nics discovered that this also applies to other keywords, like abstracts. See the end of that abstract.

@nicolasfranck will yo fix it?

yes


Do you support init.lua?

As title.

Not an official answer, but:
I have my nvim configured with lua-scripts and an init.lua and it is working flawelessly.
Little tip:
User if(not vim.g.vscode) to configure stuff that is only supposed to happen when running nvim natively.

I tried the conditional if (not vim.g.vscode) then ... and everything kinda works except that the plugins are still used. I don't want my plugins to be integrated with vscode, any solutions?

Hmmm does not happen for me.
I am using packer and i also wrapped the init of those plugins I do not want in the condition above.
E.g. I installed the base64-plugin and did the following:
if(not vim.g.vscode)
  then
    local base16 = require "base16"
    base16(base16.themes["solarized-dark"], true)
end

Works quite well - but I am not a lua config or packer pro. I mainly use nvim in VSCode right now so it might not work for every plugin like this.

packer has the cond option that you can pass to optionally load a plugin. I found the disable didn't work for dynamic variables.
For instance I have
use {
  'vimwiki/vimwiki',
  setup = [[require('config.vimwiki')]],
  cond = function() return not vim.g.vscode end
}

to only load vimwiki if not in vs code

@lbowenwest Thanks for your sharing! I will definitely try it later!

something I ran into that might be helpful to others -
It does not seem like setting Neovim Init Vim Paths (vscode-neovim.neovimInitVimPaths.darwin) explicitly to an init.lua worked.
However, if I just left the setting blank, it picked up my ~/.config/nvim/init.lua.

Sadly it doesn't work with packer.nvim because it compiles config. I couldn't make it work. Now I thinking why vscode-neovim.neovimInitVimPaths.darwin doesn't work as it suppose to.

I found out that any plugin in site/pack/*/start/* will be autoloaded. I thought that it is impossible, but packer allows make plugins optional which places them into site/pack/packer/opt. But you can't just write require('packer').loader('plugin_one', 'plugin_two') after startup function. So I thought to use autocmd for it. And it actually worked pretty well:
if (vim.g.vscode) then
  vim.cmd([[
    augroup packer_load_lazy_vscode_plugins
      autocmd VimEnter * PackerLoad vim-sandwich
      autocmd VimEnter * PackerLoad vim-easymotion
      autocmd VimEnter * nmap <C-j> <Plug>(easymotion-j)
      autocmd VimEnter * nmap <C-k> <Plug>(easymotion-k)
    augroup end
  ]])
else
  vim.cmd([[
    augroup packer_load_lazy_plugins
      autocmd!
      autocmd VimEnter * PackerLoad vim-sandwich
      autocmd VimEnter * PackerLoad autocmd-lua
    augroup end
  ]])
end

require('packer').startup(function(use)
  use {
    -- Package manager
    'wbthomason/packer.nvim',
  }
  -- all other plugins should be optional

end

@chrisands
TL;DR: Thanks for the info.
I asked this on Nov. 6, and never try it. Now I realize that it was a wise choice, since I has been using packer for so long.

I can't get vscode-neovim to respect my init.lua. Doesn't matter if I link the file in vscode settings or leave it blank. Only loading keymaps, too.
if (vim.g.vscode)then   require "user.keymaps" else  ... end
But keymaps don't work.
Can someone help ?

I tried amrox's solution, works for me.  Hope this helps
 if (vim.g.vscode) then
    -- VSCode extension
    vim.cmd([[source XXXXX.vim]])
else
    -- ordinary neovim
  ...
end

FYI currently there is issue which breaks optionals loading https://github.com/wbthomason/packer.nvim/issues/865
But you can use fork until it is merged
require('packer').startup(function(use)
  use({
    -- Package manager
    "ifplusor/packer.nvim", -- using fork with branch that fixes loading issue
    opt = false,
    branch = "fix-sequencing",
  })

  use({
    -- Fancier statusline
    "nvim-lualine/lualine.nvim",
    opt = true, -- Plugin required to be optional to use condition
    cond = function()
      return not vim.g.vscode
    end,
    after = { "onedark.nvim" },
    requires = { "kyazdani42/nvim-web-devicons", opt = true },
    config = function()
      require("lualine").setup()
    end,
  })
end

@lbowenwest Thank you so much for sharing your solution


Update index.md

new here looking for what is this.

Why:
Closes [issue link]

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[ ] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@anishkumar127 Thanks for your interest in improving our docs! 🎉 If you see something in the docs you would like to change, please first open an issue before submitting a pull request.
I'm going to go ahead and close this PR. Please take a look at the contributing.md to learn how to contribute in this repo. You can open a discussion if you have any questions or check out issues with the help wanted label. :sparkles:
Thanks again!


Always render linter's tooltip inside of viewport

The following shows, if the linter's tooltip is exceeding the viewport:

The following shows the fixed version:

This is a very quick solution, fixing that particular corner case, shown in the screenshot.
Or course, we would appreciate a more mature solution to this problem in general.

There is already code that does something like this in the library. Figuring out why it doesn't do what you want in this case would be the thing to do. Code that adds another layout cycle to every tooltip update, as this does, is definitely not going to be merged.

Please let me know if any changes needed for merge, or if I should squash.

Attached patch simplifies this a bit and reduces the number of reflows the code causes. Does it work for you?


AA3 Fixes

[ ] Lovelace statue on lovelacehallway map should be replaced with non-cobweb version; the pug file name should be updated too.
[ ] Transition between inside_perimeter default map and courtyard before it is enabled should have more narrative context (i.e. something blocking the path or a magical explanation for why the player cannot progress).
[ ] Bowls on dining tables in Lovelace tower are not layered correctly and appear under plates.
[ ] Articia's portrait in Lovelace tower is blurry

Transition between inside_perimeter default map and courtyard before it is enabled should have more narrative context (i.e. something blocking the path or a magical explanation for why the player cannot progress).

How do we feel about using the same approach as the obstacle notifications in lovelace_tower? Or we could even double down on the debris approach that's used to obstruct the entrance to the catacombs, and prevent the player from removing them until after they've gotten the pledge scroll

How do we feel about using the same approach as the obstacle notifications in lovelace_tower? Or we could even double down on the debris approach that's used to obstruct the entrance to the catacombs, and prevent the player from removing them until after they've gotten the pledge scroll

I think we could definitely flesh out something along these lines. I do think we can wait until 2023 if you all feel similarly on this.

Articia's portrait in Lovelace tower is blurry

Took some screenshots to show the blurriness of the avatar!
No blurriness

Blurry


Web scaleup example

https://github.com/crossbario/crossbar-examples/tree/master/benchmark/web

essentially, all the necessary API for doing above Web scale up on multi-core does work via CFC now, so this should be straight forward ...

The above test uses different Twisted Web resources, one of them being a resource that answers with a number of octets the request specifies. To make this work out of the box, we could trivially add such a test resource as a new resource type to CB Web resource trees.


Add setnotificationtype to facebooktemplate

Support for Facebook's notification type: https://developers.facebook.com/docs/messenger-platform/send-api-reference

Awesome, thanks!
Can you add that to the documentation too?
Send a separate PR because I already merged this one.

Hey @nbransby, I'm getting an error when attempting to use setNotificationType():
'access-control-allow-origin': '*',
pragma: 'no-cache',
'cache-control': 'no-store',
'facebook-api-version': 'v2.8',
expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
'content-type': 'text/javascript; charset=UTF-8',
'x-fb-trace-id': 'XXX',
'x-fb-rev': '2828561',
vary: 'Accept-Encoding',
'x-fb-debug': 'iXXX',
date: 'Sun, 12 Feb 2017 06:11:54 GMT',
connection: 'close' },
body: '{"error":{"message":"(#100) Invalid keys \\"notification_type\\" were found in param \\"message\\".","type":"OAuthException","code":100,"fbtrace_id":"GOYNPgzx7m7"}}',
statusCode: 400,
statusMessage: 'Bad Request' }

My usage is as follows:
new fbTemplate.Text(`Hi ${userData.first_name}, What can I help you with today?`)
              .addQuickReply('Reply1', 'REPLY1')
              .addQuickReply('Reply2', 'REPLY2')
              .setNotificationType("NO_PUSH")
              .get();

Per the API docs it looks like notification_type needs to be a property of the root request object and the error message seems to indicate that it is being set as a property of the message object incorrectly.
Do you see something I'm doing wrong?

It's fixed by https://github.com/claudiajs/claudia-bot-builder/pull/86, we were waiting for the test for it, but I'll merge it right now and add a test later.

👍   Thanks!


bug: Debug tabs behavior

Is there an existing issue for this?

[X] I have looked through the existing issues

Which method was used to setup Scaffold-ETH 2 ?
git clone
Current Behavior
While working on https://github.com/scaffold-eth/scaffold-eth-2/pull/933 I found very strange behavior: whenever I click on tab with contract, it always change to YourContract tab.
https://github.com/user-attachments/assets/0b67d24f-dcb2-4b53-b0f2-771051dedb43
It's not because of its index or alphabetical order, it's always YourContract (if you have that tab, of course). Clearing localstorage doesn't help
Expected Behavior
Clicked contract tab should be chosen
Steps To Reproduce
I debugged it and understood that it was because of my other browser tab, which had only YourContract.
So, steps:

run default se-2 (with one contract - YourContract)
stop your frontend app (but don't close browser tab [tab 1] )
add another contract and deployment file for it
yarn deploy --reset your contracts (or just yarn deploy if you re-run yarn chain)
open new browser tab [tab 2]
yarn start your app
open it on new browser tab [tab 2]

Anything else?
Not sure if we need to fix it for now since it's relatively rare case and not so easy to fix. But at least we know what causes this

The bug is not related to the mentioned PR, it also works on main

Thanks @rin-st!! So the summary is that if this problem occurs people need to make sure they close all other browser TABs with http://localhost:3000 and then refresh the latest one and it should start working. Just tried this and works nicely.
Umm I think instead of relying on usehooks-ts useLocalStorage logic maybe we should write a our custom simple logic for DebugContracts.
The reason I feel usehooks useLocalstorage have this problem is because they are listening to localstroage for all tabs and keeping them in sync :

But since the outdated tab doesn't have the new contract name, it updates the contractName to contractName[0] in outdated tab and latest tab listen to those changes and also updates it.


Use url (http, https) not file://

Can i use this plugin with http or https url and not with file?

No.
See https://github.com/sitewaerts/cordova-plugin-document-viewer#cordova-document-viewer-plugin
See https://github.com/sitewaerts/cordova-plugin-document-viewer#known-issues.
Workaround:

Online files reachable via http(s) are not supported. Download them to a temp folder before starting the viewer. You may use the onClose callback to cleanup the temp dir when the viewer is closed.


⚠ Bofrost.be has degraded performance

In eee492d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1144 ms

Resolved: Bofrost.be performance has improved in 37795ce.


Docs: Registering Root Tasks - Incorrect/Unclear example

What is the improvement or update you wish to see?
The current documentation seems to suggest that by creating the lint:root script in the root package.json file, and the //#lint:root: {} task in turbo.json alongside lint: {} task, running turbo run lint should execute the lint script in all packages in the repo, along with the lint:root script in the root package.json. At least that's how I understood it to mean.
Is there any context that might help us understand?
Registering Root Tasks
Existing
Running pnpm lint only runs lint scripts in packages, but not the root level lint:root script.
turbo.json
{
  "tasks": {
    "lint": {
      "dependsOn": ["^lint"]
    },
    "//#lint:root": {}
  }
}

package.json
{
  "scripts": {
    "lint": "turbo run lint",
    "lint:root": "eslint ."
  }
}

Correction - Option 1
Runs lint:root in addition to lint scripts in all packages, by separately calling lint:root in the turbo run statement
turbo.json
{
  "tasks": {
    "lint": {
      "dependsOn": ["^lint"]
    },
    "//#lint:root": {}
  }
}

package.json
{
  "scripts": {
    "lint": "turbo run lint lint:root",
    "lint:root": "eslint ."
  }
}

Correction - Option 2
Runs lint:root in addition to lint scripts in all packages by removing :root suffix from the script in the root package.json, and making the script the calls turbo run lint be named something else (eg. lint-abcdef, lint-all)
turbo.json
{
  "tasks": {
    "lint": {
      "dependsOn": ["^lint"]
    },
    "//#lint": {}
  }
}

package.json
{
  "scripts": {
    "lint-all": "turbo run lint",
    "lint": "eslint ."
  }
}

Does the docs page already exist? Please link to it.
https://turbo.build/repo/docs/crafting-your-repository/configuring-tasks#registering-root-tasks

Fixed in https://github.com/vercel/turborepo/pull/9098. Thank you!


When you press to nexus hotkey, it goes to infinite walking screen.

When you press to nexus hotkey, it goes to infinite walking screen.

This feature was removed in build 0.0.2.

@foseldaedeloththegay +1 :+1:


Error: Error: 14 UNAVAILABLE: Name resolution failed for target dns:{<IP_ADDRESS>}:8053

Error: Error: 14 UNAVAILABLE: Name resolution failed for target dns:{<IP_ADDRESS>}:8053
run code:
sudo docker run -d -p 8054:3000 -e HOST_URL=http://{<IP_ADDRESS>}:8054 -e MILVUS_URL={<IP_ADDRESS>}:8053 zilliz/attu:latest

The issue that you described doesn't look like the problem of CLI.  Running CLI dosn't require docker.

attu error


the flutter app run on SM J730GM crashed!

Steps to Reproduce

F/libc    ( 4285): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x40f3b in tid 4621 (1.ui), pid 4285 (domobile.sudoku)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/j7y17ltextc/j7y17lte:8.1.0/M1AJQ/J730GMDXS5BRK1:user/release-keys'
Revision: '7'
ABI: 'arm'
pid: 4285, tid: 4621, name: 1.ui  >>> com.domobile.sudoku <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x40f3b
    r0 00040f18  r1 00000014  r2 00000001  r3 80000000
    r4 00040f18  r5 babfbe48  r6 babfbe38  r7 d230d768
    r8 cf240021  r9 00000000  sl d230d800  fp d233091c
    ip d235269c  sp d0d40ed8  lr d20199f3  pc d2019770  cpsr 600f0030
backtrace:
    #00 pc 012d6770  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #01 pc 01439b47  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #02 pc 014593c3  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #03 pc 012eff6d  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #04 pc 0126d22f  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #05 pc 0126f283  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #06 pc 01270783  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #07 pc 0136c1c7  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #08 pc 01290f79  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #09 pc 01363897  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #10 pc 0135ff2f  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #11 pc 013603c3  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #12 pc 0128d391  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #13 pc 012ad34f  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #14 pc 012ad60f  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #15 pc 0137e40b  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #16 pc 01359d6f  /data/app/com.domobile.sudoku-49xJ8doN751DREc8_8QKbQ==/lib/arm/libflutter.so (offset 0xf8f000)
    #17 pc 00000940  <anonymous:cf140000>
Lost connection to device.

...
...
...

Logs

[✓] Flutter (Channel unknown, v1.9.7, on Mac OS X 10.14.6 18G95, locale zh-Hans-CN)
    • Flutter version 1.9.7 at /Users/sysuser/Desktop/dev_tools/flutter
    • Framework revision 4984d1a33d (3 weeks ago), 2019-08-28 17:04:07 -0700
    • Engine revision f52c0b9270
    • Dart version 2.5.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/sysuser/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.7.1

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] IntelliJ IDEA Community Edition (version 2019.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.dev/intellij-setup/#installing-the-plugins

[✓] Connected device (1 available)
    • SM J730GM • 5200c1b1b2f4c463 • android-arm • Android 8.1.0 (API 27)

! Doctor found issues in 1 category.

Hello @ouxiaoyong !
Thank you for posting an issue.
Can you please provide more details and steps on how to reproduce it?
Thank you.

the same problem.
debug is OK，bug release/profile crashed

Hello @ouxiaoyong !
Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the issue, if you have any more information for us; we will reopen it right away!
Thank you for your contribution.
P.S. If anyone still experience the same problem, please file a new issue with the information required in the template.
All system setups can be slightly different so it’s always better to open new issues and reference related issues.


Redesign ComponentAccessExpr, improve error diagnostics

This PR redesigns the ComponentAccessExpr type to track access conflicts more precisely. Queries such as Or<Or<(&mut A, With<&B>), (&A, Not<&B>)>, (&A, Not<&B>)> and (&mut A, &mut A, Not<&A>) will now pass the component access checker.
Additionally, we now defer access errors until after handler init has finished. This improves diagnostics by showing a list of all access conflicts together.
TODO

[x] Clean up warnings

yay :)

I think there is a regression.
My code suddenly stops working (I can't see entities or anything on my server) when using 8ab990d9. It works perfectly fine on https://github.com/andrewgazelka/evenio/tree/fix-collisions-gt-2?branch=fix-collisions-gt-2

@andrewgazelka Should be fixed in https://github.com/rj00a/evenio/pull/37. Let me know if there are other issues.

@andrewgazelka Should be fixed in #37. Let me know if you run into anything else.

Fixed for me :)


Collector not compatible with Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface

PHP version: 7.1.33
Description
During composer install then clearing cache in symfony application i got fatal error
How to reproduce

Possible Solution
public function collect(Request $request, Response $response, \Exception $exception = null)
instead
public function collect(Request $request, Response $response, $exception = null)
PHP Fatal error:  Declaration of Http\HttplugBundle\Collector\Collector::collect(Symfony\Component\HttpFoundation\R
equest $request, Symfony\Component\HttpFoundation\Response $response, $exception = NULL) must be compatible with Sy
mfony\Component\HttpKernel\DataCollector\DataCollectorInterface::collect(Symfony\Component\HttpFoundation\Request $
request, Symfony\Component\HttpFoundation\Response $response, ?Exception $exception = NULL) in  /vendor/php-http/httplug-bundle/src/Collector/Collector.php on line 191

Which version of the bundle do you use? <IP_ADDRESS> is the latest version supporting PHP 7.1 and the code looks different there.

I double this: I get incompatibility fatal error.
Relevant composer.json parts:
{
"require": {
    "php": ">=7.1",
    "symfony/symfony": "^3.4",
    "php-http/guzzle6-adapter": "^2.0",
    "php-http/httplug-bundle": "^1.18"
}
}

Symfony 3.4.43 with httplug 2.2.0 and httplug-bundle 1.18 installed.
The reason is that \Http\HttplugBundle\Collector\Collector::collect does not define the last $exception parameter to be of type ?Exception

Which PHP version do you use when you run into this issue?

I have some problem.
Symfony 3.4
httplug-bundle 1.18
php 7.2

in #387 i make the lowest version test with php 7.2. the test is green with 7.2, so either we are missing a test on that collector or something weird is going on.
we do test the collector: https://github.com/php-http/HttplugBundle/blob/master/tests/Unit/Collector/CollectorTest.php
why does this not fail during the tests?

@lies  Are you sure that this is happening on PHP 7.2? Please note that the PHP version used on the command-line may be different from the one used when serving your application over HTTP.

Problem confirmed here.
PHP 7.2.5.
Symfony 3.4.5 (problematic file)
HttplugBundle 1.19.0 (problematic file)

Well, If you are running your application on PHP 7.1, you must not set the platform PHP version to 7.2 as you will get non-compatible dependencies then.

if you hack around with the platform configuration, i recommend you set your requirements, as well as indirect requirements, to exact version numbers that you know work together. (e.g. find in the httplug bundle changelog where we drop support for php 7.1 and pin your requirement to php-http/httplug-bundle to the version that came right before that).


Adding a 'Transfer-Encoding' header when using stream

When using a stream with docker modem there is no header 'Content-Length' since there is no known length to it. The right replacement for that is using the header 'Transfer-Encoding: chunked'.
This can cause problem with docker daemon as an example: when building an image and canceling (by exiting process or destroying connection) omitting this header while using a stream cause the daemon to ignore the dropped connection and continue the build.

👍


Streaming support

Add additional arguments for ChatGPTAgent , and return stream if stream = True
ChatGPTAgentExtended added which supports the truncation of history

Tests do not rely on chat-gpt. So, I'd move streaming tests from tests to examples.
It's also possible to create a mock streaming agent in Python and use in tests, but it is optional


[TypeScript] Introduce<EMAIL_ADDRESS>

Purpose
What is the context of this pull request? Why is it being done?
Changes
Are there any changes that need to be called out as significant or particularly difficult to grasp? (Include illustrative screenshots for context if applicable.)
Tests
Is this covered by existing tests or new ones? If no, why not?
Feature Plan
Are there any remaining steps or dependencies before this issue can be fully resolved? If so, describe and link to any relevant pull requests or issues.
Checklist
General

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added or updated the appropriate tests
[ ] I have updated related documentation

I'll close this PR as<EMAIL_ADDRESS>won't be released until end of month 😢


Some applications have connectivity issues when the tunnel idles out

Getting more reports of the idle timer causing issues. Specifically, the application in question (unknown at the moment, possibly a custom application) reports errors and fails after the tunnel idles out.
Customer specifically thinks the issue is due to the fact a re-established tunnel has a different 5-tuple than the original tunnel, which will break the connection if the server side is expecting
I don't think we can assume / rely on TCP re-establishing things smoothly here.
Since we need this to be reliable under any Layer 3 protocol, I don't think we have any other option but to either:

Increase the idle timer to something like 8 hours
Cache the 5-tuple used by the Client, so that re-establishing the tunnel uses the sam NATed egress port as the original tunnel for the duration of the Gateway's lifetime (these would I presume increment and rollover upon exhaustion)

Related: #6347, #3246, #6335
Unfortunately packet buffering is not going to solve this issue on its own since the 5-tuple changes.

I think what we should do is the first option right away, since it will fix this issue for the two customers who have reported it, and then work to reduce the idle connection timer when we can implement the egress port caching or similar.

Cache the 5-tuple used by the Client, so that re-establishing the tunnel uses the sam NATed egress port as the original tunnel for the duration of the Gateway's lifetime (these would I presume increment and rollover upon exhaustion)

We do that already assuming that the port is available.

Cache the 5-tuple used by the Client, so that re-establishing the tunnel uses the sam NATed egress port as the original tunnel for the duration of the Gateway's lifetime (these would I presume increment and rollover upon exhaustion)

We do that already assuming that the port is available.

Depends also on how masquerading is setup in the gateway too, we don't have control over that.

we should start working on benchmarking battery usage, I don't know what's the standard practice for this but would help us decide if it's worth keeping the low idle timeout or increase it.

we should start working on benchmarking battery usage, I don't know what's the standard practice for this but would help us decide if it's worth keeping the low idle timeout or increase it.

We can also increase our ICE timeout. I think it should be rather rare that a connection dies because of a network cut. Most of the times, it is the client that roams and we proactively reset then. STUN messages every 2s is probably too excessive?

STUN messages every 2s is probably too excessive?

If we increased STUN to 5s and fail on 3 of them (15s) instead of 10, I think that'd suffice and cut STUN packets by 60%.
However, we can save that for another PR. The main use case for us is business where desktop client connectivity is critical. It might be appropriate to have adjustable idle periods here per client - on mobile, we can optimize, on desktop we want more responsive connectivity and don't care about power savings.
We could increase timeouts to 8h which I think is reasonable until we're able to ensure that implementing idle timeout doesn't cause any connection issues.
This will solve the active blocker this is having on our customer now.

It might be appropriate to have adjustable idle periods here per client - on mobile, we can optimize, on desktop we want more responsive connectivity and don't care about power savings.

Yeah we can do that. It is a bit annoying to thread that configuration value through all layers. Would it be sufficient to make it a compile-time variable, i.e. an ENV that can be set at compile-time?

Would it be sufficient to make it a compile-time variable, i.e. an ENV that can be set at compile-time?

Hm yeah that could work. Some customers report the issue is better with the sticky gateways fix, while others reporting this still an issue with 1.3.x. I wonder if the problem could be that SSH relies on the server sending keepalives to the client to keep NAT open. That would explain this problem if those happened greater than 5m interval.

Reposting this from https://firezonehq.slack.com/archives/C04HRQTFY0Z/p1727277743818819:
Managed to reproduce.
Client
15:53:25.448590 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
15:54:40.447646 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
15:54:40.508603 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
15:55:26.988759 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
15:55:26.988856 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:55:27.059989 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
17:56:42.061209 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
17:56:42.122485 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:56:51.750012 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:56:51.750054 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
19:56:52.013203 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
19:58:07.021778 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
19:58:07.083761 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:58:06.944611 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
21:59:21.975924 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
21:59:22.038236 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [R], seq<PHONE_NUMBER>, win 0, length 0

Gateway
15:54:40.525568 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
15:54:40.526195 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
15:55:27.007159 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
15:55:27.068372 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:55:35.967169 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:56:42.114739 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
17:56:42.115268 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:56:51.743082 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
17:56:51.811526 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
19:57:55.999471 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
19:58:07.052957 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
19:58:07.053677 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
19:59:11.775174 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:00:27.551139 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:01:43.327179 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:02:59.103100 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:04:14.879321 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:05:30.655134 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:06:46.431092 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:08:02.207173 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [.], ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
21:09:17.983113 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [R.], seq 5149, ack 4038, win 42, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 0
04:59:22.054055 IP <IP_ADDRESS>.54529 > gateway2.firezonedemo.com.ssh: Flags [.], ack 5149, win 2048, length 0
04:59:22.055117 IP gateway2.firezonedemo.com.ssh > <IP_ADDRESS>.54529: Flags [R], seq<PHONE_NUMBER>, win 0, length 0

What's happening is that after the first keepalive, the server actually starts initiating them, which the client never receives. It seems to use some backoff off algorithm where the client successively waits longer and longer to initiate the keepalive, until final the server boots it for not returning its keepalives.

Re-posting an idea from Slack: Instead of closing idle connections, we can increase the STUN keep-alive interval significantly (to something in the order of minutes).
Idle connections are by definition not in use so we don't need to be quick in detecting that they are dead. As soon as we see an application packet again, we should reset to the default keep-alive interval.
This should ensure that idle connections have a very low bandwidth and battery overhead but are kept alive nonetheless.

The only issue that might come up here is that UDP typically requires a much lower keepalive, e.g. <30s. So I guess that would be the upper limit.
Would both sides scale their STUN frequency based on the TX sent through the socket? Or would they negotiate/agree on a single frequency to use?


Update to raylib 4.2

New raylib version just released https://github.com/raysan5/raylib/releases/tag/4.2.0
Might be a good reason to try out the new dune ctypes stanza

...and support OCaml 5 ;-)


Crash on application close

Describe the bug
Client crashes with a Javascript error window (screenshot provided)

I have multiple k8s clusters configured. If I close the app just after I open it (without selecting cluster) - it closes correctly. If I connect to som clusters, app closes correctly. For other clusters for some reason I get an error
Expected behavior
Client closes without error
Environment (please complete the following information):

Lens Version: 3.2.0
OS: Windows 10 x64
Installation method: installer

Logs:
When you run the application executable from command line you will see some logging output. Please paste them here:
C:\Users\i_komsa\AppData\Local\Programs\kontena-lens>
 info: Checking for update
info: Update for version 3.2.0 is not available (latest version: 3.2.0, downgrade is disallowed).
error: proxy eu-central-1.*domain*.com exited with code null

I also get this even without closing.  It's often (though not reliably) triggerable by changing cluster settings, such as Prometheus service address.
Windows 10 x64 1909 Build 18363.900

I get this error every time I go to cluster settings

Is this still happening in 5.4.6?


Example with output change

How bind selected value with data.fieldName?

use :value.sync='variable_you_want' as property


ReferenceError in /community/membership/deploy

Error in VATSIM-UK/Core (JS)
ReferenceError in /community/membership/deploy
ReferenceError: $ is not defined
View on Bugsnag
Stacktrace
https://core.vatsim.uk/community/membership/deploy:320 -

View full stacktrace

An error linked to this issue has been reopened in Bugsnag
ReferenceError in /community/membership/deploy


Encoder error

Hello, I have got encoder error using EAIBOT D1 on nvidia jetson tx2. after launch the minimal.launch command and teleop keyboard, it receives first few commands and then shows the error given below in pictures. Kindly guide me to solve this issue. thanks alot

Hello, I also like it. Now you fixed it ??

Hello, I also like it. Now you fixed it ??

not yet. still facing the same problem and every time i have to take out the usb wire and then plugin again. very awful and irritating...

I know problem. Because TX2 USB port always change ttyUSB0 -> ttyUSB2, so
we will be fail data. I also facing it. I’m try to fix USB static port
number. If I resolve it, I will help you. And you are ok, tell me
On Mon, Apr 22, 2019 at 15:59 Arkin<EMAIL_ADDRESS>wrote:

Hello, I also like it. Now you fixed it ??
not yet. still facing the same problem and every time i have to take out
the usb wire and then plugin again. very awful and irritating...
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485356607, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA
.

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

I know problem. Because TX2 USB port always change ttyUSB0 -> ttyUSB2, so we will be fail data. I also facing it. I’m try to fix USB static port number. If I resolve it, I will help you. And you are ok, tell me
On Mon, Apr 22, 2019 at 15:59 Arkin @.***> wrote: Hello, I also like it. Now you fixed it ?? not yet. still facing the same problem and every time i have to take out the usb wire and then plugin again. very awful and irritating... — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#3 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA .
-- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia University Taichung City - Taiwan Cellphone: +886 908 309 164 (Taiwan) * +884 034 169 201 (Vietnnam) *

its not because of jetson tx2. . even i tried with my laptop and desktop PC , everywhere having same issue. this static port issue already solved but the main disconnection issue still same.

I run my laptop Sony vaio, it’s ok. I also want to run on tx2, try to
resolve it, over 10days.
On Mon, Apr 22, 2019 at 16:15 Arkin<EMAIL_ADDRESS>wrote:

I know problem. Because TX2 USB port always change ttyUSB0 -> ttyUSB2, so
we will be fail data. I also facing it. I’m try to fix USB static port
number. If I resolve it, I will help you. And you are ok, tell me
On Mon, Apr 22, 2019 at 15:59 Arkin @.***> wrote: Hello, I also like
it. Now you fixed it ?? not yet. still facing the same problem and every
time i have to take out the usb wire and then plugin again. very awful and
irritating... — You are receiving this because you commented. Reply to this
email directly, view it on GitHub <#3 (comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485356607>, or
mute the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA
.
-- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) *
its not because of jetson tx2. . even i tried with my laptop and desktop
PC , everywhere having same issue. this static port issue already solved
but the main disconnection issue still same.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485359679, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PGH7VPVTH5PALJP5PLPRVXYVANCNFSM4GWWELNA
.

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

Can you give me your Facebook, we are together test, we will teamviewer?
On Mon, Apr 22, 2019 at 20:56 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:

I run my laptop Sony vaio, it’s ok. I also want to run on tx2, try to
resolve it, over 10days.
On Mon, Apr 22, 2019 at 16:15 Arkin<EMAIL_ADDRESS>wrote:

I know problem. Because TX2 USB port always change ttyUSB0 -> ttyUSB2, so
we will be fail data. I also facing it. I’m try to fix USB static port
number. If I resolve it, I will help you. And you are ok, tell me
On Mon, Apr 22, 2019 at 15:59 Arkin @.***> wrote: Hello, I also like
it. Now you fixed it ?? not yet. still facing the same problem and every
time i have to take out the usb wire and then plugin again. very awful and
irritating... — You are receiving this because you commented. Reply to this
email directly, view it on GitHub <#3 (comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485356607>, or
mute the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA
.
-- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) *
its not because of jetson tx2. . even i tried with my laptop and desktop
PC , everywhere having same issue. this static port issue already solved
but the main disconnection issue still same.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485359679, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PGH7VPVTH5PALJP5PLPRVXYVANCNFSM4GWWELNA
.

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

Can you give me your Facebook, we are together test, we will teamviewer? On Mon, Apr 22, 2019 at 20:56 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:
I run my laptop Sony vaio, it’s ok. I also want to run on tx2, try to resolve it, over 10days. On Mon, Apr 22, 2019 at 16:15 Arkin @.> wrote: > I know problem. Because TX2 USB port always change ttyUSB0 -> ttyUSB2, so > we will be fail data. I also facing it. I’m try to fix USB static port > number. If I resolve it, I will help you. And you are ok, tell me > On Mon, Apr 22, 2019 at 15:59 Arkin @.> wrote: Hello, I also like > it. Now you fixed it ?? not yet. still facing the same problem and every > time i have to take out the usb wire and then plugin again. very awful and > irritating... — You are receiving this because you commented. Reply to this > email directly, view it on GitHub <#3 (comment) > <#3 (comment)>>, or > mute the thread > https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA > . > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia > University Taichung City - Taiwan Cellphone: +886 908 309 164 > (Taiwan) * +884 034 169 201 (Vietnnam) * > > its not because of jetson tx2. . even i tried with my laptop and desktop > PC , everywhere having same issue. this static port issue already solved > but the main disconnection issue still same. > > — > You are receiving this because you commented. > Reply to this email directly, view it on GitHub > <#3 (comment)>, or mute > the thread > https://github.com/notifications/unsubscribe-auth/AKDQ4PGH7VPVTH5PALJP5PLPRVXYVANCNFSM4GWWELNA > . > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia University Taichung City - Taiwan Cellphone: +886 908 309 164 (Taiwan) * +884 034 169 201 (Vietnnam) * --
Le Minh Tan Tai Master of Electronic Engineering - Feng Chia University Taichung City - Taiwan Cellphone: +886 908 309 164 (Taiwan) * +884 034 169 201 (Vietnnam) *

since long time i am not using facebook. please give me your wechat if you do have. thanks..

On Tue, Apr 23, 2019 at 10:49 Arkin<EMAIL_ADDRESS>wrote:

Can you give me your Facebook, we are together test, we will teamviewer?
On Mon, Apr 22, 2019 at 20:56 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:
I run my laptop Sony vaio, it’s ok. I also want to run on tx2, try to
resolve it, over 10days. On Mon, Apr 22, 2019 at 16:15 Arkin @.>
wrote: > I know problem. Because TX2 USB port always change ttyUSB0 ->
ttyUSB2, so > we will be fail data. I also facing it. I’m try to fix USB
static port > number. If I resolve it, I will help you. And you are ok,
tell me > On Mon, Apr 22, 2019 at 15:59 Arkin @.> wrote: Hello, I also
like > it. Now you fixed it ?? not yet. still facing the same problem and
every > time i have to take out the usb wire and then plugin again. very
awful and > irritating... — You are receiving this because you commented.
Reply to this > email directly, view it on GitHub <#3
https://github.com/EAIBOT/dashgo/issues/3 (comment) > <#3 (comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485356607>>, or

mute the thread >
https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA
. > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164 >
(Taiwan) * +884 034 169 201 (Vietnnam) * > > its not because of jetson
tx2. . even i tried with my laptop and desktop > PC , everywhere having
same issue. this static port issue already solved > but the main
disconnection issue still same. > > — > You are receiving this because you
commented. > Reply to this email directly, view it on GitHub > <#3
(comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485359679>, or
mute > the thread >
https://github.com/notifications/unsubscribe-auth/AKDQ4PGH7VPVTH5PALJP5PLPRVXYVANCNFSM4GWWELNA
. > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) * --
Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) *

since long time i am not using facebook. please give me your wechat if you
do have. thanks..
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485622756, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PAZUUKD4LRLB5J677TPRZ2MPANCNFSM4GWWELNA
.

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

I sent my contact we chat
On Tue, Apr 23, 2019 at 11:00 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:

On Tue, Apr 23, 2019 at 10:49 Arkin<EMAIL_ADDRESS>wrote:

Can you give me your Facebook, we are together test, we will teamviewer?
On Mon, Apr 22, 2019 at 20:56 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:
I run my laptop Sony vaio, it’s ok. I also want to run on tx2, try to
resolve it, over 10days. On Mon, Apr 22, 2019 at 16:15 Arkin @.>
wrote: > I know problem. Because TX2 USB port always change ttyUSB0 ->
ttyUSB2, so > we will be fail data. I also facing it. I’m try to fix USB
static port > number. If I resolve it, I will help you. And you are ok,
tell me > On Mon, Apr 22, 2019 at 15:59 Arkin @.> wrote: Hello, I also
like > it. Now you fixed it ?? not yet. still facing the same problem and
every > time i have to take out the usb wire and then plugin again. very
awful and > irritating... — You are receiving this because you commented.
Reply to this > email directly, view it on GitHub <#3
https://github.com/EAIBOT/dashgo/issues/3 (comment) > <#3 (comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485356607>>, or

mute the thread >
https://github.com/notifications/unsubscribe-auth/AKDQ4PCU3XXOY6PMTLNYQV3PRVV4VANCNFSM4GWWELNA
. > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164 >
(Taiwan) * +884 034 169 201 (Vietnnam) * > > its not because of jetson
tx2. . even i tried with my laptop and desktop > PC , everywhere having
same issue. this static port issue already solved > but the main
disconnection issue still same. > > — > You are receiving this because you
commented. > Reply to this email directly, view it on GitHub > <#3
(comment)
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485359679>, or
mute > the thread >
https://github.com/notifications/unsubscribe-auth/AKDQ4PGH7VPVTH5PALJP5PLPRVXYVANCNFSM4GWWELNA
. > -- Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) * --
Le Minh Tan Tai Master of Electronic Engineering - Feng Chia
University Taichung City - Taiwan Cellphone: +886 908 309 164
(Taiwan) * +884 034 169 201 (Vietnnam) *

since long time i am not using facebook. please give me your wechat if
you do have. thanks..
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EAIBOT/dashgo/issues/3#issuecomment-485622756, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKDQ4PAZUUKD4LRLB5J677TPRZ2MPANCNFSM4GWWELNA
.

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

--
Le Minh Tan Tai
Master of Electronic Engineering - Feng Chia University
Taichung City - Taiwan
Cellphone: +886 908 309 164 (Taiwan)

             +884 034 169 201 (Vietnnam) *

I sent my contact we chat On Tue, Apr 23, 2019 at 11:00 Le Minh Tan Tai<EMAIL_ADDRESS>wrote:

I tried to find your wechat but unfortunately i couldn't find your wechat ID. anyhow today i have resolved this issue. actually the issue was the usb port from arduino board to the input port outside the robot as shown in the picture below. so after changing another usb port and connected this prot directly with my jetson tx2, this disconnection issue has been resolved. so i will suggest you to do the direct connection with robot pcb board to the jetson tx2 or other system. it will resolve the issue. pictures are shown below for better understanding.

okie Can you give me you ID wechat, i will search


Upgrading from 6.0.1 to 7.0.2 & react-navigation

I'm adding this here just because I think other people may also face the same problem...
When upgrading from react-redux 6.0.1 to 7.0.2, I get the error:

Initially, I believed it to be caused by react-navigations' createBottomTabNavigation options:
tabBarComponent: TabBarBottom,

Which I changed to:
tabBarComponent: props => <TabBarBottom {...props} />,

However, I'm now getting:

I've been debugging this for a while so I thought I'd put it up here in case others faced the same problem.

I think this is not an issue with this library. If you have a look at the quoted part in the first paragraph of the changes section of the release notes, you see what the issue probably is. I am not familiar with react-navigation, but the issue seems like it might be due to an old version of react-native. Which version are you using?

Thank you, I thought I would post as the issue happened as I was upgrading from 6.0.1 to 7 and I thought that others may also face the problem. Currently without a solution, I was unsure what the problem was.

React-Redux version 7 resolves the performance issues that were reported with version 6, and lays the groundwork for us to design and ship a public useRedux()-type Hooks API in a later 7.x release.

The major change for this release is that connect is now implemented using Hooks internally. Because of this, we now require a minimum React version of 16.8.4 or higher.
This release has undergone extensive performance benchmarking, and we're confident that it's the fastest version of React-Redux yet! We've also expanded our test suite to cover a number of additional use cases and scenarios.
Do you mean what version of react are you using? I'm using:
"react": "^16.8.6",

As for react-native, I'm using:
"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",

I was specifically asking for the react-native version since the error you see isn't caused directly by react-navigation, but by the underlying renderer. Basically, expo 32.0.0 is based on react native 0.57.0, which does not handle memoized components properly. It only does this starting with 0.58.0. Have a look at the 0.58.0 renderer code and compare it with the 0.57.0 renderer code. You can see it is missing the case for memoized components.
I have absolutely no knowledge about expo and how it plays with different react native versions, so I can't tell you how to solve the problem, but you need to see if it is possible to either upgrade the expo version or directly the react native version.

Thank you for your help so far. The app works ok with react-redux at version 6.0.1.
To be clear, upgrading from 6.0.1 to 7.0.2 means that the react-native version that expo 32 uses is too low to support react-redux because react-redux relies on a minimum version of react-native of 0.57.5 to support memoized components.
Therefore, in order to use react-redux 7.0.2 with expo, it may be advisable to wait until a new version of expo is released? https://expo.canny.io/feature-requests/p/support-react-1680-aka-hooks
Therefore, due to the performance issues of 6.0.1. If you are using expo 32, it is currently advisable to downgrade redux to 5.1.1?

Yep, not a RR problem per se.

For a little more context: Expo SDK 33 will internally include RN 0.59.5 (+ React 16.8.3), which includes support for Hooks. However, the Metro bundler uses react-proxy, which assumes that components are always functions and leads to errors like "Expected a constructor." (c.f. https://github.com/facebook/react-native/issues/24452).


Emoji in workshops don't render

this looks like it would fix it https://github.com/seangaffney/velvet_rope

Closed by https://github.com/hackclub/lecture-hall/pull/38


I have error

fatal: [graylog-staging]: FAILED! => {"changed": false, "failed": true, "msg": "Maximum memory for elasticsearch should not be greater than half of physycal RAM"}

You can set elasticsearch memory with elasticsearch_memory variable.

This error comes from preflight check: https://github.com/SoInteractive/ansible-elasticsearch/blob/master/tasks/preflight.yml
Elasticsearch documentation recommends no more than half of physical RAM for heap size: https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
As @paulfantom previously wrote you can set elasticsearch heap size with elasticsearch_memory having in mind that limitation.


Add package geohash

Another test?

I think you merged my pull request before I noticed and I ran the nimble
publish.  Sorry for the confusion.
On Thu, Nov 26, 2015 at 2:37 PM, Dominik Picheta<EMAIL_ADDRESS>wrote:

Another test?
—
Reply to this email directly or view it on GitHub
https://github.com/nim-lang/packages/pull/281#issuecomment-159983735.

--
Tom Krauss
<EMAIL_ADDRESS>Can of worms?  The can is open, the worms are everywhere.

no worries
On Thu, Nov 26, 2015 at 7:53 PM, twist-vector<EMAIL_ADDRESS>wrote:

I think you merged my pull request before I noticed and I ran the nimble
publish. Sorry for the confusion.
On Thu, Nov 26, 2015 at 2:37 PM, Dominik Picheta<EMAIL_ADDRESS>
wrote:

Another test?
—
Reply to this email directly or view it on GitHub
https://github.com/nim-lang/packages/pull/281#issuecomment-159983735.

--
Tom Krauss
<EMAIL_ADDRESS>Can of worms? The can is open, the worms are everywhere.
—
Reply to this email directly or view it on GitHub
https://github.com/nim-lang/packages/pull/281#issuecomment-159985937.


doesn't work for other XML syntax schemes like XAML, XSL

Currently there seems to be a hard check whether the current syntax setting is "XML". If it is not the case the "Format XML" menu entry is disabled.
But there a are a lot of other syntax schemes  that are XML too and where the "Format XML" still makes sense. Such as XAML (can be installed with package control) or XSL (included out of the box).

It tries to detect syntax now (if it starts with < - treat it as XML). However, you can always set syntax (Ctrl+Shift+P) and then run Indent command again.


Provide data transform in feature binning

Is your feature request related to a problem? Please describe.
After find out split points of a column, provide a data transform function to convert the binned column into its bin index。 In other words, provide a discretization function for data.
Describe the solution you'd like
Set this function in params and transfer base on the param setting.

Already finished


RefreshControl offset not functioning correctly for iOS.

Description
When using a ListView / ScrollView with a RefreshControl setting the refreshing prop to true causes the RefreshControl to open appropriately. When doing this again, however, the RefreshControl will not show until the refreshing prop is set back to false.
Reproduction Steps and Sample Code
First of all, because a good example is better than explaining this with a wall of text, here's an example:
https://github.com/YoranRoels/react-native-refresh-control-issue
Clicking on the Refreshing 1 button will start refreshing correctly, then clicking on the Refreshing 0 button will turn off refreshing correctly. When then pressing the Refreshing 1 button AGAIN, the RefreshControl will not show until pressing the Refreshing 0 button again (it will show for a short moment).
Me and my co-worker have tracked this issue down to a problem with only the iOS RefreshControl and the offset.
If you want to log the offsets in the react-native/React/Views/RCTRefreshControl.m, use this code snippet (You need to uncomment the NSLogs):
/**
 * Copyright (c) 2015-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

#import "RCTRefreshControl.h"

#import "RCTUtils.h"

@implementation RCTRefreshControl {
  BOOL _isInitialRender;
  BOOL _currentRefreshingState;
  NSString *_title;
  UIColor *_titleColor;
}

- (instancetype)init
{
  if ((self = [super init])) {
    [self addTarget:self action:@selector(refreshControlValueChanged) forControlEvents:UIControlEventValueChanged];
    _isInitialRender = true;
    _currentRefreshingState = false;
  }
  return self;
}

RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)

- (void)layoutSubviews
{
  [super layoutSubviews];

  // Fix for bug #7976
  // TODO: Remove when updating to use iOS 10 refreshControl UIScrollView prop.
  if (self.backgroundColor == nil) {
    self.backgroundColor = [UIColor clearColor];
  }

  // If the control is refreshing when mounted we need to call
  // beginRefreshing in layoutSubview or it doesn't work.
  if (_currentRefreshingState && _isInitialRender) {
    [self beginRefreshing];
  }
  _isInitialRender = false;
}

- (void)beginRefreshing
{
  // NSLog(@"beginRefreshing");
  // When using begin refreshing we need to adjust the ScrollView content offset manually.
  UIScrollView *scrollView = (UIScrollView *)self.superview;
  CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - self.frame.size.height};
  //CGPoint offset = {scrollView.contentOffset.x, scrollView.contentOffset.y - 60};

  // NSLog(@"beginRefreshing: offset X %f", scrollView.contentOffset.x);
  // NSLog(@"beginRefreshing: offset Y %f", scrollView.contentOffset.y - self.frame.size.height);
  // NSLog(@"beginRefreshing: offset Y - connentoffset %f", scrollView.contentOffset.y);
  // NSLog(@"beginRefreshing: offset Y - frame.size %f", self.frame.size.height);

  // `beginRefreshing` must be called after the animation is done. This is why it is impossible
  // to use `setContentOffset` with `animated:YES`.
  [UIView animateWithDuration:0.25
                          delay:0
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^(void) {
                       [scrollView setContentOffset:offset];
                     } completion:^(__unused BOOL finished) {
                       [super beginRefreshing];
                     }];
}

- (void)endRefreshing
{
    // NSLog(@"endRefreshing");
  // The contentOffset of the scrollview MUST be greater than 0 before calling
  // endRefreshing otherwise the next pull to refresh will not work properly.
  UIScrollView *scrollView = (UIScrollView *)self.superview;
  // NSLog(@"endRefreshing: scrollView.contentOffset.y %f", scrollView.contentOffset.y);

  if (scrollView.contentOffset.y < 0) {
    CGPoint offset = {scrollView.contentOffset.x, -scrollView.contentInset.top};

    // NSLog(@"endRefreshing: offset X %f", scrollView.contentOffset.x);
    // NSLog(@"endRefreshing: offset Scrollview TOP %f", scrollView.contentInset.top);

    [UIView animateWithDuration:0.25
                          delay:0
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^(void) {
                       [scrollView setContentOffset:offset];
                     } completion:^(__unused BOOL finished) {
                       [super endRefreshing];
                     }];
  } else {
    // NSLog(@"endRefreshing: super");
    [super endRefreshing];
  }
}

- (NSString *)title
{
  return _title;
}

- (void)setTitle:(NSString *)title
{
  _title = title;
  [self _updateTitle];
}

- (void)setTitleColor:(UIColor *)color
{
  _titleColor = color;
  [self _updateTitle];
}

- (void)_updateTitle
{
  if (!_title) {
    return;
  }

  NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
  if (_titleColor) {
    attributes[NSForegroundColorAttributeName] = _titleColor;
  }

  self.attributedTitle = [[NSAttributedString alloc] initWithString:_title attributes:attributes];
}

- (void)setRefreshing:(BOOL)refreshing
{
  // NSLog(@"setRefreshing %d", refreshing);

  if (_currentRefreshingState != refreshing) {
    _currentRefreshingState = refreshing;

    if (refreshing) {
      if (!_isInitialRender) {
        [self beginRefreshing];
      }
    } else {
      [self endRefreshing];
    }
  }
}

- (void)refreshControlValueChanged
{
    // NSLog(@"refreshControlValueChanged");
  _currentRefreshingState = super.refreshing;

  if (_onRefresh) {
    _onRefresh(nil);
  }
}

@end

With these logs we found out that the problem is in-fact that the Y offset is not set correctly. The first time (in our case) it set the Y offset to -60 on the first refresh which shows the refresh correctly but on the second refresh it logs the Y offset as -0.5.
We actually set the Y offset to a steady 60 in the beginRefreshing function and then the issue doesn't occur. (Hard coding this is obviously not the solution, it's just to test if the RefreshControl is actually showing, and it is, the offset is just not set correctly to show it).
So if you look at my example project REALLY closely, you will see the ScrollView move just a tad bit when clicking the Refreshing 1 button for the second time.
Solution
The offset should always be set correctly when the refreshing boolean is true.
Additional Information

React Native version: "react-native": "0.44.0"
Platform: iOS
Development Operating System: macOS
Dev tools: Xcode & Atom

Thanks for investigating the issue, do you have an idea how it could be fixed? A PR would definetly be appreciated since I probably won't have time to look at this for a while.

Any updates on this? I'm running into this too.

@janicduplessis any update on this. A few issues (e.g - #15892) and PRs have been opened for this. PR #14259, #10747 were basically rejected with no follow up.


Allow suppressing of conformance violations

Currently @suppress {conformanceViolations} is working but it raises
another warning: Parse error. unknown @suppress parameter: conformanceViolations

In your conformance config, you can whitelist files where you don't want the conformance checks to apply. Why do you need the suppression?

The file is quite large (3000+ lines) and I don't want to whitelist the whole file because of one line.

Makes sense. I'll bring this in.

Thanks!

As with previous discussions, conformance violations aren't intended to be suppressible.  If we want suppressible rules we need to add a "lint" or "warning" category.  I'm recommending a rollback here.

Hey Martin, turns out I was missing some details here. The conformance checks are supposed to be enforced project-wide, which is why we didn't allow use with @suppress in the past. To whitelist individual warnings without whitelisting the whole file, you can use a whitelist file with the option --warnings_whitelist_file. It's a bit more hassle to set up than @suppress, but it will do what you want.

@dimvar Thanks for the explanation but I still don't understand why am I able to whitelist by file or even by file:line but I'm not able to whitelist a block of code. Whitelisting by file:line isn't really helpful in my case because the line is changing with almost every commit.

dimvar@ added an explanatory comment yesterday but I'm having some trouble with MOE which is why you don't see it on github yet:
  // This diagnostic group is intentionally absent in ParserConfig.properties.
  // Conformance checks are supposed to be enforced project-wide, so we don't
  // allow suppressions on individual functions.
  // In the future, we may carve out a subset of the conformance checks that is
  // OK to suppress.
  // For now, the only way to suppress a check at a granularity smaller than
  // the file level is by using a whitelist file.

Conformance checks are often used to limit use of dangerous APIs like the innerHTML property of HTML elements. You want to make sure that no one is using it except for a few spots that have been very carefully reviewed to make sure there's no risk of XSS. Allowing @suppress means you can't really enforce that. On the other hand some conformance checks are less crucial from a security standpoint which is why we may carve out a suppressible subset in the future.

Whitelisting by file:line isn't really helpful in my case because the line is changing with almost every commit.

Line numbers are ignored when comparing warnings against a whitelist.


add const ADatatype::getRaw(), Buffer::getData(); add copy+move Buffer::setData()

Adds const to two member methods, enables operation on const and constref objects
Also add/clarify the copy and move Buffer::setData() functions to ensure there is no fallback to internal copy+move when a single move should be used instead.
All 65 tests + examples pass. And I have been using these changes since ~7 December which had considerable testing over the last month.
Fixes luxonis/depthai-core#330

@szabi-luxonis would you please enable the CI to run? I want to see those results :-)

@szabi-luxonis would you please enable the CI to run? I want to see those results :-)

Running.

Humm...🤔
Today's main code is already errant. It allows changes to the bytes in the buffer through directly access to members or apis like serialize().

This PR is only interested in the ImgFrame and its base classes ADatatype, Buffer, RawBuffer, RawImgFrame. Anything can create ImgFrame; perhaps message is one example.
You describe a new idea/semantic/behavior for a const ImgFrame. The existing depthai api does not have that idea/semantic ...it doesn't special-case such behavior. If you want to add that idea as a new feature, then this ImgFrame class and all its possible base(s) need to be reviewed and special-case behavior on all of them. For example serialize(), getCvFrame(), getFrame() would also need changes. Current main code is already ImgFrame::serialize() const. It is a const member function and returns a non-const shared_ptr to a non-const RawBuffer.
Somehow make changes to RawBuffer and RawBuffer::raw such that the data they contain is unchangable yet can still be assigned to the member std::shared_ptr<RawBuffer> ADatatype::raw which demands a non-const RawBuffer. The object of a class can be const while some data contained deeper within still be non-const. const is only enforcing that the member fields directly on the const object can't be changed. Today's const ImgFrame enforces that the shared_ptr<RawBuffer> can't be changed to another shared_ptr. This myImgFrame.raw = otherSharedPtr; is forbidden. depthai-core main shared_ptr points to a non-const RawBuffer. If you want to special-case behavior such that a const ImgFrame has a const shared_ptr<const RawBuffer>, then I think c++ templates need to be involved. That amount of work does not make sense to me when zerocopy is coming soon and will rework much of this code. And sometime later also the meta topic of "const" throughout depthai-core.

The code so far in this PR enables code like...
auto preview = previewQueue->get<dai::ImgFrame>();
auto theArray = preview->getData();
theArray[0] = 111;
auto theRaw = preview->getRaw();
theRaw->data.front() = 222;

// works because ImgFrame has a shared_ptr<RawBuffer>. RawBuffer is non-const.
const dai::ImgFrame theConstFrame{};
auto theNonConstArray = theConstFrame.getData();
theNonConstArray[1] = 111;
auto theNonConstRaw = theConstFrame.getRaw();
theNonConstRaw->data.front() = 222;

Is there value in special-casing getData() and getRaw() while the other member apis and direct field access remain errant? 😵
getData() is easy. But getRaw() likely needs templates because I have to change it to shared_ptr and work might cascade inside the Rawbuffer to enforce no changes to bytes. But then I'm reworking RawBuffer which is going to be refactored with zerocopy.
Or broading the work to add the new semantic throughout ImgFrame and all its apis/bases doesn't make sense to me with zerocopy refactoring all this code. 🤷♀
Comments? Ideas?

ewww, I could probably std::const_pointer_cast<const RawBuffer>() rather than using templates for getRaw().
Other APIs are still errant.

Agree the points above - some of the current API already breaks this behavior (nodes and getting properties, for example)
Otherwise I'm not fully decided yet on whether const should be transitive or not. I guess should depend on specific cases.
Lets leave this as is for the current PR and we'll address const on messages when refactoring later :+1:

Got it. 👍 "transitive" that's a good way to describe
opencv support
depthai optional opencv support functions get/setFrame() use a mix of getData() and direct field access img.data to read and write to them. They will need updates for transitive const.
Also, the OpenCV api does not support the idea of a Mat or UMat that contains constant data. The class only operates with void* and uchar*. One can make the U/Mat header const, and accessors like Mat::at() will return const references. But...the data within it is always assumed to be writeable. And the widely-used Mat::data pointer is always char*.
const uchar* const buf = zerocopy.constdataptr();
cv::Mat myMat(640, 480, CV_8U, buf); // valid; constructor param is void*
*myMat.data = 12; // .data returns a non-const `uchar*`; this is undefined behavior or a crash
myMat.data[1] = 23; // this is undefined behavior or a crash
myMat.at(2) = 34; // returns non-const reference; this is undefined behavior or a crash

const cv::Mat myConstMat(640, 480, CV_8U, buf);
*myMat.data = 12; // .data returns a non-const `uchar*`; this is undefined behavior or a crash
myMat.data[1] = 23; // this is undefined behavior or a crash
myMat.at(2) = 34; // won't compile; returns const reference which can not be an lvalue

prevent silent copies of buffer
I wrote the code needed to implement your transitive suggestion above. getData() and getRaw() both worked as desired. I lost about half an hour because of my own subtle bug. I used auto rather than auto& when calling getData() which lead to silent copy of data. It is my bug.  Though, it highlights how easy it is to silently cause a copy of a whole buffer. I recommend the zerocopy refactor delete both copy assign and copy constructor...and instead provide a zerocopy::clone() factory if someone really needs to copy the whole buffer.
void myfuncconst(const dai::ImgFrame& frame) {
    auto theConstRaw = frame.getRaw();
    auto s0 = theConstRaw->data.size();
    // below correctly fails to compile, because front() returns `const uchar&`
    //theConstRaw->data.front() = 56;

    // dev mistake `auto` vs `auto&`
    // `auto` creates a vector<uchar> var and COPIES all the vector data from the const ref return
    // works, COPIES all vector data
    auto theFalseConstData = frame.getData();
    auto s1 = theFalseConstData.size();
    // and changes my COPY and not the original frame data
    theFalseConstData.front() = 33;
    theFalseConstData[1] = 12;

    // `auto&` creates a const vector<uchar>& var and assigns the ref from the const ref return
    auto& theConstDataRef = frame.getData();
    auto s2 = theConstDataRef.size();
    // correctly fails, because front() returns `const uchar&`
    theConstDataRef.front() = 33;
    // correctly fails, because operator[]() returns `const uchar&`
    theConstDataRef[1] = 12;
}


Wrong pin for right door in documentation

The graphic from README.md that shows the wiring uses a wrong pin number for the right (blue) sensor wiring. The graphic (and the config.yaml) refer to the pin as GPIO21, but according to https://www.raspberrypi.org/documentation/usage/gpio/ the pin used in the graphic is GPIO27.

Good catch, seems I have an old pinout diagram. Ill try to update the image when I have time but for now ill make a note in the readme


Corrected some spelling mistakes

Hello, currently the README.md file contains two spelling mistakes. NonEmpty isn't inside the com.twitter.finatra.validation package, it's NotEmpty.

Thanks! Your changes should get merged in automatically next Monday. I'll update this PR once that has landed.

Merged in commit: bc161604d77934ec6f1fc55aae0406f559c956e5


Test for approvers

To make sure it's always null

Closing the PR as there is no activity for too long. Feel free to reopen the PR is you want to continue working on it.


Chrome jquery setAttribute

jquery's setAttribute is violating CSP style_src. It looks like a bug between Chrome and jQuery. They have been fixing other related bugs on different jquery methods that update the DOM. How can I turn off or allow anything for style_src. I am really more concerned about script_src working right now (xss protection).

This worked around it...
style_src:     "self 'unsafe-inline'",

Yeah, I only know of a handful of sites that don't use 'unsafe-inline' in their style-src because of things like this.


[phingcall] Unable to find adapter for datasource

When running propel-gen diff, you'll find that the program is complaining about missing adapter to initiate DB connection.
This happens because during that operation, self::configuration is NULL, but I don't know where is the place where is being set during the migration operation.

+1

+1

Will this ever be merged into a 1.x release?

+1

Any updates on this?

already on master branch https://github.com/propelorm/Propel/blob/master/runtime/lib/Propel.php#L651


Gedis logs should be debug logs

Description
with gedis logging every call as info, it is flooding the logs due to actor calls in chatflows and admin dahsboard which makes log rotation very fast and causes useful logs to be lost.
suggestion: change gedis logs to debug level, and we can set our servers log level to info so that it keeps logs related to deployments.

In addition to that, after the new log context fix, all gedis related logs would go under gedis app, which can be filtered.

@abom does this mean it's fixed already or not?

@abom does this mean it's fixed already or not?


Update and rename events-explainer.md to HighlightsFromPointsExplaine…

…r.md

@microsoft-github-policy-service agree company="Microsoft"

…r.md

@stephanieyzhang Looks like the title may have gotten cut off. Could you fix that up, and also add a description?