Adding Nexmo Verify to Providers

Nexmo offers both lower level SMS/Voice APIs and a high level 2FA API.

No need to include the No entries--can you trim those, please?

@smholloway pulled them out.

Right on. Looks good! After another approval we will merge.

We created providers section for users to see what's available.
If this thing is only sms/voice, is there a point to list it here?
It requires no additional effort from the user to set it up(ie no client to install/configure)...

If the list is limited to those that provide user facing systems, I understand. But with Authy, Telesign, and others listed that provide an API to add 2FA to applications, I thought this would fit.

totally agree with @mxxcon. Closing the PR

I think it's within the scope of providers. Nexmo offers 2FA as a service.
To me providers page is mostly for implementers. The thought is something like, "I want to implement 2FA--let's see what's available! Ah, this one has voice and SMS while this one has an app. I like the idea of an app, so I'll explore this more." As a secondary benefit, users can review the page to see what is available.

That what I thought it was (a page helping those non-2FA enabled sites / services find a way to enable it). But obviously, I'm not a curator of the list so could only glean that from looking at the list (while something like Clef is very user facing, something like Authy is very developer / integrator facing).
Either way, the data is here if it's found useful.

Then perhaps we should clarify that.. @jdavis?

FWIW, I agree with @smholloway.

I'm a little confused on what Nexmo does.
So it verifies phone numbers as well as functionality to send SMS messages? Where does the 2FA come into play? Does that mean the site/app is supposed to generate the OTP, send it out through Nexmo, and then do the verification themselves?

@jdavis The verify API can be used by a service to implement 2FA (just like other 2FA providers). Nexmo also offers APIs for sending SMS messages or making phone calls.
The site/app does not generate an OTP and is not responsible for validating that the user has the correct OTP.
Like other 2FA APIs, the first call to the API initiates the process (Nexmo generates a OTP, then delivers it by SMS or Voice depending on the number type, falling back to another channel if needed), and the second call is made to the API with the user provided OTP (Nexmo confirms if the code is correct in the response).

Right. It can be used to implement 2FA, but unless I'm missing something, we don't have any other providers on the /providers/ page that don't do the 2FA for you (generating OTP, sending the messages, actually being a 2FA solution).
Putting a service on that page that makes it easier to send SMS messages isn't a 2FA provider to me.

@jdavis Maybe I'm missing something you're saying, but Nexmo does do the OTP generation and confirms the user provided the correct code. It's not just sending an SMS (though there's another API that lets you just do that).

@tjlytle Ah, okay. Do you have better documentation? According to this, I'd expect the use case to be:

User comes to the website and enters in account info.
They sign up for SMS notifications.
You confirm the phone number using Nexmo Verify (because the tagline is: "Verify any number, hassle-free").

Where does it mention the 2FA/OTP for when you aren't needing to verify a phone number?

@jdavis  We've found that the 'verify' process is heavily used both in a signup flow and for adding 2FA to logins, so we're not limited to a single use case (effectively they do the same thing prove you have something right now).
Here are the docs, more generic than the product page: https://docs.nexmo.com/index.php/verify
I can update the URL to that if it's better.

@tjlytle No, I think the link you have now is better. But you really should look into improving the main landing page if you are hoping to capture more users of the auth verification of the product. It isn't very clear at all.
If anyone else has objections, feel free to mention them. If not, add the looks-good label and it can be merged.

@jdavis There's also this page, but doesn't really say anymore about 2FA specifically. Great point, I'll pass it on.


deps(package.json): update engine suggestion

Updating package.json and .nvmrc to reflect our previous move to Node 18
Changes

update node version of engine in package.json
update nvmrc file to suggest v18

Closed in favor of: https://github.com/cfpb/sbl-frontend/pull/963


Add "SecurityContextConstraints" to kind_sorter.

closes #8439

What this PR does / why we need it:
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Closing as there is a larger discussion occurring in #8439 that must be resolved before reviewing any PRs. Thanks.


Getting exit code 13 as an error while running official dependency scanner on gitlab pipeline.

Getting exit code 13 as an error while running official dependency scanner on gitlab pipeline.
$ /usr/share/dependency-check/bin/dependency-check.sh --nvdApiKey "redacted" --project . --out . --format "HTML" --scan .
[INFO] Checking for updates
[INFO] NVD API has 236,774 records in this update
[INFO] Downloaded 10,000/236,774 (4%)
[INFO] Downloaded 20,000/236,774 (8%)
[INFO] Downloaded 30,000/236,774 (13%)
[INFO] Downloaded 40,000/236,774 (17%)
[INFO] Downloaded 50,000/236,774 (21%)
[INFO] Downloaded 60,000/236,774 (25%)
[INFO] Downloaded 70,000/236,774 (30%)
[INFO] Downloaded 80,000/236,774 (34%)
[INFO] Downloaded 90,000/236,774 (38%)
[INFO] Downloaded 100,000/236,774 (42%)
[INFO] Downloaded 110,000/236,774 (46%)
[INFO] Downloaded 120,000/236,774 (51%)
[INFO] Downloaded 130,000/236,774 (55%)
[INFO] Downloaded 140,000/236,774 (59%)
[INFO] Downloaded 150,000/236,774 (63%)
[INFO] Downloaded 160,000/236,774 (68%)
[INFO] Downloaded 170,000/236,774 (72%)
[INFO] Downloaded 180,000/236,774 (76%)
[INFO] Downloaded 190,000/236,774 (80%)
[INFO] Downloaded 200,000/236,774 (84%)
[INFO] Downloaded 210,000/236,774 (89%)
[INFO] Downloaded 220,000/236,774 (93%)
[INFO] Downloaded 230,000/236,774 (97%)
[INFO] Downloaded 236,774/236,774 (100%)
[INFO] Completed processing batch 1/119 (1%) in 1,825ms
[INFO] Completed processing batch 2/119 (2%) in 2,064ms
[INFO] Completed processing batch 3/119 (3%) in 1,615ms
[INFO] Completed processing batch 4/119 (3%) in 1,980ms
[INFO] Completed processing batch 5/119 (4%) in 1,254ms
[INFO] Completed processing batch 6/119 (5%) in 1,028ms
[INFO] Completed processing batch 7/119 (6%) in 945ms
[INFO] Completed processing batch 8/119 (7%) in 1,083ms
[INFO] Completed processing batch 9/119 (8%) in 1,078ms
[INFO] Completed processing batch 10/119 (8%) in 908ms
[INFO] Completed processing batch 11/119 (9%) in 815ms
[INFO] Completed processing batch 12/119 (10%) in 802ms
[INFO] Completed processing batch 13/119 (11%) in 853ms
[INFO] Completed processing batch 14/119 (12%) in 770ms
[INFO] Completed processing batch 15/119 (13%) in 1,584ms
[INFO] Completed processing batch 16/119 (13%) in 977ms
[INFO] Completed processing batch 17/119 (14%) in 1,222ms
[INFO] Completed processing batch 18/119 (15%) in 1,013ms
[INFO] Completed processing batch 19/119 (16%) in 1,169ms
[INFO] Completed processing batch 20/119 (17%) in 1,805ms
[INFO] Completed processing batch 21/119 (18%) in 1,239ms
[INFO] Completed processing batch 22/119 (18%) in 2,019ms
[INFO] Completed processing batch 23/119 (19%) in 1,603ms
[INFO] Completed processing batch 24/119 (20%) in 1,898ms
[INFO] Completed processing batch 25/119 (21%) in 1,219ms
[INFO] Completed processing batch 26/119 (22%) in 1,690ms
[INFO] Completed processing batch [27]poc/-/jobs/660347#L117)/119 (98%) in 1,874ms
[INFO] Completed processing batch [118](poc/-/jobs/660347#L119) (99%) in 491ms
[INFO] Completed processing batch 119/119 (100%) in 603ms
[INFO] Updating CISA Known Exploited Vulnerability list: https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
[ERROR] TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
[ERROR] org.owasp.dependencycheck.utils.DownloadFailedException: TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
org.owasp.dependencycheck.data.update.exception.UpdateException: org.owasp.dependencycheck.utils.DownloadFailedException: TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
	at org.owasp.dependencycheck.data.update.KnownExploitedDataSource.update(KnownExploitedDataSource.java:93)
	at org.owasp.dependencycheck.Engine.doUpdates(Engine.java:906)
	at org.owasp.dependencycheck.Engine.initializeAndUpdateDatabase(Engine.java:711)
	at org.owasp.dependencycheck.Engine.analyzeDependencies(Engine.java:637)
	at org.owasp.dependencycheck.App.runScan(App.java:262)
	at org.owasp.dependencycheck.App.run(App.java:194)
	at org.owasp.dependencycheck.App.main(App.java:89)
Caused by: org.owasp.dependencycheck.utils.DownloadFailedException: TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
	at org.owasp.dependencycheck.utils.HttpResourceConnection.obtainConnection(HttpResourceConnection.java:264)
	at org.owasp.dependencycheck.utils.HttpResourceConnection.fetch(HttpResourceConnection.java:163)
	at org.owasp.dependencycheck.data.update.KnownExploitedDataSource.update(KnownExploitedDataSource.java:80)
	... 6 common frames omitted
Caused by: java.net.SocketException: Connection reset
	at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:328)
	at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:355)
	at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:808)
	at java.base/java.net.Socket$SocketInputStream.read(Socket.java:976)
	at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:484)
	at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:478)
	at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1510)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:[142](https:///-/jobs/660347#L142)5)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
	at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:589)
	at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
	at org.owasp.dependencycheck.utils.HttpResourceConnection.obtainConnection(HttpResourceConnection.java:206)
	... 8 common frames omitted
[INFO] Begin database defrag
[INFO] End database defrag (6083 ms)
[WARN] Unable to update 1 or more Cached Web DataSource, using local data instead. Results may not include recent vulnerabilities.
[ERROR] Unable to continue dependency-check analysis.
[ERROR] One or more fatal errors occurred
[ERROR] org.owasp.dependencycheck.utils.DownloadFailedException: TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
[ERROR] No documents exist
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 13

