Skip fixture tests

What this PR solves / how to test
Fixes #6685

Only run fixture tests when the fixtures label is applied (or on Version Packages)
Only run normal tests when a non-markdown file has been changed (example PR: https://github.com/cloudflare/workers-sdk/pull/6774)

Author has addressed the following

Tests

[ ] TODO (before merge)
[ ] Tests included
[x] Tests not necessary because: workflows change

E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)

[ ] I don't know
[ ] Required
[x] Not required because: workflows change

Changeset (Changeset guidelines)

[ ] TODO (before merge)
[ ] Changeset included
[x] Changeset not necessary because: this shouldn't trigger a release

Public documentation

[ ] TODO (before merge)
[ ] Cloudflare docs PR(s):
[x] Documentation not necessary because: workflows change

Only run fixture tests when the fixtures label is applied (or on Version Packages)

I think this is dangerous. There are a lot of very useful tests in fixtures that actually test significant functionality.
But perhaps what we need to do is pull those tests out of fixtures and put them somewhere else if we are going to not both running the tests on most PRs.

There are a lot of very useful tests in fixtures that actually test significant functionality.

They're also really flaky, though. In most cases (especially from forks where the turbo cache isn't available) I think any signal in fixtures is lost to the noise of flakes. We'll still be running them on Version Packages, so we won't be releasing with fixture failures. Of course, this might end up in loads of things needing to be reverted/fixed in Version Packages, but if that's the case we can revisit things—it seems like it's worth a try to make opening PRs and contributing smoother?

Could we then only skip the flaky ones if this label is not applied?

Could we then only skip the flaky ones if this label is not applied?

And keep the rest running? That could work


Go live 7/6

Docs Build status updates of commit b4a7b58:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

documentation/blog/MS-WININTBLOGLP/171376c7-36c0-46cc-8185-9858deb30232.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/6183f838-c21e-4c44-a5bb-1a84e1864c2e.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/81cbb832-8bf1-4e68-b46a-7fdb371ddf6b.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/MS-WININTBLOGLP_files/image009.png
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/MS-WININTBLOGLP_files/image010.png
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/MS-WININTBLOGLP_files/image014.png
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/c0ef7a9c-8b8f-4ffa-881a-cb13a8ed462e.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/e2285c7b-99f6-4320-a78a-34fc1ad34e0c.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/f868554b-326d-4078-9cc8-ed5cc5ca45bf.md
:white_check_mark:Succeeded

documentation/blog/MS-WININTBLOGLP/toc.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


use contextual logging in ocm

Describe the enhancement
with contextual logging, it is easier to read and integrate with third party logging tools
https://www.kubernetes.dev/blog/2022/05/25/contextual-logging/

/assign


Add Node Access Controls Limits

Currently the code only validates that you're a valid user with current membership.  Need to add support for limiting access to certain nodes (possibly at certain times).

Features added and working.  Still need to create unit test to ensure all the potential corner case bugs for these features work properly, but since the code seems to be working from a high level inspection. I am closing this issue.  Was first working with commit 068881ed9b20da1f0976674b899bebeffe6ea270


Remove content bar

Removed content bar, it's no longer used
Removals

content bar

Checklist

[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows the standards laid out in the front end playbook
[x] Passes all existing automated tests
[x] New functions include new tests
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged
[x] Visually tested in supported browsers and devices
[x] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

@anselmbradford yes, see @Scotchester's comment in the original issue.


Correctly open target directory from encoder window

Currently, when clicking on the "Explore Folder" button in the Encoder Window takes you to "This PC", this tweak seeks to correct that behaviour by opening an explorer window in the path of the saved file.

Before Change:

After Change:

Strange, it works for me with the current explorer call:
explorer.exe /select, \"C:\Users\Nicke Manarin\Desktop\Test.gif\"
(Windows Explorer opens with the Desktop folder and the file Test.gif selected)
But it does not work with your proposal change:
explorer.exe C:\Users\Nicke Manarin\Desktop\Test.gif
(It opens the gif file with my default gif viewer app)
Also, could you share the project to the second gif? I need to take a look of what's happening the green color...

Hmm, I actually didn't previously appreciate it was supposed to highlight the file once explorer was opened. Going to close this one for now and have another play with it!
And unfortunately I did not save the project. I'll keep an eye open for it happening again

But, as an FYI... just peeking at it a bit closer, the OuputFilename string appears to be malformed:

I would expect to see F:\\Users\\Adam\\Pictures\\deleting.gif

Hmm, I actually didn't previously appreciate it was supposed to highlight the file once explorer was opened.

I got feedback about this, some users asked me to add this functionality. :)

And unfortunately I did not save the project. I'll keep an eye open for it happening again

Thank you, if it happens again, you can try changing the "dummy color" under Save As > Gif Options to magenta. The encoder usually fails to encode properly if there's another similar color on the frames.

But, as an FYI... just peeking at it a bit closer, the OuputFilename string appears to be malformed

I get this filename and it looks right:

This are my input fields (if the last \ gets removed, nothing changes):

This is the only code that sets this property, a Path.Combine() and it should always output an already sanitized path:
https://github.com/NickeManarin/ScreenToGif/blob/master/ScreenToGif/Windows/Editor.xaml.cs#L1080
Anyway, thanks for the feedback. I'm going to accept the other PR and start looking which code or situation can trigger this bug.

Oh, I got it.
If manually typed a path with "C:/Users/Nicke Manarin/Desktop", the combined path will be exactly like you shared.

Ah, This explains the inconsistency I thought I was seeing! I could have sworn it worked at some point, but recently I moved my Pictures folder to the F:\ drive, and I guess I must have typed in the path.


Cardano sl 0.1 bugfixes

We need to merge that today @domenkozar @georgeee. Please do that ASAP.

This is ready for review

@georgeee please fix https://github.com/input-output-hk/cardano-sl/pull/18/conflicts

Also @pva701 please fix https://github.com/input-output-hk/cardano-sl/pull/18/conflicts


Sound mixer as a toy

Summary of the new feature/enhancement
I think it would be nice to have sound mixer as flyout (like Action Centre) or pinned on desktop that allows mute applications, change apps volume, and maybe choose default input/output devices.
Sound mixer in Taskbar looks pretty old, And is not easily accessible. It requires the volume icon to be enabled as well.
Sound mixer that's in Settings also is hard to get to. And design is a bit confusing.

Have you tried ear trumpet?

Have you tried ear trumpet?

Never used it. But looks nice, thanks for the info.
I guess that app eliminates the need for similar functionality in PowerToys

