Bower warning: invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes

Just to let you know that while updating my chartjs version, I received this warning:
bower chartjs#2.0.2       invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes

Here are the logs:
bower chartjs#2.0.2         not-cached https://github.com/nnnick/Chart.js.git#2.0.2
bower chartjs#2.0.2            resolve https://github.com/nnnick/Chart.js.git#2.0.2
bower chartjs#2.0.2           checkout 2.0.2
bower chartjs#2.0.2       invalid-meta The "name" is recommended to be lowercase, can contain digits, dots, dashes
bower chartjs#2.0.2           resolved https://github.com/nnnick/Chart.js.git#2.0.2
bower chartjs#2.0.2            install chartjs#2.0.2

According to bower, names must be lowercase. I think they used to allow case-insensitive names, but that changed now

Change 'name' in bower.json to lowercase. Worked for me as well.
According to this answer:
https://github.com/mwaylabs/generator-m-ionic/issues/353#issuecomment-211974673

Why is the filename Chart.js capitalized?  This is very bad practice and is the only Javascript library I've seen that uses that.  Everyone else uses lowercase file names.

Should be fixed in version 2.3.0-rc.1, see bower.json.


Kindly add Dark Mode with toggle

Hi, how are you?
This is a great theme. Thank you.
Could you kindly add Dark Mode with a toggle and an option to use dark mode(or light mode) as default?
Have a great day.

I don't currently have the time to add in this feature but official Nuxt blog has a post about doing just that if you'd like to use it as a guide. https://nuxtjs.org/blog/going-dark-with-nuxtjs-color-mode.
If you get this working feel free to open a PR. Thanks!


Templatize Geth Deployment for Easier Rollup Launch

This PR implements a Helm Chart that templatizes the geth deployment. This allows us to easily deploy multiple rollup chains with different configuration values.
Part of https://github.com/astriaorg/dev-cluster/issues/31
TODO:

[x] update readme
[x] parameterize alloc address in genesis.json
[x] just command with args for chain name, chain id, alloc address
[x] remove cruft from helm chart generator
[ ] deploy weth9 contract successfully

NOTES:

adding files in configMaps has a few quirks. the - inside the braces strip whitespace, and nindent adds a newline before and then indents everything 4 spaces. This ensures the resulting yaml is formatted correctly. You may have to strip or not strip whitespace depending on how you're using the contents of the file (script vs value string, etc)
can use tpl function to templatize the files included in the configMap

this means we don't have to use sed and jq to update values in init containers

can override values with helm install -f path/to/valuesoverride.yaml
can override values with helm install --set evmChainId=21559

I'm running into issues that I think are related to misconfiguration of sequencer ports.
I can run the following successfully:
cast balance --rpc-url http://executor.blah.localdev.me 0xaC21B97d35Bf75A7dAb16f35b111a50e78A72F30

but deploying weth9 does not work, I get:
(code: -32000, message: invalid sender, data: None)


[BUG] - cardano-cli ping not working with unix socket

Internal/External
Internal   if an IOHK staff member.
Area
Other   Any other topic (Delegation, Ranking, ...).
Summary
The cardano-cli ping doesn't work when unix socket is used instead of host and port:
$ cardano-cli ping --count 5 --unixsock /home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket --magic 42
/home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket network rtt: 0.000
/home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket handshake rtt: 0.000198263s
/home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket Negotiated version NodeToClientVersionV14 42
(AddrInfo {addrFlags = [], addrFamily = AF_UNIX, addrSocketType = Stream, addrProtocol = 0, addrAddress = /home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket, addrCanonName = Nothing},MuxError MuxBearerClosed "<socket: 11> closed when reading data, waiting on next header True")

The node is listening on the socket, eg:
$ cardano-cli query tip --testnet-magic 42 --socket-path /home/martink/Source/repos/cardano-node/state-cluster0/pool1.socket
{
    "block": 122,
    "epoch": 1,
    "era": "Babbage",
    "hash": "088d3fde1274565067c4384a0f4534a4d94da2f7a89ef0e2367fca679a6022cb",
    "slot": 1188,
    "slotInEpoch": 188,
    "slotsToEpochEnd": 812,
    "syncProgress": "100.00"
}

EDIT:
In log file I can see

[31m[fv-az365:cardano.node.LocalErrorPolicy:Error:65] [2023-05-16 00:03:43.76 UTC] IP LocalAddress "./state-cluster3/bft1.socket@3091" ErrorPolicyUnhandledApplicationException (MuxError MuxUnknownMiniProtocol "id = MiniProtocolNum 8")

System info:

OS Name: Linux
OS Version Fedora 37
Node version: 1522f970676961cb4a88f89fb1896f5b33fb0ff4
CLI version: 1522f970676961cb4a88f89fb1896f5b33fb0ff4

The output on https://github.com/input-output-hk/cardano-node/pull/5326 :
cabal run cardano-cli -- ping --magic 2 --count 5 --unixsock $CARDANO_NODE_SOCKET_PATH
/home/mgalazyn/workspace/iohk/network-preview/node.socket network rtt: 0.000
/home/mgalazyn/workspace/iohk/network-preview/node.socket handshake rtt: 0.000336436s
/home/mgalazyn/workspace/iohk/network-preview/node.socket Negotiated version NodeToClientVersionV15 2

so it looks like it's fixed

The issue is still present on current master (51c9002988967e8afc13a6ebbffc5c8c9c76bd21):
$ cardano-cli ping --count 5 --unixsock /home/martink/Source/repos/cardano-node/state-cluster0/bft1.socket --magic 42 --json
/home/martink/Source/repos/cardano-node/state-cluster0/bft1.socket network rtt: 0.000
/home/martink/Source/repos/cardano-node/state-cluster0/bft1.socket handshake rtt: 0.000178226s
/home/martink/Source/repos/cardano-node/state-cluster0/bft1.socket Negotiated version NodeToClientVersionV14 42
] }
(AddrInfo {addrFlags = [], addrFamily = AF_UNIX, addrSocketType = Stream, addrProtocol = 0, addrAddress = /home/martink/Source/repos/cardano-node/state-cluster0/bft1.socket, addrCanonName = Nothing},MuxError MuxBearerClosed "<socket: 11> closed when reading data, waiting on next header True")

The commit 51c9002 no longer contains cardano-cli, it was moved to its own repo. Here's output from input-output-hk/cardano-cli@89cdd923a66afa9343d04864f89a9603143e290d against a node running on mainnet (thus no --magic):
cabal run exe:cardano-cli -- ping -u /var/run/user/1000/coot-node.socket
/var/run/user/1000/coot-node.socket network rtt: 0.000
/var/run/user/1000/coot-node.socket handshake rtt: 0.120501234s
/var/run/user/1000/coot-node.socket Negotiated version NodeToClientVersionV15 764824073

Note that -c flag is not supported on node-to-client protocol (it's noop), simply because node-to-client doesn't include the keep-alive protocol which is used to send the pings.

@mkoura oh, I realised that you might have tried cardano-cli which nix shell provides.  Probably a newer release of cardano-cli is needed and the update to the shell.


Add GAML file extension

Description

This PR adds syntax support for the GAMA-platform programming language name GAML !
GAMA is a modeling and simulation development environment for building spatially explicit agent-based simulations.
Checklist:

[x] I am associating a language with a new file extension.

[x] The new extension is used in hundreds of repositories on GitHub.com

Search results for each extension:

https://github.com/search?utf8=✓&type=Code&ref=searchresults&q=extension%3Agaml+NOT+nothack

[x] I have included a real-world usage sample for all extensions added in this PR:

Sample source(s):

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/3dTutorial.gaml
https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/bdiAgents.gaml
https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/incrementalGIS.gaml
https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/luneraysFlu.gaml
https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/predatorPrey.gaml
https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/roadTraffic.gaml

Sample license(s):

@lildude Hi! I'm trying to find a color which is not too close to any other one. I'm sad because the one I know is detected too close to another one..
Is there a way to generate any available color?

Ok, just found one ^^

@pchaigno Hi !
Should I add anything more or my PR is complete? :smiley:

We are reviewing this request from over the world. Please keep it open.
Thanks

Hi @pchaigno !
Thanks for your answer. We haven't designed any Atom, Sublime or TextMate grammar for GAML yet, but being officially promoted will certainly motivate us to do so !
Cheers
Alexis

Hello all,
I've planned to work on a Sublime grammar (and so I could work on Atom and TextMate's one). I don't have any deadline, but if it could improve the PR, I can work on it quite quickly ^^
Regards,
RoiArthurB

Hello @lildude @pchaigno I've merged my repo with your last commit.
Everything is ready to merge on your repo now :smile:

Hm. One thing I missed: we're going to need links to the original copies of the samples you used.

Every samples come from the official Gama documentation's tutorial : https://gama-platform.github.io/wiki/Tutorials
You also can find them (and more) on the Gama repository here : https://github.com/gama-platform/gama/tree/master/msi.gama.models/models

Could you point to the exact files used? Searching by names, I could only find one of them and it had many different instances...

Sure here you go :

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/3dTutorial.gaml

https://github.com/gama-platform/gama/blob/master/msi.gama.models/models/Tutorials/3D/models/Model 03.gaml
https://gama-platform.github.io/wiki/ThreeD_step3#complete-model

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/bdiAgents.gaml

https://github.com/gama-platform/gama/blob/master/msi.gaml.architecture.simplebdi/models/BDI Architecture/models/GoldMiner_BDI.gaml
https://gama-platform.github.io/wiki/BDIAgents_step5#complete-model

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/incrementalGIS.gaml

https://github.com/gama-platform/gama/blob/master/msi.gama.models/models/Tutorials/Incremental Model/models/Incremental Model 7.gaml
https://gama-platform.github.io/wiki/IncrementalModel_step7#complete-model

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/luneraysFlu.gaml

https://gama-platform.github.io/wiki/LuneraysFlu_step5#complete-model

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/predatorPrey.gaml

https://github.com/gama-platform/gama/blob/master/msi.gama.models/models/Tutorials/Predator Prey/models/Model 13.gaml
https://gama-platform.github.io/wiki/PredatorPrey_step12#complete-model

https://github.com/RoiArthurB/linguist/blob/master/samples/GAML/roadTraffic.gaml

https://github.com/gama-platform/gama/blob/master/msi.gama.models/models/Tutorials/Road Traffic/models/Model 07.gaml
https://gama-platform.github.io/wiki/RoadTrafficModel_step7#complete-model

Hi @lildude
What do you mean by "the links to the original source of the samples"? I've already linked every sample to the corresponding file in the main repo of the project, isn't it enough?
Also yes, only one of all my sample could be enough, I just wanted to be the more complete as possible, but anyone of them is a real-world usage sample (tutorial more exactly) of what a gaml file looks like.
For the license stuff, I'll let @AlexisDrogoul precise it because I'm not sure on that stuff :smile:

What do you mean by "the links to the original source of the samples"? I've already linked every sample to the corresponding file in the main repo of the project, isn't it enough?

I mean put the content of your comment at https://github.com/github/linguist/pull/4549#issuecomment-512721532 into the appropriate place in the template in place of the current links. The template currently links to the files in your fork of Linguist, not the original sources.
The license info would need to go into the apt location in the template too - it appears to be GPL 3 from a quick look.

Updated :smiley:

The slight variation from Harvester can be attributed to using different methods to obtain the info, time, and the fact search will only return 1000 results and they can vary slightly each time a search is performed - I have no idea why.

When Harvester runs, it collects results yielded by the three different "Sort" methods:

Whatever determines the "Best Match" criteria ultimately impacts a third of what Harvester's able to collect. It combs all three sort methods in an effort to reach past the 1000-files-per-search limit, which only matters when there's more than 3,000 results for a search.

Using my own script (it's nearly ready for all to use), I get these stats:

Oh, thank christ. Finally, we can get some server-side support for this. 😀

Oh, thank christ. Finally, we can get some server-side support for this. 😀

Nope. It's only using the public API with normal user permissions now 😁.

Erh, you mean the RESTful API? I wasn't aware open-ended searches were possible without specifying a user, org, and/or repository to search within. Was this something that changed more recently?

Erh, you mean the RESTful API?

Yup. https://developer.github.com/v3/search/#search-code

I wasn't aware open-ended searches were possible without specifying a user, org, and/or repository to search within. Was this something that changed more recently?

Not that I'm aware of. You do need to be authenticated to perform the search, but that's about it.

Not that I'm aware of. You do need to be authenticated to perform the search, but that's about it.

That wasn't the case in, uh, 2016 when I first wrote the Harvester script. Just realised that was was yonks ago, so a "recent" change actually means "anything that happened in the last 3 years". 😅

Hi everyone ! :smile:
So everything is ready to merge now or should I do something else? ^^

@lildude @pchaigno :up:

Great news! Thank you all for the big effort to make it happened.
Do we have to make another step to see the GAML tag in the repository? I don't see it yet (e.g this repo https://github.com/CityScope/CS_Simulation_GAMA is mainly developed using .gaml files)

There is nothing you can do yet. I need to make a new release and deploy that to GitHub.com before it'll take effect. I hope to do that this week or early next.


Python 3.7 support

It seems like there's not much to do - just allow dropbox v9.0.0 as a dependent package (and add the trove classifier, I suppose)
Dropbox 9.0.0 is required because of the fix for https://github.com/dropbox/dropbox-sdk-python/issues/145

Thanks for pointing this out! Would you like to submit a pull request for this?


Detect whether Flashrom is installed

https://github.com/pranelio/Swift-Apple-EFI-Patcher/commit/e69a19c2338522647dbdd5c86d35d0ebeb81427b


Change the Aitken's transformation

The Aitken's transformation was added in the context of [1], as well as others but looking at some examples with Aitken and Epsilon, we can see certain similarities in some cases:

Figure: Basel problem with error=1e-6
In [2] the Aitken transformation is presented in the form of an extrapolation example. The Epsilon transformation is presented as a generalization of Aitken. Bearing this in mind, it seems better to me to only have one of the two transformations. In this case it seems reasonable to me to add another transformation in place of Aitken. Perhaps from the [2] itself.
Referencies
[1]: Small, C. G. (2010). Expansions and asymptotics for statistics. Chapman & Hall/CRC Mono-
graphs on Statistics & Applied Probability. CRC.
[2]: Brezinski, C. and Zaglia, M. R. (2003). Extrapolation Methods: Theory and Practice. Studies in
Computational Mathematics 2. North-Holland.

In some practical tests (with the Tweedie distribution) it was found that the Ainkten transformation is useful in some cases.


Fix stalled leader election after Deployment updates

With the current Deployment strategy of rolling update, a new pod is brought up
before the old is terminated. The new pod leader election has already determined
someone else is leader before the old releases it's lock, and will wait the full
renew interval of 270 seconds before checking again.
To fix we switch to the recreate strategy which will delete the old pod first,
then create the new. This seems the desired strategy for leader election based
operators.

/assign @dgoodwin
/cc @staebler

/lgtm


Acceptance of donations to the project

First, a huge thanks to all the developers involved on the making of this project, it has been of great help to me, not only it abstracts many of Three.js internals, but also synergizes very well with the way things are done on Svelte
I would like to give back to it in some way or another, but unfortunately, i don't have enough time to get into making code/documentation contributions, so i would like to know if the maintainer(s) are interested in accepting donations

Hi @henriquehbr and thanks a lot for your interest to support this project! Threlte is now somewhat of a part-time second job for me and while I absolutely love working on it, seeing what people create with it and try to help where I can, it takes a lot of time. In an effort to make this project financially more sustainable I decided to give people the possibility to sponsor me: https://github.com/sponsors/grischaerbe.
It not only helps me to find more time to work on Threlte but ultimately enables you to build on and with a product that's more stable, has better support and is progressing at the speed of light.
Also: I stated in the past that I don't want to make Threlte about me personally and I still stand by that. We're going to introduce a system that's fair to all collaborators and maintainers in the future and we are currently in the ideation phase of how such a transparent and fair system could be implemented to attract more collaboration from the outside.


[RFC]: extend MoyaBot to automatically follow up with issues & PRs where we're waiting for author response

I recently saw @KrauseFx's talk on scaling open source communities (great talk, I'd recommend it to everyone who's doing anything at all in open source). https://news.realm.io/news/tryswift-felix-krause-scaling-open-source-communities-github-management
One of my big take aways was fastlane's fastlane-bot. Which would automatically follow up with issues and close them if there was no response.
Right now, a couple of contributors have been manually doing that, but I think it would be awesome if we could add some of fastlane-bot's functionality to our bot so we don't have to politely close stale issues
Any thoughts from other contributors? Does anyone want to take a shot at implementing that for MoyaBot?

I really like this - though looking at fastlane-bot's repository, I have no idea how it would work implementing it. Does anybody have an idea, or should we go ahead and file an issue there?

We can wait for Peril from @orta. It looks really promising. It is not fully stable yet, but it can already post on issues AFAIK.

Peril does look really nice, let's wait for that to be usable

Just came across this: https://github.com/probot/stale 🤔

This one is really cool! I think we can try to do it. What do you think, @Moya/contributors?

Sure, this would be really nice! Re: MoyaBot: I think you should ping @ashfurrow to ask if that's possible. :)

We just merged it in on CocoaPods - https://github.com/CocoaPods/CocoaPods/pull/6745 - I can't really compete with GitHub on resources for this kind of project, so I wouldn't wait on peril

Ye, and this one is looking cool. The question is if we want/can use MoyaBot for that. Also, we would need someone to do a PR with config. The values we will probably discuss in a PR (if they are off).

😆
I'm happy this is happening!

I was talking with Ash and we've figured that MoyaBot would need a write access so it would be better to use different bot or someone else's access token. Thus, it might be better just to install this stale bot and go from that. I'm gonna do a PR with some default values for config so we can discuss it there 👍

Awesome! 👊

I've opened a PR#1101 with the config, please let me know what do you guys think!
What we need to get this bot running:

[ ] #1101 merged.
[ ] Re-visit issues that might have need a label to not flag it.
[ ] Install the bot & iterate with the feedback.

Is there something I didn't think about? 🤔

That sounds good to me. Thanks for figuring this out!!
On to-do 2, let's wait to add labels until we've iterated on the bot, just
in case we end up not liking it
On Thu, May 25, 2017 at 8:21 AM Łukasz Mróz<EMAIL_ADDRESS>wrote:

I've opened a PR#1101 with the config, please let me know what do you guys
think!
What we need to get this bot running:

#1101 https://github.com/Moya/Moya/pull/1101 merged.
Re-visit issues that might have need a label to not flag it.
Install the bot & iterate with the feedback.

Is there something I didn't think about? 🤔
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Moya/Moya/issues/1071#issuecomment-304037990, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADo1dFodJSG0iR_dKP_AKOVN3RAbcAP6ks5r9Zx2gaJpZM4NQHMU
.

I've revisited some issues anyways - I've flagged most of documentation ones to leave it as it is important that we have these open and add it in the future. If you guys want to make last review, I'm gonna try to launch the bot tomorrow morning or so.

@sunshinejr thanks for taking the time! ❤

Bot added - let see how it goes :D

Wanted to make a quick summary after a month, but seems like our bot is stuck? Maybe wrong configuration? Anyone sees something strange here? Because in issue like #1056, label was added 28 days ago, which means 14 days ago it should be closed, but it is still open 🤔

@sunshinejr The configuration looks correct to me. Do you think its a permission issue considering it can comment on issues but not close them?

👍 nice catch, @SD10. Can you take care of that issue and see if this PR helped?

@sunshinejr Thanks for checking the permissions. This change is already merged in. It may take some time to determine if this changes anything. There's little and no official documentation on when probot will scan the issues. Some info here if anyone is interested.
I'll continue watching this until it's resolved.

Great, thank you Steven! 🍻

I think the problem is with our label having spaces.
The method used to grab stale issues at probot/stale doesn't wrap the label in quotes when performing the search query to find closable issues. I created a PR at stale to fix this (if it is the problem 😅).

@SD10 That's exactly what I was testing https://github.com/pedrovereza/stale-bot-test/issues/2 😄

@pedrovereza You read my mind! I was going to ask you to please test this there 👍

@pedrovereza What do you think about changing our label to one without spaces? The support at stale looks limited. I don't think they'll be merging that PR anytime soon.

@SD10 I'm ok waiting a bit longer for them to take a look at the PR. But if we decide to change the label, we need to revisit all the ones currently marked by the bot.
@sunshinejr @AndrewSB @BasThomas thoughts? 😄

This should be as easy as changing the name of one label & updating the StaleBot config, correct? If so, and if its gonna fix the bot, I am up for the change 👍 I also don't mind waiting few days before we make a change, but seeing from the Issues/PRs it might be quite some time before they merge it.

This should be as easy as changing the name of one label & updating the StaleBot config, correct? If so, and if its gonna fix the bot, I am up for the change 👍 I also don't mind waiting few days before we make a change, but seeing from the Issues/PRs it might be quite some time before they merge it.

@sunshinejr We would probably have to resolve all the current issues manually.
Updating a label is an action that will update the last modified date of an issue. Issues that are currently marked as no recent activity won't get marked with the new label until 45 days after they were marked with the first label 😐
It would work immediately for all issues not already marked.

But if we rename the label to something without spaces, then the update date shouldn't change (since it is the same tag object but a different name) and if we change name of the label in the config, the bot should catch that one as well, right? Or am I missing something?

The API has a "last updated at". This might (?) be updated when a label changes? I'm not sure.

We can try changing the label name and bot config, worst case we'll have to close them manually (which was the original plan anyway) 😄

Well, we can (probably) make sure it will work! 😄
I've just tested it on my test repo. My steps to reproduce:

Create a new label with space, "new label"
Create an issue with this label.
Check updated_at field (since from here I understand that it queries based on updated_at field). Date: 2017-07-10T15:05:36Z
Rename the label to a label without space, "new_label".
Check updated_at field again. Date: 2017-07-10T15:05:36Z, which is the same as before.

(Note: I was using this request to test it.)
So if the data is correct and I didn't miss anything, whenever we change the label, the update_at field of the issue is not updated. Therefore, we can assume we won't need to take care of all the issues above.
That was fun! 😄

I actually think it does the query using the updated search qualifier:
i.e) is:issue is:open updated:>2017-07-10
I think that PR should've taken effect immediately, so I'm thinking there's a stateful issue.
Regardless, I think that was the right step so let's see how the next marked issue is handled.