Looking for help on fixing above issue.
is it related to EC ciphers? I tried to build container that support EC ciphers using bouncy castle which can be found surajkum4r/dep-check-poc but still it throw tls error although it is giving me scan result
$ /src/bin/dependency-check.sh --disableOssIndex true --nvdApiKey "" --project . --out . --format "HTML" --scan . --log ./log.txt
[INFO] Checking for updates
[INFO] Skipping the NVD API Update as it was completed within the last 240 minutes
[ERROR] TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
[WARN] Failed to update hosted suppressions file, results may contain false positives already resolved by the DependencyCheck project
org.owasp.dependencycheck.data.update.exception.UpdateException: Failed to update the hosted suppressions file
	at org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource.fetchHostedSuppressions(HostedSuppressionsDataSource.java:156)
	at org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource.update(HostedSuppressionsDataSource.java:87)
	at org.owasp.dependencycheck.Engine.doUpdates(Engine.java:906)
	at org.owasp.dependencycheck.Engine.initializeAndUpdateDatabase(Engine.java:711)
	at org.owasp.dependencycheck.Engine.analyzeDependencies(Engine.java:637)
	at org.owasp.dependencycheck.App.runScan(App.java:262)
	at org.owasp.dependencycheck.App.run(App.java:194)
	at org.owasp.dependencycheck.App.main(App.java:89)
Caused by: org.owasp.dependencycheck.utils.DownloadFailedException: Download failed, unable to copy 'https://jeremylong.github.io/DependencyCheck/suppressions/publishedSuppressions.xml' to '/src/data/publishedSuppressions.xml'; TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
	at org.owasp.dependencycheck.utils.Downloader.fetchFile(Downloader.java:152)
	at org.owasp.dependencycheck.utils.Downloader.fetchFile(Downloader.java:83)
	at org.owasp.dependencycheck.data.update.HostedSuppressionsDataSource.fetchHostedSuppressions(HostedSuppressionsDataSource.java:154)
	... 7 common frames omitted
Caused by: org.owasp.dependencycheck.utils.DownloadFailedException: TLS Connection Reset
Please see http://jeremylong.github.io/DependencyCheck/data/tlsfailure.html for more information regarding how to resolve the issue.
	at org.owasp.dependencycheck.utils.HttpResourceConnection.obtainConnection(HttpResourceConnection.java:264)
	at org.owasp.dependencycheck.utils.HttpResourceConnection.fetch(HttpResourceConnection.java:163)
	at org.owasp.dependencycheck.utils.Downloader.fetchFile(Downloader.java:138)
	... 9 common frames omitted