It is pretty baller and free (and open source too https://github.com/File-New-Project/EarTrumpet) /cc @riverar

Have you tried ear trumpet?

Never used it. But looks nice, thanks for the info.
I guess that app eliminates the need for similar functionality in PowerToys

I think it would still be beneficial to add it to PowerToys, these tools are amazing, maybe they can work together on this feature

EarTrumpet should totally be adopted by Windows.

EarTrumpet should totally be adopted by Windows. The volumer mixer in settings (what they want us to use instead of the control panel volume mixer) is an abomination.

In my opinion the pop-up Volume Mixer should be default, in stead of the minimal one-slider volume control. I do not intend to use third party software for something basic as this is.

@Jay-o-Way Agreed. It should be part of Windows. It's sad that they deprecated the pop-up/control panel volume mixer.

Alternative app: https://winaero.com/enable-old-volume-control-in-windows-10/

Alternative app: https://winaero.com/enable-old-volume-control-in-windows-10/

It's not the same, EarTrumpet for example shows all playing sounds and allows selecting a different playback device per app

You can create a .lnk shortcut file that directly point to the Sound devices page in Win Settings: use URI "ms-settings:apps-volume". You can give the .lnk shortcut a keyboard shortcut (a.k.a. hotkey) in its properties. Or pin it to your task bar.

@Jay-o-Way Nice one. Still wander why Windows keeps legacy mixer, yet doesn't redirect to this Settings page.
Nobody mentioned Windows Game Bar functionality so far in this thread tho.

any update on ear trumpet getting added to power toys ?

any update on ear trumpet getting added to power toys ?

Clint and I chat about this from time to time; there are no current plans to merge the two. But it's never off the table! Thanks for asking!

EarTrumpet is quite heavy on PC resources.
Legacy mixer beats it in that aspect.
If any new mixer is being implemented - it better be more efficient than EarTrumpet.

Memory and "feel".
Legacy mixer (open):

Does not appear in the list of processes when not open.
EarTrumpet (hidden in tray):

EarTrumpet (open):

Lagged animation makes ET feel way less responsive than legacy mixer as well.
It doesn't seem like it offers much compared to legacy mixer to trade one for another on these conditions.
Of PowerToys, only Run seems to be comparably heavy:

Disabled Run now as well - can't get used to it anyway.
GameBar (mixer is pinned):

Built into Windows now, Windows 11 Insider Preview Build 25309
https://blogs.windows.com/windows-insider/2023/03/02/announcing-windows-11-insider-preview-build-25309/

Ridiculous that people are asking for features and bug fixes on some other unrelated repo just because Microsoft doesn't do it themselves and because the Feedback Hub is awful. But yay, this was added 🎉

which animation is lagging?

Looking at the dates, my comment was in another life. I can't remember any details, neither I'm interested to experiment with it again now.
And since I'm already here:

this only counts for Win 11 Insider Preview Build 25309 (apparently), but definitely not for Win 10 (which is supported until october 2025...)

While I'm still running Win10, I wouldn't seriously consider investing into a development of a toy only for Win10.

If there are features that folks feel EarTrumpet is missing, please let us know! Incorporation into PowerToys doesn't solve any real problems.


Can't seem to get this plugin to work with my units

I recently just installed MHIAC units in my house on the basis I would be able to get it talking to HomeBridge with this plugin.
I've spent hours trying to get it to work, and sort of did get them working, but then they eventually seem to just drop offline (and completely off my network).
It looks like the app is getting confused between devices and keeps constantly pinging the device IP addresses which then must overload the units and drop off the network. To get them back online, I have to reboot with the mains.
Would love to get them working ready for Australia's incoming summer so we can setup some automations with HomeKit around temperature etc.
If anyone has had similar issues and can give me some tips, all ears!
I wish I was a programmer, but I'm a noob so have no idea how to do anymore than install and configure these plugins!

I had a go at switching my devices to child bridges, seemed to work for 24 hours, but now doing the same thing as last time :(
This is the error I get for all units, and then they drop off HomeKit and no longer accessible via IP in web browser (so need to do hard reset at power box):
[9/25/2022, 4:47:30 PM] [Bedroom Spare Aircon] Http request error: Error: socket hang up
[9/25/2022, 4:47:30 PM] [Bedroom Spare Aircon] Unable to refresh state Error: socket hang up
at connResetException (internal/errors.js:607:14)
at Socket.socketOnEnd (_http_client.js:499:23)
at Socket.emit (events.js:388:22)
at endReadableNT (internal/streams/readable.js:1336:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
code: 'ECONNRESET'
}

What wifi adapter do you use for which MHI devices?

I haven't had anytime recently to work on this project, but found a few hours this weekend to look into this error.
I was able to reproduce it by rapidly changing the fan speed from the Home app to generate lots of requests to the aircon controller.  The portion of code that handled setting the aircon state didn't have sufficient error handling.  I've made a change to attempt the setState action 3 times before more gracefully failing.  You should be able to update the plugin version to 0.3.0 to pick up this change.
Depending on the version of Homebridge your running, the child bridge would exit (and I'm not sure it would restart) or log some other errors (which I don't see) when the ECONNRESET error happened.  Either way, this change should make the plugin more resilient.
All of that said, I'm a little unclear about the device no long being accessible by IP in the web browser.  I assume you mean accessing the simple web page from Intesis.  If you log in from there while the homebridge plugin is active, it won't work out well.  The interfaces uses a login token to authenticate and only one token can be active at a time.  The homebridge plugin logs in and continually reuses the same token for polling status.  If you log in via the web page, it will change the token forcing the homebridge plugin to reauthenticate which invalidates the web page login token.  You still should be able to get to the basic web page without authentication though and it should show firmware versions and other basic status.
Here are settings from the units I have tested with:

Info
Value

Device Model
MH-AC-WIFI-1

Device Firmware Version
1.4.7; 1.3.3; 1.5; <IP_ADDRESS>

Wireless Firmware Version
1.2.0

Could you verify these version against these?  I'm not sure how Intesis provides firmware updates as I can't find them on the web.
Are you using a static IP address for the aircon?  This is important because the plugin has no way of discovering devices (currently).
Also what version of Homebridge are you using?

Are you still having trouble with the plugin?

Hi @rchrch
Sorry for the delay getting back to you. Been a busy few weeks.
Thanks for the quick update to the plugin. What ever you did has made a big different — I discovered 1 unit was still falling off, but turns out it had lost its static IP which I fixed. They're now all seeming to stay connected consistently and responding as expected. Amazing!
How does the fan speed setting work in the app?

No worries!  Totally understand.  Glad to hear things are more stable now.
The fan speed is a bit strange (sorry for the long explanation that follows :smile:).  While in aircon mode (heat or cool), the fan speed is a bit hidden.  You have to click on main aircon icon.  This will bring up three accessories: the temperature control, dehumidifier control, and fan-only control.
For temperature control (heat/cool mode):
You have to scroll down to settings (the gear icon) and click on "Accessories" (it should have a 3 next to it).  This will show the three accessories separately (you can also choose to break them apart from here so they aren't grouped at the top level).  From there click on the icon with the temperature (the heat/cool accessory).  You then can click on the gear and get to the fan speed control for the heat/cool mode.  Fan speeds are 1-4 translating to 25, 50, 75, and 100 percent.  The MHI-AC controller doesn't expose an option for "auto" fan speed which is really unfortunate.  Likewise, there is an oscillate on/off option, but not individual controls for left/right and up/down swing. :frowning_face:
For dehumidifier control (dry mode):
This one works the same as the heat/cool accessory.  After drilling into the first level of settings, click on the (de)humidifier icon, and you can access the fan speed after clicking on the gear icon.  The slider on the main view for the accessory sets the desired humidity level, however the MHI-AC don't have that type of control so this doesn't do anything but cause confusion.  You enable dry mode by clicking on the circle icon below the slider control.
For fan-only control (fan mode):
The fan speed is controlled by the slider on the main control.  Like the heater/cooler accessory, there are 4 fan level.
For automations, you can set the fan levels in the same fashion as above.
Again, sorry for the lengthy explanation.  The reason for the layout is the Apple HomeKit spec defines various accessory types (heater/cooler, dehumidifier, and fan in this case).  You must conform to the features that each of those expose.  Multi-function split systems don't fit the pattern very well so you end up with a semi-clunky user experience.  I don't use the Eve app, but from what I understand, there is a little more flexibility in their interface.  Let me know if something above doesn't make sense (it's a bit confusing even as I re-read it).
Thanks again for using the plugin!


Ios adds dark overlay to rest of page

On ios it makes the rest of the page darker as if it has an overlay. Is there a way to disable this as we want the bottom sheet open on the homepage at all times

If you put fullscreen detent as a detent it seems to work


questions for speed

I tested this library and used hide_messageto hide a string in a 18s MP3. It took about 12 minutes and I felt it's slow. What's the reason?Thanks!

Hey,
Actually, our library is just a POC for the hiding method.
The mp3 encoder and decoder are written in python (and not in c++ like any other decoders), with minimal optimization. Duo to that fact, the running time of the hiding (as well as other functions) may take a while.
Tomer

Oh,I get it.
Thank you for your answer！


Metadata Portal / Parity Signer

We need to have a metadata portal so users of Parity Signer can add and update the Frequency Metadata.
Acceptance Criteria

Users can visit metadata.frequency.xyz and update their parity signer to new or upcoming metadata.

Notes

Static GitHub Pages Site
metadata.frequency.xyz
fork of https://github.com/paritytech/metadata-portal
Getting metadata via cli: https://libertydsnp.github.io/frequency/frequency_cli/struct.ExportMetadataCmd.html
https://github.com/paritytech/parity-signer/blob/master/docs/src/tutorials/Add-New-Network.md
https://github.com/paritytech/parity-signer/issues/1099
https://github.com/nova-wallet/metadata-portal

Suggested Flow

Release is cut in the frequency repo
That release triggers an action in the metadata portal
That action then builds and signs and deploys the updated metadata for the portal

See Also:
#601 Add Frequency to the web3 font

Can we use GitHub Pages?
Prohibited uses
GitHub Pages is not intended for or allowed to be used as a free web-hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS). GitHub Pages sites shouldn't be used for sensitive transactions like sending passwords or credit card numbers.

Where should we put the metadata fork?  https://github.com/LibertyDSNP/frequency/metadata or https://github.com/LibertyDSNP/metadata or other?

Once the GitHub Page is up, we need to ask DevOps to add a DNS entry for metadata.frequency.xyz
% nslookup metadata.frequency.xyz
Server:		<IP_ADDRESS>
Address:	<IP_ADDRESS>#53

** server can't find metadata.frequency.xyz: NXDOMAIN

https://core.tetcoin.org/docs/en/knowledgebase/runtime/metadata

Once the GitHub Page is up, we need to ask DevOps to add a DNS entry for metadata.frequency.xyz

@sbendar can do that for the repo once it is all setup on github pages.

The portal uses an icon next to each network name.  Who will decide what the name and icon will be?  The icon should be 48x36. Where is the icon hosted?  GitHub?  Is it using the one from the chain itself?

Additional tasks per 11/9 meeting:

Wil needs to generate a key pair and give us the public key to use as the verifier for the portal.  Who will be the official holder(s) of the key pair?
Research the name of the chain that is displayed in Parity Signer when first scanning the QR bar code.  e.g. frequency-rococo-sr-25519.  Explore changing it to just frequency-rococo
Check w/graphic designer regarding Frequency logo (SVG) and test display of logo in Parity Signer app.
Cleanup display of chain names in portal sidebar.
Add Frequency favicon.ico

https://github.com/LibertyDSNP/frequency/issues/601

Additional task per 11/17 meeting w/Wil:

Automate signing process in GitHub workflow

To automate the signing process, we will create a new CLI command and Workflow action.  It will use the data scraped from the repository and live nodes to generate the signed QR barcode images directly.

@demisx:

Just a heads-up, I am maintaining the Frequency CI flow diagram amongst the others. Ideally, any non-trivial changes to the existing Frequency project CI should originate from this diagram, reviewed/commented, and then implemented upon consensus. This way we are all on the same page and CI is easier to maintain as the jobs keep on growing.

Absolutely.  We will keep you in the loop.  Please take a look at our documentation to see what to incorporate into the main Frequency CI flow diagram if you haven't already.  https://github.com/LibertyDSNP/metadata-portal/blob/main/docs/NOTES.md

UPDATE: A new requirement was added last week to have the workflow automatically sign the data.  This feature was non-trivial but is now working.  There is a new CLI command that generates auto-signed QR barcodes for both network specs and metadata.  Additional changes to integrate this are now underway.

PNG zTXt chunk holds specs/metadata source:  https://dev.exiv2.org/projects/exiv2/wiki/The_Metadata_in_PNG_files

We had considered using subkey to sign and create the QR bar codes but it only supports retrieving data from a live node via RPC with no support for extracting the data from a WASM in a GitHub release.

@rlaferla for that our collator nodes will have to support some sort of wasm runtime, I think @wilwade mentioned about some conference talk on separation of relay node embedded in substrate node.
Because that sort of an implementation will create a crisp separation of concern between relay nodes and parachain node and subsequent parathreads 🐙
But again for now it's a limitation I understand

Important:  We have deliberately made this process semi-automatic by requiring the user to review and commit the PR whenever new barcodes and data are updated.  This is both a way to prevent runaway automation and as a security check.


system/usbmsc: Add support for setting paths bind to LUN at runtime

Summary
Add support for setting paths bind to LUN at runtime.
Help
nsh> msconn -h
Usage: msconn [-o OPTION]... [-l LUNs]...
Configures the USB mass storage device and exports the LUN(s).

Supported arguments
  -o
      nc: No const LUN
      ro: Readonly
      rw: Read/Write(default)
  -l
      Device path to export

Examples
  1. Export const LUN(s) only
      msconn
  2. Export /dev/ramx and const LUN(s)
      msconn -l /dev/ramx
  3. Export /dev/ramx without const LUN
      msconn -o nc -l /dev/ramx

Export without const LUN
nsh> msconn -o nc -l /dev/esp32s3flash
mcsonn_main: Creating block drivers
mcsonn_main: Configuring with NLUNS=1
mcsonn_main: handle=0x3fc8ec80
mcsonn_main: Bind LUN=0 to /dev/esp32s3flash
mcsonn_main: Connected
nsh> msdis
msdis: Disconnected

Export with const LUN
nsh> mkrd -m 10 -s 512 640
nsh> msconn
mcsonn_main: Creating block drivers
mcsonn_main: Configuring with NLUNS=2
mcsonn_main: handle=0x3fcdecc8
mcsonn_main: Bind LUN=1 to /dev/esp32s3flash
mcsonn_main: Bind LUN=0 to /dev/ram10
mcsonn_main: Connected
nsh> msdis
msdis: Disconnected

Export without const LUN
nsh> msconn -o nc -l /dev/ram10
mcsonn_main: Creating block drivers
mcsonn_main: Configuring with NLUNS=1
mcsonn_main: handle=0x3fcdecc8
mcsonn_main: Bind LUN=0 to /dev/ram10
mcsonn_main: Connected
nsh>

Impact

system/usbmsc: Compatible with current usage.

Testing

Selftest as above
NuttX CI

@Donny9 Could you review this PR please?

The CI maybe broken
common/riscv_exit.c: In function 'up_exit':
Error: common/riscv_exit.c:65:33: error: 'tcb' undeclared (first use in this function); did you mean 'tcb_s'?
   65 |   g_running_tasks[this_cpu()] = tcb;
      |                                 ^~~
      |                                 tcb_s

The CI maybe broken
common/riscv_exit.c: In function 'up_exit':
Error: common/riscv_exit.c:65:33: error: 'tcb' undeclared (first use in this function); did you mean 'tcb_s'?
   65 |   g_running_tasks[this_cpu()] = tcb;
      |                                 ^~~
      |                                 tcb_s

Fix here: https://github.com/apache/nuttx/pull/15014

The broken CI has fixed by apache/nuttx#15047

Unrelated CI error
Configuration/Tool: esp32-devkitc/nxdiag
2024-12-05 10:19:53
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
fatal: could not read Username for 'https://github.com/': No such device or address
make[3]: *** [Makefile:83: espressif_prepare] Error 128
make[3]: Target 'context' not remade because of errors.
make[2]: *** [Makefile:55: /github/workspace/sources/apps/system/nxdiag_context] Error 2
make[2]: Target 'context_all' not remade because of errors.
make[1]: *** [Makefile:185: context] Error 2
make: *** [tools/Unix.mk:457: /github/workspace/sources/apps/.context] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 385: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory

let's ignore it.


Is it posssible to pay

Is it possible to pay team members/freelancers through paypal?

Hi @ugintl. The payment feature on this project only for transaction entries, so we can log every project incomes and spendings. We don't have plan to develop the send/receive payment in this project. Feel free to implement it on your clone. 👍

How much would it cost if someone asks you to implement this feature?

@ugintl I can't answer right now, as I am not available to take a new project for the next couple of months, sorry.

Hello @ugintl, I am closing this issue, feel free to re-open if you have further questions.


Double relationship to the same table issue

Laravel Version: 5.4
Voyager Version: 11.14
PHP Version: 5.6
Database Driver & Version:

Description:
when you have two fields with a relationship to the same table in browse view the slug show the first selection also in the second field.
Steps To Reproduce:
Es.
Table Groups (id, admin, moderator...)
admin -> hasOne(User::class, 'id');
moderator -> hasOne(User::class, 'id');
I select "Tom" for admin and "Bob" for moderator
In browse view I see "tom" in admin and in moderator field.
It works in edit view.

Screenshots example

Fixed by #1875


[3.1.2] KE100 no longer recognized, integration crashes

The smart thermostats (Tapo KE100) are no longer recognized. The integration chokes on unknown responses.
Versions:
Integration 3.1.2
Hub KH100 1.5.10
Thermostat KE100 2.8.0
2024-05-27 05:52:52.007 ERROR (MainThread) [custom_components.tapo.coordinators] Error fetching tapo data: Unexpected exception:
2024-05-27 06:17:01.173 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 350, in data_received
    messages, upgraded, tail = self._request_parser.feed_data(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
  Invalid method encountered:

    b'\x16\x03\x01'
      ^
2024-05-27 06:17:01.414 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 350, in data_received
    messages, upgraded, tail = self._request_parser.feed_data(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
  Invalid method encountered:

    b'\x16\x03\x01'
      ^
2024-05-27 18:16:43.153 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 350, in data_received
    messages, upgraded, tail = self._request_parser.feed_data(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "aiohttp/_http_parser.pyx", line 557, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: 400, message:
  Invalid method encountered:

    b'MGLNDD_<IP_ADDRESS>_8123\n'

Update with Hub firmware 1.5.12 it no longer crashes but fully stops recognizing things:
2024-05-27 19:17:34.245 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration nodered which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-05-27 19:17:34.246 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-05-27 19:17:34.246 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration tapo which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-05-27 19:17:35.321 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues
2024-05-27 19:17:44.618 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.helpers.event. This is deprecated and will stop working in Home Assistant 2024.11, it should be updated to import functions used from event directly at custom_components/hacs/base.py, line 642: self.hass.helpers.event.async_track_time_interval(, please create a bug report at https://github.com/hacs/integration/issues
2024-05-27 19:19:27.834 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol
2024-05-27 19:19:32.987 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol
2024-05-27 19:19:35.939 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol
2024-05-27 19:19:43.152 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol
2024-05-27 19:19:56.185 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol
2024-05-27 19:20:23.263 INFO (MainThread) [custom_components.tapo.hass_tapo] Found discovered data, avoid to guess protocol

Unfortunately it is still relevant - the integration has become useless

I am also experiencing this issue. KE100 devices are not recognised. My KH100 hub is recognised however the KE100 thermostats which are linked to it are not.

Afaics this is still an issue within 3.1.4

It's unfortunately still unresolved

just bumping as I have the same problem.

https://github.com/JurajNyiri/pytapo could it be related to the same issues here? Tapo changed their API authentication stuff, and this extension expects the same data (cloud user + pw)

Issue identified... need to wait until this repository updates the p100 library and updates its requirements. But hey, simple fix :)

Still relevant

I doubt that this issue has been fixed yet...

It wasn't - it looks like the extension was abandoned and it's time to switch to the alternative TP-Link integration from HA repo.


Play wav audio until position

Hello,
I followed tutorial on this page  and managed to successfully play a wav file. However i'd like to play the audio until a position in time is reached (say for ex until 3rd sec then pause or stop), how do i go about this ?
The only idea i have is to use a thread which checks position of the audio and pause it when it reaches the position i want but not sure if thats how it should be done.
Thanks in advance

You can use a timer that checks if you've reached a certain point which is ok in some circumstances but not accurate.
A better approach would be to use OffsetSampleProvider and the Take method to limit the total amount to be read before it reaches the end.

Sorry for the late answer, hadn't time to work on my project. I saw you mention OffsetSampleProvider, after googling i found its a class in the samples direction of the project, does that mean i have to copy the file to use it, or its already part of the library and i can just import it and use it ?

Any help please, i'm stuck

For this use, I'd make a WaveStream implementation whose Read method delegated down to the Read method of your WaveFileReader, but stopped once the desired position was read. This would allow you to reposition the underlying WaveFileReader to the start and read again.

Do you mean i copy WaveFileReader file and rename it ? I've checked the Read method of the WaveFileReader but i don't quite see how i'd tell it to stop at position i want.
Could you provide an example  ?

No, you create a custom class that inherits from WaveStream. In the constructor take a WaveStream as input which will be your WaveFileReader. In the Read method, read from the input, but only as far as your maximum position.  There's actually already a class in NAudio that's probably good enough called WaveOffsetStream - try using that with StartTime of TimeSpan.Zero, source offset of TimeSpan.Zero and source length of the duration you want to play for

I'm sorry but i'm not sure how do i play the sound then after creating a WaveOffsetStream instance with the startTime and length i want. Atm i'm using this code to play a sound :
WaveOutEvent waveOutEvent = new WaveOutEvent();
AudioFileReader  wavFileReader = new AudioFileReader(audioPath);
OffsetSampleProvider trimmed = new OffsetSampleProvider(wavFileReader);
waveOutEvent.Init(trimmed);

then
waveOutEvent.Play()
where does the WaveOffsetStream object go in this code ?

use it instead of offsetSampleProvider
On Thu, 4 May 2017 at 13:24 Herz3h<EMAIL_ADDRESS>wrote:

I'm sorry but i'm not sure how do i play the sound then after creating a
WaveOffsetStream instance with the startTime and length i want. Atm i'm
using this code to play a sound :
WaveOutEvent waveOutEvent = new WaveOutEvent();
AudioFileReader  wavFileReader = new AudioFileReader(audioPath);
OffsetSampleProvider trimmed = new OffsetSampleProvider(wavFileReader);
waveOutEvent.Init(trimmed);
then
waveOutEvent.Play()
where does the WaveOffsetStream object go in this code ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/naudio/NAudio/issues/175#issuecomment-299169914, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJA1PTDkOun_NURSxNzzMRcNGKero0mks5r2cNqgaJpZM4MjKs-
.

--
Mark Heath
http://markheath.net

Ok i managed to read part of the audio. But i have this issue where i have to delete old waveOutEvent and create a new one to play another part of the audio. I feel like i'm doing it wrong here.
Am i supposed to delete WaveOutEvent object and create new one each time i want to play an audio part?

yes, if you're going to play audio at a completely different sample rate / bit depth, but you don't have to otherwise. you can use a MixingSampleProvider with ReadFully set to true so it never stops, and then insert new bits of audio as mixer inputs when you want to play them. (see my article here: http://www.markheath.net/post/fire-and-forget-audio-playback-with)

Ok that sounds like a good solution for me, but then is it possible to get the position of the added chunk of audio ? Say i have two sounds A and B: A being 3s and B being 10s
I do this :
mix += A
mix += B
and when A is playing, any way to get the currentTime of A relative to its start? Then same for B?
I assume no, please confirm. Then the easiest solution if the above is not possible is to just dispose old waveOutEvent and create a new one right?

Ok i just keep WaveOffsetStream as it does what i need. Thanks for the help !!
Just have one issue. I run a thread that fetches the audio position and sends it to callback but the currentTime/Position doesn't update as fast as i want. For instance i have this :
Position   CurrentTime
1108800	00:00:11.5600000
1108800	00:00:11.5600000
1108800	00:00:11.5600000
1123200	00:00:11.7100000
1123200	00:00:11.7100000
It skips position 00:00:11.57 to 00:00:11:70, any way i can set how fast is the position update?

it's based on the latency and size of buffers the audio card is using. You'd need to plug into the IWavePosition interface to find out how far through the current buffer we are

Do you mean i'd have to make my own WaveOutEvent which inherits IWavePosition and implement GetPosition in a different way ?
Because atm, trying to do waveOutEvent.GetPosition() also has big gaps like my previous post (doesn't update as often)

WaveOutEvent already implements IWavePosition, so you can use that to find out how exactly much audio has been played so far.


Question about explorer vs picker

I currently have autochdir = true in my vimrc. When I open a file in a buffer, the working directory changes to the directory where the file is located. Let's call this directory p1. When I execute :NnnExploer, nnn opens at p1. If I run :NnnExploer again, nnn hides. Now, if I open another file from a different directory, say p2, and run :NnnExplorer, nnn opens at p1 instead of p2. Meanwhile, :NnnPicker opens at p2. Is the intended behaviour for NnnExplorer to not change directory after it has been invoked the first time?

The behavior is actually the same for both, NnnExplorer will also open in the current working directory toggling it by running NnnExplorer or NnnPicker twice will not close nnn. Therefore the directory will not change when you open picker/explorer again by running NnnExplorer/Picker a third time. You will first have to quit nnn (by pressing q in the nnn window)

I actually never bother toggling the picker. I open the picker, choose the file, and press enter. The file opens in a buffer and the picker closes. Does this close nnn or is it hidden? From the current behaviour and you saying that the working directory shouldn't change, then the likely explanation is that nnn closes. Just out of curiosity, if the act of opening a file from the picker closes nnn, how do you keep picker using the same old working directory after opening a file from a new working directory?

Are you saying you want to be able to choose one of split/vsplit: 'leftabove', 'aboveleft', 'rightbelow' etc for the picker window? Or the explorer window location, the explorer window location is currently hardcoded yeah. Could make it configurable although I don't see why you would want it anywhere other than on the left side as an explorer tree.

The only good reason why someone would want to move the explorer window to the right is to avoid the icons in nnn from being chopped off when the window gets small.


False negative: change in default parameter type

Version 1
package t

final class Foo(x: Int, y: String) {
  def copy(x: Int = x, y: String = y) = new Foo(x, y)
}

Version 2
package t

final class Foo(z: Boolean = false, x: Int, y: String) {
  def this(x: Int, y: String) = this(false, x, y)
  def copy(x: Int, y: String) = new Foo(z, x, y)
  def copy(z: Boolean = z, x: Int = x, y: String = y) = new Foo(z, x, y)
}

Client
package t

object T {
  def main(args: Array[String]): Unit = {
    val x = new Foo(1, "a")
    val y = x.copy(y = "b")
    println(y)
  }
}

Error
t: found 0 potential binary incompatibilities while checking against com.dwijnand:t_2.12:0.1.0

java.lang.NoSuchMethodError: t.Foo.copy$default$1()I
	at t.T$.main(T.scala:6)
	at t.T.main(T.scala)

Note
See https://github.com/sbt/sbt-datatype/issues/48 for more context.

Looks like we shouldn't ignore the synthetic accessors for default values. AFAIR synthetic accessors are generally ignored because they cannot be called across compilation units but this is not the case here.

I would be happy to fix this in the upcoming days.

@jvican Are you working on this or should I take a closer look? (I'd expect a fix to be pretty much along the lines of https://github.com/typesafehub/migration-manager/pull/144)

@szeiger Go ahead, I didn't start my fix. :wink:


dtls_server fails on macOS

Environment

System macOS 10.12.3

Steps
make
# on one terminal
./programs/ssl/dtls_server

  . Loading the server cert. and key... ok
  . Bind on udp/*/4433 ... ok
  . Seeding the random number generator... ok
  . Setting up the DTLS data... ok
  . Waiting for a remote connection ... ok
  . Performing the DTLS handshake... hello verification requested
  . Waiting for a remote connection ... failed
  ! mbedtls_net_accept returned -74

Last error was: -74 - NET - Could not accept the incoming connection
# on second terminal
./programs/ssl/dtls_client

  . Seeding the random number generator... ok
  . Loading the CA root certificate ... ok (0 skipped)
  . Connecting to udp/localhost/4433... ok
  . Setting up the DTLS structure... ok
  . Performing the SSL/TLS handshake... failed
  ! mbedtls_ssl_handshake returned -0x4c

Last error was: -76 - NET - Reading information from the socket failed

Debug
After debugging I believe this is a bug of macOS's connect().  It fails to connect second time giving error that Invalid Argument. I posted it here if someone is able to have Apple get this issue fixed.

I tested this on my own Mac, and found it worked fine. Are you sure this isn't a configuration issue of some sort on your own machine?

Closing as I don't think there's an issue here. Please reply or respond if you think we've misunderstood and see an error!

Description

Type: Bug
Priority: Minor

Bug
OS
MacOS
mbed TLS build:
Version: 2.7.0 or git commit id 32605dc83042d737e715a685e53176388d73540e
OS version: Darwin Kernel Version 17.5.0
Compiler and options (if you used a pre-built binary, please indicate how you obtained it):  default cmake and make
Peer device TLS stack and version
MbedTLS
Version:  2.7.0
Expected behavior
dtls_client should manage to connect to dtls_server
Actual behavior
dtls_server does not accept connection from dtls_client
Output is

  . Loading the server cert. and key... ok
  . Bind on udp/*/4433 ... ok
  . Seeding the random number generator... ok
  . Setting up the DTLS data... ok
  . Waiting for a remote connection ... ok
  . Performing the DTLS handshake... hello verification requested
  . Waiting for a remote connection ... failed
  ! mbedtls_net_accept returned -74

In fact connect( bind_ctx->fd, (struct sockaddr *) &client_addr, n )returns an error with errno=EINVAL
If I change dtls_server.c so that mbedtls_net_bind specifies "<IP_ADDRESS>" instead of all addresses, we get the expected behavior.
There seems to be an explanation here https://patchwork.ozlabs.org/patch/744588/
If I understand, connectdoes not know which address to use
Steps to reproduce
Compile dtls_client and dtls_server and run them both

Hi @catenacyber thank you for your information.
I believe that what you are describing is already described in #977

I created a PR for this issue #1627, which in my view addresses the problem.
This has only been tested on OSX.

@redtangent I'm afraid I can't remember why the client is forcing IPv4. At first glance, I support a change like the one you're suggesting in #1627 (provided it's also tested on Linux machines and doesn't break things there).


Swift compatibility and OS X framework embedding

Thanks for an awesome library. Doing two small adjustments to allow usage of URLMock.framework from Swift code (enabling module) and to allow framework embedding on OS X (changing /Library/Frameworks to @rpath).

Hi @slavikus. This looks good. Thanks for the update. :+1:


updating Cluster GPU rack diagram with 384 H100 gpus

Updated the cluster GPU rack figure. The new figure shows we have a total of 384 H100 GPUs.

Closing this PR, please open another PR as we discussed.


[BEAM-9487] Disable GBK safety checks by default

Since this is a backwards-incompatible change, we're disabling by default and will enable it by default in Beam 2.33.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] Update CHANGES.md with noteworthy changes.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

I think this is one of those moments where code coverage should just be ignored. Disabling stuff for this release is, by nature, going to negatively impact code coverage, but the usefulness of the tests hasn't changed at all.

Precommit ran into a Jenkins error. No test that ran failed. Will try running it again.

Run Python PreCommit

Run Python PreCommit

Run Python PreCommit

I think the Precommit test that's failing is flaky, but it's also failing on the master branch, so it's definitely not related to this PR.

R: @aaltay

R: @udim - I am mostly OOO this and next week. Please do not wait for me.
Please also consider cherry picking to the release, if the original PR is already in the release branch. (/cc @apilloud - could help.)

I think the Precommit test that's failing is flaky, but it's also failing on the master branch, so it's definitely not related to this PR.

Looks like this one: https://issues.apache.org/jira/browse/BEAM-12490

I'm just starting on RC1 as there are no blocking issues. Is this a release blocker? If so can you let me know and open a JIRA?

Squashed commits

Thanks!

codecov/patch is failing on this PR and the cherrypick. Is this a known issue?

I think it is just a diff coverage problem. The main culprit seems to be trigger.py, which only has 50% diff coverage. I don't think it should be a blocker, though, since it's basically just one line not under coverage, specifically this one: https://github.com/apache/beam/blob/5fb31eb11c5ad967ca3e674529f943527abb0872/sdks/python/apache_beam/transforms/trigger.py#L286

Thanks I filed BEAM-12505.


Do not work on Mac OS

??

Hello,
No. Only Windows&Linux are supported based on openhardwaremonitor dlls and lm_sensors libraries.
I do not know anything about MacOS systems, but if someone want to make a pull request...
Best regards

I find a workaround: https://github.com/oshi/oshi


Cannot read properties of null (reading 'removeAttribute') at ImageHandler.loadFile

When I try and upload an image, I am getting this error:
Cannot read properties of null (reading 'removeAttribute') at ImageHandler.loadFile.
I've had a look into the source code and set breakpoints. The problem seems to be this line:
this.loading.removeAttribute('class');.
I can see that loadingHTML() is called on instantiation when debugging.
The div with the id of __ID_SPLIT__.QUILL-LOADING is present in the DOM at the point of attempting to upload an image.
I can't figure out why the reference to loading is being set to null.
I have a component that allows users to create and edit documents. This issue only happens when I edit a document that already exists. There's no difference, as far as I know, other than the editor is programatically filled in when a user goes to edit a document. This is obviously causing an issue, but I can not for the life of me figure out why.

@tomdeakin-tootoot Did you figure out why this error is coming, I'm also having same issue.

For me, it seems like registering a module and getting a reference to the loading node happens before most of the structure directives like *ngIf. For instance, you have your entity to be retrieved from the server, and before you get it, you already registered ImageHandler, therefore you called his constructor which receives a reference to the loading node. It happens only once


more generalizable dhrift description text

we need to re-write the top box, currently it's just the old dhri text.
on the description


Init switch box merge to master

Simple SB test working.
New files added:
test_sb/
test_sb_wrapper_main.py
sb.vp
sb/
sb_wrapper_main.py
sb_wrapper.py
Existing file updated:
setup.py

Looks like you have some PEP8 violations in sb_wrapper.py, sb_wrapper_main.py, and test_sb_wrapper_main.py... you can see them in the Travis log

Can we also make the filename changes I mentioned above? Also sb.vp seems to be duplicated. It only needs to be in sb/genesis/sb.vp

Pull Request Test Coverage Report for Build 306

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 95.035%

Totals

Change from base Build 299:
0.0%

Covered Lines:
134

Relevant Lines:
141

💛  - Coveralls


Add new projects to partners page

[ ] MyBit Go
[ ] BattleMemes
[ ] whois0x.io (Pending clarification)

closing - duplicate


Text input ignores value attribute

Hey Jason, thanks for Preact, I love it!
I noticed a compatibility issue in Preact, when it behaves differently to React. The case is a simple component with input[type="text"] inside. No event listeners, no updates, just a static component:
class TextInput extends Component {
  render({ value }) {
    return <input type="text" value={ value } />;
  }
}

In React, input field ignores user input and remains empty (as it should). In Preact, input field accepts all user input.
Here are minimal test cases to compare Preact to React:

Preact - http://www.webpackbin.com/NJ_pr2zYW
React - http://www.webpackbin.com/EJthihMYW

Press "Save" button at the top to run the code.
Additional info:
Preact version: 5.6.0
Thanks!

Thanks @vdemedes!  This seems to be a side effect of Preact not overriding the browser's event handling.  I'm not sure how to proceed though, since that's one of the things that Preact intentionally eschews in order to remain as small and unintrusive as possible.  Maybe this is something that ends up needing to go into preact-compat?

I too have this issue. I have selenium tests running on IE11 and trying to fill a controlled input like this:
        <input
          onChange={e => this.setState({from: e.target.value})}
          ref={type}
          type="number"
          value={this.state.from}
        />

If I send "123", it will fill with "1". 2 and 3 being ignored. This seems to be a timer problem somewhere.
Sorry this is very vague I agree and I cannot reproduce the issue manually, only when using IE11 and selenium. But the react build works that's for sure.

@vvo does changing onChange to onInput cause all 3 characters to be accepted?

@vvo does changing onChange to onInput cause all 3 characters to be accepted?

I tried that and the result was the same, sometime 113 would be 11 or 13 but most of the time it ends up being 1 in the input.
Maybe if we wrote a test simulating very close browser manipulation we would see it. I cannot refrain from adding this:
When I read "Batching of DOM updates, debounced/collated using setTimeout(1) (can also use requestAnimationFrame)" on the preact website. I think: "WARNING WARNING WARNING!" :D

There are lots of tests in the suite that would fail if state batching didn't work as sync or tight async though - I've actually never had a bug show up relating to that (not to say it's impossible).
Try turning off batching:
import { options } from 'preact';

options.debounceRendering = f => f();

// or:

options.syncComponentUpdates = true;

Here's a fiddle that shows the effects of batching on controlled inputs via onChange:
https://jsfiddle.net/developit/ufvm71L5/

I've actually never had a bug show up relating to that (not to say it's impossible).

Do you also run the test suite on IE11?

Maybe that's just an issue of selenium not triggering the change events in a very clean way on the input on IE11. And somehow react solved it in their code maybe using some custom code. It's not worth it diving more in it (we solved it by changing the test a bit and adding a comment), sorry for interrupting

Ah good point, I skipped over the browser specific bit.  I just pulled it up (and modified it to fire synthetic events) in IE11 on SauceLabs and it seemed to work:
https://jsfiddle.net/developit/ufvm71L5/19/

Thought: I could have preact-compat's Component#setState() be synchronous?  Right now it's just preact's.

I am all in for trying that in my selenium test, I will try to do so tomorrow just to see if that would do it. but setState is asyn in react right? So this should already be good.

It is batched yeah, though the way preact batches will collect DOM updates as well.

I believe any remaining issue here has been corrected by the fix for #327. Anyone able to confirm?

I'm going to mark this as resolved for now, since the value pinning idea is unlikely to be feasible in Preact's size and the other DOM state issue seems to be resolved.  Shout if you think this should be re-opened!

Text input ignores value attribute

Preact basically has react's uncontrolled inputs model. This means the dom maintains the input's state, and  input values are free to change as the user interacts with them, regardless of what new props are coming in.
Most of the time this is what is needed. Sometimes, however, it is important to be able to override existing values based on new props. For example, clearing a form after successful submission. To accomplish this, we can bind inputs to state, and use setState when new props come in. For example:
export default class Input extends Component {
  constructor({ inputValue }) {
    super();
    this.stateFromProps(inputValue);
  }

  componentWillReceiveProps({ inputValue }) {
    this.stateFromProps(inputValue);
  }

  render(props, { inputValue }) {
    return (
      <input value={ inputValue } />
    );
  }

  stateFromProps = (inputValue) => {
    this.setState({ inputValue });
  }
}

@developit thoughts?

@thinkloop that's mostly true, though as of 6.3.0+ (including the just released 7.1.0) re-rendering an input will diff against its DOM state value.  The case where inputs are uncontrolled is only when you don't trigger a re-render in response to input.  I've found this is relatively uncommon, but let me know if you have a case where you're seeing it cause issues.  React does a lot of work to prevent inputs from accruing state at all (preventing input that isn't propagated into state through event handlers), but for a minimalist library like Preact that is just too much surface area.
I'm happy to discuss though, just it comes down to tradeoffs (like many things haha). I've found it best to re-render form fields in response to input anyway, which turns them into proper controlled inputs.

the case where inputs are uncontrolled is only when you don't trigger a re-render in response to input

You're right! :-P
How does this work? How does preact know if a re-render is coming and to therefore to control the input?
For example, how would the OP's demo be modified so that the input is controlled:
const { h, render, Component } = require('preact');

class TextInput extends Component {
  render({ value }) {
    value = value || 123;
    return (
      <input type="text" value={ 'tester' } onInput={ () => { bin.log('yo') }} />
    );
  }
}

render(<TextInput value="" />, document.body);

It works because the diff doesn't compare against the previous Virtual DOM tree, it compares against the DOM.  If the input's DOM state is out of sync with the tree, rendering pushes the value out to the DOM.

struggling with how to make a controlled component in Preact...
import { h, Component } from "preact"

class TextInput extends Component {
  state = {
    input: ""
  }
  render({}, { input }) {
    return (
      <input value={input} />
    )
  }
}

In React, <input /> value would be empty even when the user types, how could we do this in Preact? For example, I'm trying to limit user's input so no spaces allowed...

Attach an onkeydown listener. If it's not a space, update the state. Updating the state will then update your input value.

I dont know if this is the same problem but I ran into a weird case where my <input/> was not respecting the given value. I'm using preact-8.2.7 and preact-compat-3.18.0.
import React, { Component, PropTypes } from 'react'

import ErrorMessage from 'components/ErrorMessage'

import './index.sass'

export default class TextInput extends Component {
  static propTypes = {
    disabled: PropTypes.bool,
    className: PropTypes.string,
    onChange: PropTypes.func,
    onInput: PropTypes.func,
    onClick: PropTypes.func,
    type: PropTypes.string,
    name: PropTypes.string,
    value: PropTypes.string,
  }

  componentDidMount(){
    if (this.props.autofocus) this.input.focus()

    // THIS IS THE HACK THAT WORKED :(
    setTimeout(() => {
      if (this.input.value !== String(this.props.value)) this.forceUpdate()
    }, 10)
  }

  onChange = () => {
    if (this.props.onChange) this.props.onChange(this.input.value)
  }

  onInput = () => {
    if (this.props.onInput) this.props.onInput(this.input.value)
  }

  onClick = event => {
    if (this.props.onClick) this.props.onClick(event)
  }

  focus(){
    return this.input.focus()
  }

  render(){
    const {
      className = '',
      type = 'text',
      ...props
    } = this.props
    props.type = type
    props.onChange = this.onChange
    props.onInput = this.onInput
    delete props.onClick
    props.autoCapitalize = "none"
    props.autoCorrect = "off"

    return <div
      className={`TextInput ${className}`}
      disabled={props.disabled}
      onClick={this.onClick}
    >
      <div className="TextInput-wrapper">
        <input
          ref={input => { this.input = input }}
          {...props}
        />
      </div>
    </div>
  }
}

I hope this helps someone :(

@deadlyicon are you providing a value prop to the input? (can't tell from the code sample since props is dynamic)

@developit yes I am providing both a value and an onChange prop. I suspect this new bug behavior is a recent change in chrome but that's just a guess.

Still the same error in 10.4.0.

@dg-sserrano this is an old issue, could you make a new one with a reproduction. It seems to work for me https://codesandbox.io/s/epic-snowflake-w7rwi?file=/src/index.js

can you please link the new issue here so i can follow it too

@deadlyicon I think the issue you posted above should be fixed in Preact X (gave it a quick glance)


SIGSEGV fault in trie_get_node when running the parser multi-threaded

Hi there,
We are currently using libpostal + jpostal with spark to perform address parsing. We have hit an issue where libpostal SIGSEV errors when we have more than one executor.
We are really hoping someone might be able to look at this - currently we have a 12 hour address parsing process because we are only able to use one thread - and address parsing is something that is really well suited to multi-threading.
We have written a simple test case in Scala which shows the issue. From looking at the stack trace it shows the error is occurring in the C code (i.e. libpostal not jpostal) and it looks like it is within trie_get_node:
Stack: [0x00007f62a3eff000,0x00007f62a4000000],  sp=0x00007f62a3ffe438,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libpostal.so.0+0x20404]  trie_get_node+0x14

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 329  com.mapzen.jpostal.AddressParser.libpostalParse(Ljava/lang/String;Lcom/mapzen/jpostal/ParserOptions;)[Lcom/mapzen/jpostal/ParsedComponent; (0 bytes) @ 0x00007f62b51ab9c0 [0x00007f62b51ab960+0x60]
J 361 C2 com.quantexa.etl.AddressParserTester$.parse(Ljava/lang/String;)[Lcom/mapzen/jpostal/ParsedComponent; (39 bytes) @ 0x00007f62b51bfea0 [0x00007f62b51bfc60+0x240]
J 366% C1 com.quantexa.etl.AddressParserTester$$anon$1.run()V (44 bytes) @ 0x00007f62b51c5ca4 [0x00007f62b51c5280+0xa24]
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

Our test case is below. This is written in Scala but if hopefully it should be very obvious what is going on - the equivalent java code would be almost the same. If you need us to write this in java we should be able to. It is worth noting that the code below runs for a little while (20-30 seconds) before failing).
import com.mapzen.jpostal.AddressExpander
import com.mapzen.jpostal.AddressParser

object AddressParserTester {

  def main(args: Array[String]): Unit = {

    val address = "123 high street, london, sw11 6ln"

    for (i <- 0 until 8) {
      new Thread(threadParse(address, i)).start()
    }
  }

  def parse(fullAddressText: String) = {
    val e = AddressExpander.getInstance()
    val p = AddressParser.getInstance()
    val exp = e.expandAddress(fullAddressText)
    p.parseAddress(exp.head)
  }

  def threadParse(address: String, id: Int) = new Runnable() {
    def run(): Unit = {
      while (true) {
        println(id+": "+parse(address))
      }
    }
  }

}

Below is the full error log:
hs_err_pid8331.txt

Hi Jamie,
So firstly, the libpostal C library is definitely not thread-safe, and will likely not happen any time soon (the "social contract" with C is usually: if a library doesn't explicitly say it's thread-safe, don't use it from multiple threads).
In jpostal, all of the C calls are declared synchronized, which, as far as my understanding of Java's concurrency model goes, serializes calls to the JNI/C methods and prevents multiple threads from accessing them at the same time. So I'm a bit surprised to see threading bugs pop up on the Java/Scala side given that it's effectively single-threaded code. The idea there was simply to make jpostal safe to run in applications that are otherwise multithreaded, like a web server, etc. I can look into why that's happening, but generally if your goal is to parallelize libpostal calls, multithreading is not going to produce any speedup.
The first question to ask is: is libpostal single-threaded actually too slow? These are just from my back-of-the-napkin throughput tests and YMMV, but single-threaded libpostal should be able to do, worst case (long addresses in non-Latin scripts like Cyrillic or Han), about 5k addresses/sec on average with calls to both expand_address and parse_address. For Latin/ASCII addresses like the one above, the expand calls are about 3x faster than that (parsing is about the same). If it's taking 12 hours and libpostal is the only contributing factor in that, the data set would have to be at least 216M addresses per run. OpenAddresses globally is about that large, so it's not unheard of, but if the data set is smaller than that and there's more going on in the pipeline than just calls to libpostal, then it's probably a good idea to profile the entire single-threaded pipeline to see if there's anything else that can be improved.
The second question is: why not use multiple processes? There's often a bit of religion around this in the Java/JVM community that I don't particularly understand, not in the batch processing context anyway. I can certainly see a case for multithreading in libpostal, namely that there would only need to be one copy of the models in memory. Still, if the memory requirements are kept reasonably low (currently ~2B which I'm trying to reduce further) such that multiple copies can be run on beefier single-purpose machines, I'm not sure the appeal of threading justifies the development/productivity cost.
If running multiple shared-nothing processes is not an option due to JVM weight, etc. the options may be a little more bleak i.e. continuing to run single-threaded or considering a different language like Python, which will also run with Spark but for which the multicore concurrency model is processes not threads.
./al

Hi Al,
Thanks for getting back to me. I thought it would be useful to give you a bit more background on what we are doing as this provides a bit more context around the issue...
The data: We currently are processing a UK data set which has 65 million address records which need parsing. However we are about to get global data which we have been told contains 1bn records (it is not clear yet how many of these records will contain addresses but we can assume high hundreds of millions at least).
Our experience of Libpostal has been fantastic - we agree with you it is very fast and we love the way it works with so many different countries. The challenge for us is that the address parsing/cleansing is only one part of a much more complex set of data cleansing we are doing (in Scala on Apache Spark) - overall this is what takes the 12 hours on the 65m UK records. We are concerned that when we get the global data this process will end up becoming weeks.
However, one of the great things about data cleansing is that it is really easily parallelised. In spark there are the concept of executors and cores. These align with what you describe above as processes and threads. From your description above, it sounds like we should be able to parallelise using multiple executors (as these are different processes). However only being able to give each executor one core to work on is not the typical recommended way of running spark.
It was interesting that you expected Java to serialise calls to the JNI/C methods and prevent multiple threads from accessing them at the same time. Given the speed of libpostal it is fine that the call are serialised but there does seem to be some issues in the native code when we ramp up the threads. I suspect that we are hitting this issue simply because of the very high throughput of spark (and our little test rig above). We suspect that if you had a web server application with very high throughput you would see the same issue. If you were able to look into it that would be amazing but in the meantime we will try the multi-process approach.
When we do get the global data we may want to experiment with re-training the parser too as the data is given to us with some structure (city/state/postcode/country are all pre-parsed), but we can probably pick that up in another thread/offline!
Jamie

Ok, so it seems like that can be written as two different jobs with two different SparkConfs. The first job has num-executors=1, so effectively each machine is a single-threaded process (can still parallelize at the machine level), and just runs the addresses through libpostal and outputs them to a textFile. The second job does everything downstream from that and can use threads.
Re: the threading issue, two things came up while looking over the Java implementations again.

The Singleton pattern used was not thread-safe. It now uses the lazy-initialization holder pattern which is both performant and thread-safe.
Inspecting the bytecode from the compiled classes, it looks like monitorenter/monitorexit opcodes, which do the actual locking in the JVM, weren't getting produced by simply declaring the native methods synchronized. The two ways to do that seem to either be in a synchronized block on the Java side or with (*env)->MonitorEnter(obj) and (*env)->MonitorExit(obj) on the JNI/C side. I implemented the former as it's more standard and easier for people familiar with Java to read.

Try pulling the latest commit and let me know if that fixes the multithreaded test.
Re: re-training, I'm strongly recommending against training on private data sets, even large ones. Libpostal's designed to be an application-level library, not a generalized NLP utility for training custom parsers. There's nothing in the license that prohibits doing that, but I obviously don't want to be put in a position of solving everybody's data cleanup problems for free. That said, for researchers and others that want to dig in, this is one of the first open source NLP projects where a large quantify of training data is freely available and every step in the preprocessing pipeline is open-source, if fairly resource-intensive and sparsely-documented.
It should be fine to use the existing parser (there's also a much-improved version in development in the parser-data branch) on whichever portion of the address is not already pre-parsed in the 1B data set.

Assuming this fixed the threading bug?
There's a new singleton implementation in the Java binding which is also thread-safe (double-lock checking with volatile), but may want to check that this doesn't happen again. If not, I'll close the issue.

Closing

Hi Al. Yes this all working perfectly. Thanks for your help
Jamie


[Attempt #2] Add params.unpack functionality to ./in

This PR attempts to bring the project to feature parity with the concourse/s3 resource. With respect to the ability to uncompress archives retrieved from a remote blobstore via the params: { unpack: true } flag.
https://github.com/concourse/s3-resource#parameters

This code differs from the first attempt in that artifacts are pulled into the destination directory. The artifacts are then uncompressed in the same directory when the flag is passed; more closely mirroring the implementation of the s3-resource.
To the best of my scrutiny, the functionality (with both the unpack flag on & off) seems to work:

Thanks @aemengo. Do you mind adding some integration tests so we can check this new parameter behavior on a real scenario?

Thanks @aemengo. I will keep this on the master docker image some days until we can perform some testing, after that, I'll cut a new version.


sentry-sdk 1.37.0 tracebacks when eventlet is installed

How do you use Sentry?
Self-hosted/on-premise
Version
1.37.0
Steps to Reproduce
Reproduced on CentOS Stream 9, version 1.36.0 is fine:
$ pip install eventlet
Successfully installed dnspython-2.4.2 eventlet-0.33.3 greenlet-3.0.1 six-1.16.0

$ pip install sentry-sdk
Successfully installed certifi-2023.11.17 sentry-sdk-1.37.0 urllib3-2.1.0

$ python3 -c "from sentry_sdk.integrations import Integration"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/__init__.py", line 1, in <module>
    from sentry_sdk.hub import Hub, init
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/hub.py", line 8, in <module>
    from sentry_sdk.scope import Scope
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/scope.py", line 7, in <module>
    from sentry_sdk.attachments import Attachment
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/attachments.py", line 5, in <module>
    from sentry_sdk.envelope import Item, PayloadRef
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/envelope.py", line 7, in <module>
    from sentry_sdk.session import Session
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/session.py", line 5, in <module>
    from sentry_sdk.utils import format_timestamp
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/utils.py", line 1241, in <module>
    HAS_REAL_CONTEXTVARS, ContextVar = _get_contextvars()
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/utils.py", line 1211, in _get_contextvars
    if not _is_contextvars_broken():
  File "/usr/local/lib/python3.9/site-packages/sentry_sdk/utils.py", line 1166, in _is_contextvars_broken
    greenlet_version = parse_version(greenlet.__version__)
NameError: name 'parse_version' is not defined

Expected Result
No traceback.
Actual Result
Traceback.

Fixed in 1.37.1 which will be out in a couple minutes -- thanks again for reporting!

Thank you for the fix!


Multiseries bar line chart is not available

Steps to reproduce the problem: There is no multiseries bar option available only single bar/stacked bar options are available.
Environment (component version number, Browser (including version), operating system, hardware, etc): All
Screenshots (optional, but very helpful): Attached herewith screenshot representing multi series bar comparing the multiple X axis values. There is no feature as such in px-vis which allows me to plot this basic chart. Please let me know if you need more information.

The px-simple-bar-chart isn't meant for this use case, but I believe @nonmetalhail had started working on a more fully featured px-vis bar chart component. It's not currently a priority in our backlog.

There is a vis bar component. No chart is planned yet. You can create your own using the vis components.

use px-vis-bar-chart for this


Locations/entries/date - now takes user local time;

Resolved problem of displayed value, unix epochs and formatting for the input of type date.
Works well for me - I see my local time and the unix epoch saved in the db is correct.
Let me know if it works for you as you are both in different timezones.

https://github.com/GEOLYTIX/xyz/issues/966


Zip Release

Can you upload the last release in zip/rar format and not only with the autoinstaller version? most people dont want a installer for this, just a folder.
It will be helpfull/faster for some people.
Thanks.

Fair point.
For now you can just download source, instal nodejs and run "npm install" to install and "npm start" to run


communication with ROS2 and custom message build procedure

Hello,
I recently installed this package and everything seems to be working correctly but the topic being published/subscribed in the example script do not seem to be detectable by my local ROS2 installation.
Did i miss any steps?
Few information that might be useful:
I'm using Ubuntu 22.04 with ROS2 humble.

I have sourced ROS2 in my ~/.bashrc and ~/.profile
I dont' have any external connection set up (Like unity-robotics-hub) in the current project in which I'm testing this.
I installed in --standalone mode so not starting unity editor from inside a ROS sourced terminal. Just starting it normally from launcher shortcut.

Also, please could you tell me what is the procedure to include and use custom ROS2 messages that reside in local repository in my ROS2 workspace?

Can you try adding Application.runInBackground = true; inside your void start() ?
I had similar issues on Windows with Unity - ROS2 Humble.

For custom messages, I am not sure if the procedure is different but I have been following these steps  to add a custom message on Windows. We have to rebuild the ROS2 Unity asset each time I add a new custom message.

For custom messages, I am not sure if the procedure is different but I have been following these steps to add a custom message on Windows. We have to rebuild the ROS2 Unity asset each time I add a new custom message.

hello, can you teach me how to add custom messages?What is the writing format?Thanl you very much!

@Hsaisai are you asking about adding a custom message in ROS2 on Ubuntu, ROS2 on Windows, or ROS2 inside Unity on Windows?

@Hsaisai are you asking about adding a custom message in ROS2 on Ubuntu, ROS2 on Windows, or ROS2 inside Unity on Windows?

ROS2 inside Unity on Ubuntu.


Add support for CPLEX v12.7

According to dep/builds.jl, the current version of this module does not support CPLEX 12.7

This requires regenerating src/full_defines.jl and checking for incompatibilities between versions.

@joehuchette I shared the file with you; will you have time to get this issue fixed before you go away?


small fixes

just before v0.5

Codecov Report
Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (ed7e3f1) 96.42% compared to head (ad9335f) 96.37%.
Report is 15 commits behind head on main.

Files
Patch %
Lines

src/rand.jl
92.30%
2 Missing :warning:

src/groups.jl
90.90%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #52      +/-   ##
==========================================
- Coverage   96.42%   96.37%   -0.06%
==========================================
  Files           5        6       +1
  Lines         112      138      +26
==========================================
+ Hits          108      133      +25
- Misses          4        5       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add forceKill option

Add an forceKill option so the process can only be killed by force to simulate that kind of process

Also can we get rid of node 4?

Yes, but I'll do that after merging this, to keep it focused.


support equal binary predicate on zone map filter

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Currently, we can't apply equal binary predicate on zone map filter because it is not monotonic, you can see more details in the previous PR. In fact, = is equivalent to >= and <=, both >= and <= are monotonic, so we can apply = on zone map filter by rewriting it to >= and <=. After this change, some predicates like year(col) = 2000 will have a chance to use zone map filter.
Other changes in this PR:

add a new session variable enable_rewrite_zone_map_predicate to control whether this policy is turned on, which will facilitate our comparison test.

[FE PR Coverage check]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%

:large_blue_circle:
com/starrocks/planner/OlapScanNode.java
2
2
100.00%

[FE PR Coverage check]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered line
new line
coverage

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%

:large_blue_circle:
com/starrocks/planner/OlapScanNode.java
2
2
100.00%


Typo Correction in MicroPython Display Doc

Minor typo correction.

Good spot, thank you!

No problem!


Add T9 decoder

Hey Hackers of this spoopy month! 👻
Welcome to the Ciphey repo(s)!
This issue requires you to add a decoder.
This wiki section walks you through EVERYTHING you need to know, and we've added some more links at the bottom of this issue to detail more about the decoder.
https://github.com/Ciphey/Ciphey/wiki#adding-your-own-crackers--decoders
https://www.dcode.fr/t9-cipher
https://en.wikipedia.org/wiki/T9_(predictive_text)

Can I please contribute for this?

Sure! Here's our guide on adding decoders and crackers: https://github.com/Ciphey/Ciphey/wiki/Adding-your-own-ciphers
This should be a decoder. I've assigned this issue to you. You can get help and support in the Discord if you need it.

Hey I could help with this if you need it, sounds pretty interesting.

Hey I could help with this if you need it, sounds pretty interesting.

Yes please do! Come join the discord.
I have a working version of the decoder on repl: https://repl.it/repls/AccuratePrevailingUnits#main.py
Pretty sure all we need to do is find a good english dictionary to use for it which somebody else is working on and to integrate it with ciphey which I really don't know how to do.

Hey I could help with this if you need it, sounds pretty interesting.

Yes please do! Come join the discord.
I have a working version of the decoder on repl: https://repl.it/repls/AccuratePrevailingUnits#main.py
Pretty sure all we need to do is find a good english dictionary to use for it which somebody else is working on and to integrate it with ciphey which I really don't know how to do.

Ah I see. My Discord username is Vismov.

Hi, I would like to work on this. Please assign it to me. Thanks


optional defmt and ufmt support

Add optional defmt support, in particular derive defmt::Format for reports

See heapless for example


Youtube-dl reports a youtube.com video doesn't have automatic captions while it does

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2019.11.05
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-s', '-v', '--list-subs', 'wtpIu8cq4b4']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2019.11.05
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17134
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[youtube] wtpIu8cq4b4: Downloading webpage
[youtube] wtpIu8cq4b4: Downloading embed webpage
[youtube] wtpIu8cq4b4: Refetching age-gated info webpage
WARNING: video doesn't have subtitles
[youtube] wtpIu8cq4b4: Looking for automatic captions
WARNING: Couldn't find automatic captions for wtpIu8cq4b4
wtpIu8cq4b4 has no automatic captions
wtpIu8cq4b4 has no subtitles

Description
As seen from the log, youtube-dl says the video doesn't have automatic captions, while it does; they can be enabled in the youtube.com player on https://www.youtube.com/watch?v=wtpIu8cq4b4 by clicking on the corresponding icon.

@dstftw Could you please specify what issue my one duplicates?


case insensitive de-duplication

Testing #137668
with two settings - a setting and A setting, a setting does not show up. I'd expect it to be shown before the upper case one.

this happens even if they're differentiated via an order property

I'm unable to repro. For me, I get two settings that say "A setting".

I am also getting two settings that say "A setting", though I am wondering if that is expected?
If I define two settings both called "A setting" then I get an warning that there is already a registered setting.
But in case they are using different cases "A setting", and "a setting" both are registered though they look the same.

Here's exactly what I'm doing to repro:

TODO:

[ ] Figure out where in the code the setting labels are being capitalized. I have a feeling it's at the same place that settings are being wordified in general, so I'm not sure if we want to do anything there. Even if the Settings editor is able to de-dup the setting, the settings.json file would still allow the user to edit the different settings, leading to an inconsistency.
[ ] Since there's already an "A setting" under the "B configuration", the "A setting" under the "A configuration" isn't registered, since to the extension, both settings have the same name. Therefore, extension authors should make sure to give their settings a namespace. I plan on placing that recommendation in a doc update. The editor also warns the extension author though: for me at least, when debugging the extension with the repeated settings, I get a notification that says "[undefined_publisher.settings-editor-tocsort]: Cannot register 'A setting'. This property is already registered."

interesting - I don't a notification, but I do see that warning in the console.
abstractExtensionService.ts:927 [meganrogge.settings-editor-tocsort]: Cannot register 'A setting'. This property is already registered.
_logMessageInConsole @ abstractExtensionService.ts:927
abstractExtensionService.ts:927 [meganrogge.settings-editor-tocsort]: Cannot register 'a setting'. This property is already registered.
_logMessageInConsole @ abstractExtensionService.ts:927
abstractExtensionService.ts:927 [meganrogge.settings-editor-tocsort]: Cannot register 'A setting'. This property is already registered.

If it's a warning, I expect that the notificationService would've logged it, too. https://github.com/microsoft/vscode/blob/e9c1057fbcdd37803e85ffc7e92b2c1379ef75a6/src/vs/workbench/services/extensions/common/abstractExtensionService.ts#L916-L917
Other than the docs change in vscode-docs above, I don't plan on adding any other changes.


"Chipmunk" voice in Chrome (Mac desktop v.61)

Hi Daniel,
Many thanks for this. It seems that the voice is sped up on Mac Chrome (v.61) (example audio).
Update: Same Chipmunk effect on Mac Firefox (56)
Also, the voice seems to be slowed down on iOS Safari (11.0.1 & 11.0.3)
Any idea how to fix this?
Cheers,
Paul

Have you checked to see what sample rate your system uses? The demo uses a sample rate of 44100Hz by default.

I assume this would vary according to user device? Is there any way to automatically detect this and adjust settings accordingly?

Yes I'm sure there is. However as stated in the README this is a working demo/proof of concept rather than a reusable plugin, so I will not be doing any work of this nature for now, sorry.

Hi Daniel, thanks for that. I understand, and will close this issue (and the other one).
Best,
Paul


Need a way to run multiple listeners in swarm (mode) to avoid SPOF.

A common setup with prod, dev, etc. environments requires the ability to run multiple swarm listeners.
In such a setup, each swarm-listener will be connected to a separate proxy and set of backend services, but because the docker socket exposes all information, it will notify the proxy of irrelevant containers.
The docker-native fix for this would probably be to filter on labels.

You really keep prod and dev in one swarm cluster?!?

@alexanderkjeldaas I just added an environment variable DF_NOTIFY_LABEL. It's default value is com.df.notify. If you change it to something else (e.g. com.df.notifyDev). You can use it to distinguish which services should be notified with one or the other swarm-listener (or both).
Can you please try it out and let me know whether it fixes this issue. Please make sure to use the release 1.25.
I must stress that @s4s0l is correct. Even though you can use the environment variable DF_NOTIFY_LABEL to tell each swarm-listener which services should send notification requests, it is a bad practice to keep prod and dev in the same cluster.

@vfarcic why is it bad practice to keep prod and dev in the same cluster?
To me it obviously is not, given that the swarm mode is tied into DNS and keeping separate clusters implies a policy on not being able to use any public DNS shared between the two environments.
But it's fairly irrelevant whether it is good practice or not - I think we can agree that docker flow shouldn't require a particular policy.

@alexanderkjeldaas The reason for such a statement about separation is more related to resources and human errors. For example, a test service might have a memory leak that will affect production services running inside the same cluster.
However, as you said, it's not DFPs job to decide whether there should be a separation or not.
Please let me know if the environment variable DF_NOTIFY_LABEL solves your problem.

It seems to solve the problem, but this requires labels to be specified as an array, because I need syntax like:
        - "com.df.notify${STACK_NAME}=true"

The key part of a key/value set is not going through the docker-compose environment variable expansion stage.

@alexanderkjeldaas I probably missunderstood your requirements. Let me explain the idea that I implemented.
swarm-listener-1: env. var DF_NOTIFY_LABEL=com.df.notify1
swarm-listener-2: env. var DF_NOTIFY_LABEL=com.df.notify2
service-1: label com.df.notify1=true
service-2: label com.df.notify2=true
service-2: labels com.df.notify1=true com.df.notify2=true
With such a setting, swarm-listener-1 would send reconfigure notifications to service-1 and service-3 while swarm-listener-2 would send reconfigure notifications to  service-2 and service-3. Each of those listeners could have a different address of a proxy.
As a result, one proxy would get service-1 and service-3 while the other would have service-2 and service-3.
Can you please let me know if that solves your problem or I misunderstood the use case?

My problem is solved, it's just that the name of the label is the variable, so key/value syntax can't be used.
If the value of the label was used instead, then it would be
swarm-listener-1: env. var DF_NOTIFY_LABEL=foo
swarm-listener-2: env. var DF_NOTIFY_LABEL=bar
service-1: label com.df.notify=foo
service-2: label com.df.notify=bar
service-2: labels com.df.notify=foo,bar
which conveys the same information, but allows for variable expansion in the docker-compose.yml file.

@alexanderkjeldaas That is a good idea. Would you mind opening a new issue. That way we can start fresh, treat it as an improvement over the existing feature, and track it more easily.


[5.3.3] Normalizers with HTTP requests

Greetings,
I'm trying to make a normalizer that makes an HTTP request (I don't care if it has to be asynchronous or not) to update another field with a value obtained from the server. The value gets retrieved somehow but the value never ends up showing (well, only if I "pause" the application with an alert). Is there a way to do this? I don't care if it has to be synchronously.
These are the two approaches I've taken:
export function capital(value, previousValue, allValues, previousValues) {
   var res;
   if (allValues.country !== allValues.country) {
      axios.get(config.url + "/capital/" + allValues.country).then((data) => {
          res = data.data.capital;
          return res;
      });
   }
}

export function capital(value, previousValue, allValues, previousValues) {
   var res;
   if (allValues.country !== allValues.country) {
      axios.get(config.url + "/capital/" + allValues.country, {params: {async:false}}).then((data) => {
          res = data.data.capital;
      });
   }
  return res;
}

Can anyone help me please?
Thank you very much

Because this issue saw almost no activity for more than a year, I'm closing it.

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain biomassiv.es has exceeded the max emails per hour (109/100 (109%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from o4.sgmail.github.com ([<IP_ADDRESS>]:45477)
by chi-server32.websitehostserver.net with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128)
(Exim 4.89)
(envelope-from<EMAIL_ADDRESS>id 1eMimc-002ON1-KD
for<EMAIL_ADDRESS>Wed, 06 Dec 2017 17:07:18 -0600
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com;
h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe;
s=s20150108; bh=dsVxEQIrxUvzh/OtzwG5a09em28=; b=EGM2hDcDbJeS05rH
vXpKLQ57VDfHculF+Y0zrBSAHyGsP3mTersca0Op+OhUP0lvcl7jfMnUaD6gs+mJ
ilx8gTPksYkS8hGiO00k4KY5P0vTVSZzlLsHpatdhddSxbljGKBX2aAsthQPiaJW
Uqa/Cn8ecFwfk8xPsnIeNiGYzJk=
Received: by filter0157p1iad2.sendgrid.net with SMTP id filter0157p1iad2-782-5A2877FF-3
2017-12-06 23:06:39.036450853 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [<IP_ADDRESS>])
by ismtpd0021p1iad2.sendgrid.net (SG) with ESMTP id r5opscjeSuWFhMXvPmVm9w
for<EMAIL_ADDRESS>Wed, 06 Dec 2017 23:06:39.069 +0000 (UTC)
Date: Wed, 06 Dec 2017 23:06:39 +0000 (UTC)
From: Gustavo Henke<EMAIL_ADDRESS>Reply-To: erikras/redux-form<EMAIL_ADDRESS>To: erikras/redux-form<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [erikras/redux-form] [5.3.3] Normalizers with HTTP requests
(#2137)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a2877ffa2f8_b703fe634ee2f2811432e";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gustavohenke
X-GitHub-Recipient: biomassives
X-GitHub-Reason: subscribed
List-ID: erikras/redux-form <redux-form.erikras.github.com>
List-Archive: https://github.com/erikras/redux-form
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AELU4saO-sx1VY8mNkQW1v4-ofuPpdXcks5s9x3_gaJpZM4K1JFh
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>X-SG-EID: ZlaDthyue/4HG+EgTb7JoZYs48JNb2iQtCcPV6oIs9X89JJe+ENw57oPl6vfBailT5cuZTo+YyEpWW
l/iqqRsHPT63bIikV9uuV6xD2iyj/TM9WX9+7KgDLnes5cnsk7N6RG+F5EQaonwteW0Se6WYfKeNDE
8+YyY3Xbj21zPRsb43dv3NR4x8YNNTFPbaxJvfmcUqdZXfUkFZPcShsmVg==
----==_mimepart_5a2877ffa2f8_b703fe634ee2f2811432e
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Because this issue saw almost no activity for more than a year, I'm closing it.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/erikras/redux-form/issues/2137#issuecomment-349805020
----==_mimepart_5a2877ffa2f8_b703fe634ee2f2811432e
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Because this issue saw almost no activity for more than a year, I'm closing it.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5a2877ffa2f8_b703fe634ee2f2811432e--

This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a temporary error. The following address(es) deferred:
<EMAIL_ADDRESS>Domain biomassiv.es has exceeded the max emails per hour (108/100 (108%)) allowed.  Message will be reattempted later
------- This is a copy of the message, including all the headers. ------
Received: from github-smtp2-ext3.iad.github.net ([<IP_ADDRESS>]:58922 helo=github-smtp2b-ext-cp1-prd.iad.github.net)
by chi-server32.websitehostserver.net with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
(Exim 4.89)
(envelope-from<EMAIL_ADDRESS>id 1eMimb-002OMN-P1
for<EMAIL_ADDRESS>Wed, 06 Dec 2017 17:07:17 -0600
Date: Wed, 06 Dec 2017 15:06:38 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
s=pf2014; t=1512601598;
bh=Y6T4cK6jzwDLF3coxohV5gYrmz2BKoG2JkMsjARvxQw=;
h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
List-Archive:List-Post:List-Unsubscribe:From;
b=OdSLwZlUKBuR+jl2bKyz8Sod23kpz0u3ZQGOambJi+9zYJeUy3bVD0jL4DzIZPqCR
WrgAnu33Xjmbxt7e8GeQt2LG1rKWoSLVQu1EKGWnNfD6kgkKUilg4O0pXf+sQ+UmM4
KeU/h91fSynznuKEE2SqegzsbmSqNHLO0FA907Kk=
From: Gustavo Henke<EMAIL_ADDRESS>Reply-To: erikras/redux-form<EMAIL_ADDRESS>To: erikras/redux-form<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>In-Reply-To<EMAIL_ADDRESS>References<EMAIL_ADDRESS>Subject: Re: [erikras/redux-form] [5.3.3] Normalizers with HTTP requests
(#2137)
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_5a2877fe3870c_4e433fc562e88f3420065";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gustavohenke
X-GitHub-Recipient: biomassives
X-GitHub-Reason: subscribed
List-ID: erikras/redux-form <redux-form.erikras.github.com>
List-Archive: https://github.com/erikras/redux-form
List-Post<EMAIL_ADDRESS>List-Unsubscribe<EMAIL_ADDRESS>https://github.com/notifications/unsubscribe/AELU4jN0o6icFWr3PwTkAzCUeB1cPibfks5s9x3-gaJpZM4K1JFh
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address<EMAIL_ADDRESS>----==_mimepart_5a2877fe3870c_4e433fc562e88f3420065
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #2137.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/erikras/redux-form/issues/2137#event-1375875476
----==_mimepart_5a2877fe3870c_4e433fc562e88f3420065
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Closed #2137.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

----==_mimepart_5a2877fe3870c_4e433fc562e88f3420065--