It looks like probot has stopped slacking off 😅.
I don't know if we want to keep this issue open to discuss the merit of this automation tool or close it now that the bot has completed a full cycle.

I'm up for closing this issue now that the bot is finally working :tada:
We originally wanted @MoyaBot to do the job, but I don't think the effort to deploy our own bot is worth it.
@MoyaBot: nothing personal ❤

The issue was created to integrate the bot, and because it is both integrated and working now, there is a reason to close it 😄 We can create another issue for things related to this bot if something pops up.
Thanks everyone for feedback & help! 🎉

I saw that over at Fastlane, there's actually another step locking an issue some time after an issue has been closed. Would it be possible to add this as well? And then maybe add another comment before locking that asks to create a new issue?

Is that also using probot/stale, @BasThomas? I think we had this conversation here at #1101 and it wasn't possible, but using another plugin could work (though I don't know if we can do it without deploying it).


regression: builds broken on ARM Alpine

Apologies for only noticing/opening this now, but the change to this repo only just came into our CI systems (through the release of rust-zmq 0.10.0 and tmq consuming it once our lockfile was updated).
On a MacOS M1 Mini, running docker run -it rust:alpine3.16, with all build dependencies installed (as far as I can tell), #17 appears to have broken the build. Each master commit up to that point the testcrate builds, ex:
/zeromq-src-rs/testcrate # git checkout --recurse-submodules fb822b870ac737aa63bbdafea0182debd66d7858
Previous HEAD position was fa5c11c Cleanup previous merge (#18)
HEAD is now at fb822b8 Prepare for release 0.1.10
/zeromq-src-rs/testcrate # cargo b
    Updating crates.io index
   Compiling zeromq-src v0.1.10+4.3.2 (/zeromq-src-rs)
   Compiling testcrate v0.1.0 (/zeromq-src-rs/testcrate)
    Finished dev [unoptimized + debuginfo] target(s) in 9.35s

and each master commit after that point fails to build with this message, the same one I see upstream trying to build zmq-sys (or up the dependency chain rust-zmq -> tmq -> our binary):
/zeromq-src-rs/testcrate # git checkout --recurse-submodules c3fc02d42a928538e7d6c21f6a5816fd3b2ea4e6
Previous HEAD position was 649b49e Remove `cmake` (#17)
HEAD is now at c3fc02d Prepare for new release
/zeromq-src-rs/testcrate # cargo b
    Updating crates.io index
   Compiling zeromq-src v0.2.2+4.3.4 (/zeromq-src-rs)
   Compiling testcrate v0.1.0 (/zeromq-src-rs/testcrate)
The following warnings were emitted during compilation:

warning: In file included from /zeromq-src-rs/vendor/src/ipc_address.cpp:31:
warning: /zeromq-src-rs/vendor/src/compat.hpp:45:1: error: 'size_t strlcpy(char*, const char*, size_t)' was declared 'extern' and later 'static' [-fpermissive]
warning:    45 | strlcpy (char *dest_, const char *src_, const size_t dest_size_)
warning:       | ^~~~~~~
warning: In file included from /usr/include/fortify/string.h:22,
warning:                  from /zeromq-src-rs/vendor/src/compat.hpp:34,
warning:                  from /zeromq-src-rs/vendor/src/ipc_address.cpp:31:
warning: /usr/include/string.h:86:8: note: previous declaration of 'size_t strlcpy(char*, const char*, size_t)'
warning:    86 | size_t strlcpy (char *, const char *, size_t);
warning:       |        ^~~~~~~
warning: /zeromq-src-rs/vendor/src/ip.cpp: In function 'void zmq::set_socket_priority(zmq::fd_t, int)':
warning: /zeromq-src-rs/vendor/src/ip.cpp:233:37: warning: unused parameter 's_' [-Wunused-parameter]
warning:   233 | void zmq::set_socket_priority (fd_t s_, int priority_)
warning:       |                                ~~~~~^~
warning: /zeromq-src-rs/vendor/src/ip.cpp:233:45: warning: unused parameter 'priority_' [-Wunused-parameter]
warning:   233 | void zmq::set_socket_priority (fd_t s_, int priority_)
warning:       |                                         ~~~~^~~~~~~~~

error: failed to run custom build command for `testcrate v0.1.0 (/zeromq-src-rs/testcrate)`

Full output is available here in case it's useful. I'm going to keep looking into it to see if I can open a PR fixing it, since I'm assuming it'll be hard for you or anyone downstream to reproduce, given that no one in that chain ran into the issue.

I opened a PR fixing this. I also confirmed it's an issue on all our musl builders/targets, not just our MacOS M1 ARM64 one.


Adds license_finder to Gemfile

Helps with issues for incompatible licenses
Add travis task also

Coverage remained the same at 97.997% when pulling 890b593a07f31858b4dba3b9a3afd7ecc74c1b97 on add_license_finder into 92ab34995273b3134a2c63beb81d354901631813 on master.


Fix flaky testQueryBreakerIsUpdatedWhenSettingIsChanged

Summary of the changes / Why this improves CrateDB
Expected: is "[query] Data too large, data for [collect: 0] would be [120/120b], which is larger than the limit of [100/100b]" and pgErrorStatus=<INTERNAL_ERROR> and httpResponseStatus=<500 Internal Server Error> and errorCode=<5000>
    but: error message is "[query] Data too large, data for [collect: 0] would be [120/120b], which is larger than the limit of [100/100b]" error message was "[query] Data too large, data for [collect: 0] would be [2577100/2.4mb], which is larger than the limit of [100/100b]"

Checklist

[x] Added an entry in CHANGES.txt for user facing changes
[x] Updated documentation & sql_features table for user facing changes
[x] Touched code is covered by tests
[x] CLA is signed
[x] This does not contain breaking changes, or if it does:

It is released within a major release
It is recorded in CHANGES.txt
It was marked as deprecated in an earlier release if possible
You've thought about the consequences and other components are adapted
(E.g. AdminUI)

@Mergifyio backport 4.4


[BUG]: Validate Configuration upper bounds field loses focus

Describe the bug
After each inputted number the field loses focus
To Reproduce
Steps to reproduce the behavior:

upload a model Configured SIR.json
add it to a workflow
click 'add another constraint'
try changing Upper bound

Expected behavior
should not lose focus after add a number
Screenshots

The bad text-input interaction is a known issue, the problem is we regenerate the UI every time the number changes so you constantly lose focus is you type.
Tracked here along with a few other things: https://github.com/DARPA-ASKEM/terarium/issues/3567


Trying to connect to 2 tags at once

As mentioned over in the Node-Red side of things, I'm having issues connecting to multiple tags at once.
The second discover never happens.  I'm wondering if the discovery phase is shutdown by the connect call. If so I guess the only way to do it is to call discover all, save the list of discovered tags and then connect after a suitable time out period?
var SensorTag = require('sensortag');

SensorTag.discoverByUuid("34b1f7d136b9",function(tag){
    console.log("found " + tag.uuid);
    tag.connect(function(){
        tag.discoverServicesAndCharacteristics(function(){
            tag.notifySimpleKey(function(err){
                console.log(err);
            });
            tag.on('simpleKeyChange', function(left, right){
                console.log("button " + left + " 34b");
            });
        })
    });

});

SensorTag.discoverByUuid('1cba8c20caf3',function(tag){
    console.log("found " + tag.uuid);
    tag.connect(function(){
        tag.discoverServicesAndCharacteristics(function(){
            tag.notifySimpleKey(function(err){
                console.log(err);
            });
            tag.on('simpleKeyChange', function(left, right){
                console.log("button " + left + " 1cb");
            });
        })
       });
});

@hardillb I can't seem to reproduce locally with 2 CC2650 sensor tags (I only own one CC2540 SensorTag, so can't test with two of those). Tried on my Mac and Raspberry Pi.
As well, a slightly modified version:
var SensorTag = require('sensortag');

var UUID_1 = '68c90b06bc81';
var UUID_2 = '68c90b044580';

SensorTag.discoverByUuid(UUID_1, function(tag1) {
    console.log('1: found ->' + tag1.uuid);

    tag1.connectAndSetUp(function() {
        console.log('1 -> connect and set up');

        tag1.notifySimpleKey(function(err) {
            console.log('1: notifySimpleKey' + (err ? err : 'success'));
        });
    });

    tag1.on('simpleKeyChange', function(left, right) {
        console.log('1: button ->' + right);
    });

    tag1.once('disconnect', function() {
        console.log('1: disconnected');
    });
});

SensorTag.discoverByUuid(UUID_2, function(tag2) {
    console.log('2: found ->' + tag2.uuid);

    tag2.connectAndSetUp(function() {
        console.log('2: connect and set up');

        tag2.notifySimpleKey(function(err) {
            console.log('2: notifySimpleKey' + (err ? err : 'success'));
        });
    });

    tag2.on('simpleKeyChange', function(left, right) {
        console.log('2: button ->' + right);
    });

    tag2.once('disconnect', function() {
        console.log('2: disconnected');
    });
});

Could you please provide debug logs: DEBUG=* node <files>.js

I still get the same with your code and 2 version 1 SensorTags.
The debug log is here: https://gist.github.com/hardillb/d17331c148128334eae0

@hardillb any change in behaviour if you swap uuid's/BT address order?
The debug log only shows one discover event. To get more info, you could add some log statements in noble's startScanning and stopScanning methods, to verify stop scanning isn't been called.

Changing the order doesn't change anything (apart from which tag gets to connect, it's always the first one).
I'll try and find some time later to have a poke lower down the stack

