No duribality used for hammers

Using EmeraldTools-Fabric-1.19.2-1.4.38 with fabric 0.14.11 for minecraft 1.19.2
fabric api fabric-api-0.68.0+1.19.2 and cloth config cloth-config-8.2.88-fabric
When I used hammers no durability is removed when breaking stone.
The tree axes remove durability as normal. Armour and paxels also takes durability damage as normal.
Even if I summon a damaged hammer with: /give @p emerald_tools:emerald_hammer{Damage:1} 1
further mining does no damage.

@astocky Is this still an issue with newer versions? I'm a pretty observant guy, and I haven't noticed this at all.
Please also post your config file in here, using https://gist.github.com/

I've been having this issue with the most recent version for 1.19.2. If you shift and then mine a single block the durability is used, but if you're mining as normal with the 3x3 area then no durability is used. This has been the case for all the hammers I've tried, I don't think I hit all of them but at least wooden, copper, steel, diamond, and emerald for sure.

Its still the same no durability. Just infinity durability on hammer when mining 3x3

I'm also still getting this issue with infinite durability on both the Hammer (Using 3x3) and the Excavator (Using 3x3), in any/ all ore types. I'm running :
Minecraft 1.19.2
Fabric 0.14.21
cloth-config-8.3.103-fabric
EmeraldTools Fabric 1.19.2-1.4.38

I fired up a clean install of 1.19.2 and I don't see any problem with the durability.

Perhaps the issue was resolved in a later version of Fabric API

I cannot replicate and everything tests fine on my end.


Support custom gridlines

Whilst for most gantt charts, a single grid is fine; sometimes you might want to have multiple. Take, for example, the following chart, which plots a relatively small amount of time (generated via typst-timeliney, but done so by manipulating data from a yaml file):

It could be useful to have both a grid for the months; or a grid for the weeks. Owing to its complexity and lack of uniform grid sizes,  it could help to have the ability to have a gridline() function --- similar to the grid.line function in typst and most likely working in a similar way to how milestones are handled.
If this is a feature which you would be willing to support (which, in honesty, I could see why you wouldn't want to); I would be happy to implement it.
Thank you, nonetheless, for this library.

Hi, thanks for the request! I am not sure I see what you mean, do you think you could do some sketch of what it would look like? Do you mean two overlapping grids?

I see, thanks for mocking it up!
I am not able to work on this ATM since I am quite busy between work and finishing my master's thesis, but if you make a PR for it I am more than willing to merge it.

I ended up creating my own library for this. My motivation for this was that I specifically wanted to work with datetimes in a simple manner. I initially had planned on writing a wrapper for this library, but the amount of code I was writing to transform the data was comparable to the length of this library: so I ended up writing my own library from scratch to accommodate my needs, Gantty.

Hey, that looks great! Honestly it's kind of what I wanted this library to be. It was mostly done since I needed it for my thesis and then just posted it on GitHub, but didn't properly refine it. Congratulations on it, looks great.


Allow blacklisting domains

In some cases it might be more convenient to use blacklist instead of a whitelist. This PR adds such possibility.

The code looks good. What is the use case you're picturing? The idea for the whitelist was so people couldn't hijack your server to run their own service.

It might be useful when you want your service to be publicly available, but still have a mechanism that would help you prevent it from being abused.


Updated the composer file

Incorrect file name for the .env file, updated the composer file.

#58


Felix never tells you if the ready flag is missing.

On startup, Felix refuses to load configuration until the "ready" flag is present. This leads to the following comedy chain of events.

Felix does not make any logs until it has read config (because the severity is too low, and we do not know the log file for sure until after the etcd config is read).
Felix cannot read config until the ready flag is set.

As a result, if the ready flag is missing, Felix not only never starts, but never makes any logs either, which is not at all easy to debug!
We could partially fix by logging the missing ready flag at huge severity, so at least it goes into syslog and to stdout. That might be the most pragmatic fix.

I don't think I fully get the "we do not know the log file for sure until after the etcd config is read" comment.  I thought one of the key motivations for having a local config file was so that you can get logging at the level you desire even if you can't connect to etcd?

Yes, agreed. The logic here in Felix is wrong, since one of the refactors has moved initialising of logging after etcd reading. That's clearly not right and needs sorting out properly.


chore!: drop Node v16 and support v18.17+

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@8ecdf7c). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff            @@
##             master     #886   +/-   ##
=========================================
  Coverage          ?   57.57%
=========================================
  Files             ?       27
  Lines             ?     3408
  Branches          ?      272
=========================================
  Hits              ?     1962
  Misses            ?     1446
  Partials          ?        0


CSS: Contact Chips & Dropcaps

Feature Request 1 - Contact Chips
I Want zurb to add new feature thats very popular after cards in material frameworks after Cards
But same like cards, chips are awesome for flat design too
Something like this => http://materializecss.com/chips.html
Codebase => http://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_contact_chips_close
Feature Request 2 - Dropcaps
Dropcaps are a nice feature and if it can be added in framework with few lines of code then why not!
Codepen => http://codepen.io/IamManchanda/pen/bgbraw
.dropcaps:first-of-type:first-letter {
  height: 0.7em;
  margin: 0.08em 0 -0.05em 0;
  padding: 0 0.065em 0 0;
  font-size: 5em;
  line-height: 0.85em;
  float: left;
}

Also. Your final code might look a bit different than this but thats perfectly ohk . What i want is a add a dropcaps class in foundation
Special Note: Have proposed similar feature(s) in bootstrap too so sorry for any duplication n all. I Just love and use both frameworks in my projects, so a bit neutral and proposing to both :)

This is two useful feature. Dropcaps can be added as a simple CSS utility.
For Chips, I wonder if we could implement it in a more generic way. Not a "contact chip", but only a "closable inline component".

@ncoden are you accepting css transition tickets ( features ) also ?
asking this coz of Mr. IE 9 :smiling_imp: ?

@kball Do we support IE 9 😈  ?

Nice one :smiling_imp: ....
yes you support. But for Flexbox you dont and i am unsure about transitions

So yes, you can open an issue about css transition/animations. :)

Thanks a lot,
But i must say have a thought that even bootstrap removed IE 9,
so how on earth and why on earth is foundation still relying on IE9 Support ?

I have no idea. You can open an issue about it too.

No thanks, i dont want to load you all up with too many issue requests :wink: :laughing:

There is no problem with this. Please open an issue for any bug with Foundation or feature/support request.

There is no problem with that. Please open an issue for any bug with Foundation or feature/support request.

I have just did that https://github.com/zurb/foundation-sites/issues/9591

Also, please open one issue per feature (or group of related features) request.

Do you want me to remove dropcaps and open a new feature request sir @ncoden ?

Do you want me to remove dropcaps from here and open a new feature request for that sir @ncoden ?

That would be great, yes :)

@ncoden can you assign me up this buddy?

@IamManchanda If you are working on an implementation, yes.

If you are working on an implementation (or plan to), yes.

I plan to !

Edit: it require you to have write rights on this repo.

Why would i need a write access in a simple PR ?
any specific reasons ?

No, I need you to have write access to assign you to an issue.

@IamManchanda are you still interested in tackling this?

@kball Yup interested ... thanks for assigning me .... sorry i missed this before .... will look into it soon .... maybe this weekend ... or early next week!

Dang i missed this .... Ohk lets see if i can click this out this coming weekend!

@IamManchanda good idea! Let's get this in 7!


Text edits in response to @rick-anderson feedback.

@Rick-Anderson Please review

Looks good :shipit:


Importing JS for a specific component seems buggy

Each component.dom.js relies on import domready from '../../js/domready'; which isn't exported as part of the @ons/design-system package

@boxadesign when you say seems buggy how do you mean? What is the expected and actual behaviour?

@kruncher Yeah sorry I didn't actually write the issue (but should've improved the wording). We don't add the domready.js file to the npm bundle or zip file so it errors when attempting to import that file into each script.dom.js file that a service will try to include.

@boxadesign

I've made a PR which aims to include 'domready.js' at least in npm releases.
It isn't clear to me how this affects the .zip file since the only reference that I could find was just for zipped templates.
Does this affect other scripts such as 'src/js/cookies-settings.dom.js'?

#1762 did indeed include the domready.js but the include path in the components hasn't been updated:
Failed to resolve import "../../js/domready" from<EMAIL_ADDRESS>Does the file exist?

Current:
import domready from '../../js/domready';
Correct:
import domready from '../../src/js/domready';

@boxadesign @kruncher Please see my comment above. The file is there but the path is wrong (v44.1.2).

I'm afraid that despite #1798 the issue is still there in v45.0.0, this time the domready.js is nowhere to be found.


Add Nintendo Switch JoyCons

Definitions for the Nintendo Switch JoyCons (named NxJoycon) should be created in the devices.nx module. An accompanying adapter should also be implemented in the glfw module.

Completed in commit c605ca74504ab580b3250adcfa4b483da67baca3.


Initial refactor from Ember-CLI

This PR is far from done.  Refactored Ember-CLI to work with Mern.  Commands: [mern new AppName, mern generate component ComponentName]

Thanks @athomann, will take a look!

Isn't this a bit of an overkill? I also notice that mern-cli no longer uses git clone to get the mern-starter repository. How does this script get the latest version now?
Aside from that there are a lot of references to the Ember CLI. Even Ember email addresses.
I do like the new commands as it makes more sense and provides more flexibility.

@stephan281094 I admit that this pull request is far from done.  Angular did something similar by forking the ember-cli with angular-cli.  Looks like the wrote a script to remove any reference to ember-cli.
https://github.com/angular/angular-cli
This branch currently doesn't pull the latest version.

Some change have been made:

The script now pull the latest mern-starter version on github
Scaffolding commands are avaiables for containers, components, controller and model
I removed all occurence i've found of ember-cli
I removed all dead code i've found

Great work! Thanks for the PR, @athomann and @Antonin-Deniau. But, we have refactored the CLI to enable the cli to clone different variants of MERN from different repositories. You can check the code in v2 branch.


custom folder issues