Caused by: javax.net.ssl.SSLException: Connection reset
	at sun.security.ssl.Alert.createSSLException(Alert.java:127)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:331)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:274)
	at sun.security.ssl.TransportContext.fatal(TransportContext.java:269)
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:138)
	at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1401)
	at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1[30]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:197)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:167)
	at org.owasp.dependencycheck.utils.HttpResourceConnection.obtainConnection(HttpResourceConnection.java:206)
	... 11 common frames omitted
	Suppressed: java.net.SocketException: Broken pipe (Write failed)
		at java.net.SocketOutputStream.socketWrite0(Native Method)
		at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
		at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
		at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
		at sun.security.ssl.TransportContext.fatal(TransportContext.java:[36](https:///658324#L36)2)
		... 21 common frames omitted
Caused by: java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:210)
	at java.net.SocketInputStream.read(SocketInputStream.java:1[41](
	at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:[46]
	at sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:1[65]
	at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
	... 18 common frames omitted
[INFO] Skipping Known Exploited Vulnerabilities update check since last check was within 24 hours.
[INFO] Check for updates complete (988 ms)
[INFO]
Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided is at the user's risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever arising out of or in connection with the use of this tool, the analysis performed, or the resulting report.
   About ODC: https://jeremylong.github.io/DependencyCheck/general/internals.html
   False Positives: https://jeremylong.github.io/DependencyCheck/general/suppression.html
? Sponsor: https://github.com/sponsors/jeremylong
[INFO] Analysis Started
[INFO] Finished File Name Analyzer (0 seconds)
[WARN] Analyzing `sca-tool-test/package-lock.json` - however, the node_modules directory does not exist. Please run `npm install` prior to running dependency-check
[INFO] Finished Node.js Package Analyzer (0 seconds)
[INFO] Finished Dependency Merging Analyzer (0 seconds)
[INFO] Finished Hint Analyzer (0 seconds)
[INFO] Finished Version Filter Analyzer (0 seconds)
[INFO] Created CPE Index (1 seconds)
[INFO] Finished CPE Analyzer (1 seconds)
[INFO] Finished False Positive Analyzer (0 seconds)
[INFO] Finished NVD CVE Analyzer (0 seconds)
[INFO] Finished Node Audit Analyzer (0 seconds)
[INFO] Finished RetireJS Analyzer (0 seconds)
[INFO] Finished Vulnerability Suppression Analyzer (0 seconds)
[INFO] Finished Known Exploited Vulnerability Analyzer (0 seconds)
[INFO] Finished Dependency Bundling Analyzer (0 seconds)
[INFO] Finished Unused Suppression Rule Analyzer (0 seconds)
[INFO] Analysis Complete (2 seconds)

@AppSecEr how did you solve it?


Fix issue #13 - BOOLEAN meta data lookup in system catalogs fails

LGTM.  I ran the test provided in #13 before and after the change and verified the fix works.

LGTM - I ran the test provided in #13 before and after the change and verified the fix works.

Thank you!


Switch latest back to vanilla Fedora kernel

Bazzite needs this more than we do and some kernel developers have advised me to just keep it all stock.
sched ext is coming in 6.12 anyway, let's go ahead and commit to ungated upstream kernel on latest. No change to stable/gts since those are on gated fedora kernels already.

Didn't we gain something from this kernel for Framework or Surface machines?

We will still have to carry those images for the additional packages and firmware. They would share the same kernel, but CI usage would still be the same.

good that it goes back as i had to switch to stable specifically and only because of the kernel becuase FSync Kernel broke my audio
something i already talked with kyle about


Added log forwarding collector

Testing if vCSA is sending logs to configured log hosts.

Additionally, please change Readme, it has more than one Collector now.

Looks pretty much like the collector in place already ;D.
Nice improvement would be, if you could introduce real python logging and get rid of prints.
Some minor remarks are in code.

Need to get this live first --> Audit gap.
But yes, Python logging would definitely be an improvement.


No "Run" button in the new UX Designer

Describe the Bug with repro steps
When in the designer, you can no longer run the workflow to test it. The run button is missing

What type of Logic App Is this happening in?
Consumption (Portal)
Are you using Preview Designer or GA Designer
Preview
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
No response
Screenshots or Videos

Browser
Edge or Chrome
Additional context
No response
AB#24320507

This will be added before GA

new designed is useless without Run button


Spatial Awareness meshes are likely not properly parented

Describe the bug
While working on a file observer, i noticed that observations were not properly parented. Investigate if this is also true for the windows mixed reality spatial mesh observer.

Fixed by #5128


No output generated at all

I'm not sure if I'm doing something wrong, but nothing is being generated at all. And the mkdocs command doesn't raise any errors either.
Here is the block that I use:
::: mkdocs-click
    :module: package.module.cli
    :command: click_command

And my mkdocs extensions list:
markdown_extensions:
  # Python Markdown
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - mkdocs-click
  - toc:
      permalink: true

  # Python Markdown Extensions
  - pymdownx.arithmatex:
      generic: true
  - pymdownx.betterem:
      smart_enable: all
  - pymdownx.caret
  - pymdownx.details
  - pymdownx.emoji:
      emoji_index: !!python/name:materialx.emoji.twemoji
      emoji_generator: !!python/name:materialx.emoji.to_svg
  - pymdownx.highlight
  - pymdownx.inlinehilite
  - pymdownx.keys
  - pymdownx.magiclink
  - pymdownx.mark
  - pymdownx.smartsymbols
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true
  - pymdownx.tilde

I was also facing a similar problem but came across this: https://github.com/DataDog/mkdocs-click/issues/50. Adding two spaces at the end of the block worked for me.

Please check if this is duplicate of #50, otherwise reopen


chore(*): support NodeJS v12. add license & security policy.

update links
remove link to empty design docs folder
update copyright to 2021
fix typos
fix warnings about missing package.json fields
add npm script for easily building the project w/o running e2e tests

yarn build:dev

update dependencies

from: 31 vulnerabilities found - Severity: 10 Low | 5 Moderate | 16 High
to: 21 vulnerabilities found - Severity: 7 Low | 4 Moderate | 10 High

We should probably go to NodeJS LTS v14 to align with other Angular repos, but I wanted to take it one step/lts at a time.


Re-implement beeper feedback

The beeper doesn't beep any more when you press buttons or do things.
I think the behaviour before was:

Beep on any button press.
Beep on "system" activity like saving or low voltage.
Beep on low RSSI.

We can make use of the button hooks to beep on button press, but perhaps it should only beep when it actually does something?

On the LaForge we beep when rx modules switch and button presses.

beep on rx switching,  low rssi and voltage alarms would be good. personally not bothered about button press (although would be nice) as my diy hardware has the 3 tactile switches which click quite loud when pressed. Just my 2 cents 😉. keep up the great work guy's.


Not Working In Eclipse Oxygen

I know it was just released, but just so people are aware, this does not work for eclipse oxygen. It has validation errors for everything that you were doing with lombok annotations.

Since try eclipse oxygen, project do not unwell. And work with:
OS: Win7 X64 ,
Eclipse: eclipse-jee-oxygen-R-win32-x86_64,
Lombok: lombok-1.16.10.

For me, after installing Lombok on Eclipse Oxygen, it doesn't open anymore.
I've tried several versions of Lombok.

My Eclipse install seems to be working just fine. Setup:
Eclipse Java EE IDE for Web Developers.
...
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800
...
Lombok v1.16.16 "Dancing Elephant" is installed. https://projectlombok.org/

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.2 LTS
Release:	16.04
Codename:	xenial

Mine is not working, and my setup is:

Eclipse Java EE IDE for Web Developers.
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800
Using Windows 7 Pro 64 bit

My eclipse is opening, it just has validation errors saying that getters and setters do not exist

Hmm. It just works on my machine:

Can you try lombok version 1.16.16?

I uninstalled and re installed and now it is showing Lombok is installed.

Do a Project -> Clean and it picks it up

I cannot get it to work, Oxygen and Lombok 1.16. returns exit = 1 on eclipse launch. Tried re-installing everything.

Had the same problem.
My solution: returned from java version 8u144 to 8u141.

I just reinstalled my Ubuntu machine, and couldn't get it to work.
It was caused by creating and using a launcher (a .desktop file) before Lombok was installed by using 'lock to launcher'. The Exec property in the file will end up missing the -javaagent argument.
In this case the solution was simple: unlock from laucher, restart Eclipse, and then lock to launcher again...

I have Eclipse:
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800
and when I install Lombok 1.16.18 it won't open at all.
On Windows 10.

I installed lombok on Eclipse Oxygen and it had issues.
In my case Lombok was installed and the eclipse.ini file had this entry
-javaagent:lombok.jar
I had to edit it to give the correct path and it worked.

Eclipse version: Oxygen
OS: Ubuntu 14.04
Java version: 1.8.0_144
If eclipse.desktop exist, remove it.

java -jar /path/to/lombok.jar
cd /path/to/eclipse & ./eclipse
lock Eclipse to the Launcher

My installation quit working properly after installing SpringToolSuite. Eclipse now flags any instance of log in a class annotated with @Slf4j, and also flags any class using getter/setters of @Data objects.
Re-installing, upgrading from 1.16.18 to 1.16.20, cleaning projects .... nothing. Sometimes (!) doing a project clean "fixes" the issue, until I do a "Run as ... SpringBoot application" Then all the red flags show up again, and Eclipse says it can't run the project due to compilation problems. Running from gradle command line or just java -jar works fine.

I am use Eclipse Oxygen v3, and tried to install Lombock, but is not show description in About Eclipse, also down grade the version of java to 1.8.0_152, but no recongnize Lombock and send errors in project, tell me please what need to do.

Version: Oxygen.3a Release (4.7.3a)
Build id: 20180405-1200
Lombok v1.16.20 "Dancing Elephant" is installed.
lombok installed success, but lombok still cannot be resolved

Do a Project -> Clean and it picks it up

well done!

For me, after installing Lombok on Eclipse Oxygen, it doesn't open anymore.
I've tried several versions of Lombok.

Hi, Could you solve this problem?


InfluxDB2.0 Upgrade and In(-Flux) Language

Partly Copied from internal git.
InfluxQL does not allow Joins - only in a very limited pattern:
Multiple SELECT statements in a subquery

InfluxQL supports multiple nested subqueries per main query:

SELECT_clause FROM ( SELECT_clause FROM ( SELECT_statement ) [...] ) [...]
                     ------------------   ----------------
                         Subquery 1          Subquery 2

InfluxQL does not support multiple SELECT statements per subquery:

SELECT_clause FROM (SELECT_statement; SELECT_statement) [...]

The system returns a parsing error if a subquery includes multiple SELECT statements.

To allow more usefull joins it would be neccecary to use the build in FLUX-Language. This one is implemented since InfluxDB1.7.4.
In the wiki it is said, that it is possible to use InfluxQL and Flux on the same Database at once.
It might be good to consider, to upgrade to InfluxDB 2.0 meanwhile, since this does support both flux and InfluxQL, leaving us with a newer version while our old Code will still work with only minor edits.
Please check out this InfluxDB2.0 Release Roadmap
Flux would mostly affect grafana, the python code could stay like it is until we rework it to support FLUX-Language.
This would require a rework of the whole influx folder and be an other issue at this time.

possibly outdated information following:

This plugin allows to manage a influxdb-datasource as flux-source. You one database saved as both Flux and InfluxQL-Souce (individually).
Links:

Flux vs InfluxQL
Join data with flux

The upgrade to Influx 2.* is of high priority.
The non-enterprise version of InfluxDB 1.* did not receive security updates for a longer period.
An easier upgrade is possible using Mappings, see SPMon branch.
However, it might be more reasonable to switch to Flux, though this will require a rewrite of the whole Influx directory and associated queries.


wip: add test for valid markup before save

Wip
Problem
Users can add bad data (or even just be in the process of typing good data) and this causes the Gatsby dev server to throw errors and omit pages from the build.

Validate mdx before saving to disk to avoid build problems.

UPDATE: I've found a way to check if the form field will cause gatsby to throw errors. Not sure how to go about adding an error state to the form and disabling the save button

Next figure out how to set the error state on the form field if we are in an error state

For now I will just use
 {
      label: "Body",
      name: "rawMarkdownBody",
      component: "textarea",
      validate: function(value) {
        const wrapped = `<div>${value}</div>`
        try {
          transform(wrapped, {
            objectAssign: "Object.assign",
          })
        } catch (err) {
          return "🚨 Malformed MDX please fix before save"
        }
      },
    },

In the page component where I define my tina form fields. It's not ideal because I'm not setting the state of the form on't the field but it seems to work better than doing the check in the plugin at the moment. I'll have another crack asap but I think I need to look a little more into Final Form.

Why did you decide to close this @PaulBunker ?

I just thought it looked messy. I've not given up just struggling a little.


add CrisperWhisper model

Description
This PR adds the CrisperWhisper Model to the list of Whisper variants to be evaluated.
Model Information

Model Name: CrisperWhisper
Hugging Face Model Card: CrisperWhisper on Hugging Face
Repository: CrisperWhisper GitHub Repository
Paper: CrisperWhisper Paper on arXiv

Changes Made

Added the CrisperWhisper model to the list of Whisper variants in the leaderbaord.

Additional Notes
I am happy to make any necessary changes or updates if this is not the way to add it.

@sanchit-gandhi is this repo still maintained?


Sound does not work on Elemi

I've just installed Arch on Elemi (HP Chromebook 14a-nb0010ng) using Breath and I like the experience.
The only thing that I've found not working is the sound.
I'm attaching the dmesg from Chrome OS and from Arch and the alsa-info from Arch ( I didn't think to get it from Chrome OS).
It looks like a driver issue to me but I'm not that good in the Linux sound system and even less when it comes to the Chromebook one.
Let me know if you need any more info or testing.
alsa-info.txt
dmesg-arch.txt
dmesg-chromebook.txt

This is Tigerlake Chromebook so it theoretically should work fine. If you don't mind, does audio work on an Ubuntu USB created with Breath?

Unfortunately the result is exactly the same. I'm attaching the dmesg from Ubuntu.
The key part to me in both these Linux failures seems this:
[    8.336033] sof-audio-pci-intel-tgl 0000:00:1f.3: codec #2 probe error, ret: -2
[    8.336140] sof-audio-pci-intel-tgl 0000:00:1f.3: no hda codecs found!
dmesg-ubuntu.txt

Unfortunately the issue is still not fully resolved as far as I can tell.
Now this code probe error is gone but I only see input devices being created in dmesg for some reason.
I'm attaching the new dmesg. I didn't recreate the entire image as that seemed a bit too drastic. I just changed the file as per your fix for this and here's the result now
dmesg_new.txt
.

Recreating the USB is the only way it’ll work. It won’t get fixed out of thin air

I manually changed the file:
cat /etc/modprobe.d/alsa-breath.conf
blacklist snd_hda_intel
blacklist snd_soc_skl
softdep snd_sof_pci_intel_icl pre: snd_hda_codec_hdmi
softdep snd_sof_pci_intel_cnl pre: snd_hda_codec_hdmi
softdep snd_sof_pci_intel_apl pre: snd_hda_codec_hdmi
softdep snd_sof_pci_intel_tgl pre: snd_hda_codec_hdmi
softdep snd_sof_pci_intel_tng pre: snd_hda_codec_hdmi
It looks like this now and also removed the old one. This is why I expected it to work as from what I saw that is the only change made.
At least that's what I understood, not expecting it would just work.
Anyway I appreciate your efforts and the fix does work, it's just that it's not fully working as I said above. I still don't see anything but the dummy output in KMix.


Allowing for functions with one argument (constant value only)

Coverage remained the same at 99.497% when pulling cb881b34114e085d214321306da70bcd3926be0b on lyncodev:master into 297cff2f581716bcce7eb66ecc7fa570ddf8c86a on jtwig:master.


MySQL Connection is going away from Delayed Job and Delayed job is not restarting automatically

All,
In our production server we noticed that delayed job is getting stopped after certain time.  When we analyzed the issue We noticed the following error in our server:  Error while reserving job: Mysql2::Error::ConnectionError: MySQL server has gone away:
We noticed the above issue repeatedly in all of our servers. Do we have any solution or workaround for this issue?
Our Environment:

rails 5.2.3
delayed_job_active_record 4.1.3
Ruby 2.5.5

Please see the logs below:
I, [2019-11-01T05:36:02.610595 #228]  INFO -- : 2019-11-01T05:36:02+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: Mysql2::Error::ConnectionError: MySQL server has gone away: UPDATE delayed_jobs SET delayed_jobs.locked_at = '2019-11-01 05:36:02', delayed_jobs.locked_by = 'delayed_job host:f5b8fa0615e6 pid:228' WHERE ((run_at <= '2019-11-01 05:36:02.608564' AND (locked_at IS NULL OR locked_at < '2019-11-01 01:36:02.608583') OR locked_by = 'delayed_job host:f5b8fa0615e6 pid:228') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1
I, [2019-11-01T05:36:07.622080 #228]  INFO -- : 2019-11-01T05:36:07+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:12.631055 #228]  INFO -- : 2019-11-01T05:36:12+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:17.638905 #228]  INFO -- : 2019-11-01T05:36:17+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:22.649648 #228]  INFO -- : 2019-11-01T05:36:22+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:27.658382 #228]  INFO -- : 2019-11-01T05:36:27+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:32.666572 #228]  INFO -- : 2019-11-01T05:36:32+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:37.672296 #228]  INFO -- : 2019-11-01T05:36:37+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:42.683623 #228]  INFO -- : 2019-11-01T05:36:42+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
I, [2019-11-01T05:36:47.693297 #228]  INFO -- : 2019-11-01T05:36:47+0000: [Worker(delayed_job host:f5b8fa0615e6 pid:228)] Error while reserving job: MySQL client is not connected
F, [2019-11-01T05:36:47.694147 #228] FATAL -- : MySQL client is not connected
I, [2019-11-01T05:39:41.214553 #97]  INFO -- : [5fedea19-72b2-4b67-a0ec-09d34a5f1504] Started GET "/" for <IP_ADDRESS> at 2019-11-01 05:39:41
Thanks,
Rajaselvam

The most common issue is restarting mysql which kills all the connections or an unstable network connection to your database server. ActiveRecord does a relatively poor job of recovering from these connection issues.

Hi David (@albus522 ,
We are not disturbing the MySQL server as its running in another instance. When I check the status of MySQL its showing as running only and I couldn't see any evidence of restart over there, I believe its nothing related to ActiveRecorsd. I guess it could be of Delayed job daemons.
Thanks,
Rajaselvam. M

If you search MySQL server has gone away you will find it is a very common issue when using mysql. There are loads of reasons it can be triggered but I can say it isn't something DJ or daemons is specifically doing or not doing.

Also, DJ does not have any automatic restart feature and never has. You need to use an external process monitor such as monit, god, or one of the many others to detect the worker process has died and restart it.


fix mutable function default argument

One of the methods of emailtools.cbe.mixins.UserTokenEmailMixin had a mutable argument.  I removed it.

Test failures seem unrelated:
https://travis-ci.org/fusionbox/django-emailtools/jobs/52227124

I'll fix them.
On Wed, Feb 25, 2015, 11:53 PM Rocky Meza<EMAIL_ADDRESS>wrote:

Test failures seem unrelated:
https://travis-ci.org/fusionbox/django-emailtools/jobs/52227124
—
Reply to this email directly or view it on GitHub
https://github.com/fusionbox/django-emailtools/pull/6#issuecomment-76130913
.

This should fix the deprecation errors.

I updated the tox/.travis.yml config with the new style that I've been using to keep the two closer in sync with each other.  This eliminated the need for #10  as well.

Interesting.  in 9752fc3 I converted travis to run it's tests within tox.  On my local machine, this works just fine, but on travis, the importlib install fails.

Reverted the tox changes.  This should pass.


Adding resumability to ReactiveSocket

Inspiration and motivation
When ReactiveSocket is used between mobiles and servers on unreliable & slow networks,
the cost of reestablishing subscriptions becomes very relevant.  Firstly to simplify the task for application developers dealing with failures, detecting that a temporary network blip has occurred and then cleared, then reissue subscriptions and deal with inconsistency of state.
Secondly, even when implemented correctly, this traffic could be extremely chatty and make reactive socket infeasible in cases involving large number of (rarely) updated subscriptions. It may be the case that this resubscription activity dominates both network traffic and latency.
Ideally ReactiveSocket would handle mobile temporary disconnections (e.g. mobile phone in the tube, or switching wi-fi networks). One of the proposed approaches was to handle network blips inside of a ReactiveSocket connection without adding any special kind of a signal that “a device have reconnected and is trying to resume subscription bla, bla, bla”. The idea is to defer unsubscribe signals for subscriptions that have been implicitly terminated by a connection failure. For example:

Client subscribes to topic A@100 (“topic A at sequence number 100”), provides 5 flow control credits.
Server sends 2 messages  (A@100, A@101), which both reach client.
Server sends one more message (A@102), which doesn't make it to the client, the connection breaks.
ReactiveSocket swallows the failure. The application thinks everything is fine, but won't receive additional flow control tokens until the device reconnects and will receive unsubscribe event if the device fails to reconnect until a timeout fires/we run out of memory for buffering.
Server provides 2 more messages (A@103, A@104) to the ReactiveSocket to be sent out to the client, the flow control kicks in.
Client reconnects, asking for A@102, we ship all the buffered messages. If we happened to evict A@102 from the buffer, we would have to send unsubscribe signal to the application logic followed by subscribe to a topic A@102.

An approach where we hide failures and pretend that nothing happened for some time saves a portion of subscriptions churn and therefore a bit of resources. This might be true somewhat universally, as often applying and lifting back-pressure is cheaper than dropping a subscription and reestablishing it. This is especially important when a subscription from a mobile device is backed by a large tree of backend subscriptions.
It seems wise to allow application developers an optional mechanism to be aware of the current connection state.  The UI may want to show stale subscriptions as grey or use alternative communication mechanisms, think "Send as Text Message".

Strawman Design (credit @stupaq-fb)
Lack of sequence numbers in ReactiveSocket
ReactiveSocket Subscriptions, Streams and Channels  (I will refer to them collectively as “streams”) do not enforce application logic to provide or respect any sequence numbers when establishing a new subscription. The same limitation applies to the ReactiveStreams — one cannot expect every Producer to provide the ability of resuming a subscription from any provided sequence number. It means that without handling failures behind the scenes we cannot provide any protocol for resuming ReactiveSocket stateful requests (i.e. it must be implemented by application logic and leak into consecutive layers). Extending ReactiveStreams with a notion of sequence numbers is not a solution either, as ultimately our data stores and caching layers are unlikely to support efficient random seeks on a stream of updates.
Thoughts on granularity
Should we resume individual streams or entire connections? The granularity has a cost. No matter what resumption protocol one chooses, by information-theoretical arguments, one has to exchange amount of information that is at least linear in the number of independent streams to resume.
Moreover, without any resumption protocol, all streams that were opened on a single DuplexConnection belong to the same network failure domain. If the resumption protocol suddenly breaks this assumption, application logic would have to deal with “partial failures”, where a non-trivial subset of streams on a single DuplexConnection have failed. It is possible that developers will chose not to handle partial failures by reestablishing only those streams that could not be resumed. If an application logic simply tears down and recreates all streams that lived on the same DuplexConnection, it effectively jeopardises all of our efforts to provide bandwidth-efficient reconnections.
Both concerns are addressed by an approach which resumes sessions at the granularity of a DuplexConnection. In this approach, the resumption protocol exchanges amount of data that is linear in the number of DuplexConnections. Also, since DuplexConnection is resumed or not atomically (we'll relax this assumption a tad to reduce amount of data to buffer), application logic doesn't need to deal with “partial failures”.
Information-theoretical argument — WTF does that mean?!
Imagine we expose to the user an information that a connection failed and provide it with en interface for resuming each stream individually. That is a different approach from the one described above, where we resume all streams on a single connection or none of them.
Since we allow the user to resume arbitrary subset of the streams on a single connection, the protocol must exchange enough information to actually communicate which subset shall be resumed. Suppose we have N streams on a connection. There are 2^N possible subsets, which means we have to exchange no less than N bits of information to communicate which subset shall be resumed. In practice, we'll likely need to exchange stream identifiers and artificial sequence numbers, so the the amount of data that needs to be exchanged on reconnection would be around 4-8 bytes times N, which is still better than any sane application-level reconnection protocol, but much worse then connection-level one.
The protocol
We will describe the resumption protocol as an extension to ReactiveSocket protocol, although it technically operates at a lower layer than the latter one. By extending the protocol, instead of layering them, we avoid adding another layer of frames.
An important concept is a Frame Number, which is an abstract sequence number that allows resynchronising stream of frames leading in one direction, after the transport session has been broken. A Frame Number's lifetime spans multiple transport sessions, and together with the direction (Client → Server or the opposite) uniquely identifies a frame within one ReactiveSocket connection.
Frame Number of a frame is not exchanged as a part of it, but is assigned to each frame implicitly and in a consistent way by both sender and receiver. Frame Number of a frame sent in a particular direction on a given ReactiveSocket is equal to the number of frames that travelled in the direction on the socket across all transport sessions, that ever backed the socket. This definition is sound, as the underlying transport protocol guarantees in-order, exactly-once delivery of frames within one transport session.
Frames and error codes

An additional frame is needed: RESUME, which always refers to an entire connection (StreamID = 0) and carries a Frame Number.
An additional frame is needed: TRIM_CACHE, which always refers to an entire connection (StreamID = 0) and carries a Frame Number. The frame constitutes an optional feedback from a receiver of an unidirectional stream of frames that informs about a prefix of frames that has already been processed by the receiver, and even if the underlying transport connection breaks, will not be useful during the resumption procedure.
An additional error code is needed: RESUMPTION_ERROR, which may only be delivered by an ERROR frame referring to an entire connection (StreamID = 0). The error communicates that resumption of a ReactiveSocket could not be carried out and the ReactiveSocket will be closed on both ends.

Protocol operations
The extension does not affect connection establishment procedure, unless a connection is to be resumed. A Server determines whether a Client wishes to establish a new connection or resume an old one, based on the type of the first frame sent on the newly opened transport session. If the first frame is of type RESUME the resumption procedure, described below, shall be executed, otherwise the behaviour of the Server is governed by “Connection Establishment” section or ReactiveSocket specification.
During the normal protocol operation, each end of a ReactiveSocket caches a suffix of frames it has sent via the underlying transport protocol. It also remembers Frame Number of each cached, sent frame and the last processed, received frame. Upon receipt of a TRIM_CACHE frame, the recipient evicts entries from the cache of sent frames in such a way, that the cache does not contain any of the frames with Frame Numbers lower of equal to the one carried in the TRIM_CACHE frame.
Each end of a ReactiveSocket retains the cache beyond a failure of the underlying transport session. When reconnecting, the Client reestablishes the transport session, but instead of sending a SETUP frame as in the original connection establishment procedure, it sends RESUME frame with the Frame Number of that last processed, received frame. After sending the frame, the Client waits until receiving the next frame from the server.
The Server, matches a new transport session to the (see discussion below) ReactiveSocket instance. It received RESUME frame sent by the Client and based on the Frame Number X delivered in the frame performs one of the following actions.

If X is lower than the Frame Number of the oldest cached, sent frame, the Server sends back ERROR frame with code RESUMPTION_ERROR, closes the transport session and destroys entire state for this ReactiveSocket, including the cache of sent frames. In this case too many frames, more than was stored in the cache on the sender side, were lost during transport session failure, and it's impossible to resume ReactiveSocket connection invisibly.
Otherwise the Server sends RESUME frame to the Client with the Frame Number of the last processed, received frame. Right after (false-start-alike behaviour), the Server sends, in-order, all cached frames with Frame Number strictly greater than X. Afterwards, the Server continues normal operation as if no transport session failure happened. Cached frames with Frame Number less or equal to X can be evicted from the cache immediately.

The Client terminates the transport session and cleans up any state or cache associated with the ReactiveSocket connection upon receipt of an ERROR frame. However, if the Server successfully synchronised its outgoing stream and issued RESUME frame with Frame Number Y, the Client acts as follows (symmetrically to the Server's behaviour described above).

If Y is lower than the Frame Number of the oldest cached, sent frame, the Client sends back ERROR frame with code RESUMPTION_ERROR, closes the transport session and destroys entire state for this ReactiveSocket, including the cache of sent frames.
Otherwise the Client sends, in-order, all cached frames with Frame Number strictly greater than Y. Afterwards, the Client continues normal operation as if no transport session failure happened. Cached frames with Frame Number less or equal to Y can be evicted from the cache immediately.

It is easy to see that the sequences of frames sent by either end (and received by the opposite one) are the same no matter whether a transport session failed but the ReactiveSocket was successfully resumed or no transport session failure ever happened.
There is one caveat, though. Leasing, as defined by the ReactiveSocket specification, is only sound if the latency between both ends is bounded and their clocks are not drifting away. Fire-hosing a suffix of cached frames after receiving RESUME frame from the opposite end  might break lease contract. A refined protocol extension that works around this problem might on the other hand introduce a deadlock during the stream synchronisation step, as the first frame that cannot be resent due to lack of lease credits on the sender side would block resynchronisation procedure and therefore prevent any frames, including LEASE grants, from being issued.
To address the problem, we decided to reformulate lease contract in such a way that all lease expiry logic is inhibited for the whole duration of the reconnection and resumption procedure, starting from the failure of the original transport session up until the resumption procedure completes.
Implementation-dependent behaviour
The resumption protocol does not specify how the Server matches a new transport session to an existing ReactiveSocket, if the desire to resume connection is communicated by the Client that initiated the session. Actual implementation must take care of authenticating and verifying the transport session before allowing the resumption procedure to be carried out, otherwise a malicious client may steal session of another user.
For example, matching of a new transport session to an existing ReactiveSocket instance can be performed based on TLS SessionID, after successful resumption of a previously negotiated TLS session.
Potential optimisations
In order to reduce the amount of memory Client and Server require for frame caching, we can filter out frames from the cache. For example, no REQUEST_FNF frame needs to be cached after being handed over to the transport protocol for sending.
Suppose a sender does not retain REQUEST_FNF frames in the cache, but does count them when assigning Frame Numbers to the cached frames. When it receives a RESUME frame after transport session has been reestablished, it resends back appropriate suffix of cached, sent messages and reassigns Frame Numbers to them. While computing Frame Number for a particular resent frame, the sender skips any frames that were not resent (because they were evicted from the cache) and therefore were not observed by the receiver.
It's less easy to see that presented approach drops only frames that have no delivery guarantees, never drops, duplicates or reorders  other frames, and preserves consistency of Frame Numbers assignment between both ends. Therefore it's correct.
Compatibility with implementations unaware of the extension
TODO: client will ignore unknown frames, server will accept a connection that starts with a different frame than SETUP
Resource usage
TODO: actual data science
A primary form of trading bandwidth for memory consumption is a TRIM_CACHE message, which may be issued arbitrary number of times (including none) in either direction.
TODO: How we will establish the right tuning values for reconnection (buffer size, disconnect duration, request-N values) based on optimising real world experience.

A couple/few points.

The identification of session state is mentioned as being implementation dependent, but also being sensitive information. While this is quite sensitive potentially, the RS protocol must provide identification at its level for interoperability. So, this can not be implementation dependent. A TLS SessionID is not sufficient for this purpose. But may be part of a solution for it when TLS is used. Generation of a unique token used in SETUP/RESUME is probably a simple method that can be made to work.
I agree on the resumption of individual streams requiring a minimum amount of state to be exchanged and therefore being quite cumbersome. A solution for resuming behavior should not scale with the number of streams if it can be avoided.
RS as a protocol doesn't specify DuplexConnection. Therefore, for resumption behavior, formalizing this for interoperability must be done outside of RS or inside it. Outside of RS is messy and would create a lot of coupling. Inside RS means it is in band. That seems much better to me.
The ideas above are good places to start, but do not encapsulate all requirements. For example, REQUEST_CHANNEL resumption. And what about timing where a stream is requested by a client, but the server is disconnected before the request arrives at the server? Is it lost? How would a client know? These can be defined without too much hassle, though.

For clarity, I think there should be Goals for resumption added first. I would propose the following set:

Resumption is optional behavior for implementations. But highly suggested. Clients and Servers should assume NO resumption.
Resumption is desired to be fast and require a minimum of state to be exchanged.
Resumption is designed for loss of connectivity and assumes client and server state is maintained across connectivity loss. I.e. there is no assumption of loss of state by either end. This is very important as without it, all the requirements of "guaranteed messaging" come into play.
Resumption assumes duplicate data delivery will occur and will be filtered by client/server before being handed to applications.

Thoughts on these goals?

Given the initial thoughts, here are some of the key points that need to be nailed down.

Identification of a client for resumption purposes. We should assume a client knows the server it is connecting to and the identification is really for the server to know which client.
Identification of a position within the resumed stream(s). For de-duplication, each piece of "data" (RESPONSE or REQUEST_CHANNEL) needs to be identifiable.
For flow control, identification of a request within the resumed stream(s). REQUEST_N is ambiguous in terms of location. This is normally not a problem, but for resumption, it is probably necessary to be explicit to avoid overflow or underflow of buffering.
REQUEST_N with position information above may be a good way to explicitly garbage collect stream data from buffering on the server side (and client side for REQUEST_CHANNEL).

WRT #83 The identification of a position within a stream can be achieved via the position within the connection. So, adding a byte-level connection-level flow control mechanic would allow for the possibility of identifying position.

Meeting yesterday occurred on this topic involving @tmontgomery, @lehecka, @stupaq-fb, @vjn, and myself.
Context is that there have been months of discussions, documents, proposals, etc amongst various different people around two major approaches:

single connection-level frame buffer/log that can deliver all buffered frames after resumption
per-stream tracking that can mark a stream as either "dirty" or "clean" and let the application decide how to deal with it

The principles behind this discussion have been:

different use cases benefit from different approaches
memory usage is different for each strategy and different use cases
the more we've talked, the clearer it has become there is always an edge case
many comparisons with MQTT/AMQP QoS levels
would our solution work with a distributed reliable broker that "guarantees" message delivery?

Where we landed is as follows:

the protocol should do as little as possible, just provide the communication and tracking mechanisms
the implementation should be able to choose different strategies
the APIs should expose signals/callbacks into the request/response handlers so that the application can make the decisions of what to do

In practice this means:

the ReactiveSocket protocol will add frames to support resume, resume success, and resume fail
the ReactiveSocket protocol will add support for tracking what has been sent/received to allow determining position on resumption
the ReactiveSocket protocol will NOT assume any particular strategy
resumption will be optional behavior enabled through the SETUP frame
the ReactiveSocket implementations will be free to choose how they achieve resumption and are free to do this via the strategy pattern
the ReactiveSocket APIs will need to expose to streams and channels callbacks such as:

disconnected
resumed(clean|dirty)

Expected implementation for reactivesocket-cpp looks something like:

core implementation would support basic resumption if frames are not out of sync
over time the core implementation could add other strategies such as log based or stream based tracking
internally Facebook will experiment with strategy implementations
the request/response handlers will have new callbacks added to them

Examples of how each strategy could work:

Sequence Only (no logs at all)

Resumption would only work if no frames were outstanding when the disconnect/reconnect occurred. The sequence numbers would have to match exactly. This would work fine when most connections are idle most of the time.
On resumption all streams would receive resume(dirty) and then the application can choose to just continue, or regenerate a value and resend.

Frame Log

A log of all frames would be retained that have not been acked (via keepalive). On disconnect all streams would receive a disconnect event. On resumption all frames would be sent. Each stream would receive a resume(clean).

Stream Sequences

A data structure would track which streams have frames outstanding. On disconnect all streams would receive a disconnect event. On resumption, the connection frame sequence numbers would be compared with the data structure tracking each stream. The streams would be iterated over and receive either resume(clean) or resume(dirty) and behave accordingly.
Iteraction models:

fire-and-forget: no resumption support, messages are lost
request-response: resumption support

responder side logic only

request-stream: resumption support

responder side logic only

request-channel: resumption support

both response and requester would need to perform resumption logic

Closing this as resumability was added via #135


Rename repo to require-conditional-status-checks

Goal https://github.com/blend/require-conditional-status-check is based on the "official" terms. Of the 4 words in the repo name, "conditional" is the only terminology that isn't explicitly one used by GitHub:

Concrete tasks to carry out:

Rename repo on GitHub
Update go.mod and package imports for new name
Generate new screenshots of workflows with new action name (after release? maybe cheat and use a branch with same name as release tag)
Cut a release post-rename
Make sure the GitHub Actions marketplace reflects the change

Also worth doing (but not part of rename):

Rename main to release branch
Make release branch the default (so it shows up in GitHub Actions marketplace)
Put the "real" README.md in the release branch too (this is more manual, but worth it since that README shows up in the marketplace)

Much better https://github.com/marketplace/actions/require-conditional-status-checks


It is possible to set a fix number of digits for decimal precision for y axis?

I am processing a pButtons file and I get this extra precision for the Y axis (0.075000000000000001 instead of 0.075)
It is possible to set a fix number of digits for decimal precision for y axis?
Y-axis extra precision

yeah, I am sure, this has annoyed me in the past as well. Next time I am in the code I will see if there is a generic way. the trick is to differentiate when you need say precision of 3 for something like ms latency, which is the exception, most of the time it integers.

https://github.com/murrayo/yape/commit/5a705b63725d83900aab88babc6e72735355b2d6#diff-2209a57b778bd1af21cd425e688f46eb fixes it. I'll look into making this configurable too. (sorry for the messy diff, i also ran a  code formatter...)


NIFI-7810:Improvement for 'Translate Field Names' for PutDatabaseRecord and ConverJsonToSQL

We can custom define the rule of mapping the field and column by using Expression Language, not fixed code colName.toUpperCase().replace("_", "")
It's vary useful for 'Translate Field Names', but sometimes, there will be column names such as 'AB' and 'A_B' in the table, and colName.toUpperCase().replace("_", "") can not help
Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Enables X functionality; fixes bug NIFI-YYYY.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[√] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[√ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ √] Has your PR been rebased against the latest commit within the target branch (typically main)?

[√ ] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ √] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ √] Have you written or updated unit tests to verify your changes?
[ √] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Hi @KuKuDeCheng !
I think, the Jira issue id must be mistaken as https://issues.apache.org/jira/browse/NIFI-7801 is about extending Splunk support :)

Hi @KuKuDeCheng !
I think, the Jira issue id must be mistaken as https://issues.apache.org/jira/browse/NIFI-7801 is about extending Splunk support :)

Thanks

Hello! Should we expect this improvement in the next update?


Add dynamic template support to Twilio Sendgrid binding

Description
Adding support for dynamic templates. This includes allowing to provide a template id and template JSON data.
Supports these additional optional metadata (in configuration or request):

dynamicTemplateId: the template id. Eg. "d-123456"
dynamicTemplateData: the JSON passed to Sendgrid to populate the template. Eg. '{"customerName":"John Smith"}'

Issue reference
Please reference the issue this PR will close: #2412
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo. Issue: dapr/docs#3421 PR: https://github.com/dapr/docs/pull/3422

@ItalyPaleAle Thanks for your comments and suggestions. I have attended all of them and did a local run to verify and test using my Sendgrid account.

Thank you, LGTM!
Sadly, because we are into the endgame for Dapr 1.11 already, this will need to land in Dapr 1.12.
PS: Would you be interested in contributing certification tests for SendGrid? This way we can also mark the component as stable

Thank you, LGTM!
Sadly, because we are into the endgame for Dapr 1.11 already, this will need to land in Dapr 1.12.
PS: Would you be interested in contributing certification tests for SendGrid? This way we can also mark the component as stable

Thanks for you PR approval. Question on merge process, need to wait for approval from "approvers-components-contrib" and then I merge?
On the PS: Yes, I was actually thinking about contributing to the Conformance tests so I am interested and should be able to work on it next weeks. However will need guidance as not sure how you test the bindings with 3rd parties (eg. do you need to have your own Sendgrid account or do we mock the API?).

I can merge this, was just waiting fr tests to pass.

On the PS: Yes, I was actually thinking about contributing to the Conformance tests so I am interested and should be able to work on it next weeks. However will need guidance as not sure how you test the bindings with 3rd parties (eg. do you need to have your own Sendgrid account or do we mock the API?).

For a binding like this, I'd recommend a Certification test, which is specific to the binding. Conformance tests are not particularly useful here, as this binding is fairly unique. You can see an example of a certification test for a binding here: https://github.com/dapr/components-contrib/tree/master/tests/certification/bindings/cron
We generally prefer tests to run against a real service. If that's not possible, and in this case I can understand why that would be a problem, mocking may be an option too.

I can merge this, was just waiting fr tests to pass.
Perfect.

For a binding like this, I'd recommend a Certification test, which is specific to the binding. Conformance tests are not particularly useful here, as this binding is fairly unique. You can see an example of a certification test for a binding here: https://github.com/dapr/components-contrib/tree/master/tests/certification/bindings/cron
We generally prefer tests to run against a real service. If that's not possible, and in this case I can understand why that would be a problem, mocking may be an option too.
I'll look at it and create issue.


How can i use it in my existing project

I am new in laravel.i have already used my own authentication system to authenticate.now i want to use it in my project but i cant find anything.where i add my code.

Hi,
Syntara use his own authentication system (with Sentry 2), and does not run with other systems.
If you want some information, you can read the documentation  : http://mrjuliuss.github.io/syntara/ or post your question here.
Attention, Syntara does not support Laravel 5, only Laravel 4.
Julien

how to add model and controller in syntara package. i cant understand your structure.
please give me some tips how to create a new model controller and view.

Hi, you must not create any files in the package. You can find the "new features" chapter in the documentation http://mrjuliuss.github.io/syntara/docs/custom.html#new-features


Replace webmozart/path-util with symfony/filesystem

And about the composer plugins I don't know how we want to handle those.

r.e. the composer plguins, just do what composer says and allow them in composer.json

Done

Is there anything else left to do?

thanks


AAC track is not first audio stream position

Describe the bug
My files are converted to mp4 with AAC 2.0 track (labeled as default) successfully, however the problem is that even though it's the default audio track, it always appears as 2nd stream and not the 1st audio stream - this causes all my mp4 media to HLS stream since many clients can only use the first stream directly.
I've messed around with autoprocess parameters but must be missing something. Any advice much appreciated.
Current settings:
[Audio.Sorting]
sorting = language, channels.d, map, d.comment
default-sorting = channels.a, map, d.comment
codecs =

results in:

A dirty solution i found is to run this manually, which switches the audio stream order:
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:1 -map 0:a:0 -c copy output.mp4

autoProcess.ini settings
[Converter]
ffmpeg = ffmpeg
ffprobe = ffprobe
threads = 0
hwaccels = dxva2, cuvid, qsv, d3d11va, vaapi
hwaccel-decoders = h264_cuvid, mjpeg_cuvid, mpeg1_cuvid, mpeg2_cuvid, mpeg4_cuvid, vc1_cuvid, hevc_qsv, h264_qsv, hevc_vaapi, h264_vaapi
hwdevices = vaapi:/dev/dri/renderD128
hwaccel-output-format = vaapi:vaapi
output-directory =
output-format = mp4
output-extension = mp4
temp-extension = sickbeard
minimum-size = 0
ignored-extensions = nfo, ds_store, mp4
copy-to =
move-to =
delete-original = True
process-same-extensions = False
bypass-if-copying-all = False
force-convert = False
post-process = True
wait-post-process = False
detailed-progress = False
opts-separator = ,
preopts =
postopts = -movflags, faststart
regex-directory-replace = [^\w\-_\. ]
output-directory-space-ratio = 0.0
sort-streams = True

[Permissions]
chmod = 0644
uid = -1
gid = -1

[Metadata]
relocate-moov = True
full-path-guess = True
tag = True
tag-language = eng
download-artwork = poster
sanitize-disposition =
strip-metadata = False
keep-titles = False

[Video]
codec = h264, x264
max-bitrate = 0
bitrate-ratio =
crf = -1
crf-profiles =
preset =
codec-parameters =
dynamic-parameters = False
max-width = 0
profile =
max-level = 0.0
pix-fmt =
prioritize-source-pix-fmt = True
filter =
force-filter = False

[HDR]
codec =
pix-fmt =
space = bt2020nc
transfer = smpte2084
primaries = bt2020
preset =
codec-parameters =
filter =
force-filter = False
profile =

[Audio]
codec = ac3
languages =
default-language = eng
first-stream-of-language = False
allow-language-relax = True
relax-to-default = False
channel-bitrate = 256
variable-bitrate = 0
max-bitrate = 0
max-channels = 0
filter =
profile =
force-filter = False
sample-rates =
sample-format =
copy-original = False
aac-adtstoasc = False
ignored-dispositions =
force-default = False
unique-dispositions = False
stream-codec-combinations =
include-original-language = True
prefer-more-channels = True
ignore-truehd = mp4, m4v

[Audio.Sorting]
sorting = language, channels.d, map, d.comment
default-sorting = channels.a, map, d.comment
codecs =

[Universal Audio]
codec = aac
channel-bitrate = 256
variable-bitrate = 0
first-stream-only = False
filter =
profile =
force-filter = False

[Audio.ChannelFilters]
6-2 = pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE

[Subtitle]
codec = mov_text
codec-image-based =
languages =
default-language = eng
first-stream-of-language = False
encoding =
burn-subtitles = False
burn-dispositions =
embed-subs = True
embed-image-subs = False
embed-only-internal-subs = False
filename-dispositions = forced
ignore-embedded-subs = False
ignored-dispositions =
force-default = False
unique-dispositions = False
attachment-codec =
remove-bitstream-subs = False
include-original-language = False
download-subs = False
download-hearing-impaired-subs = False
download-providers =

[Subtitle.Sorting]
sorting = language, d.comment, d.default.d, d.forced.d
burn-sorting = language, d.comment, d.default.d, d.forced.d
codecs =

[Subtitle.CleanIt]
enabled = False
config-path =
tags =

[Subtitle.Subliminal]
download-subs = False
download-hearing-impaired-subs = False
providers =
download-forced-subs = False
include-hearing-impaired-subs = False

[Subtitle.Subliminal.Auth]
opensubtitles =
tvsubtitles =

Please share logs of a conversion as your settings look ok

and here is the new autoProcess.ini that was created with the new container:
again, it has 128Kbps listed yet for some reason gets ignored, just like my mapping order gets ignored
[Converter]
ffmpeg = ffmpeg
ffprobe = ffprobe
threads = 0
hwaccels =
hwaccel-decoders =
hwdevices =
hwaccel-output-format =
output-directory =
output-directory-space-ratio = 0.0
output-format = mp4
output-extension = mp4
temp-extension =
minimum-size = 0
ignored-extensions = nfo, ds_store
copy-to =
move-to =
delete-original = True
process-same-extensions = False
bypass-if-copying-all = False
force-convert = False
post-process = False
wait-post-process = False
detailed-progress = False
opts-separator = ,
preopts =
postopts =
regex-directory-replace = [^\w\-_\. ]

[Permissions]
chmod = 0644
uid = -1
gid = -1

[Metadata]
relocate-moov = True
full-path-guess = True
tag = True
tag-language = eng
download-artwork = poster
sanitize-disposition =
strip-metadata = False
keep-titles = False

[Video]
codec = h264, x264
max-bitrate = 0
bitrate-ratio =
crf = -1
crf-profiles =
preset =
codec-parameters =
dynamic-parameters = False
max-width = 0
profile =
max-level = 0.0
pix-fmt =
prioritize-source-pix-fmt = True
filter =
force-filter = False

[HDR]
codec =
pix-fmt =
space = bt2020nc
transfer = smpte2084
primaries = bt2020
preset =
codec-parameters =
filter =
force-filter = False
profile =

[Audio]
codec = ac3
languages =
default-language =
include-original-language = True
first-stream-of-language = False
channel-bitrate = 128
variable-bitrate = 0
max-bitrate = 0
max-channels = 0
filter =
profile =
force-filter = False
sample-rates =
sample-format =
copy-original = False
aac-adtstoasc = False
ignored-dispositions =
force-default = False
unique-dispositions = False
stream-codec-combinations =

[Audio.Sorting]
sorting = language, channels.d, map, d.comment
default-sorting = channels.a, map, d.comment
codecs =

[Universal Audio]
codec = aac
channel-bitrate = 128
variable-bitrate = 0
first-stream-only = False
filter =
profile =
force-filter = False

[Audio.ChannelFilters]

[Subtitle]
codec = mov_text
codec-image-based =
languages =
default-language =
include-original-language = False
first-stream-of-language = False
encoding =
burn-subtitles = False
burn-dispositions =
embed-subs = True
embed-image-subs = False
embed-only-internal-subs = False
filename-dispositions = forced
ignore-embedded-subs = False
ignored-dispositions =
force-default = False
unique-dispositions = False
attachment-codec =
remove-bitstream-subs = False

[Subtitle.Sorting]
sorting = language, d.comment, d.default.d, d.forced.d
codecs =
burn-sorting = language, d.comment, d.default.d, d.forced.d

[Subtitle.CleanIt]
enabled = False
config-path =
tags =

[Subtitle.FFSubsync]
enabled = False

[Subtitle.Subliminal]
download-subs = False
download-forced-subs = False
include-hearing-impaired-subs = False
providers =

Its channel bitrate, so 128 * 2 = 256
Looking into the sorting issue now

I think i've fixed it with this:
[Audio.Sorting]
sorting = channels.a, language, map, d.comment
default-sorting = channels.a, map, d.comment
codecs =

after consulting your very help AutoProcess documentation
I'm not sure if this the proper way to fix but 99% of the time videos rarely come with 2.0 channels, so this would give preference to the AAC track that gets produced.

Alright so overall it looks like everything was working as intended now that I have some logs
sorting = language, channels.d, map, d.comment
default-sorting = channels.a, map, d.comment

Resulted in
    "audio": [
        {
            "map": 2,
            "codec": "ac3",
            "channels": 6,
            "bitrate": 768,
            "profile": null,
            "quality": 0,
            "filter": null,
            "samplerate": null,
            "sampleformat": "",
            "language": "kor",
            "disposition": "-default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions",
            "bsf": null,
            "debug": "audio",
            "title": "5.1 Channel"
        },
        {
            "map": 2,
            "codec": "aac",
            "channels": 2,
            "bitrate": 256,
            "quality": 0,
            "profile": null,
            "samplerate": null,
            "sampleformat": "",
            "filter": null,
            "language": "kor",
            "disposition": "+default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions",
            "debug": "universal-audio",
            "title": "Stereo"
        }
    ],

This is all accurate, since language map and comment disposition are all the same essentially channels is the only thing driving the sort
In this case, the 2 channel is the default consistent with an ascending sort but the 6 channel comes first consistent with a descending sort
After looking closer at your original sample its working as intended as well I just misread it initially and didn't have any logs, but you were using the same inverted approach with a mixed ascending default sort and descending general sort
Your final example is the correct approach since you want channels ordered from lowest to highest
If you have logs of it not working that would be more helpful as so far everything you've posted looks like its working as intended, even on your original post
I did check the code just to confirm and the sorting does happen from beginning to end of the preference list so the final sort parameter in the list is the highest priority

Thanks for exploring this further, really appreciate it.
In regards to priority ,  are you saying that if i want to prioritize AAC 2.0 being first track above all else, then i should change my current working config to actually put channels.a at the end? This would be even better for me in theory?
[Audio.Sorting]
sorting = channels.a, language, map, d.comment   ---> language, map, d.comment,  channels.a ? even better?
default-sorting = channels.a, map, d.comment     ---> language, map, d.comment, channels.a ? even better?
codecs =

Forgive me if I'm wrong, but isn't one of the main goals behind this project to provide a maximum client compatible video? Surely putting AAC 2.0 should be the first default auido stream for this reason, otherwise you might run into unnecessary HLS conversions sometimes, as aforementioned.
Here is another log from a few days ago of it not working with
[Audio.Sorting] sorting = language, channels.d, map, d.comment and
default-sorting = channels.a, map, d.comment
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - {
    "source": [
        "/data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.mkv"
    ],
    "format": "mp4",
    "video": {
        "codec": "copy",
        "map": 0,
        "bitrate": 10022.247299999999,
        "crf": -1,
        "maxrate": null,
        "bufsize": null,
        "level": 0.0,
        "profile": null,
        "preset": null,
        "pix_fmt": null,
        "field_order": "progressive",
        "width": null,
        "filter": null,
        "params": null,
        "framedata": null,
        "bsf": null,
        "debug": "video",
        "title": "FHD"
    },
    "audio": [
        {
            "map": 1,
            "codec": "ac3",
            "channels": 6,
            "bitrate": 1536,
            "profile": null,
            "quality": 0,
            "filter": null,
            "samplerate": null,
            "sampleformat": "",
            "language": "eng",
            "disposition": "-default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions",
            "bsf": null,
            "debug": "audio",
            "title": "5.1 Channel"
        },
        {
            "map": 1,
            "codec": "aac",
            "channels": 2,
            "bitrate": 256,
            "quality": 0,
            "profile": null,
            "samplerate": null,
            "sampleformat": "",
            "filter": "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE",
            "language": "eng",
            "disposition": "+default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions",
            "debug": "universal-audio",
            "title": "Stereo"
        }
    ],
    "subtitle": [
        {
            "map": 2,
            "codec": "mov_text",
            "language": "eng",
            "disposition": "+default-dub-original-comment-lyrics-karaoke-forced+hearing_impaired-visual_impaired-captions",
            "debug": "subtitle.embed-subs",
            "title": "Hearing Impaired"
        },
        {
            "map": 3,
            "codec": "mov_text",
            "language": "eng",
            "disposition": "-default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions",
            "debug": "subtitle.embed-subs",
            "title": null
        }
    ],
    "attachment": []
}
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - Preopts
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - [
    "-fix_sub_duration"
]
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - Postopts
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - [
    "-threads",
    "0",
    "-metadata:g",
    "encoding_tool=SMA",
    "-movflags",
    "faststart"
]
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - Starting conversion.
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - FFmpeg command:
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - ======================
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - /usr/local/bin/ffmpeg -fix_sub_duration -i "/data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.mkv" -vcodec copy -map 0:0 -metadata:s:v title=FHD -metadata:s:v handler_name=FHD -c:a:0 ac3 -map 0:1 -ac:a:0 6 -b:a:0 1536k -metadata:s:a:0 BPS=1536000 -metadata:s:a:0 BPS-eng=1536000 -metadata:s:a:0 "title=5.1 Channel" -metadata:s:a:0 "handler_name=5.1 Channel" -metadata:s:a:0 language=eng -disposition:a:0 -default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions -c:a:1 aac -map 0:1 -ac:a:1 2 -b:a:1 256k -metadata:s:a:1 BPS=256000 -metadata:s:a:1 BPS-eng=256000 -filter:a:1 "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" -metadata:s:a:1 title=Stereo -metadata:s:a:1 handler_name=Stereo -metadata:s:a:1 language=eng -disposition:a:1 +default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions -strict experimental -c:s:0 mov_text -map 0:2 -metadata:s:s:0 "title=Hearing Impaired" -metadata:s:s:0 "handler_name=Hearing Impaired" -metadata:s:s:0 language=eng -disposition:s:0 +default-dub-original-comment-lyrics-karaoke-forced+hearing_impaired-visual_impaired-captions -c:s:1 mov_text -map 0:3 -metadata:s:s:1 title= -metadata:s:s:1 handler_name= -metadata:s:s:1 language=eng -disposition:s:1 -default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions -f mp4 -threads 0 -metadata:g encoding_tool=SMA -movflags faststart -y "/data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.sickbeard"
2023-10-10 12:54:50 - resources.mediaprocessor - INFO - ======================
2023-10-10 13:09:56 - resources.mediaprocessor - INFO - /data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.sickbeard created.
2023-10-10 13:09:58 - resources.mediaprocessor - INFO - Tagging /data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.mkv with TMDB ID 1648.
2023-10-10 13:09:58 - resources.metadata - INFO - Tagging file: /data/movies/Bill & Ted's Excellent Adventure (1989)/Bill.&.Ted's.Excellent.Adventure.1989.WEBDL-1080p.mp4.
2023-10-10 13:18:17 - resources.metadata - INFO - Trying to write tags.

Well if this is from 10/10 and you were using your original configuration from the OP then it looks like its working as intended. I was more interested on conversion that weren't working once you corrected your descending to ascending setting
With regards to where to put your channel setting, the answer is 'it depends'
If you want channels to be end all be all sort, then yeah put it last, but this may have unintended consequences
Commentary audio is often 2 channel so you may prioritize commentary over normal audio tracks which is why d.comment is placed last as the recommended setting
If you want audio tracks grouped based on their source order, keep the map option where it is, if not you can move channels to after map (this is where I would guess you may have been having issues with certain videos not behaving as expected after you fixed your settings but that's just a guess)

Yes, the last log i posted was an example from prior to 10/10 when it wasn't working for any of my videos for as long as i can remember. It's strange, the file definitely had AAC as default 2nd audio stream, despite it appearing to be correct in the last log i posted.  As evidenced here:

furthermore, i can confirm it didn't work if i run ffmpeg -i  on the final mp4:
hd_video        : 2
    media_type      : 9
    description     : History is about to be rewritten by two guys who can't spell.
    synopsis        : Bill and Ted are high school buddies starting a band. They are also about to fail their history class—which means Ted would be sent to military school—but receive help from Rufus, a traveller from a future where their band is the foundation for a perf
  Duration: 01:29:51.21, start: 0.000000, bitrate: 11469 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x816 [SAR 799:800 DAR 47:20], 10547 kb/s, SAR 959:960 DAR 959:408, 24 fps, 24 tbr, 16k tbn, 48 tbc (default)
    Metadata:
      handler_name    : FHD
    Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 640 kb/s
    Metadata:
      handler_name    : 5.1 Channel
    Side data:
      audio service type: main
    Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 257 kb/s (default)
    Metadata:
      handler_name    : Stereo
    Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s (default)
    Metadata:
      handler_name    : Hearing Impaired
    Stream #0:4(eng): Subtitle: mov_text (tx3g / 0x67337874), 0 kb/s
    Metadata:
      handler_name    : SubtitleHandler
    Stream #0:5: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 1000x1500 [SAR 1:1 DAR 2:3], 90k tbr, 90k tbn, 90k tbc (attached pic)
At least one output file must be specified

I mean the log for Bill and Ted you posted is consistent with this, the 6 channel audio comes first and then the stereo audio 2nd which is set as default
But this is what your original settings included below will generate
[Audio.Sorting]
sorting = language, channels.d, map, d.comment
default-sorting = channels.a, map, d.comment

And that's because of the channels.d which should have been channels.a if you wanted the stereo AAC track first

Sorry i misunderstood earlier. Ok this makes sense now! Thanks!

If you notice anything not behaving after these new settings feel free to reopen or post the logs


No requirements file provided

Hello, I am trying to run your demo, the biggest issue I have is to know which dependencies version did you use? which python version if possible please can you include them here thank you.

There is a small error put
pip install -r Installer_packages.txt
inside the code folder open cmd and type the following command
All necessary files will be deleted.


go/runtime/txpool: Don't abort runtime if node is not synced yet

If the node hasn't finished syncing, checkTxBatch previously caused the runtime to be aborted, even though it wasn't the runtime's fault.
Now the checks are retried after the node is finished syncing.

All review comments have been addressed, so please take another look :)


fix: set a default value for the type parameter when searching users

Fixes #47.

Pull Request Test Coverage Report for Build 116

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 113:
0.0%

Covered Lines:
90

Relevant Lines:
90

💛  - Coveralls


Adding curve animations to documentation.

Enables animated curve diagrams in the documentation, replacing the static images.


Extra flag -i to invert black and white (negative photo).

This may be useful mostly in combination with -t, when using a terminal that has white background and black text.

Ouch, suggested flag -i clashes with PR #5. Sorry about that

Hi,
Please help me answer why i type the command line is qrcode -t -i abc on terminal. It shows result qrcode but i want to get image abc.png. where is it? And how to take it?
Thanks
Anh

Try this:
qrcode hello > abc.png

well, many thanks. I got it ^^


Add easier way for people to contribute

Either find a simpler way for people to contribute monsters, or make a simple way for people to add in custom monsters.
Maybe a spreadsheet from google drive?

How about a Google Form that populates a spreadsheet?  We could then mark
the ones we approve and use a script we write to pull from the spreadsheet
into a single custom.js or something file.
Maybe a second option or second form to submit changes/fixes to existing
monsters?
On Thu, Mar 23, 2017 at 2:34 PM Ian Toltz<EMAIL_ADDRESS>wrote:

Either find a simpler way for people to contribute monsters, or make a
simple way for people to add in custom monsters.
Maybe a spreadsheet from google drive?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48, or mute the thread
https://github.com/notifications/unsubscribe-auth/ADdyRg1MIakEhKCuphDnzffhShcA0oOlks5rosk8gaJpZM4MnQc4
.

What about a way for local upload of a json/csv source file so folks can
use unapproved homebrew as well?
On Thu, Mar 23, 2017 at 12:39 PM Joe Barzilai<EMAIL_ADDRESS>wrote:

How about a Google Form that populates a spreadsheet? We could then mark
the ones we approve and use a script we write to pull from the spreadsheet
into a single custom.js or something file.
Maybe a second option or second form to submit changes/fixes to existing
monsters?
On Thu, Mar 23, 2017 at 2:34 PM Ian Toltz<EMAIL_ADDRESS>wrote:

Either find a simpler way for people to contribute monsters, or make a
simple way for people to add in custom monsters.
Maybe a spreadsheet from google drive?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48, or mute the thread
<
https://github.com/notifications/unsubscribe-auth/ADdyRg1MIakEhKCuphDnzffhShcA0oOlks5rosk8gaJpZM4MnQc4
.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48#issuecomment-288837088,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAb_N-PykMFgUpljFWyrJV4ZValUS3U1ks5rospkgaJpZM4MnQc4
.

We'd need an upload to local storage page thingy.  Would be a cool addition.
On Thu, Mar 23, 2017 at 2:41 PM Connor Petersen<EMAIL_ADDRESS>wrote:

What about a way for local upload of a json/csv source file so folks can
use unapproved homebrew as well?
On Thu, Mar 23, 2017 at 12:39 PM Joe Barzilai<EMAIL_ADDRESS>wrote:

How about a Google Form that populates a spreadsheet? We could then mark
the ones we approve and use a script we write to pull from the
spreadsheet
into a single custom.js or something file.
Maybe a second option or second form to submit changes/fixes to existing
monsters?
On Thu, Mar 23, 2017 at 2:34 PM Ian Toltz<EMAIL_ADDRESS>wrote:

Either find a simpler way for people to contribute monsters, or make a
simple way for people to add in custom monsters.
Maybe a spreadsheet from google drive?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48, or mute the thread
<

https://github.com/notifications/unsubscribe-auth/ADdyRg1MIakEhKCuphDnzffhShcA0oOlks5rosk8gaJpZM4MnQc4

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48#issuecomment-288837088,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AAb_N-PykMFgUpljFWyrJV4ZValUS3U1ks5rospkgaJpZM4MnQc4
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Asmor/5e-monsters/issues/48#issuecomment-288837719,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADdyRmxzOnys12IUUeeHHrH81DkBgAkBks5rosr1gaJpZM4MnQc4
.

Seems like it'd be an easy and high-mileage feature if it had a dead simple format

Ack, it's so weird to me that people see the stuff I do in here. I'm used to acting in obscurity. :)
I don't think google form is a good option, since typically the sources people want to add will have 100+ monsters. A spreadsheet would be much better.
One thing I'm thinking of is something similar to my Tablecloth script where you can pass a link to a shared google sheet and it'll pull in data from that automatically.
I'm also considering looking into IndexDB. Never used it before, but maybe it would make more sense as a data source than the monolithic json file we're currently using.

Since you guys are interested, I did a proof of concept and would like some feedback.
Here's a spreadsheet with all the monster data from KFC in a single sheet: https://docs.google.com/spreadsheets/d/19ngAA7d1eYKiBtKTsg8Qcsq_zhDSBzEMxXS45eCdd7I
Here's the proof of concept that downloads the data from that sheet and turns it back into a creature. It's fully featured with the exception of not correctly parsing alignment flags (just because that would have taken a relatively long time and wouldn't have been all that illustrative or helpful for this proof of concept).

Occurs to me that this approach will make it annoying to add sources like adventures which re-use monsters. I don't think that's a major problem, and I don't even know that it's more annoying than the current way (which requires looking up the GUIDs for each monster). Just worth thinking about.

Ok, got it all running. Currently live at: http://kobold.club/testing/build/
Assuming there are no problems with this, this opens the door to caching data on the client side and making it easy for people to add their own sources.
Code is in the google-sheets branch. https://github.com/Asmor/5e-monsters/tree/google-sheets


How to attach device persistently

Hello,
I used " func (*Domain) AttachDeviceFlags " function to attach device to VM.
I want to use it like 'virsh attach-device --config' option.
I tried to use "DOMAIN_DEVICE_MODIFY_LIVE" and "DOMAIN_DEVICE_MODIFY_CONFIG" like below, but It doesn't work. attached interface in VM has different MAC address with in domain xml file
		err := dom.AttachDeviceFlags(x, libvirt.DOMAIN_DEVICE_MODIFY_LIVE)
		if err != nil {
			log.Fatal(err)
		}

		err = dom.AttachDeviceFlags(x, libvirt.DOMAIN_DEVICE_MODIFY_CONFIG)
		if err != nil {
			log.Fatal(err)
		}

How can I use flag for persistent attachment?

I did it.
		err := dom.AttachDeviceFlags(x, libvirt.DOMAIN_DEVICE_MODIFY_CONFIG^libvirt.DOMAIN_DEVICE_MODIFY_LIVE)
		if err != nil {
			log.Fatal(err)
		}

But I can understand How it works. Can someone explain for me?

I'm assuming that the xml document you are providing does not contain any MAC address. Thus libvirt generates a random one when it parses the XML. In the first example you're using 2 API calls, so 2 different random MAC addrs will be generated. In the second example you only have 1 API calls, so only 1 random MAC addr is used for both operations

@berrange
Thank you for your answer. But I tired & but it doesn't work only ^ works.
How can i understand it? Can you help me?
# It doesn't work
		err := dom.AttachDeviceFlags(x, libvirt.DOMAIN_DEVICE_MODIFY_CONFIG&libvirt.DOMAIN_DEVICE_MODIFY_LIVE)

# It works
		err := dom.AttachDeviceFlags(x, libvirt.DOMAIN_DEVICE_MODIFY_CONFIG^libvirt.DOMAIN_DEVICE_MODIFY_LIVE)

The first is a bitwise AND operation, the second is a bitwise OR operation.  To set both flags you need OR, hence the second works.

Thank you for your comment. I hope you have a good day


runtime: gcAssistAlloc can call itself recursively

This occurs in Go 1.5.1 possibly 1.5.0 as well.
gcAssistAlloc may decide to sleep for 200us. This results in allocating a timer object and eventually ending up in gcAssistAlloc again.
gcAssistAlloc -> time.Sleep -> builtin.new -> mallocgc -> gcAssistAlloc -> ...
sanitized snippet from debug/pprof/heap?debug=1
#       0x123456        time.Sleep+0x37                 go/gc/src/runtime/time.go:53
#       0x123456        runtime.gcAssistAlloc+0x23e     go/gc/src/runtime/mgcmark.go:295
#       0x123456        runtime.mallocgc+0x535          go/gc/src/runtime/malloc.go:711
#       0x123456        runtime.newobject+0x42          go/gc/src/runtime/malloc.go:760
#       0x123456        time.Sleep+0x37        go/gc/src/runtime/time.go:53
#       0x123456        runtime.gcAssistAlloc+0x23e     go/gc/src/runtime/mgcmark.go:295
#       0x123456        runtime.mallocgc+0x535       go/gc/src/runtime/malloc.go:711
#       0x123456        runtime.newobject+0x42      go/gc/src/runtime/malloc.go:760

Is this fixed now?  In both 1.5 branch and tip?

Yes. It was fixed on master by 65aa2d6 and on the 1.5 branch by c257dfb.

The fix on the 1.5 branch (c257dfb) isn't quite correct. We were able to verify that it reduces but does not eliminate the issue. I believe the recursion can still happen at the beginning of a GC cycle when gp.gcscanwork is also small or zero. I'm working on a better fix, which we'll try to verify more thoroughly.

Fixed (for real this time) on release branch by 71a7647.