@hardillb any progress on this?
I'm wondering if something in the Bluetooth stack (hardware, driver, kernel version) doesn't allow for scanning while connected. What adapter and kernel version are you using?

Sorry, not been in the office long enough to play with this again recently. I'll try and have another look this week.

This is all running on Fedora Linux 20 with the following
kernel: Linux bagend 3.19.5-100.fc20.x86_64 #1 SMP Mon Apr 20 19:51:16 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
bluez: 5.18
hardware: Broadcom Corp. BCM20702 Bluetooth 4.0
not had chance to add anything to the code yet

@hardillb thanks, one thing to try is scan only (no connecting) - something like:
var SensorTag = require('sensortag');

SensorTag.discoverByUuid("34b1f7d136b9",function(tag){
    console.log("found " + tag.uuid);
});

SensorTag.discoverByUuid('1cba8c20caf3',function(tag){
    console.log("found " + tag.uuid);
});

@hardillb ping ... any progress?

I am having similar issues trying to connect to a list of CC2650 sensortags at the same time:
Here is a code-snippet (not actually tested but quite similar to my implementation)
var async = require('async');

var devices = [ "68c90b06a104",
                "68c90b043a01",
                "68c90b043a02",
                "68c90b043a03",
                "68c90b043a04"]

var asynchronous = true;
var SensorTag = require('./index');

if (asynchronous) {
    async.forEach(devices, function(deviceMac, callback) {
      //directly connect to device
	  SensorTag.discoverByUuid(deviceMac, function(err) {
        console.log("found " + deviceMac);
        callback();
      });
    }, function (err) {
      console.log('All found!');
      process.exit(0);
    });
}

@sandeepmistry Sorry got side tracked with various things.
I've run the code you suggested and it's discovering both:
$ sudo node test.js
[sudo] password for hardillb:
found 34b1f7d136b9
found 1cba8c20caf3`

So it looks like it's the connection part

@hardillb cool, so next step would be trying to connect to both after both are discovered ... please try that out and report back.

The following code seams to be working:
var SensorTag = require('sensortag');
var tags = [];

SensorTag.discoverByUuid("34b1f7d136b9",function(tag){
    console.log("found " + tag.uuid);
    tags.push(tag);
});

SensorTag.discoverByUuid('1cba8c20caf3',function(tag){
    console.log("found " + tag.uuid);
    tags.push(tag);
});

setTimeout(function(){
   console.log("timer");
   tags.forEach(function(tag){
      tag.connectAndSetUp(function(){
          console.log("connected " + tag);

         tag.notifySimpleKey(function(err) {
            console.log('1: notifySimpleKey' + (err ? err : 'success'));
         });

     });
     tag.on('simpleKeyChange',function(left,right){
        console.log(left + " - " + right);
     });
   })
},5000);

I am having a similar issue.
I have a setup with 3 SensorTags 2650 and once in 3 starts one of the SensorTags is not discovered. What I found is that the discovery with noble and noble-device tests work fine but the peripheral.advertisement.localName is sometimes "undefined".
Then the function "is" does not recognize the device as a SensorTag:
CC2650SensorTag.is = function(peripheral) {
var localName = peripheral.advertisement.localName;
return (localName === 'CC2650 SensorTag') ||
(localName === 'SensorTag 2.0');
};

I wrote a test which works with my setup: 3 SensorTags 2650 on a Raspberry via a USB Bluetooth dongle.
I set the parameter javascript SensorTag.SCAN_DUPLICATES = true;  in order to be able to connect even if the SensorTag does not send the advertisement data the first time. In addition I can reconnect just in case the connection is gets lost somehow.
Secondly I stop discovering until the discovered SensorTag is connected in order to make sure it is connected only once. Then I restart discovering.
https://github.com/martin-doyle/node-sensortag/blob/master/testSensorTag.js

@martin-doyle please open a new issue for the discovery issue, I would be happy to merge a pull request for SensorTag.SCAN_DUPLICATES = true; as well.
It would be good to get an hcidump capture from the scenario of trying to connect while scanning is taking place.

@sandeepmistry I am not sure which part you want to pull in. Do you mean the whole test?

@martin-doyle just the SensorTag.SCAN_DUPLICATES = true; part if it fixes #45 for you.

Hi!  I have a related question, which may possibly stem from a misunderstanding of how BLE is meant to function. Sorry if this is the wrong place to ask this - if it is, plase can you point me at teh correct one?  Thanks!  Following on from hardlib's suggestion of a list of known sensortags,  If one wanted to connect to and disconnect from an array of sensortags of known address/ID, is the 'discovery' phase always necessary, or can one go directly to the 'connect' step?   To express it in terms of Sandeep's node.js code: in a node.js setup, is using one of the 'discover' factories the only way to instantiate a sensorTag object, or is there some kind of SensorTag.new() pattern where an ID can be assigned from a list of already-known IDs?  My issue is that in order for discoverById to succeed, the tag must be forced to advertise (or flashed with new firmware to constantly advertise in the absence of a connection, which would kill the battery)

I think that if the tag is not connected or advertising it is powered down so you couldn't connect to it anyway

@jeremyjohnson your question is a bit off topic to this issue. Gitter is a better place for questions like this: https://gitter.im/sandeepmistry/node-sensortag
However, I agree with @hardillb's answer above. The discover phase is required by this library, as the BLE lib it uses (noble) requires it.

I may have run into a similar situation. I am only seeing one of my two 2650's discovered with discoverAll.
Is it really discoverAny?

What I found is that discovering stops when some data is sent. This the case when you do connectAndSetUp.
In order to fix that I do the following:

Discover All
On connect stop discovering
When connected start discovering again

You can find a test script at https://github.com/martin-doyle/SensorTagMQTT/blob/master/testSensorTag.js.
I could connect up to 5 SensorTags so far. Please let me know if that works for you.

So, I;ve tried connecting by ID, address, and all and they all seem to stop once I connect to the first one.
It appears the only way to do this, as you suggest, is to stop/start discovery after each discovery. Will work to incorporate your code into what I am trying.
Thanks!

@ScottChapman Just curious. Did it work?

@martin-doyle - Yep! I was able to leverage your code for my app. Seems like the pattern could be incorporated into the node-sensortag code to effectively provide expected behavior.
Thanks!

@ScottChapman

Seems like the pattern could be incorporated into the node-sensortag code to effectively provide expected behaviour.

I can put a patch upstream in noble to fix this, would you have time to test if I do this?

Sure, maybe not right away but would be happy to noodle on it.

@sandeepmistry I would test the patch, too.

Could my problem be related to having two 2541 SensorTags?
I have two SensorTags at home and the SensorTag node shows up in NodeRed but never loads anything. As soon as one tag is connected, node-red crashes. Using Edison with node-red 0.9 and node 0.10 (currently part-way through a remake of node 0.10 to get it to 0.12, as noble seems to want this)
I do see data from the SensorTags on other applications, so I was wondering if the presence of the two together might be resulting in 0 payloads.
I have used hci-tool to scan, pair and trust each of the tags, and they do show up in bluetoothctl

@mcleod-ic I would suggest you create an issue here: https://github.com/node-red/node-red-nodes

@martin-doyle Thanks for the advice. It's my best option at the moment. @sandeepmistry  is there any news on if this is fixable? This bug is really hurting the quality of my code. I'd be happy to help test or fix things. Just not sure where to start.

@sandeepmistry Was there ever a patch in noble for handling multiple devices (specifically CC2650)?

@sandeepmistry Hi - is there a noble patch for handling multiple CC2650?

@danielbh @danielbh @stefanluyten unfortunately I haven't looked at a patch for the noble side yet.

This is no longer an issue for me. I realized as long as I do good control flow and dont connect while discovering it works great. Thanks for your hard work!

By the way I connect 8 tags at one time. I found it to be the hard limit, but I think you say that in the docs somewhere.

@danielbh cool, I'm up for adding a note about "good flow control" and maximum to the read me. Please start a pull request to get the discussion going. The maximum is a bit tricky, as it's hardware/firmware and OS dependent (https://github.com/sandeepmistry/noble#maximum-simultaneous-connections).

@sandeepmistry : i am connecting 3-4 sensortags..first time they all  got connected but after restarting /rebooting my rpi few of them got disconnected. I think while connecting some of the sensortags they got stuck inside connectAndSetup. what should i do to resolve this???

@saurabh-prophecy your issue seems unrelated to the original topic, please open a new issue with more details for your specific problem.

@danielbh how did you connect 8 tags at one time? After the first tag, I cannot connect the second one :(

@inanbayram

Look at the comments about flow control. (9 Feb 2016 and the following)

Hi, I have two noble listeners one is listening only and another one is scan and connect. If Noble is scanning and then connect after that 1 connection attempts never automatically start scanning. I have to start scanning manually "Noble.startScanning()" after every broadcast. Is there any solution to prevent them. Thanks in advance.


Getting click location with good performance

Hello, I'm trying to build a(n) UI with point-and-click navigation, and in order to do so right now I'm trying to draw many invisible polygons across the floor, but the performance drop is making it unusable :(
Here's what I'm writing:
  getFloor = () => {
    const floorIncrementM = 0.5  // meters
    let sectionId = 1111
    let floorPolygonData = []
    for (let i = -FLOOR_LENGTH; i < FLOOR_LENGTH; i = i + floorIncrementM) {
      for (let j = -FLOOR_LENGTH; j < FLOOR_LENGTH; j = j + floorIncrementM) {
        floorPolygonData.push(
          {
            id: sectionId++,
            coordinates: { x: i + floorIncrementM / 2, y: j + floorIncrementM / 2 },
            points: [
              { x: i, y: j, z: 0 },
              { x: i, y: j + floorIncrementM, z: 0 },
              { x: i + floorIncrementM, y: j + floorIncrementM, z: 0 },
              { x: i + floorIncrementM, y: j, z: 0 }
            ],
            color: WORLDVIEW_RGB.clear,
          }
        )
      }
    }

    return (
      <FilledPolygons
        onClick={this.handleFloorClick}>
        {floorPolygonData}
      </FilledPolygons>
    )
  }

What I'd like to write looks like this:
  getFloor = () => {
    const vertices = [
      { x: FLOOR_LENGTH / 2, y: FLOOR_LENGTH / 2, z: 0 },
      { x: -FLOOR_LENGTH / 2, y: FLOOR_LENGTH / 2, z: 0 },
      { x: -FLOOR_LENGTH / 2, y: -FLOOR_LENGTH / 2, z: 0 },
      { x: FLOOR_LENGTH / 2, y: -FLOOR_LENGTH / 2, z: 0 },
    ]
    const floorPolygonData = [
      {
        id: 1111,
        points: vertices,
        color: WORLDVIEW_RGB.clear,
      }
    ]
    return (
      <FilledPolygons
        onClick={this.handleFloorClick}>
        {floorPolygonData}
      </FilledPolygons>
    )
  }

In this, the click event would have to get the coordinates of where on the object the click hit. Is there a way to do this?

Hey @conrad  the onClick event does give you a ray object which contains the raycasting information including dir (direction), origin, and clicked point (all in Vec3 format). Try it out and see if satisfies your requirement.
Regarding on the performance, there is some extra computation in FilledPolygons to get the points. You could try use Triangles directly. https://github.com/cruise-automation/webviz/blob/master/packages/regl-worldview/src/commands/FilledPolygons.js#L71
In addition, Worldview 0.2.0 is unofficially available now (ref https://github.com/cruise-automation/webviz/pull/177). It has some performance optimizations and you no longer need to pass the id in. We've been testing it internally with lots of moving objects and PointCloud. Let us know if you have any questions or still see perf drops after you try it out.


Transformers 4.0.0 availability

Hi!
What an amazing package. I was trying to use some Longformer models with the huggingface API but I came to the problem that many configs aren't supported in Transformers < 4.0.0 as required by KTrain. Any idea when it will be supported?
Also another question, will there be support for PyTorch models too?

The current version of ktrain should support transformers>=4.0.0.  All tests passed the last time I checked.  However, we are temporarily pinning to transformers>3.1,<4.0.  The reason is that 4.0.x completely shuffled around the code base, and this seems to break the loading of Preprocessor instances created with older versions of transformers which may cause problems for some folks.  We will upgrade to 4.0.x eventually but it may have to be a breaking change.   If you want to try transformers>=4.0 now, you can do pip install -U transformers after installing ktrain and ignore the ERROR.
ktrain can already load PyTorch models and uses from_pt argument to from_pretrained when loading normally fails.
Finally, the Longformer model (using TensorFlow at least) does not seem to currently work in 4.0.x.   The error returned in ktrain is the same error returned when using transformers directly (without using ktrain).  So, it seems like either 1) a bug in transforrmers or 2) the Longformer model needs to be processed differently somehow and the location of the documentation for this has not yet been found by me or doesn't exist  yet.

Thank you for the clear explanation!


API call with python requests

Hello,
I was able to successfully run the server using the repo. However I am wondering how to perform an API call with python requests library. I was trying to do it like this:
`def _query():
    API_URL = 'http://localhost:8080/completion'

    image_path = ...
    user_prompt = ...

    with open(image_path, 'rb') as image_file:
        files = {'image_file': image_file}
        data = {'user_prompt': user_prompt}

        response = requests.post(API_URL, files=files, data=data)

        if response.status_code == 200:
            response_data = response.json()
            text = response_data['content']
            return text
        else:
            return f"Error: {response.status_code}"