in the folder , . . . the one you go to when you click "custom folder"
it can  * only *  contain : other folders that contain the wav's, oggs, config, etc..
If you have an empty or other sub folder in it,
that is when it will only show up as blank.
also, remember to always quit & restart the program after every custom folder change,
so it will see the new folders on startup.

Fixed by #250


Simplify with dict.get() and str.join()

Lgtm. I didn't test and would want to know if the missing \n is approved, but otherwise the improved code is nice .  I see some more similar improvement opportunities. Thanks!


Fix: check server presence correctly in disambiguiation

Closes #981
ServerMatch is undefined, not null.

I know, but you were busy. Just wanted to close this since it's annoying :)


fix environment variable

Contributions: We are not currently taking public contributions - see our contributions policy. However, we are accepting issues and we do want your feedback.

Description
Tiny change to display the build source correctly.
Release note
Not customer facing, no release note has been added.
Tests

Documentation
No additional documentation has been added
Primary reviewers
@mironec @jamiebrynes7 @michelefabris

Discussed that we will have to change the example project after 0.8 is released, but looks good


djangocms-installer : requirements.txt can't fully be reused (a dependency is not available with pip).

I've installed djangocms with the djangocms-installer pip package (using default choices).
Here is the output of pip freeze :
dj-database-url==0.3.0
Django==1.7.10
django-appconf==1.0.1
django-classy-tags==0.6.2
django-cms==3.1.3
django-reversion==1.8.5
django-sekizai==0.8.2
Django-Select2==5.2.0
django-treebeard==3.0
djangocms-admin-style==0.2.8
djangocms-column==1.5
djangocms-file==0.1
djangocms-flash==0.2.0
djangocms-googlemap==0.3
djangocms-inherit==0.1
djangocms-installer==0.8.0
djangocms-link==1.7.0.dev1
djangocms-picture==0.1
djangocms-style==1.5
djangocms-teaser==0.1
djangocms-text-ckeditor==2.6.0
djangocms-video==0.1
html5lib==0.9999999
Pillow==3.0.0
pytz==2015.6
six==1.10.0
tzlocal==1.2
wheel==0.24.0

djangocms-link==1.7.0.dev1 can't be found by pip even if I try something like pip install [--allow-external djangocms-link==1.7.0.dev1] [--allow-unverified djangocms-link==1.7.1.dev1] djangocms-link==1.7.0.dev1.
It simply says :
Could not find a version that satisfies the requirement djangocms-link==1.7.0.dev1 (from -r requirements.txt (line 17)) (from versions: 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6a1, 1.1, 1.1.1, 1.1.2, 1.1.3, 1.2, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.4.0, 1.4.1, 1.5, 1.6, 1.6.1, 1.6.2)