response = _query()
print("Response:", response)`

I always get 404 error.

I haven’t tested in a while but this repo should have examples for both this llava cpp server as well as llama.cpp (which I recommend you switch to because it is being actively developed still): https://github.com/trzy/multimodal-cloud-tests/blob/main/llava-cpp-test.py


Possible inconsistency in logging (IDFGH-3379)

We have a replacement for the IDF "log" component that adds additional functionality such as:
a) representing system uptime in more clear ddThh:mm:ss.zzz format
b) adding the name of the task called from (if RTOS running)
c) adding the MCU number (if not in unicore mode)
d) storing log messages in a non-volatile (RTC slow RAM) buffer if no console attached
e) sending all logs to a syslog host subject to certain criteria such as UDP connectivity.
Our replacement module works perfectly at all logging levels from all libraries (tested so far) except for coredump that uses ESP_COREDUMP_LOGx and not the standard ESP_DRAM_LOGx macros.
Is there any specific reason for not using the standard logging macros, or alternatively adding the minimum additional support to the standard "log" component?

Have worked around this issue by modifying the coredump logging macros.


Add check, if a connection to Discord is available

This PR introduces a new core method isDiscordRunning() as suggested in #76. The method throws a runtime exception, if a connection to Discord is not available.
The connection check itself is implemented in the classes UnixDiscordChannel and WindowsDiscordChannel. A new method isAvailable() has been added to both classes for this purpose. The method will return true, if the socket/pipe file exists and the channel is connected/open.
The general idea is that the implementing app calls isDiscordRunning() regularly to check whether Discord is still available or not. It lays within the responsibility of the app to handle exceptions. Typically the currently active core should be destroyed as soon as Discord is not running anymore and a new core should be created when Discord is running again.
An example implementation can be found in the main class of the Discord Rich Presence tool for Processing
The code for the Unix channel has has been tested under Linux, but the Windows functionality still needs to be tested.

[x] Check Unix channel functionality
[ ] Check Windows channel functionality

I'd be happy to merge this, I just have to test the Windows functionality first.
I'm not spending much time on Windows recently, but I'll try to test it this weekend.
Overall, I'm not 100% happy with the current approach to reconnecting, but that's not really related to this PR. I'd love to implement an option for automatic reconnects and I think this PR creates a good foundation for that.

I have just tested the PR on Windows and everything works as expected.

Thank you :D


Add a test for Terminal#width

See issue #95 which happened because I was lax about overriding the width value for native terminals.
At this point, I'm fairly confident width logic works right because I have so much existing code using this feature. But it would be really nice, still, to have a test for it.
Step 1) Allow passing the width value into TestTerminal
Step 2) Write a few tests to stress / verify long lines render / repaint as expected.

Actually, this is nastier than I thought. To support this, you'd have to reimplement terminal virtual code handling in the test terminal (since it would need to know how long lines are, with control codes removed, so that it can append newlines at the right place).
This is doable but honestly probably not worth it. Going to close this out for now.


AS3 / DO incompatibility for GSLB objects

Environment

Application Services Version: 3.25
Declarative Onboarding Version: 1.18
BIG-IP Version: 15.1.2

Summary
If a Datacenter is created with DO (or manually), it is not available in Common AS3 declaration. and AS3 deny creating this object as it already exists.
So when I try to create a new gslbServer, If the Datacenter is not in current declaration, I add a GSLB_Data_Center object....
Steps To Reproduce
Steps to reproduce the behavior:

Submit the following DO declaration:

{
    "schemaVersion": "1.15.0",
    "class": "Device",
    "async": true,
    "label": "Onboarding from Ansible Tower",
    "Common": {
        "class": "Tenant",
        "System": {
            "cliInactivityTimeout": 1200,
            "consoleInactivityTimeout": 1200,
            "autoPhonehome": false
        },
        "hostname": "gtm1.demo.local",
        "myProvisioning": {
            "class": "Provision",
            "gtm": "nominal"
        },
...
        "gslbGlobals": {
            "class": "GSLBGlobals",
            "general": {
                "synchronizationEnabled": true,
                "synchronizationGroupName": "GSLB_Sync_Group"
            }
        },
        "DC2": {
            "class": "GSLBDataCenter",
            "enabled": true
        },
        "DC2_GTM": {
            "class": "GSLBServer",
            "label": "Example of all GSLB server properties",
            "remark": "GSLB server description",
            "devices": [
                {
                    "address": "fd00:0:f5::130",
                    "remark": "DC2_GTM"
                }
            ],
            "dataCenter": "/Common/DC2",
            "virtualServerDiscoveryMode": "disabled",
            "exposeRouteDomainsEnabled": true
        }
    }
}

Get the Common Tenant Configuration

URL: https:///mgmt/shared/appsvcs/declare/Common
Method: GET
When the device is just onboarded, the server respond with 404 status code...
So to create the new gslbServer and include it is DC2 with "use" property, I have to create it in AS3.

Submit the following declaration:

{
    "class": "AS3",
    "action": "deploy",
    "persist": true,
    "declaration": {
        "class": "ADC",
        "schemaVersion": "3.18.0",
        "Common": {
            "class": "Tenant",
            "Shared": {
                "class": "Application",
                "template": "shared",
                "LTM2": {
                    "class": "GSLB_Server",
                    "dataCenter": {
                        "use": "DC2"
                    },
                    "devices": [
                        {
                            "address": "fd00:0:f5::132",
                            "label": "ltm2.demo.local",
                            "name": "ltm2.demo.local"
                        }
                    ],
                    "virtualServers": [],
                    "exposeRouteDomainsEnabled": true
                },
                "DC2": {
                    "class": "GSLB_Data_Center"
                }
            }
        }
    }
}

Observe the following error response:

{
    "code": 422,
    "message": "declaration failed",
    "response": "01020037:3: The requested Datacenter (/Common/DC2) already exists.",
    "host": "localhost",
    "tenant": "Common",
    "runTime": 2491
}

Expected Behavior
DO and AS3 may share objects which can be configured in both API.
Actual Behavior
both gslbServer and Datacenter can be created in AS3 and DO, but AS3 is not aware of such objects... so it create an issue when trying to create it again.

A use-pointer is meant for referencing other AS3 configuration. If you want to reference something managed outside of AS3, I recommend using a bigip-pointer:
                    "dataCenter": {
                        "bigip": "/Common/DC2"
                    },

Does updating your declaration to a bigip-pointer resolve your issue?

A use-pointer is meant for referencing other AS3 configuration. If you want to reference something managed outside of AS3, I recommend using a bigip-pointer:
                    "dataCenter": {
                        "bigip": "/Common/DC2"
                    },

Does updating your declaration to a bigip-pointer resolve your issue?

So you mean we must not use Datacenter object in DO if we want to manage the GSLB configuration with AS3...

So you mean we must not use Datacenter object in DO if we want to manage the GSLB configuration with AS3...

If you create the Datacenter in DO, use a bigip-pointer like the one I mentioned previously.
If you create the Datacenter in AS3, use a use-pointer like the one you have in your declaration.

If you create the Datacenter in DO, use a bigip-pointer like the one I mentioned previously.
If you create the Datacenter in AS3, use a use-pointer like the one you have in your declaration.

That's what I knew... I was expecting that if both DO and AS3 can create this kind of objects, DO can share this part of declaration with AS3.
when building a AS3 declaration with automation tools, it's better to build all Datacenter objects with the same type of pointers...
So if we want to manage datacenters with AS3, it's recommended to not use Datacenter objects in DO.
you can close this issue.

That's what I knew... I was expecting that if both DO and AS3 can create this kind of objects, DO can share this part of declaration with AS3.
when building a AS3 declaration with automation tools, it's better to build all Datacenter objects with the same type of pointers...
So if we want to manage datacenters with AS3, it's recommended to not use Datacenter objects in DO.
you can close this issue.


new feature: how to monitor input/output plugin performance

is there any way to monitor input/output plugin performance? for example , how to know the udp input plugin processing speed for the incoming events and how  about each threads? i think it's very helpful to tune the performance.

Hard to monitor processing speed because it needs debugger or codeblock in each action.
But you can count received messages by following two plugins.
https://github.com/tagomoris/fluent-plugin-flowcounter
https://github.com/sonots/fluent-plugin-flowcounter-simple

flowcounter-simple is enough for almost cases.
If someone needs other approach, please re-open it.


Strange linking issue when building binary extensions

On one machine (remote production) when running bundle install, the extension is built linked to the full path of nokogiri extension in bundle:
Dynamic section at offset 0x57d90 contains 26 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [/var/www/see-2014/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri/nokogiri.so]
 0x0000000000000001 (NEEDED)             Shared library: [libruby20.so.2.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]

But on other (local development) it's linked by name only:
Dynamic section at offset 0x5aed8 contains 26 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [nokogiri.so]
 0x00000001 (NEEDED)                     Shared library: [libruby20.so.2.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

So, when trying to start Rails app or run something like
bundle exec rake -T

the error message appears instead of the requested command
rake aborted!
LoadError: nokogiri.so: cannot open shared object file: No such file or directory - /home/infoman/work/dev/rails4/yotube/vendor/bundle/ruby/2.0.0/extensions/x86-linux/2.0.0/nokogumbo-1.2.0/nokogumboc.so

This machine had RVM installed with some older Bundler version inside (something like 1.3.5), but since one of recently added gems requested newer bundler version, I decided to remove RVM and just use the system ruby, which is already marked as stable by Gentoo and seemed to be working OK.
There are no references to RVM left in my profile and environment as I can see, so the problem must not be in interference with some rvm remains.
The machine at which all is working is an OpenVZ container than never had RVM installed.
Have no other idea what it can be.
bundle env differences (bundle.env is from remote production, bundle2.env is from local where it 'cannot open shared object file')
--- bundle.env  2015-05-18 13:17:11.000000000 +0300
+++ bundle2.env 2015-05-18 13:23:29.000000000 +0300
@@ -1,15 +1,17 @@
 Bundler 1.7.3
-Ruby 2.0.0 (2014-11-13 patchlevel 598) [x86_64-linux]
+Ruby 2.0.0 (2015-04-13 patchlevel 645) [i686-linux]
 Rubygems 2.2.2
 GEM_HOME

 Bundler settings
+  gem.coc
+    Set for the current user (/home/infoman/.bundle/config): "0"
+  gem.test
+    Set for the current user (/home/infoman/.bundle/config): "rspec"
   path
-    Set for your local app (/var/www/see-2014/.bundle/config): "vendor/bundle"
+    Set for your local app (/home/infoman/work/dev/rails4/yotube/.bundle/config): "vendor/bundle"
   disable_shared_gems
-    Set for your local app (/var/www/see-2014/.bundle/config): "1"
-  without
-    Set for your local app (/var/www/see-2014/.bundle/config): "development:test"
+    Set for your local app (/home/infoman/work/dev/rails4/yotube/.bundle/config): "1"

 Gemfile

Tried with Bundler 1.8.8, 1.8.9, 1.7.3
Any suggestions of how to fix/debug this?

How did you remove rvm? did you do rvm implode?

Yes, runned rvm implode, cleared rvm references in ~/.bash*, and re-logged.
Hmmm, after some sleep and more investigation it seems to be something related to ld.
The options passed to linker seems to be nearly-identical with exception of some system paths and different bundle directories:
/usr/libexec/gcc/i686-pc-linux-gnu/4.8.4/collect2 --verbose=2 --eh-frame-hdr -m elf_i386 -shared -o nokogumboc.so /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../lib/crti.o /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/crtbeginS.o -L. -L/usr/lib -L. -L/home/infoman/work/dev/rails4/bundler-test/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri -L/usr/lib/gcc/i686-pc-linux-gnu/4.8.4 -L/usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/lib/../lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../i686-pc-linux-gnu/lib -L/usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../.. string_buffer.o tag.o attribute.o char_ref.o nokogumbo.o vector.o parser.o error.o tokenizer.o utf8.o string_piece.o util.o -O1 --as-needed -export-dynamic --no-undefined -l:nokogiri.so -lruby20 -lxml2 -lxml2 -lpthread -lrt -ldl -lcrypt -lm -lc -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/crtendS.o /usr/lib/gcc/i686-pc-linux-gnu/4.8.4/../../../../lib/crtn.o

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.3/collect2 --verbose=2 --eh-frame-hdr -m elf_x86_64 -shared -o nokogumboc.so /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/crtbeginS.o -L. -L/usr/lib64 -L. -L/var/www/see-2014/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../.. util.o attribute.o vector.o string_buffer.o utf8.o error.o parser.o tokenizer.o char_ref.o nokogumbo.o tag.o string_piece.o -O1 --as-needed -export-dynamic --no-undefined -l:nokogiri.so -lruby20 -lxml2 -lxml2 -lpthread -lrt -ldl -lcrypt -lm -lc -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crtn.o

but the output differs if adding --verbose=2 manually:
Local (non-working), binutils-2.25:
attempt to open ./nokogiri.so failed
attempt to open ./nokogiri.so failed
attempt to open /usr/lib/nokogiri.so failed
attempt to open /usr/lib/nokogiri.so failed
attempt to open ./nokogiri.so failed
attempt to open ./nokogiri.so failed
attempt to open /home/infoman/work/dev/rails4/bundler-test/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri/nokogiri.so succeeded
-l:nokogiri.so (/home/infoman/work/dev/rails4/bundler-test/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri/nokogiri.so)

Remote(working), binutils-2.24
attempt to open nokogiri.so failed
attempt to open ./nokogiri.so failed
attempt to open /usr/lib64/nokogiri.so failed
attempt to open ./nokogiri.so failed
attempt to open /var/www/see-2014/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri/nokogiri.so succeeded
nokogiri.so (/var/www/see-2014/vendor/bundle/ruby/2.0.0/gems/nokogiri-<IP_ADDRESS>/ext/nokogiri/nokogiri.so)

(What -l: in first case and just filename in second means?)
Will now try to downgrade binutils on local.

And all links correctly with binutils-2.24 on local, so it must be a bug or changed behavior of binutils-2.25

I appriciate that you investigate the issue further after having posted the issue, however it seems not to be bundler related so I will close this issue. All the best.


Improve AnyPortEnable in order to increase security

At the moment, AnyPortEnable allows incoming packets from any port.
In order to increase security, the port of the first incoming packet should be stored, and port of following packets should be checked against the stored port.

fixed by bf12e12afdbe7331e1173c54ca732b9c23b64b83


Performance of lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 on Odroid XU4

Hello,
I have 2 Odroid XU4 boards and I have both installed lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 library, but the first one was installed old version and the second one was installed recent version. And I found that the old one has better performance compared to the new one as below:
The new one:

The old one:

Could you please tell me why this issue occurred?
Best regards

@dohai90 There could be many reasons for the regression but let's start from the most obvious ones:

CLBlast has changed. When did you first (old) version?
Is the result repeatable? How do you run the program? If you use ck run program:..., you do not fix the CPU and GPU frequency, so they may change during execution. Using ck benchmark program:... is more reliable.

Also, after using ck benchmark program (it's a more high-level "pipeline" which attempts to set up and monitor CPU/GPU frequency, etc)) in both cases, please provide the log. It will help us see the resolved dependencies and their versions ... Thanks!

Hello,
@psyhtest

I installed old version 2 or 3 months ago.
First, I used ck run program:caffe and get the above results. After using ck benchmark program:caffe they give similar performance.

@gfursin
I attached here the log of both cases.
As I understand, the benchmark utility sets max frequency for both CPU and GPU, am I right?
Although the results from both cases are similar by using benchmark utility, I run the same program on 2 boards but the execution times are still different while I have set max frequency for both CPU and GPU via command:
./CK/ck-env/platform.init/generic-odroid/ck-set-cpu-performance
and:
./CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance
new_device_log.txt
old_device_log.txt
Could you give me any advice why the same program runs on 2 boards which have been set max frequency but still results in different execution time?
If you need I will upload my program here.
Thank you

If I interpret the logs correctly, the execution time is about 67 seconds
in both cases? Am I missing something?
On Mon, 4 Dec 2017 at 04:19, Trunghai Do<EMAIL_ADDRESS>wrote:

Hello,
@psyhtest https://github.com/psyhtest

I installed old version 2 or 3 months ago.
First, I used ck run program:caffe and get the above results. After
using ck benchmark program:caffe they give similar performance.

@gfursin https://github.com/gfursin
I attached here the log of both cases.
As I understand, the benchmark utility sets max frequency for both CPU and
GPU, am I right?
Although the results from both cases are similar by using benchmark
utility, I run the same program on 2 boards but the execution times are
still different while I have set max frequency for both CPU and GPU via
command:
./CK/ck-env/platform.init/generic-odroid/ck-set-cpu-performance
and:
./CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance
new_device_log.txt
https://github.com/dividiti/ck-caffe/files/1525640/new_device_log.txt
old_device_log.txt
https://github.com/dividiti/ck-caffe/files/1525641/old_device_log.txt
Could you give me any advice why the same program runs on 2 boards which
have been set max frequency but still results in different execution time?
If you need I will upload my program here.
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dividiti/ck-caffe/issues/123#issuecomment-348857008,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGSsuux5i9Sv-TB5S74q_XXE2-KU_UhAks5s83K7gaJpZM4QyMDw
.

@psyhtest
Yes, you are right, but that is the benchmark program.
However when I run the same network architecture using lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 framework, the new one is slower even though I have set max frequency for CPU and GPU on both boards, it's really strange.

Also, from your logs it seems that you use different versions of CK (or at
least repos). Can you please update by ck pull all. I remember fixing
some problems with scripts when you had to change to the directory with
scripts before running them, otherwise they wouldn’t run properly...
If you still have issues, please run ck-print-cpu-freq
(ck-print-gpu-freq) after ck-set-cpu-performance
(ck-set-gpu-performance) to check that the CPU (GPU) frequency has been
set correctly.
On Mon, 4 Dec 2017 at 07:37, Anton Lokhmotov<EMAIL_ADDRESS>wrote:

If I interpret the logs correctly, the execution time is about 67 seconds
in both cases? Am I missing something?
On Mon, 4 Dec 2017 at 04:19, Trunghai Do<EMAIL_ADDRESS>wrote:

Hello,
@psyhtest https://github.com/psyhtest

I installed old version 2 or 3 months ago.
First, I used ck run program:caffe and get the above results.
After using ck benchmark program:caffe they give similar performance.

@gfursin https://github.com/gfursin
I attached here the log of both cases.
As I understand, the benchmark utility sets max frequency for both CPU
and GPU, am I right?
Although the results from both cases are similar by using benchmark
utility, I run the same program on 2 boards but the execution times are
still different while I have set max frequency for both CPU and GPU via
command:
./CK/ck-env/platform.init/generic-odroid/ck-set-cpu-performance
and:
./CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance
new_device_log.txt
https://github.com/dividiti/ck-caffe/files/1525640/new_device_log.txt
old_device_log.txt
https://github.com/dividiti/ck-caffe/files/1525641/old_device_log.txt
Could you give me any advice why the same program runs on 2 boards which
have been set max frequency but still results in different execution time?
If you need I will upload my program here.
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dividiti/ck-caffe/issues/123#issuecomment-348857008,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGSsuux5i9Sv-TB5S74q_XXE2-KU_UhAks5s83K7gaJpZM4QyMDw
.

In the new device log, I see:

Setting GPU frequency to max (if supported) ...

CMD to set GPU frequency:
  export CK_CPU_FREQUENCY=max;/home/odroid/CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance

I would expect to see export CK_GPU_FREQUENCY here...
On Mon, 4 Dec 2017 at 07:49, Trunghai Do<EMAIL_ADDRESS>wrote:

@psyhtest https://github.com/psyhtest
Yes, you are right, but that is the benchmark program.
However when I run the same network architecture using
lib-caffe-bvlc-clblast-master-gcc-5.4.0-linux-32 framework, the new one is
slower even though I have set max frequency for CPU and GPU on both boards,
it's really strange.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dividiti/ck-caffe/issues/123#issuecomment-348884747,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGSsunzLVC5zBY8DkjHX14JguDBRRE7Rks5s86QegaJpZM4QyMDw
.

BTW, the new CLBlast may have regressions on older architectures (though there are plans to make it more adaptive). To check it, you may want to use dvdt profiler to profile OpenCL kernels in Caffe:
$ ck benchmark program:... --dvdt_prof

Also, if you notice some errors in the platform scripts, please feel free to update them and provide a patch. The main idea behind CK is to collaboratively understand regressions/reproducibility issues and solve them ... Thanks!!!

In the new device log, I see:
Setting GPU frequency to max (if supported) ...

CMD to set GPU frequency:
  export CK_CPU_FREQUENCY=max;/home/odroid/CK/ck-env/platform.init/generic-odroid/ck-set-gpu-performance

I would expect to see export CK_GPU_FREQUENCY here...


ARROW-15061: [C++] Add logging for kernel functions and exec plan nodes

Adds spans and events for exec plan and exec nodes.
I use the following setup to debug traces:
docker-compose.yml:
version: "2"
services:

  jaeger-all-in-one:
    image: jaegertracing/all-in-one:latest
    ports:
      - "16686:16686"
      - "14268"
      - "14250"

  otel-collector:
    image: otel/opentelemetry-collector-contrib-dev:latest
    command: ["--config=/etc/otel-collector-config.yaml"]
    volumes:
      - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
      - ./output:/var/output
    ports:
      - "8888:8888"   # Prometheus metrics exposed by the collector
      - "8889:8889"   # Prometheus exporter metrics
      - "4317"        # OTLP gRPC receiver
      - "4318:4318"   # OTLP HTTP receiver
    depends_on:
      - jaeger-all-in-one

  prometheus:
    container_name: prometheus
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yaml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

otel-collector-config.yaml:
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: <IP_ADDRESS>:4317
      http:
        endpoint: "<IP_ADDRESS>:4318"
        cors:
          allowed_origins:
            - "*"

processors:
  batch:

exporters:
  logging:
  jaeger:
    endpoint: jaeger-all-in-one:14250
    tls:
      insecure: true
  prometheus:
    endpoint: <IP_ADDRESS>:8889
  parquet:
    path: /var/output/log.parquet

service:
  pipelines:
    traces:
      receivers:
        - otlp
      processors:
        - batch
      exporters:
        - logging
        - jaeger
        - parquet
    metrics:
      receivers:
        - otlp
      processors:
        - batch
      exporters:
        - logging
        - prometheus
        - parquet

prometheus.yaml:
scrape_configs:
  - job_name: "otel-collector"
    scrape_interval: 10s
    static_configs:
      - targets: ["otel-collector:8889"]
      - targets: ["otel-collector:8888"]

Start the services and then use the instructions from https://github.com/apache/arrow/pull/11906.
@lidavidm @westonpace

Cool! The macro definitions look fairly useful.

If you have a screenshot or any quick example of the output to share here it would also be useful, I think.

@lidavidm @mbrobbel Is there any reason we can't merge this?  If you want I can take a look through tomorrow and merge.  Otherwise I took a quick scan and I think this is helpful information to get us started with instrumentation.

There are still some comments from @lidavidm that I need to address, but I can do that tomorrow.

No further comments from me - let's merge once OrderBySinkNode is fully instrumented.

I want to base #11964 on top of this since the helpers here will simplify it.

@westonpace @lidavidm this is now ready for a final review.

(For the record, edited description to remove username pings; those get put into the commit message and then generate a lot of notification spam.)


How to do Business Validation with ObjectGraphDataAnnotationsValidator & complex types?

Making complex types validation with the ObjectGraphDataAnnotationsValidator works.
But how do you add custom errors with the CustomValidator to do business validation?
I tried to add error with the key ShipDescription.ShortDescription key, eg:
errors.Add("ShipDescription.ShortDescription", new List<string>() { "Some error" });
customValidator.DisplayErrors(errors);

But it didn't work.
I assume that was the key since the form models property path is starship.ShipDescription.ShortDescription.

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

ID: eef47457-c8cf-74a4-b884-c1fe5c2ef52d
Version Independent ID: 09a02d10-2834-467d-d8c2-3fd19ceb3863
Content: ASP.NET Core Blazor forms and validation
Content Source: aspnetcore/blazor/forms-validation.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @Assassinbeast ... Sorry for the delay. I've been 🏃😅 lately. I'll take a look at this and get back to you soon.

Ok ... It went well, except I did discover a nit along the way.
I set up a test like this ...
public class ShipDescription
{
    [Required]
    [StringLength(40, ErrorMessage = "Description too long (40 char).")]
    public string ShortDescription { get; set; }

    [Required]
    [StringLength(240, ErrorMessage = "Description too long (240 char).")]
    public string LongDescription { get; set; }
}

... with ...
[ValidateComplexType]
public ShipDescription ShipDescription { get; set; } = new ShipDescription();

... on my Starship class. NIT ... The current example doesn't new up the ShipDescription, so the code example from the topic fails if it isn't created somewhere before the fields are bound to the form. It could be done in the component, too, like this ...
private Starship starship = new Starship()
                            {
                                ProductionDate = DateTime.UtcNow,
                                ShipDescription = new ShipDescription()
                            };

The simplest way to go tho is just to add a  = new ShipDescription(); in the class to make it happy and load the component without an NRE.
I use the same CustomValidator component described earlier in the topic.
The form gets ...
<EditForm Model="@starship" OnValidSubmit="@HandleValidSubmit">
    <DataAnnotationsValidator />
    <ObjectGraphDataAnnotationsValidator />
    <CustomValidator @ref="customValidator" />
    <ValidationSummary />

    ...

... with ...

        Long Description:
        <InputTextArea @bind-Value="starship.ShipDescription.LongDescription" />

        Short Description:
        <InputTextArea @bind-Value="starship.ShipDescription.ShortDescription" />

... and ...
private CustomValidator customValidator;

I then add a custom check to see if the LongDescription starts with a capital letter ...
private void HandleValidSubmit()
{
    customValidator.ClearErrors();

    var errors = new Dictionary<string, List<string>>();

    char[] ldesc = starship.ShipDescription.LongDescription.ToCharArray();
    var startsUppercase = char.IsUpper(ldesc[0]);

    if (!startsUppercase)
    {
        errors.Add(nameof(starship.ShipDescription.LongDescription),
            new List<string>() { "The Long Description must start with an uppercase character." });
    }

    if (errors.Count() > 0)
    {
        customValidator.DisplayErrors(errors);
    }
    else
    {
        formStatus = "The form processed successfully!";
    }
}

..... sooooo .... It's all just about as expected with the explanation provided in the Business logic validation section.
I do want to fix that nit.
In the code that you showed, I used nameof to avoid the magic string. nameof(starship.ShipDescription.LongDescription) evaluates to ...
LongDescription

... that's it. If you prefer that ✨ magic string ✨, try it as ...
errors.Add("ShortDescription", new List<string>() { "Some error" });

Leave this issue open. It will close when the PR merges for that nit that I identified.


Bugfix: always wrote "ETA:  00:00:00"

Use Integer() instead of to_i to fix a bug using Heroku cli that ended writting "ETA:  00:00:00" all along.
The to_s.to_i was always returning 200 even if the to_s was returning "1234567".

@joel1di1 this was implemented in taps2 version of this gem

Achievement unlocked, you earn the badge :necromancer: !

:-)


python310Packages.sgmllib3k: fix source access after github repo being …

…deleted
Description of changes
https://github.com/hsoft/sgmllib has bee deleted. Fetching from Pypi instead.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

@pfborg build python310Packages.sgmllib3k
Doesn't this break tests? Also, make sure the commit message matches the attribute name. Just updating the PR title isn't enough.

@ofborg build python310Packages.sgmllib3k
Doesn't this break tests? Also, make sure the commit message matches the attribute name. Just updating the PR title isn't enough.

I don't have the git source available, therefore cannot figure out whether it's the change that makes the test fail. Disabled it for now.


How to run Azcopy v10 copy command using .Net Process and exit when download complete

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
10.19.0
Which platform are you using? (ex: Windows, Mac, Linux)
Linux
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
Using .Net Process Start commandline execution
azcopy copy
What problem was encountered?
Expect the azcopy download the file then exit the command but it seems directly exit. Is there any flags to force exit after the current job finish?
How can we reproduce the problem in the simplest way?
Have you found a mitigation/solution?

AzCopy exits after the transfer is completed so there is no need for a force exit flag.


More lenient waypoint triggers

I recently ran into an issue where I dynamically created a navigation for a style guide I was working on. I wanted to use waypoints to produce a Bootstrap-esque Style Guide menu: http://getbootstrap.com/css/
I realized that, with a default, simple implementation of waypoints, this was impossible. Scrolling up and down the page worked great. Clicking down the list of generated ID anchors worked, but clicking up the list of generated ID anchors did not work. This is because the anchor link did not trigger the waypoint because the anchor did not hit the threshold. It was always 1px lower when trying to navigate up the list.
No amount of configuration fixed this. If the offset was adjusted one or the other would work.
I think that this is a pretty reasonable use case and that the plugin should trigger the waypoint event if the window is on the element, rather than one pixel past the element.

@meowsus This is a discussion that has come up in the issue tracker here a couple times. I'd love to lay out the full argument about why Waypoints works the way it does in this regard, but it's going to take a little more time than I have right now. Right now, if you want to start with https://github.com/imakewebthings/waypoints/issues/346#issuecomment-65501126 and browse from there... but I do have more to say on the topic!

Thanks for the reference, @imakewebthings. I can see why this isn't implemented, but I do think it's a valid use case, since there doesn't seem to be a way to write a client module that manually triggers the waypoint event. I'm still struggling with the original implementation I wrote, so maybe consider a compromise -- an option that modifies the behavior for this use case.
Have a good one and, still, you've made a great piece of code here.


Query Drawer query is missing handling for views and column types

See https://github.com/dvargas92495/roamjs-query-builder/issues/39#issuecomment-1426404621 for additional context

Dupe with #112


crash on content.evalScripts.bind(content).defer() in update, replace, replace_IE and insertContentAt

previous lighthouse ticket #1327
by Dan Popescu

if content is null or '' then "content.evalScripts.bind(content).defer()" throws an error
I think it should be replaced with:
"content && content.evalScripts.bind(content).defer();"

Don't see how it throws an error when content is an empty string, and don't really care if it throws an error when content is null.


Switch PythonTool to use HTTP API instead of gRPC

We can switch to https://github.com/i-am-bee/bee-code-interpreter/blob/main/src/code_interpreter/services/http_server.py to simplify our communication pattern.
This would allow us to say bye-bye to bee-proto entirely.

This introduces a breaking change, need to discuss how to rollout

This will require changes in at least 4 repos.  So the initial adds in this list need to land first.  Then consumers like bee-api and starter can each update to the new framework/tool/port.

[ ] Expose the HTTP ports in bee-stack (code interpreter already has HTTP support)
[ ] Add unit and e2e tests for the tool
[ ] Add a new tool (coexist with old tool)
[ ] Update starter kit to use new framework and port
[ ] Update bee-api to use new framework and port
[ ] Remove the gRPC tool

Please validate @JanPokorny

@markstur Is it necessary to add a new tool for HTTP and let it coexist with the gRPC tool? Why can't we make the switch in the framework and then update the bee-api, bee-ui etc. with the new framework version + new Code Interpreter URL?
Switching would be a breaking change for users that set a custom Code Interpreter URL either way -- and we're on version 0.0.* so this is covered.

@JanPokorny my initial work was to change the framework tool first, but after trying to test it and thinking about how to make the switch I felt like:
1 - just exposing both in bee-stack is an obvious first step PR
2 - having coexisting tools will ease the switch so that bee-api, starter, custom... can each switch to the new tool whenever each separate repo has its PR merged (plus custom code wherever/whenever).
I'd like to flip them all ASAP, but it's not all code in one repo so I'd prefer not to have everything broken on our repos main branches for long.  Custom code could continue to work the old way with a pinned framework and can easily move forward if we have coexisting support with just the URL setting.
Perhaps I also choose to pursue this way because I was already seeing main bee-api incompatible with main bee-framework and it makes it hard to test the whole thing.  I feel like the order proposed is safest/simplest until all the places are happy with the new way.
But I'm open to shaping those PRs to the maintainers preference.

@markstur bee-api uses a specific version of bee-agent-framework, and the incompatibilities are accounted for together with updating the framework version. Publishing a change in bee-agent-framework does not "break" the other repos -- they all reference specific versions of the framework, newer changes don't take effect until the framework is explicitly updated. So the optimal course is to just make a breaking change in the framework, release a new version, and then adjust the other repos together with updating to the new version.

Understood, but bee-api was already incompatible with main for unrelated reasons so doing this in pieces would've been more mergeable at the time.  We can now focus on just getting this all done instead.  That'd be great.  I've updated so only HTTP is used for the one and only PythonTool.

I got a CustomTool working w/ some e2e tests (not mocks yet), but got interrupted by the holidays and probably won't get that cleaned up for the PR until next week (year!).  FYI and darn! and happy new year y'all!


Using Syntastic Vim plugin with the Linux kernel

Hi,
This is not an issue, but I've been trying to properly configure Syntastic for the Linux kernel, and there's not one online tutorial that I could find about this, so I figured this might be of help.
Vladimir
https://github.com/vladimiroltean/blog/wiki

:%s/\ /\r/g

Nit pick: this is better written as :%s/ /\r/g.

by default, Syntastic treats include paths as relative to the configuration file. Obviously, we need to change those paths so that they are absolute (prefix them with $(KDIR) as described above, in our case /usr/linux/so2/)

That would be something like this:
:%s!\m^-I\zs\ze[^/]!/usr/linux/so2/!

for some reason, Syntastic's interpretation of -D macro predefinitions is different than gcc. It can be seen in the last 3 lines of the above text that KBUILD_BASENAME and KBUILD_MODNAME depend upon KBUILD_STR, but Syntastic doesn't know how to resolve that.

You don't understand.  Syntastic config files does exactly two things, and both are trivial: (1) change -Irelative/path to -I/absolute/path, and (2) escape lines to survive shell expansion when passed to the compiler.  If you write -D"KBUILD_STR(s)=#s", the result of escaping is '-D"KBUILD_STR(s)=#s"', which means after shell expansion gcc actually gets to see the argument -D"KBUILD_STR(s)=#s".  What you want it to see instead is -DKBUILD_STR(s)=#s, and that's what you have to write in the config file.  Of course, the same applies to the other -Ds.

let g:syntastic_c_config_file = '.syntastic_c.conf'

Since you just wrote a bunch of options to a file named .syntastic_c_config, this is confusing. :)

To check what we have done, write something to a C file, then :w to save it.

It's probably far more informative to enable debugging and look at the arguments syntastic passes to gcc: set g:syntastic_debug to 1, run the checker, run :mes, and look for makeprg.  This way, you'll probably find out you also need:
let g:syntastic_c_no_default_include_dirs = 1
let g:syntastic_c_compiler_options = ''

If all goes well, you should now have Syntastic working with the Linux kernel.

You might want to rephrase this.

Thanks, I have updated the wiki. I don't think g:syntastic_c_no_default_include_dirs is needed, since -nostdinc is already the first parameter in the kernel makefile. Writing that to the vimrc also makes it interfere with everything else that does use the default include dirs.

I don't think g:syntastic_c_no_default_include_dirs is needed

With the default g:syntastic_c_no_default_include_dirs, syntastic adds -I. -I.. -Iinclude -Iincludes -I../include -I../includes.  You don't have to take my word for it though, you can check that in the debug output.

Writing that to the vimrc also makes it interfere with everything else that does use the default include dirs.

Adding -I. -I.. -Iinclude -Iincludes -I../include -I../includes is useless in the vast majority of cases.  There are a few cases when it's potentially harmful, specifically when the build process wants -nostdinc.

Syntastic's interpretation of -D macro predefinitions is a little different from gcc, because of the way parameters in the config file are treated.

Syntastic doesn't care about macro definitions, only gcc does.  Syntastic however quotes parameters in the config file to make them survive shell expansions.  In makefiles the parameters are already quoted (for the same reason), so if you copy them unchanged to the config file the result is double quoting, which is not what you want.

Syntastic automatically encloses each parameter in quotes.

It doesn't.  It only quotes parameters that need quoting.

Updated wiki again.

Syntastic internally encloses some of its parameters to gcc in double quotes

sigh Actually syntastic uses single quotes, but whatever...

However, it can be seen in the last 3 parameters that KBUILD_BASENAME and KBUILD_MODNAME depend upon KBUILD_STR.

This isn't relevant for either syntastic, or make.  The point is they include (...) and #, which have a special meaning to the shell and thus need to be escaped.

gcc  will think that by ''-D"KBUILD_STR(s)=#s"'' we want to define the preprocessor macro named KBUILD_STR(s)=#s

It's actually '-D"KBUILD_STR(s)=#s"', with one set of single quotes.  Single quotes are doubled in the debug output because log functions print Vim strings, rather than raw values.
Also, any particular reason why you have now dropped the reference to g:syntastic_c_compiler_options?  If you omit that syntastic adds a flag -std=gnu99, which is not what you want.  I updated the wiki for gcc to (hopefully) make more sense.

Corrected again.


[Feat]: Footer Color

What feature?
In Light Mode footer have no background and its not looking great and its not differentiable with the website.
Add screenshots
Curent
https://github.com/priyankarpal/ProjectsHut/assets/101205226/3b3bc7a9-f538-4616-b9d7-864337ac2060
Change

You can suggest me the color you want
Code of Conduct

[X] I agree to follow this project's Code of Conduct

hey @parasss19 we will change the footer soon so I think we don't need to change the colour right now.
https://github.com/priyankarpal/ProjectsHut/issues/979 (hasn't been ready yet)


ShopTransactionStatusServerRequest have only md5 hash but ShopServerGateway both

we can set up in ShopServerGateway hashMethod (see method "setHashMethod") to SHA2-384 but not able to consume the notification with this sash method (only in md5) in ShopTransactionStatusServerRequest (see hardcoded hash method in method "isValid").
P.S. ShopTransactionStatusServerRequest have setHashMethod too

it was another problem, right now it configured by payone


Closing the lightbox doesn't stop youtube video

I'm using the lightbox to show an youtube video like this:

  Watch Now

and declaring the modal like this

          <button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>

But when I hit close on the modal the video doesn't stop. I'm using the data-type='youtube' but doesn't change anything. The other option would be to use it like in the example page. Using an youtube url in href, but I'd rather have the modal showing in the way I have here. Is this a bug or misuse ?

It looks like you're using the default bootstrap modal, not this plugin - you don't need any modal markup for this plugin.

no response


Can't Get Reviews After Providing 'id' and 'appId'

Hi, Thanks for developing this scraper. I use 'app' to retrieve the full detail of an application with id:<PHONE_NUMBER> and find the appId. But after I providing both 'id' and 'appId' as options in 'reviews', there's nothing retrieved. The codes are as following:
var store = require('app-store-scraper');
store.reviews({
id:<PHONE_NUMBER>,
appId: 'com.upside-travel.Winterfell',
sort: store.sort.HELPFUL,
page: 2
})
.then(console.log)
.catch(console.log);
Thanks for your help.

Hi,
I have the same behavior, can you help me solve this problem?
in addition to that I do not have the following values:
score: undefined,
reviews: undefined,
currentVersionScore: undefined,
currentVersionReviews: undefined,
ratings: 0,
histogram: {}
Thanks.