No matching distribution found for djangocms-link==1.7.0.dev1 (from -r requirements.txt (line 17))
Why doesn't djangocms-installer use packages available with pip?
How could I fix this? Could an other version do the job?
(I tried and It looks like using the github repository address for djangocms-link can do the job wouldn't it be better to use directly a version available on pip like for the other packages?)
I tried with python3.5 (But django1.7 isn't supported with this one), and python3.4.
Pip version is 7.1.2
Thank you.

@vmonteco this actually belongs to https://github.com/nephila/djangocms-installer, could you reopen it there?
TL;DR: installer uses github version of plugins in some cases, use dump mode (http://djangocms-installer.readthedocs.org/en/latest/usage.html#dump-mode) in case you want to reuse requirements


Added log(n) move-to-front implementation

The implementation is based on AVL and order statistic tree.
Intended to be used by SPIR-V compression algorithms.

Fails MSVC build.

To make it reusable I would have to move the whole thing into the header and template the id.

The reusability I'm looking for is for the client to choose the id values, not the MTF container.
I don't need templating over the Id type (or value type more generically).

The reusability I'm looking for is for the client to choose the id values, not the MTF container.
I don't need templating over the Id type (or value type more generically).

What's the point of it being a bit more generic, but not completely generic? The way it is now, the header can be taken and reused elsewhere.

The current API is difficult to use correctly, and unnecessarily constrains the client into using the IDs that the MTF sequence chooses.
To use the API correctly, while adding a new Id with RankForId, the Id has to be exactly what next_id_ is, but there's no way to get that.  Which means the client has to track the same number that the MTF object has internally.  That's error prone.
Also, it constrains the solution space for the codec client.
With slight tweaks the API will be easier to use and much less error prone.  I'm reminded of Scott Meyer's advice to API designers:
http://www.aristeia.com/Papers/IEEE_Software_JulAug_2004_revised.htm
It comes out more empahtically in https://www.youtube.com/watch?v=5tg1ONG18H8

https://www.youtube.com/watch?v=5tg1ONG18H8#t=4m08s and the next two minutes
"If they do not use the interface correctly, then what that means is it's your fault.  It's not their fault.  You cannot blame the user. You cannot blame the caller. They're trying to do the right thing.  If they're failing to do the right thing, there is something wrong with the interface that's permitting them to make an error that should not be permissible."
"Software should be easy to use correctly, and hard to use incorrectly."

To use the API correctly, while adding a new Id with RankForId, the Id has to be exactly what next_id_ is, but there's no way to get that.

That has been fixed.

Rebased, squashed, and pushed into master as 8d3882a40


Conversation Viewer statically built with Jinja

This should be mostly identical to the previous version except:

new lines replaced with  in messages and pre isn't used.

The browser doesn't barf when you open 100s of transcripts.

I wanted to make a few small QoL improvements to the viewer and thought it would be best to do this first.

Sort of conflicts with my vision PR but I have that on ice until we update our OpenAI version.


remove districtm adapter docs

there is no bid adapter by this name.  should this be here?  are you supposed to use appnexus or the districtmDMX adapter instead?  maybe this should be updated not deleted, but it was definitley misleading for me in my attempt to integrate districtm.

'districtm' is still a valid alias of appnexus. If that business arrangement has ended, then the appnexus bid adapter needs to be updated to remove the alias, in which case this can be re-opened.

@bretg deleting the page is over zealous, but the aliasCode in this markdown file doesn't actually result in any html here: https://docs.prebid.org/dev-docs/bidders/districtm.html
I'm building prebid manually, and the process i normally go through to include a new adapter is to add the bid adapter, whchi based on the page above i would erroneously assume to be 'districtmBidAdapter', which causes a build failure.
Is there another approach i could take to get the page above to better reflect how one who isn't using the download page could include the districtm adapter in their prebid build?

Good point @jsut .  On the Download page, a bidder with an alias winds up downloading the real adapter. In this case, selecting "districtm" results in downloading the "appnexus" adapter.
We specifically avoided putting reference to the alias on the documentation page out of business respect. We assume aliases might be a "white label" arrangement where some of these entities might want to appear to be standalone rather than appearing to be a subsidiary of another entity.
So I'd rather not surface the relationship directly on the bidder page. We could add a note in the README where it's describing how to build from the command-line.


Add Romanian support

I just got a crowdin message about someone wanting to translate homarr into Romanian ! This issue is here to be treated in parallel to add the support for the locale in the code

Oh I didn't know it was me.  I should probably send another message


Allow 'prefixed' Elasticsearch installs

It's fairly common to host ES under a prefix address - foobar:123/some/path instead of always going to the root. While it can be supported by adding an HTTP service for this, having it in the client,makes things significantly simpler.

Hey Costin,
Thanks for looking into this. Do you have an estimated date when this feature/rc1 will be released/available for testing please?

Days, 1 week at most. Please watch the issue to be notified in real time of when it happens.
Thanks,

Excellent, thank you very much.

@pricecarl Pushed the feature in master; the nightly build is running and will be soon available; please try it out and report how it works for you. Simply set the prefix through es.nodes.path.prefix (`/my/custom/path'). The docs also contain this information (but it might take some time before they get refreshed).


Developer ipa here!

 We have an repo as well https://repo.cypwn.xyz 😫every major and popular tweak is pirated on our repo.


Optimize make update-authors

One of the steps during the release process is to ensure that the list of AUTHORS in the repo is up to date. We currently manage this by running make update-authors. This currently takes me about 3.5 minutes on my system to run. It'd be nice if this ran within a few seconds.

I want to work on this.

Hi, I am interested and would be glad to get to work on this.

Hi folks, you're welcome to start working on it, and if you two are both interested then perhaps you could discuss together on Slack #development channel on how to tackle the problem and propose a solution?
I think the first step would be to start digging into what make update-authors does under the hood to extract the set of authors out of the git history, maybe profile where the time is spent with some userspace tooling, and then see whether there might be either a reliable faster method to extract the information from git, or perhaps to create some kind of cache for AUTHORS prior to a particular commit reference so that subsequent attempts do not need to iterate so far back into git history.

Sound good to me and I am up for it. @20RitikSingh let me know if you are up for discussing.

sure.

so , there is this file of AUTHORS so we can just find the last release date and only query git for that duration by using "--since" flag in git shortlog --summary  .
@joestringer  should i go ahead with this approach?

One tricky part here is that we will run make update-authors separately on each branch - for example main, v1.15, v1.14, and each currently-maintained older release branch. So if we detect since the last release by default, then that last release should probably be determined based on the local branch version. You can see the current version in the VERSION file in each branch, and I think there's some scripts under contrib/ which also have some code to detect previous versions.
I think it would be good to also ensure that there is still a way to generate the full AUTHORS list since the beginning just in case we want to double-check that nothing was missed during the incremental updates since a recent release.

IIRC the script also currently completely deletes the entire authors file and generates it from scratch. So if this only runs with --since, then you'd also need to stitch the new diff of authors into the existing file.
I'll also mention we currently implement this with a relatively simple shell scripts. If it's simple enough to implement in shell, you are welcome to implement that way. Alternatively, if shell becomes unwieldy to implement this, then you could alternatively consider writing a replacement for contrib/scripts/extract_authors.sh in Go with this new feature and add it to tools/.

i tried using git shortlog --email --summary --format="%aN%aE"|awk '{$1=" ";print $0}'|awk -F '[<>]' '{ printf "%-40s %s\n", substr($1,1,40), $2 }' to replace logic of contrib/scripts/extract_authors.sh but due to non ascii characters its acting up in few places
temp.txt

git shortlog --email --summary --format="%<|(40)%aN%aE"|awk '{$1=" ";print $0}'|sort -u this  also works if you are fine with this output
temp.txt

As I understand, André has been working on improving this in the cilium/release tooling: https://github.com/cilium/release/pull/196 .

@aanm is this faster now in the implementation in cilium/release ? Should we remove the update-authors make targets in the tree?

@aanm is this faster now in the implementation in cilium/release ? Should we remove the update-authors make targets in the tree?

It depends, do we have intentions of updating authors outside of the release process? If yes then we just need to add a command line option to the release tool to update authors.

I don't usually do that outside of release schedules, but sometimes during the release process I find that the authors file gets a bit messed up and I need to re-run it, particularly after editing .mailmap. I guess we can leave it for the moment. Either way I think we've effectively achieved the goal of this issue, and we can always remove the target later if we add a dedicated command in cilium/release.


Google refuses authentication

I just installed mail trends on my Mac (running El Capitan) and ran:
python main.py --server=imap.gmail.com --use_ssl<EMAIL_ADDRESS><EMAIL_ADDRESS>-- skip_labels
(myname substituted above for actual login name)
when I entered my password for the gmail account, google refused with the following message:
imaplib.error: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
I then received an email that the app doesn't support latest security standards. What should/can I do?

You have to allow "less secure access" to your Googel account: go to https://myaccount.google.com/security.

App Passwords is what you'll want to use here. You can then later dispose of the password in the same page.


Whats about duration picker?

Hello! What do you think about adding new type of widget named DurationPicker?
Something like this plugin but it's abandoned.

I think a dedicated package for this would be more suitable than mixing things up with this one.


Make sure this.keyboardWill(Show|Hide)Event exists

It can be undefined thus causing app crashes.
Here's a screenshot from the crash report in fabric:

So this means that componentDidMount doesn't get fired in some cases?

I am not sure honestly. They are being set to undefined in getInitialState which maybe is called more often than we think (?). I'm not sure if it is a good idea that getInitialState has side effects, it should just return the initial state.

The execution order is getInitialState, componentDidMount and then componentWillUnmount. This is why I don't know why is this happening.

Ok, we should move the Keyboard.addListener to the componentWillMount lifecycle event.

Do you want to change your PR to provide this? If not, I can change it later today.

@alvaromb you think that will fix it?
I am not sure you should be adding subscriptions in this lifecycle method.

I am not sure it would be a fix, but I am pretty sure you don't need the this. keyboardWillShowEvent = undefined in getInitialState. It will be undefined to start with anyway.
Since I don't really understand why it is happening, I think the safeguard makes sense, no?

We should introduce your safety check, for sure. About moving the Keyboard.addListener, this is how the Keyboard module is in the React Native documentation:

I just read React docs and honestly I'm not sure which path is correct ¯_(ツ)_/¯
It seems that at some point your component unmounts before calling componentDidMount, so the listeners are undefined. Releasing the fix now, thanks!

@alvaromb thanks!

Released https://github.com/APSL/react-native-keyboard-aware-scroll-view/releases/tag/v0.2.4

Hi @pietropizzi!
 I have tons of work and other libraries to maintain and I would love to have some help here. Please feel free to ping me if you want to collaborate ☺


Has this framework been use in production environment?

And whether there is any performance testing data？

I find here from https://www.zhihu.com/question/23511894?
any doc about the project?

@justwawre 好像都没人维护了


FeedBack Elastalert

Hi,
I'm using Elastalert since some months and I would like to have some feedbacks, how many rules have you set up ? how many Elastalert instances and how many rules per instance?
I'm asking for some feedbacks because I'm currently using one instance with 8 rules but I want to set up like hundreds of rules.
best regards  locktll.

Currently I am testing ElastAlert and it does not (yet) meet my requirements.
My use case is as follows:
I have user which are sending email trough authenticated smtp and login with the email address and password. Now this is prone for brute forcing username/password and I want to detect that with ElastAlert. I want to detect login attempt from multiple source ip using the same username with different passwords. Multiple source ip using the same username and password should be flagged to monitor but initially ignored.
I have tried several methods, frequency, cardinality, new_term and neither of those give me the result I need.
So to anwser your question, currently I have 0 rules running :)

@locktll
We've had probably about 200-250 or so running on a single instance at a time. I'm super you could do more, depending on a few things like how complicated the queries are, how much data there is, how much latency you can tolerate, etc. You can always run a another instance with separate rules.
@pjanzen
You CAN set that up, though it's a little complicated. Cardinality only supports one field at a time, but you can make a rule that will alert when two separate cardinality rules alert.
In ip_rule.yaml
name: Failed logins IP
type: cardinality
cardinality_field: IP
query_key: username
max_cardinality: 5
alert:
 - debug

In password_rule.yaml
name: Failed logins password
type: cardinality
cardinality_field: password
query_key: username
max_cardinality: 5
alert:
 - debug

in failed_logins.yaml
name: Brute force attack
type: cardinality
cardinality_field: rule_name
index: elastalert_status
filter:
 - query:
      query_string;
        query: "_type: elastalert AND (rule_name: \"Failed logins IP\" OR rule_name: \"Failed logins password\")"
max_cardinality: 1

This would alert if both the alerts for 5 different IPs and 5 different passwords went off within some timeframe. I excluded a few fields but I think you get the idea.
Yes, it would be really nice to support this use case without this weird meta alert thing.


Make ssh secure

Description
Currently all nodes use the same ssh key which is hardcoded. This is very insecure and should be replaced with something more robust.

I did not find much easier way to do it. For KubeFlow OpenMPI operator, they create a one-time ssh secret and use it for all workers. For Kube-openmpi, they also generate id_rsa/id_rsa.pub beforehand and append the values to values.yaml. hardcoding ssh keys might not be a problem as users can always overwrite them.
To be more secure, we can limit the roles of useraccount and have a standalone namespace for each jobs.

It would be cool if some keys were generated on the fly when installing with helm. But I don't think the helm template commands support enough scripting functionality.
Removing this from the 0.1.0 milestone


Timezone settings

Hello again!
How can we deal with different timezones? Is there any built-in solution or what is the suggested method?
Thank you.

Hello!
At the moment the Calendar uses default time zone and locale that have been set up on the device. There is no API for setting different time zone or locale in the current implementation.
Could you describe your use case with different time zone?

Hello!
Thank you for your answer.
Currently we are working on a booking system (backend is based on PHP & MySQL). Every registered host can set his own timezone in the profile settings.
In the android app users can view any of the host's reservation calendar. In this view I have to show the reserved dates/events based on the timezone set in the host's settings, not in the mobile user's locale.

Ok, I got it. I think it makes sense and I'll think about adding timezone setting in the next minor version.
Keep the issue open.

Ok, thank you for your help! :)

Hello, are you accepting contributions for this issue?

Hello, are you accepting contributions for this issue?

Yes!


Proof-of-concept embedded PR link

I was curious how difficult it would be to implement #11. Here is a VERY rough proof-of-concept. It only works for repos with an origin remote set up on github.com with SSH, and there is an as any and disabling of an ESLint rule.
Definitely needs some work before merging.

Thanks for helping out. I'll try to look at this more closely and get it merged in the next week or so. Making https remotes work should be easy. I'll need to decide on the appearance. One thing I disliked about Gitlens was the overwhelming number of buttons on each commit, so I want to make sure to keep things simple. One problem with "Show PR" is that #123 in the commit summary is not necessarily a PR, it could also be an issue. A nice solution would be to not add a link at the bottom, but instead convert the #123 into a link in-place in the summary line. It doesn't matter if the URL is uses /pull/123 or /issues/123 since GitHub redirects to the appropriate one. Could also do it in the entire message rather than the summary line, but would be at more risk of false positives, and would need to parse out code blocks to avoid doing it in there etc.

Oh I just remembered I said I was going to at least avoid doing it in code blocks since false positives would look a lot worse there, but I forgot. I’ll try doing that tomorrow. That would also allow me to avoid adding two spaces for hard line breaks inside code blocks.


feature: Summarize Field Extension

first take at a new field extension for providing summary/aggregate data.
query() {
      people() {
          summarize { average { height } }
      }
  }

Supports:

Min, Max, Average, Sum, Count
Number fields only

Could Potentially Support

Grouping before doing stats? (haven't really thought that one through yet)
Filtering before doing stats
Stats on other types (eg min/max string?)

Notes

Naming very much open to change - eg could be aggregate or stats etc
Tried adding minimal extra types
** adds a field to existing type (eg people gets a summarize field which may not be the best)
** reuses the same type to put the stats on (mainly a shortcut, but isn't great when it means theres fields you can't query)

Cool. Did you hit any issue doing this with field extensions? Including lack of documentation etc?
I don't mind summarize but I think I prefer aggregate?

Cool. Did you hit any issue doing this with field extensions? Including lack of documentation etc?

Documentation was mostly go look at the examples if I remember rightly, that was all pretty easy.  Figuring out the expression trees was a pain though (although that's pretty much always the case with expression trees).

I don't mind summarize but I think I prefer aggregate?

yeah i was kinda leaning the same way, i think other gql tend to use aggregate too.
Also starting to think it should be a top level field instead of a subfield, too hard to work out how it would interact with everythign else (pagination/filtering etc) at which point I'm not sure if its really a field extension or something new.
Still pondering this one a bit, not really in a rush.


Does this utilize multiple GPUs for training ?

Can I use gpu for training? I have replaced /cpu:0 with /gpu:0. But it doesn't work.

@ajkl  Have you solved this? If yes, pls give me some advice. Thank you


Add oklink config

add oklink config

This link is the homepage for our API. We will show people how to use our API through this link. People can find smart contract verification and all the on-chain data for Linea, including addresses and transaction blocks.

@qq840767465 could you address the requested changes above please so we can move forward? thank you!

@qq840767465 bump — this will need some work before we can merge. We restructured the docs so you will need to adjust some paths: /build-on-linea is now /developers, for example.

We already have the OKLink page in an extremely similar state, live here: https://docs.linea.build/developers/tooling/account-abstraction/oklink
Closing.


chore(CategoryTheory): better names for multiequalizers

This PR renames the confusing Multiequalizer.ι as Multiequalizer.proj, etc. Lemmas and definitions IsLimit.hom_ext, IsLimit.lift and IsLimit.fac have also been added for multiequalizer shapes.

I don't have strong preferences either way, but to me the first arrow in $E \to X \rightrightarrows Y$ is morally an injection so ι or inj makes more sense to me.

For multiequalizer, I see it much more as a projection. But, you're, by consistency with basic forks, it does make sense to use ι...


Lime-209, Recalculation of Shares

Description
The _depositCollateralFromSavingsAccount in the CreditLine contract calculates the shares transferred and then adds them into the balance:
collateralShareInStrategy[_id][_strategy] = collateralShareInStrategy[_id][_strategy].add( _liquidityShares.mul(_tokensToTransfer).div(_tokenInStrategy) );
Instead of recalculating the shares, the function can use the return value of the external call transferFrom which returns the share amount.
Integrations Checklist

[ ]  Have any function signatures changed? If yes, outline below.
[ ]  Have any features changed or been added? If yes, outline below.
[ ]  Have any events changed or been added? If yes, outline below.
[ ]  Has all documentation been updated?

Changelog

Using return values instead of re-calculating the shares in _depositCollateralFromSavingsAccount in the CreditLine.sol.

Event Signature Changes
Function Signature Changes
Features
Events

Codecov Report

Merging #230 (8f7b3ba) into master (6aaf59a) will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #230      +/-   ##
==========================================
+ Coverage   15.95%   15.97%   +0.01%
==========================================
  Files          16       16
  Lines        1736     1734       -2
  Branches      321      321
==========================================
  Hits          277      277
+ Misses       1459     1457       -2

Impacted Files
Coverage Δ

contracts/CreditLine/CreditLine.sol
9.88% <0.00%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6aaf59a...8f7b3ba. Read the comment docs.


APE v2 Should be added to ape-framework.readthedocs.io

APE v2 introduces many new features and these should be documented in ape-framework.readthedocs.io
To document:

[ ] Mention the additional data dimension "APE_label" that the user can specify when defining inputs/outputs and additional constraints
[ ] Describe the new SLTLx format of constraint specifications
[ ] Update APE API interface
[ ] Update the Use Cases

Being worked on in https://github.com/sanctuuary/APE_readthedocs/pull/1


Running xcodes install with sudo fails with "Could not find version"

I am migrating from xcode-install / xcversion to this tool, which we use to automate installing Xcode in CI.
Trying to run sudo xcodes install <version> seems to always fail with Could not find version <version>
For example:
➜  ~ sudo xcodes install "14.0.1"
Password:
Could not find version 14.0.1.

➜  ~ xcodes install "14.0.1"

Downloading with aria2

Same thing happens with version 14.0 as well.
The version is there for sure, I have run xcodes update and added a check:
➜  ~ xcodes list | grep 14.0
14.0 Beta (14A5228q)
14.0 Beta 2 (14A5229c)
14.0 Beta 3 (14A5270f)
14.0 Beta 4 (14A5284g)
14.0 Beta 5 (14A5294e)
14.0 Beta 6 (14A5294g)
14.0 (14A309) (Installed, Selected)
14.0.1 (14A400)

I need to run it with sudo since the install requires the user credentials according to the documentation, and this is running in CI in a non-interactive shell.

@akselilukkarila Can you sudo xcodes update first?
Believe the sudo makes it save the list somewhere else.

@akselilukkarila Can you sudo xcodes update first?
Believe the sudo makes it save the list somewhere else.

Thanks, running sudo xcodes update first works 👍🏻  Maybe this could be mentioned in the documentation

This is actually a recent regression in 1.0.0, and my PR for #226 should fix the issue so that the update isn't required.


tests: drivers: uart: uart_pm: Disable PM_DEVICE_SYSTEM_MANAGED

When PM_DEVICE_SYSTEM_MANAGED is enabled (and that's the default) all devices are suspended when device go to idle state (through pm subsystem and not through just cpu_idle). In this test we are manually controlling PM of the DUT so we don't want that.
Additionally, suspend action is taking a semaphore and it is illegal in idle thread (where system managment operates) which causes assert in kernel scheduler.

This is a fix for the same issue that #79268 tries to fix.
However, the root cause is that k_sem_take is called in the context of idle thread (where pm_suspend_devices() is called when CONFIG_PM_DEVICE_SYSTEM_MANAGED=y) and there is an assert in scheduler:
https://github.com/zephyrproject-rtos/zephyr/blob/d0e793f607d55b08b336c369c8bcb1febe6e78fa/kernel/sched.c#L121
which seems to not accept taking semaphore from idle task (@andyross is that correct?). Since pm_action by default can be called from thread so k_sem_take is accepted there and it can cause issues in other devices as well.
Another thing is that this test will soon be removed because it tests non-runtime PM API (calling pm_device_action_run() directly) and that is being replaced by runtime PM.

fyi @nordic-segl

I use same fix in sdk-zephyr in this PR:
https://github.com/nrfconnect/sdk-zephyr/pull/2052/files
I get build failures due to warnings treated as errors in Twister.
warning: PM (defined at soc/silabs/silabs_s2/efr32bg22/Kconfig.defconfig:12,
soc/silabs/silabs_s2/efr32bg27/Kconfig.defconfig:12,
soc/silabs/silabs_s2/efr32mg24/Kconfig.defconfig:12, subsys/pm/Kconfig:13) was assigned the value
'y' but got the value 'n'. Check these unsatisfied dependencies: ((SOC_SERIES_EFR32BG22 &&
SOC_VENDOR_SILABS) || (SOC_SERIES_EFR32BG27 && SOC_VENDOR_SILABS) || (SOC_SERIES_EFR32MG24 &&
SOC_VENDOR_SILABS) || (SYS_CLOCK_EXISTS && HAS_PM)) (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_PM and/or look up PM in the
menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values,
and Kconfig - Tips and Best Practices sections of the manual might be helpful too.

/jenkins_workspace/workspace/latest_sdk-nrf_PR-17380/zephyr/tests/drivers/uart/uart_pm/prj.conf:4: warning:
attempt to assign the value 'n' to the undefined symbol PM_DEVICE_SYSTEM_MANAGED

Test Result (13 failures / +12)
Build & Test with Twister / Twister ZEPHYR 13/15 / nrf52840dk/nrf52840:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 5/15 / nrf52840dk/nrf52840:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 13/15 / nrf52840dk/nrf52840:drivers.uart.pm.enhanced_poll.drivers.uart.pm.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 15/15 / nrf52840dk/nrf52840:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven
Build & Test with Twister / Twister ZEPHYR 10/15 / nrf52840dk/nrf52840:drivers.uart.pm.no_rxpin.drivers.uart.pm.no_rxpin
Build & Test with Twister / Twister ZEPHYR 11/15 / nrf52840dk/nrf52840:drivers.uart.pm.async.enhanced_poll.drivers.uart.pm.async.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 9/15 / nrf52840dk/nrf52840:drivers.uart.pm.int_driven.enhanced_poll.drivers.uart.pm.int_driven.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 10/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 7/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 6/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven
Build & Test with Twister / Twister ZEPHYR 15/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 4/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 1/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven

Maybe, instead setting
CONFIG_PM_DEVICE_SYSTEM_MANAGED=n
for all platforms, this KConfig can be set in boards/nrf54h20dk_nrf54h20_cpuapp.conf
???

I use same fix in sdk-zephyr in this PR: https://github.com/nrfconnect/sdk-zephyr/pull/2052/files
I get build failures due to warnings treated as errors in Twister.
warning: PM (defined at soc/silabs/silabs_s2/efr32bg22/Kconfig.defconfig:12,
soc/silabs/silabs_s2/efr32bg27/Kconfig.defconfig:12,
soc/silabs/silabs_s2/efr32mg24/Kconfig.defconfig:12, subsys/pm/Kconfig:13) was assigned the value
'y' but got the value 'n'. Check these unsatisfied dependencies: ((SOC_SERIES_EFR32BG22 &&
SOC_VENDOR_SILABS) || (SOC_SERIES_EFR32BG27 && SOC_VENDOR_SILABS) || (SOC_SERIES_EFR32MG24 &&
SOC_VENDOR_SILABS) || (SYS_CLOCK_EXISTS && HAS_PM)) (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_PM and/or look up PM in the
menuconfig/guiconfig interface. The Application Development Primer, Setting Configuration Values,
and Kconfig - Tips and Best Practices sections of the manual might be helpful too.

/jenkins_workspace/workspace/latest_sdk-nrf_PR-17380/zephyr/tests/drivers/uart/uart_pm/prj.conf:4: warning:
attempt to assign the value 'n' to the undefined symbol PM_DEVICE_SYSTEM_MANAGED

Test Result (13 failures / +12)
Build & Test with Twister / Twister ZEPHYR 13/15 / nrf52840dk/nrf52840:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 5/15 / nrf52840dk/nrf52840:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 13/15 / nrf52840dk/nrf52840:drivers.uart.pm.enhanced_poll.drivers.uart.pm.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 15/15 / nrf52840dk/nrf52840:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven
Build & Test with Twister / Twister ZEPHYR 10/15 / nrf52840dk/nrf52840:drivers.uart.pm.no_rxpin.drivers.uart.pm.no_rxpin
Build & Test with Twister / Twister ZEPHYR 11/15 / nrf52840dk/nrf52840:drivers.uart.pm.async.enhanced_poll.drivers.uart.pm.async.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 9/15 / nrf52840dk/nrf52840:drivers.uart.pm.int_driven.enhanced_poll.drivers.uart.pm.int_driven.enhanced_poll
Build & Test with Twister / Twister ZEPHYR 10/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 7/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 6/15 / nrf54h20dk/nrf54h20/cpuapp:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven
Build & Test with Twister / Twister ZEPHYR 15/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.drivers.uart.pm
Build & Test with Twister / Twister ZEPHYR 4/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.async.drivers.uart.pm.async
Build & Test with Twister / Twister ZEPHYR 1/15 / nrf54l15pdk/nrf54l15/cpuapp:drivers.uart.pm.int_driven.drivers.uart.pm.int_driven

This is a long standing issue, where many platforms define their own config PM which has nothing to do with zephyrs config...

Moved to nrf54h20 config

Maybe, instead setting
CONFIG_PM_DEVICE_SYSTEM_MANAGED=n

The whole PM story needs a good rework, see the discussion https://github.com/zephyrproject-rtos/zephyr/issues/75963, probably to do this as a stop gap now.


sink.py:23: Перенести классы в отдельные файлы 59

The puzzle 899-dff3d77b from #899 has to be resolved:
https://github.com/blablatdinov/quranbot-aiogram/blob/512a045fe275c3fe0c3ab6ddd71d6654bb7c40d7/src/srv/events/sink.py#L23-L23
The puzzle was created by Ilaletdinov Almaz on 09-Jun-24.
role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

All classes moved #899


fix: add text/x-component header to .rsc assets generated at build time, don't use rsc-data edge function when hitting .rsc path directly

Description
When working on something else I noticed quite the weirdness with how rsc-data middleware behaves when it comes to routing:
# hitting /blog/erica/first-post
Aug 31, 06:02:32 PM: 01H9659Z info   Is rsc request
Aug 31, 06:02:32 PM: 01H9659Z info   Rewriting to /blog/erica/first-post.rsc
# hitting /blog/erica/first-post/
Aug 31, 06:06:23 PM: 01H965H0 info   Is rsc request
Aug 31, 06:06:23 PM: 01H965H0 info   Rewriting to /blog/erica/first-post.rsc/
# hitting /blog/erica/first-post.rsc
Aug 31, 06:07:18 PM: 01H965JP info   Is rsc request
Aug 31, 06:07:18 PM: 01H965JP info   Rewriting to /blog/erica/first-post.rsc.rsc

as /blog/erica/first-post.rsc is actually asset produced at build time:

so only the first request from logs above one worked correctly. Second one did seem to work, but instead of using static asset on CDN it wen't to lambda to generate it and third one I don't even remember but it definitely seems wrong.
I'm not exactly sure why we make edge middleware to handle requests for .rsc paths - when trying that path we should just use path as-is - it will either use static asset from CDN or go to lambda to generate it (and possibly cache with with ODB). I did remove that from this PR as it didn't make sense to me, especially as it was redirecting to /blog/erica/first-post.rsc.rsc which seems all kind of wrong thing to do.
The statically produced .rsc files also didn't get expected text/x-component header (we only get this header right now when request is handled by lambda), so I also added header rule to ensure those get expected headers.
And finally I'm not sure why the rsc-data would want to rewrite to paths that end with trailing slash (.rsc/) - the comment say to differentiate those for ODB, but with no clarity why you want to do that? It also meant that if user hit path with trailing slash it would never use static assets on CDN and would always need to go through lambda
Documentation

Tests

You can test this change yourself like so:

TODO

Relevant links (GitHub issues, etc.) or a picture of cute animal

I think the reason was because at the time at least Next didn't request .rsc files directly. We were adding the .rsc to we could either load the static asset, or get a different asset from the ODB as we couldn't vary on the RSC header. I dunno which of those have now changed

Superseded by v5.


Can't get console output for coverage

Hi,
I'm trying to get console output for the coverage. The html version seems to work fine, but even though I have set xml to true, it doesn't show anything in my console/terminal. I'm trying to get console output so that I can enable the coverage badge on gitlab. What should I do? Any suggestions on how to debug this? I'm wondering if somehow it can't find the xml file? The logger.info output shows up fine. Thank you.
This is what my clover.gradle file looks like

apply plugin: 'com.bmuschko.clover'
dependencies {
clover 'org.openclover:clover:4.2.0'
}
// clover settings: https://github.com/bmuschko/gradle-clover-plugin
clover {
excludes = [
'/configuration/*',
'/Constants.java'
]
testIncludes = ['**/*Test*.java']

targetPercentage = '45%'

report {
    html = true
    pdf = false
    xml = true
    columns {
        coveredStatements format: 'longbar', min: '40'
        coveredBranches format: 'longbar', min: '40'
        coveredMethods format: 'longbar', min: '40'
        totalPercentageCovered format: '%', scope: 'package'
    }
}

}
test.finalizedBy(project.tasks.cloverGenerateReport)
logger.info('DONE Configuring Clover Plugin')

The console output was added to the plugin in the latest versions, you did not specify which version of the Clover plugin you are using.

Closing as I assume you are now able to use the 2.2.4 or later versions which introduced the Console Coverage messages when using XML reports.


[ROS2 Porting] Meeting 2020/11/30

Go over previous meeting minutes.

Investigate what would happen if we add gcc options and linters to a package -> @nnmm

From Josh: We use ament_lint_common which runs all of the linters listed here: https://github.com/ament/ament_lint/blob/master/ament_lint_common/package.xml
flake8 is giving an error. @nnmm will look deeper into it.

@mitsudome-r asking about ROS2 driver for Livox lidar.

Currently, it wouldn't be a blocker for this week's integration test.

Discuss current blockers

Parameters not available anymore in ROS2:

for now, these will be commented out to move forward with porting.
@mitsudome-r will check impact and make sure that they can be left out

Nodelet Gone:

@TakaHoribe to test if he can port the nodelet to ros2.

@fred-apex-ai will create and Issue on https://github.com/tier4/autoware_launcher.iv.universe/issues for anything that was left out from first ROS2 porting.

Other discussion:

Tier IV will test integration on a vehicle this weekend.

https://github.com/tier4/AutowareArchitectureProposal/issues/133#issuecomment-735618410

parameters not available anymore in ros2
<!-- velodyne_driver/DriverNodelet -->
<param name="scan_phase" value="$(var scan_phase)"/>
<param name="sensor_timestamp" value="$(var sensor_timestamp)" />

nodelet intention and missing parameters
also the cloud nodelet itself was turned into transform or convert node. Which one do we need?
<!-- velodyne_pointcloud/CloudNodelet -->
<param name="num_points_threshold" value="$(var num_points_threshold)"/>
<param name="invalid_intensity" value="$(var invalid_intensity)"/>
<param name="scan_phase" value="$(var scan_phase)"/>

nodelet gone
<!-- gone from velodyne repo -->
<node pkg="nodelet" exec="nodelet" name="$(var manager)_fix_distortion" args="load velodyne_pointcloud/InterpolateNodelet $(var manager)">
    <remap from="velodyne_points_ex" to="mirror_cropped/pointcloud_ex" />
    <remap from="velodyne_points_interpolate" to="rectified/pointcloud" />
    <remap from="velodyne_points_interpolate_ex" to="rectified/pointcloud_ex" />
  </node>

Ament linters
How to use ament linters
See this document. The linters are executables wrapped by cmake packages.
Results for the pose_initializer package
I added that to the pose_inializer package and ran
colcon build --packages-up-to pose_initializer
colcon test --packages-select pose_initializer
colcon test-result --verbose

ament_cmake_copyright
It complains for all source files that it doesn't find a copyright notice, although there is one, because it doesn't understand /* */.
This can be fixed by running ament_copyright --add-missing 'Autoware Foundation' apache2 (or whatever license holder is appropriate) and then deleting the existing license. That's probably not too hard to do in a batch operation as long as the existing licenses all look the same.
ament_cppcheck
It prints
- cppcheck
  <<< failure message
    -- run_test.py: invoking following command in '/home/nikolai.morin/t4/src/autoware/pilot.auto/localization/util/pose_initializer':
     - /opt/ros/foxy/bin/ament_cppcheck --xunit-file /home/nikolai.morin/t4/build/pose_initializer/test_results/pose_initializer/cppcheck.xunit.xml --include_dirs /home/nikolai.morin/t4/src/autoware/pilot.auto/localization/util/pose_initializer/include
    [include/pose_initializer/pose_initializer_core.h:33]: (error: syntaxError) Code 'classPoseInitializer:' is invalid C code. Use --std or --language to configure the language.
    1 errors
    -- run_test.py: return code 1
    -- run_test.py: verify result file '/home/nikolai.morin/t4/build/pose_initializer/test_results/pose_initializer/cppcheck.xunit.xml'
  >>>

This is not very readable – there is a lot of irrelevant stuff in there. The cause of the error is that the file is assumed to be C and not C++ because of the file name extension. This can easily be fixed in a batch rename operation.
ament_cpplint
This one has a lot of output, so I split it into error categories:
Requiring header guards instead of #pragma once
I didn't find a tool to generate those automatically, so it would potentially mean a moderate amount of work for very little gain, at least where #pragma once is already there.
Ordering of #includes
The pose_initializer_core.hpp has the following includes:
#include <memory>
#include <string>

#include <rclcpp/rclcpp.hpp>
// more includes

On the rclcpp line, cpplint outputs this very misleading message: Found C system header after C++ system header. Should be: pose_initializer_core.h, c system, c++ system, other.
Here's what's wrong with that:

there is no pose_initializer_core.h, we're already in the header file
rclcpp/rclcpp.hpp is not a C system header. cpplint thinks angle brackets = system header.
I don't think the order should be like that: If we include system headers after the headers of other Autoware/in-house packages, we can guard a bit better against missing includes in those. See this article for the rationale. It is a very frequent problem in the codebase that there are superfluous and missing headers.

Changing angle brackets of .h or .hpp includes to quotes should be not too much work, given that C system headers are rarely used in the codebase. But reordering the includes is more work.
Include what you use
Tells you to add missing C++ system headers. A moderate amount of work, because it is manual and probably affects most packages, but done in a few minutes per package. It doesn't bring that much of a quality improvement because if a build breaks because of this, it will be pretty obvious and easy to fix.
TODOs
There are a bunch of Missing username in TODO; it should look like "// TODO(my_username): Stuff. – a very good check in my opinion, since the code base has many // TODO comments that do not even explain what the TODO is. When the code base transitions to AutowareAuto, it should be self-contained and not rely on access to the original authors.
Fixing that check would probably require pinging a lot of the original authors. Before that, we should clarify whether we should put GitHub usersnames, GitLab usernames, email addresses or real names in there.
Other checks
I didn't see documentation on what things cpplint actually checks, maybe we need to read the source code. Several other things in there seem like a moderate amount of work.
ament_uncrustify
This had no output, because I think I already ran it on the original code.
I remember being annoyed with ament_uncrustify before, because ament_uncrustify --reformat doesn't fix all the things it complains about, but I can't find a specific example.
ament_xmllint
I think this pointed out important fixes in a previous package I ported, but for this one it pointed out nothing.
Further linters

ament_pclint: This is a commercial tool
ament_clang_format: This is a configurable formatter that ships with a preset for the Google Style guide. I used it before and liked it, but I don't know how it compares to uncrustify.

Alternatives
clang-tidy
The ament_clang_tidy package seems to do nothing, but it can be used manually:

Build with --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1
In the root directory, execute clang-tidy <cpp file paths> -p build/compile_commands.json

It is sometimes slow, but can be extremely valuable. In pose_initializer it found nothing, but that is a tiny package. In surround_obstacle_checker however it pointed out that in rclcpp::Duration(0.5), 0.5 is rounded to 0 – it accepts nanoseconds, not seconds, so this was a bug. It also pointed out an unnecessary copy, an unused argument to a function, and the use of potentially-moved-from objects.
Address sanitizer, UB sanitizer, thread sanitizer
In theory, you could compile your tests with these, just add --cmake-args -DCMAKE_CXX_FLAGS="-fsanitize=<address/undefined/thread>" to colcon build. However, they all report errors already for the minimal pub-sub example. I don't know if this is due to actual bugs or false positives. At least TSan can not be used without recompiling ROS2:

ThreadSanitizer generally requires all code to be compiled with -fsanitize=thread. If some code (e.g. dynamic libraries) is not compiled with the flag, it can lead to false positive race reports, false negative race reports and/or missed stack frames in reports depending on the nature of non-instrumented code.

Therefore I don't think they can be recommended without further investigation (e.g. if it's possible to disable errors coming from outside the current package).
todocheck
https://github.com/preslavmihaylov/todocheck links TODO comments with GitLab issues, which would be even better than just having usernames in there. That's difficult to do while we're still transitioning from GitHub to GitLab though, and it would also be a lot of work.
Summary
There are four code linters/formatters: ament_cppcheck, ament_cpplint, ament_uncrustify and ament_clang_format. While it is in my opinion a bit awkward to have four separate tools for that, and they are mutually incompatible for some corner cases (1 and 2), they generally help. Getting linters to pass takes probably less than 10 minutes for a small package like pose_initializer, but adds up to a lot of work for the whole code base.
Not that satisfying these linters does not mean at all that the code follows the style guide that we use, which is a slightly modified Google C++ Style guide (because that's what AutowareAuto uses, because that's what ROS uses). There are things that are addressed by none of them, e.g. that code should live in a namespace, which we should still do.
clang-tidy is more powerful since it actually builds your code. I don't know if it's fast enough to run as part of all tests, but it seems worth at least to go through all errors it reports once and fixing them – my impression is that the ratio of effort to quality is pretty good. Maybe @fred-apex-ai can comment more on it since he has used it in the past.
My suggestion is to try to batch-migrate license comments, header filenames, and #include style. We should probably also track all TODO comments in an issue to add explanations and assignees. Then we can go through all packages and fix lint issues and run clang-tidy. And of course, there is also tests, a good overall design, build quality, and documentation etc. that we should try to improve as part of code quality efforts.

Requiring header guards instead of #pragma once
I didn't find a tool to generate those automatically, so it would potentially mean a moderate amount of work for very little gain, at least where #pragma once is already there.

@nnmm There is a good tool that I have used for this purpose in the past and on at least one package during porting until I decided this should be done in a batch operation later. It's https://github.com/cgmb/guardonce. THe workflow would be to first convert everything to #pragma once to have a common ground, then convert to include guards based on the path in the repo. But we can/should do that in autoware.auto when the position in the directory structure would change again. Pseudocode
for each header:
    guard2once header
   once2guard header -p "format based on file name"


[GHSA-mhhp-c3cm-2r86] Test code in published microsoft-graph-core package exposes phpinfo()

Updates

Affected products
Description
References

Comments
Fixed the reference to the NVD.

Hey there 👋
When you say fixed, do you mean that you just removed CVE-2023-49103? That CVE was the issue that kicked off a fix in the MS library and is explicitly referenced in the source GHSA. I think we want to keep it.
https://github.com/microsoftgraph/msgraph-sdk-php-core/security/advisories/GHSA-mhhp-c3cm-2r86

You are right. I have removed the duplicated section references and I wanted to move the main NVD entry to the top, but I think it didn't automatically sorted the references list. The entry CVE-2023-49103 on the top of the list may confuse users that this is the proper CVE number.

I think the reference order is strictly ordered, but that CVE is only a reference. Note the alias section in the payload
 "aliases": [
    "CVE-2023-49283"
  ],

I have tested again and the feature Suggest improvements for this vulnerability doesn't reorder the reference list when we change it.
When I compare to other entries at the top of the list usually is the main NVD entry. Examples:

https://github.com/advisories/GHSA-8qfm-h8rh-h3r7
https://github.com/advisories/GHSA-qg44-xqwj-wc28
https://github.com/advisories/GHSA-6fwg-jrfw-ff7p

Please feel free to ignore my changes if you think there are not relevant. I just wanted to point out that this was confusing to me, because the other linked NVD entry was not about direct CVE.

I have tested again and the feature Suggest improvements for this vulnerability doesn't reorder the reference list when we change it.

Correct. They're ordered alphanumerically. Apologies for the confusion. Maybe we can make the primary identifiers more prominent in the future.

@jorgsowa are you ok with me closing this one out? It might be worth making an issue about the primary CVE too if you'd like a feature request 😄

Yes, I'm good. :) I will close by myself.


Behaviors and types

So, if we have a behavior that sets
  value: {
    notify: true,
    type: String
  },

and an element that sets
  value: {
    notify: true,
    type: Object
  },

then for some reason it will fail to parse an attribute such as value='{"red":255,"green":155,"blue":55}'. If we inspect the properties property it will correctly show type: Object(), however inspecting the value property will show '{"red":255,"green":155,"blue":55}'. No idea what's causing this, but makes behaviors like iron-form-element-behavior entirely unusable in all but the simplest of situations.

This has been fixed in Polymer 2: http://jsbin.com/zewihimiki/edit?html,console,output


No REPLICAS after stack deploy

Which lab is it that you're having issues with?
https://github.com/docker/labs/blob/master/beginner/chapters/votingapp.md
Description
When i tried to verify that stack has deployed, i have no REPLICAS for postgres:9.4 and dockersamples/examplevotingapp_worker:latest. And as a result, the application does not work for me.
Steps to reproduce the issue, if relevant:

git clone https://github.com/docker/example-voting-app.git
cd example-voting-app
docker swarm init
docker stack deploy --compose-file docker-stack.yml vote
docker stack services vote
Open in browser localhost:5000

Describe the results you received:
non-working application
Describe the results you expected:
working application
Output of docker version:
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: <unknown>
 Go version:      go1.8.3
 Git commit:      b5e3294/1.13.1
 Built:           Wed Aug 16 13:58:20 2017
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: <unknown>
 Go version:      go1.8.3
 Git commit:      b5e3294/1.13.1
 Built:           Wed Aug 16 13:58:20 2017
 OS/Arch:         linux/amd64
 Experimental:    false

Output of docker info:
Containers: 37
 Running: 5
 Paused: 0
 Stopped: 32
Images: 22
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Authorization: rhel-push-plugin
Swarm: active
 NodeID: beb57ltfpevg2r2rnsorv65l7
 Is Manager: true
 ClusterID: cymy41ooalhja4ots1rb6nigl
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: oci runc
Default Runtime: oci
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: N/A (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  WARNING: You're not using the default seccomp profile
  Profile: /etc/docker/seccomp.json
 selinux
Kernel Version: 4.13.5-200.fc26.x86_64
Operating System: Fedora 26 (Workstation Edition)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 4
Total Memory: 7.697 GiB
Name: bigkrp-bigkrpdomain
ID: J5Y2:A32J:AI4Q:F4YN:5FDF:FZZG:BKYA:2HUS:ZEXF:MELX:223M:E2ZC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: bigkrp
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false
Registries: docker.io (secure), registry.fedoraproject.org (secure), registry.access.redhat.com (secure), docker.io (secure)

@bigkrp you are using an old version of Docker, can you update to the latest and try again? https://www.docker.com/get-docker

I updated docker in accordance with this guide
and stack has deploed

But web-view didn't work, when i tried visit http://localhost:5000/

hi @bigkrp please check github: https://github.com/dockersamples/example-voting-app
I ran docker-compose up before deploy stack and it worked fine with me. Please try.

@bigkrp I'm unable to reproduce, but I don't have Fedora. Can you try this lab and see if it works in play-with-docker? http://training.play-with-docker.com/swarm-stack-intro/
If so that might indicate either a problem with Fedora or a set-up issue on your computer

If you continue to have an issue I suggest raising it on https://github.com/docker/for-linux


option to disable splash screen

I would like to disable splash screen. I've modified /components/app/app_component.dart to set duration to 0.1 or 0 but it did not changed anything.

Will be added to 3.0 :)

@Lahorde Tried the same, looking forward to 3.0 @Litarvan :smiley:

Hi, i'm currently hard working on it, i wanted to know if by "splash" you meant the "Arch Linux" logo fade, or the "Press "Enter" or "Space"" screen ?

@Litarvan is it possible to alter the logo that shows up from Arch to something else - I am using this on Debian.

You're welcome ! I'm planning to add all the common distros logos for 3.0, but for now patching the .svg is the simplest way to do it :)

I just seen 3.0 setup window! It's perfect, I hope it will be integrated in master soon.


add javadoc comments above each class

I just went through all classes currently on master and commented them, feel free to update if needed.
Please remember to include class comments going forward


Fix #3612 - reverse sign in difference calculation

fixes https://github.com/apache/incubator-superset/issues/3612

Coverage remained the same at 70.091% when pulling cdd5374640cc9320e9e5922a452a922394d4afa1 on mistercrunch:fix_diff into 4a3c09187a2aff72fe3715bf543f625d5966e5a8 on apache:master.

Coverage remained the same at 70.091% when pulling cdd5374640cc9320e9e5922a452a922394d4afa1 on mistercrunch:fix_diff into 4a3c09187a2aff72fe3715bf543f625d5966e5a8 on apache:master.

Coverage remained the same at 70.091% when pulling cdd5374640cc9320e9e5922a452a922394d4afa1 on mistercrunch:fix_diff into 4a3c09187a2aff72fe3715bf543f625d5966e5a8 on apache:master.

lgtm


testing only: DO NOT MERGE

This is the branch to actually test https://github.com/cilium/cilium/pull/18571

/ci-aks


Filter individual tests programmatically

For the JavaScript mutation testing framework Stryker we to be able to filter out individual tests based on its index in the entire run. The it.only won't work in our case, we need to do it programmatically. Is this possible? If not, is this something you would want to support? If you point me in the right direction, i can create a PR for this.
 It works by overriding the AddTest method:
var mocha = require('mocha');
var current = 0;
var realAddTest = mocha.Suite.prototype.addTest;
mocha.Suite.prototype.addTest = function () {
    if (filteredTestIds.indexOf(current) > -1) {
        realAddTest.apply(this, arguments);
    }
    current++;
};

However this only works for the server-side version of Mocha. Also, I'm overriding the addTest method, which is a kind of private interface. I would much rather have a supported way of filtering files, like Jasmine's specFilter
If your interested in our use case:
We measure the ability of your unit tests to identify bugs, or mutants. We do this by automatically inserting mutants in your source code, then rerunning your tests for each mutant. To speed things up, we first measure the code coverage per test. Once we know that, we know exactly which tests to run for each mutant. In order for this to work, we need a way to hookup into the test framework. For the code coverage we need a beforeEach and afterEach hook. Mocha got us covered here. However, we still need a way to exactly point out which tests we want to run.

Would the grep option be sufficient? https://mochajs.org/#g---grep-pattern (This should also be available in the browser, or in programmatic usage, as a function on the mocha object, if I recall correctly.)
I'm not sure if it applies to this specific use case -- or whether something with a direct reference to the tests would work just as well as an index for your project -- but in the general case, I would worry that index-based behavior would be brittle due to the index of any given test changing every other time you add tests to the project or even if Mocha fails to look up files in the same order every time. Despite that issue, I'd expect people would try to use it and, when it causes problems for them, not all of them would recognise that it can't reliably do what they want it to do in the first place. So I'd actually be pretty wary of adding an official public API to do things based on index (though perhaps programmatically based on a direct reference to a specific test would be another matter).

@ScottFreeCode thanks for your response.
The grep option does not seem sufficient to me. As far as I can see, you can only use one grep statement at a time. Maybe you could theoretically combine multiple test names, but that does not seem elegant. Also, a test name might not be unique.
Index-based running of the test is actually an implementation detail of our framework, which should indeed not be in the public api. What i would like is a way to filter specific tests at runtime based on a  simple function.
The API could be something like this:
function myTestFilter(test){
   return test.title === 'my scoped test';
}
const mocha = new Mocha({ testFilter: myTestFilter });

@nicojs Tried this.only()?

@boneskull i don't think what will work for us. We don't want to change the tests, as we rerun the same suite multiple times while targeting different tests. It would work if it would be supported in a beforeEach. For example: this would be how to run only the even tests:
let index = 0;
beforeEach(function() {
  if(index % 2 === 0) {
    this.only();
  }
  index++;
});

Would you be open for this change?

@nicojs That behavior is supported.

@boneskull this doesn't seem to work.
See: https://github.com/nicojs/mochajs-filter-tests-programmatically
git clone git@github.com:nicojs/mochajs-filter-tests-programmatically.git
cd mochajs-filter-tests-programmatically
npm i
npm test

  1)  "before each" hook for "should return -1 when the value is not present":
     TypeError: this.only is not a function
      at Context.<anonymous> (test/myTests.js:4:10)

ahh sorry, confused myself. No, it's not supported.
it.only can be called programmatically if your logic is within a suite. does that work?

No sorry, that won't do for us. We want to be able to filter the tests while not altering the test suites at all (hence: programmatically).
I think this feature should be available in some way. Would you be open for a PR regarding this? In what way/shape/form? My test filter example? Or rather make this.only() work from outside a test suite? I haven't looked too much into the code, so i don't know what would be the easiest.

I would not want to add this.only due to the numerous headaches around it and its ilk. not only is the implementation nontrivial, so is the specification.
I would be much more interested in supporting a callback within the grep functionality. Especially if we can do it in a way that doesn't pollute the global namespace. Any ideas?

Maybe something like this?
function myTestFilter(test){
   return test.title === 'my scoped test';
}
var mocha = new Mocha({
    grep: myTestFilter
});

I mean this:
describe('something', function () {
  const test = someConditional ? it : it.only;

  test('my test that may or may not be the only one running', function () {
    //
  });
});

I can't get behind supporting this.only() because:

we need better coverage to support more features
I haven't seen evidence of a wider need for this feature
there's a workaround, albeit a gross one
it makes assumptions about how many tests are running at any given time, which would annihilate anybody's far-off dreams about parallel test execution
the "grep" callback is likely a better solution

For the forseeable future, determining whether a test runs exclusively must be determined prior to the first Runnable (hooks and tests) execution.

Regarding "grep":
The given API only works for the limited set of users which programmatically invoke Mocha.  For 99% of Node.js users, there is no Mocha global; initialization is done by the CLI.  By the time you're in a test file, the train already left the station.
I've seen other libraries support .js config files (which I'd love to see in Mocha, eventually) where you can do this sort of thing.  This is probably the best way.  However (and this opens a can of worms)...  what if we exposed a static configuration function in the mocha module?
// mocha.conf.js
// tests invoked via:
// $ mocha --require mocha.conf.js test/
require('mocha').setup({
  grep(runnable) {
    return /foo/.test(runnable.title);
  }
});

bin/_mocha instantiates a new Mocha instance pretty early, but I'm almost certain it doesn't need to (untested).  I believe we could process --require'd modules before calling new Mocha(), and use the options supplied in the setup() call.
This would give Node.js users an easy way to do complex configuration in Mocha with very little implementation effort.  It also has parallels to browser setup.  @ScottFreeCode, how does that sound?  :smile:

actually I think it's as easy as creating the function.  the runner isn't configured until later on, even if the object is instantiated.

@boneskull I'm not sure i follow you exactly. I've taken a look in the runner and it seems like we could support a callback function in the grepTotal method. Is this what you mean with

actually I think it's as easy as creating the function. the runner isn't configured until later on, even if the object is instantiated.

?
This would not be supported at first when using the mocha cli, correct? But that shouldn't be too much of an issue. If you would later want to support a mocha config file (mocha.conf.js), wouldn't you also add that to the constructor options of Mocha as well (new Mocha({ configFile: 'mocha.conf.js' }))? The mocha CLI would than just supply that tot the mocha constructor and the grep callback could be supported in the config file. This way of reading the config file is also done in karma and stryker.

there's a workaround, albeit a gross one

You mean my angy duck punching effort of changing the addTest method? That only works for nodejs mocha tests, not when combining it with karma and running in the browser.

@nicojs no, what I'm concerned about is running with the CLI mainly.  it's trivial to use this sort of feature programmatically--there's just currently no reasonable way to run mocha on the command line and hand it a callback to "grep". see bin/_mocha.
karma-mocha allows you to specify options to Mocha; if we supported a function for grep then you could add it via Karma config's client property.

karma-mocha allows you to specify options to Mocha; if we supported a function for grep then you could add it via Karma config's client property.

No it won't. Client options get serialized using JSON.stringify as you can see on lib/middleware/karma.js line 207. A function doesn't survive this serialization process.
There is an other issue. With Stryker we choose to let filtering of tests be conceptually something that belongs to the testFramework and not the testRunner. The creating of the mocha object is done by the testRunner, while filtering should be done by files we load into the test runner later. An other solution would be most welcome for us.


Remove comment about DotNet-Blob-Feed from common-variables.yml

Makes it easier to grep for remaining usages in the org.
Microsoft Reviewers: Open in CodeFlow

@mitchdenny I don't have permissions to merge in this repo so please merge if possible :)

/azp run


Are Tactician plugins compatible with this?

Such as logging? Thanks!

Hello there, Yes it should be compatible since they are just middleware.


1.1 Adapt the original repo to use the new repo as a package

Also adapt the docker image so that it loads in repository from github as a package!
If everything works, including

make all => documents generated
docker container starts and make all also works in docker container
then we can start deleting the tests and functions from the old repository

https://github.com/miniatureseal/dsci-310-group-10-GCC/pull/191

remember to modify docker container


Xamarin Android App - Plugin.BLE.Abstractions.Exceptions.CharacteristicReadException: Gatt write characteristic FAILED

I Need to develop an app to communicate with a sensor-based hardware component.
I've tried the POC project using the Plugin.Ble and Implemented basic project requirements and Tested the Application in both android and iOS
In the iOS App, can able to send and receive data. But the Android app throws the exception while sending the data.
As per the document, I've sent the data on the MainThread. But it throws the same exception.
Steps to reproduce

Scan for available BT devices
Connect to the device
GetServiceAsync for a specific characteristic
4 . Assign event handler for ValueUpdated event for that characteristic
If characteristic CanUpdate is true, StartUpdatesAsync
Attempt to write data to that characteristic using WriteAsync

Expected behavior
Data is successfully written to the characteristic. In this case, this is the method of transparent data communication between the app and the BT device.
Actual behavior
can't able to send data to android devices. But it is working fine in iOS App
Crashlog
Plugin.BLE.Abstractions.Exceptions.CharacteristicReadException: Gatt write characteristic FAILED.
at Plugin.BLE.Android.Characteristic.InternalWrite (System.Byte[] data) [0x0004a] in E:\Projects\xamarin-bluetooth-le\Source\Plugin.BLE.Android\Characteristic.cs:110
at Plugin.BLE.Android.Characteristic+<>c__DisplayClass19_0.b__0 () [0x00000] in E:\Projects\xamarin-bluetooth-le\Source\Plugin.BLE.Android\Characteristic.cs:81
at Plugin.BLE.Abstractions.Utils.TaskBuilder.FromEvent[TReturn,TEventHandler,TRejectHandler] (System.Action execute, System.Func3[T1,T2,TResult] getCompleteHandler, System.Action1[T] subscribeComplete, System.Action1[T] unsubscribeComplete, System.Func2[T,TResult] getRejectHandler, System.Action1[T] subscribeReject, System.Action1[T] unsubscribeReject, System.Threading.CancellationToken token) [0x000b3] in E:\Projects\xamarin-bluetooth-le\Source\Plugin.BLE.Abstractions\Utils\TaskBuilder.cs:48
at Plugin.BLE.Android.Characteristic.WriteNativeAsync (System.Byte[] data, Plugin.BLE.Abstractions.CharacteristicWriteType writeType) [0x000b2] in E:\Projects\xamarin-bluetooth-le\Source\Plugin.BLE.Android\Characteristic.cs:80
at Plugin.BLE.Abstractions.CharacteristicBase.WriteAsync (System.Byte[] data, System.Threading.CancellationToken cancellationToken) [0x00061] in E:\Projects\xamarin-bluetooth-le\Source\Plugin.BLE.Abstractions\CharacteristicBase.cs:92
at XamBlePluginPOC.BluetoothCommunicationPage.SendCommandButton_Clicked (System.Object sender, System.EventArgs e) [0x00174] in D:\Xamarin_Sample_Projects\XamBlePluginPOC\BluetoothCommunicationPage.xaml.cs:133
Configuration
Version of the Plugin: 2.1.3
Platform: Android ( Tested in 9 ,10 ,11 and 12)
Device: Redmi Note 5 Pro, Samsung Galaxy M52

Hi @ManikandanK-AMI,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

Source Code :
`using Plugin.BLE.Abstractions.Contracts;
using System;
using System.Diagnostics;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using XamarinEssentials = Xamarin.Essentials;
namespace XamBlePluginPOC
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class BluetoothDataPage : ContentPage
{
private IDevice _ConnectedDevice;
    private IService _Service;

	private ICharacteristic sendCharacteristic;
    private ICharacteristic receiveCharacteristic;

    public BluetoothDataPage(IDevice connectedDevice)
    {
        InitializeComponent();
        _ConnectedDevice = connectedDevice;
        InitButton.IsEnabled = !(ScanButton.IsEnabled = false);
    }

    private async void InitalizeCommandButton_Clicked(object sender, EventArgs e)
    {
        try
        {

            _Service = await _ConnectedDevice.GetServiceAsync(AppDefault.ServiceId);

            if (_Service != null)
            {

               sendCharacteristic = await _Service.GetCharacteristicAsync(AppDefault.SendId);

                receiveCharacteristic = await _Service.GetCharacteristicAsync(AppDefault.ReceiveId);
                if (receiveCharacteristic != null)
                {
                    var descriptors = await receiveCharacteristic.GetDescriptorsAsync();

                    XamarinEssentials.MainThread.BeginInvokeOnMainThread(async () =>
                    {
                        receiveCharacteristic.ValueUpdated += async (o, args) =>
                        {
                            var receivedBytes = args.Characteristic.Value;

                            Output.Text += Encoding.UTF8.GetString(receivedBytes, 0, receivedBytes.Length) + Environment.NewLine;
                        };
                    });

                    if (XamarinEssentials.MainThread.IsMainThread)
                    {
                        await receiveCharacteristic.StartUpdatesAsync();
                    }
                    else
                    {
                        XamarinEssentials.MainThread.BeginInvokeOnMainThread(async () =>
                        {
                            await receiveCharacteristic.StartUpdatesAsync();
                        });
                    }
                    InitButton.IsEnabled = !(ScanButton.IsEnabled = true);

                }
            }
            else
            {

				await DisplayAlert("Alert","Service not Available","Okay");
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"{ex}");
        }
    }

    private async void SendCommandButton_Clicked(object sender, EventArgs e)
    {
        try
        {

            string protocol = "$0F1066 0x20";
            var bytes = Encoding.ASCII.GetBytes($"{protocol}\r\n");

            if (sendCharacteristic != null)
            {

                if (XamarinEssentials.MainThread.IsMainThread)
                {

                    var result = await sendCharacteristic.WriteAsync(bytes);
                }
                else
                {
                    XamarinEssentials.MainThread.BeginInvokeOnMainThread(async () =>
                    {
                        var result = await sendCharacteristic.WriteAsync(bytes);
                    });
                }
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"{ex}");

        }

    }

}

}`

Hello, I think those errors mostly occur when read and write operations are being made on the same time.
I reworked my client so each read and write locks everything, so every other read/write has to wait for the previous one to finish.
If something happens currently it's only Gatt error 133, and this kind of errors are gone.
(ps I locked pretty much every operation with this plugin to be sure)


Information on Backing up database is out of date and no longer works

After reading this documentation page, I tried 2 of the ways to backup my database, using SQL Management Studio v19:

Right click on database | Tools | "Back up..." menu  (the "Back up..." menu item doesn't exist)
Running the Transact SQL code (the code issues the error:
Msg 40510, Level 16, State 1, Line 3
Statement 'BACKUP DATABASE' is not supported in this version of SQL Server.

I am having trouble finding the updated info for v19 searching the web, but I figured that official Microsoft docs that were updated 3 days ago, would have the correct information.  But, as you can see, it did not.
Please update this ASAP for users like me trying to backup their Azure hosted SQL database.  Thanks.

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

ID: c7044c28-1682-15db-6add-77d185262f3c
Version Independent ID: e42f8fe5-da01-d793-a799-d7102bea5eec
Content: Create a Full Database Backup - SQL Server
Content Source: docs/relational-databases/backup-restore/create-a-full-database-backup-sql-server.md
Service: sql
Sub-service: backup-restore
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

Hi @rfernand2 , thanks so much for contacting Microsoft! My apologies for the confusion caused by the documentation. At the top of articles within the SQL Server documentation set, there is typically an Applies to: that defines the products the article is applicable to.
The article in question is applicable to SQL Server and not Azure SQL Database, you can see that in the screenshot here:

Articles applicable to Azure SQL Database will list Azure SQL Database in this applies to section. More information about the Applies to can be found in the navigation tips.
Automated backups has more information about backups with Azure SQL Database.
I hope that helps! I'll go ahead and close out this Git Issue but please feel free to comment should you need anything further.
Thanks again for reaching out and I hope you have a wonderful rest of your day!
Masha from the SQL Docs team
#please-close
#assign:MashaMSFT

@rfernand2 , I forgot to add :) The BACKUP command isn't supported on Azure SQL Database.

You can find more information in the feature comparison article.
Thanks again!
Masha from the SQL Docs team


Improve toolbar appearance

This is to fix #404 by reducing the effects of archived CSS on the replay toolbar. It sets default styles for the elements of the wm-ipp toolbar <div>, so where not specifically defined in the toolbar inline styles, the archived page styles should be much less likely to interfere. z-index of the toolbar is increased near to the maximum, so elements of the archived page are less likely to end up on top of it.
The PR also moves the <link> elements defining css files from <body> into the <head> portion of the HTML, because that is where they are supposed to be.
Additionally minimize functionality is added to the Toolbar to help with viewing sites where a user might not want to close the toolbar, but the toolbar is covering navigation elements etc. The minimized status will be remembered in new tabs/windows via localStorage.
z-index issue before (no toolbar visible):

z-index issue after:

Before CSS normalization:

After CSS normalization:

Before CSS normalization:

After CSS normalization:

Full size toolbar:

Minimized toolbar (small OpenWayback logo at top right of screen):

Thanks for the review @obrienben !


[WIP] improved template syntax errors

Added file name, line number and failed token highlighting in error message
Old:
`endfor` was not found.

New:
TemplateName:1:0: error: `endfor` was not found.
{% for name in names %}{{ name }}
^~~~~~~~~~~~~~~~~~~~~~~

@kylef this is an attempt to solve #82 to provide better error messages. I've added some tests to demonstrate new error messages. Let me know if you like this approach and if I should proceed. I plan to use similar approach to filters errors and other things (though they will require some other changes along the way).

As an example I just mocked up how a HTML/Bugsnag reporter might look like for the errors. This might help demonstrate the need for multiple frames. In this case it would be possible to integrate the actual Swift frames too into the error leading up to the TemplateSyntaxError.

@kylef yeah, I think providing more context would be really nice, but I guess it can be done additionally to associating error to specific token that failed to be parsed or node that failed to be rendered. I think that's the main pain point currently - it's hard to see where error comes from. Then we can add up context information to cover more complicated cases like one you described.
Regarding error reporter - I'll try to play with this idea 👍

Something like this maybe:
protocol ErrorReporter: class { // concrete type to use to be set in Environment
  init(context: Context) // some context type with template name and content just for now
  func report(error: TemplateSyntaxError, for token: Token) throws // we might need the same method for some other structures like filters or nodes, or we could use some common protocol for them
  func contextAwareError(context: Context) -> TemplateSyntaxError?
}

class SimpleErrorReporter: ErrorReporter {

  func report(error: TemplateSyntaxError, for token: Token) throws {
    throw error.contextAwareError(context: context, token: token) ?? error
  }

  func contextAwareError(context: Context) -> TemplateSyntaxError? {
    ...
  }
}

@kylef I've made more changes and now I think it looks more into direction of what you described in your previous comments.
This still does not cover errors that occur during rendering (only parsing is covered for now), and I'd like your input about stack trace output for implemented console error reporter.
Let me know what you think 😀

@kylef will be be able to look at this again?

@kylef I think this is ready now. I've also implemented capturing frames, i.e. for error from extended template reporter will print error like this:
invalid-base.html:2:24: error: Unknown filter 'unknown'
{% block body %}Body {{ target|unknown }} {% endblock %}
                        ^~~~~~~~~~~~~~

invalid-child-super.html:1:0: error: Unknown filter 'unknown'
{% extends "invalid-base.html" %}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm closing this as I accidentally removed my fork of the repo from which I created a pr, so now it does not allow to update it 😓