Accessing the WSO2 API Manager using a subdomain

Hi,
I have installed the Kubernetes Operator with Scenario 7 for WSO2 API Manager.
I have setup a subdomain for my Server where the WSO2 API Manager is hosted in Kubernetes with a subdomain like this abc.xyz.com. However when I login using http://abc.xyz.com:34001/publisher , I still get redirected to http://wso2apim:34001/xxxxxxx&xxxxxxxx using a redirect URL which fails for me. Only after I replace the "wso2apim" with my subdomain or my IP address, the login is successful and I can see the home page.
How to configure WS02 API manager in Kubernetes properly so that there can be a smooth browsing experience? I am also using NGINX Ingress Controller as given by MicroK8S.
Please let me know.
-SJ

@pubudu538 Isn't this because of the configurations we've done in artifacts? Your defined hostname will get updated properly in the Ingress Host field right? @jnsrikanth


lightning: copy best model

Update per https://github.com/iterative/dvclive/pull/649#discussion_r1285904791. @daavoo I think this is all we need for consistency with huggingface for now. WDYT?

Codecov Report
Patch coverage has no change and project coverage change: -0.03% :warning:

Comparison is base (ee7968b) 88.33% compared to head (872b98d) 88.30%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #659      +/-   ##
==========================================
- Coverage   88.33%   88.30%   -0.03%
==========================================
  Files          43       43
  Lines        3138     3139       +1
  Branches      279      279
==========================================
  Hits         2772     2772
- Misses        324      325       +1
  Partials       42       42

Files Changed
Coverage Δ

src/dvclive/lightning.py
0.00% <ø> (ø)

tests/test_frameworks/test_lightning.py
6.06% <0.00%> (-0.04%)
:arrow_down:

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


Widget preorder is not displayed properly

Steps to reproduce
Steps:

Login to Zafira
Open dashboard
Select "New Widget"
Click on "MILESTONE DETAILS"
Click on "PASS RATE"

Actual behavior

https://www.dropbox.com/s/at7lbtsomu7xe56/online_widget.mp4?dl=0
Expected behavior

Environment
ui v.1.29.RC2 | server v.4.1.82.RC5 | client v.4.1.65

out-of-dated


Rework repo buttons

Replace "New PR" and "Go to File" button with Icon Button
Move all "Add File" actions into a dropdown button
Remove most custom styling of clone buttons

Buttons are now all equal height, mobile layout wraps gracefully.
Fixes: https://github.com/go-gitea/gitea/issues/13671
Replaces: https://github.com/go-gitea/gitea/pull/20375

Maybe should backport this into 1.17. I think all these green "Add file" buttons there are a eyesore.

So unfortunately there's still a way to get this to totally break:

Did a few more fixes:

Added margin back below subfolder path
Made branch button render correctly without JS, eliminating the layout shift when JS loads
Remove "Add File" button in subtree view, it seems to provide no value there.

Looks cool but I think it would better to stick a named class on these things as the string of 2-letter codes as a classes - all of which use !important seems likely to cause trouble.

I like to keep the CSS small and these helper they target a single element with a single CSS rule, that can't cause issues, the indent is clear.

I do wonder about whether dropping the New Pull Request label from the new pull request button makes it a bit difficult to see - previously it was pretty clear how to create a PR from a branch

Guess it is fine. My initial idea was to remove this button completely. But like it is now, it takes up little space so I kept it.

So unfortunately there's still a way to get this to totally break:

Hmm, I guess long branch name can be ellipsed there to prevent it.

Added truncation for long branch name:

Another slightly related fix included: When clicking the clone URL input, the whole URL is selected. Sometimes one only wants to select part of the URL. I changed the handle to focus so manual selection after first click is still possible and this matches GH behaviour as well.

Rebased, squashed and added one more commit which brings margins in-line and added a few css rules for wiki only.

Maybe should wait a bit until we have a few translations before backporting.

Shoul be ready to merge, CI failure is unrelated.

:rocket:

🚀

please backport

Release branches don't receive translation updates, so I think it'd be best to wait a bit until add_file has some translations on main, then backport along with those.


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1769 ms

Resolved: Bofrost.be performance has improved in 534a558.


wrong description of the flow

This article is actually describing the OIDC front channel logout mechanism as described in https://openid.net/specs/openid-connect-frontchannel-1_0.html but the picture and the explanation of the image depicted describe the OIDC back channel logout functionality using HTTP POST.

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

ID: 28b13b4f-8891-6c46-f853-1c38612062dc
Version Independent ID: 392b7a23-ac96-105d-44e1-063a08d557f1
Content: Single log-out for OpenID Connect with AD FS
Content Source: WindowsServerDocs/identity/ad-fs/development/ad-fs-logout-openid-connect.md
Product: windows-server
Technology: identity-adfs
GitHub Login: @billmath
Microsoft Alias: billmath

Thank you for submitting this issue.  Unfortunately, due to high volumes I was unable to respond to this in a timely manner.  At this point, I am going to close this due to it's age and the possibility that it may have been addressed.  If this is still a problem, please consider submitting a new issue.  Thank you.
#please-close


Open a chest with Enhanced Block Entities crashes Minecraft

Mod Name
Enhanced Block Entities
Mod Homepage
https://github.com/FoundationGames/EnhancedBlockEntities
Describe the bug
Open a chest with Enhanced Block Entities crashes the game
Steps to reproduce
Open a chest with Enhanced Block Entities crashes Minecraft
Logs
https://mclo.gs/INtwVli
Additional context
No response

Fixed in FFAPI 0.87.0+1.9.2+1.20.1


Code refactoring on the logic of taking message from queue.

The logic of taking message from message queue was messy. For example,
the leader and follower need to filter and process certain messages in
getMessage method, and so does FastLeaderElection. This results in
duplicate code and makes the intention of the code unclear(code needs to
deal with different kinds of messages just in one method). Refactoring
the code so that we have different kinds of message filters and each
filter filters and processes certain types of messages. This makes the
logic clearer and code reuse better.

hey @m1ch1  Can you take a look when you have time?


[DO NOT MERGE] Periodic task

Define task as port_driven.

The last commit makes also the Task fd_driven.
It does not go to timeout exception anymore. Ready to merge.
Just a remark, in case there is no data in the file descriptor or in the port to trigger the task, the updateHook is called every io_read_timeoutperiod.

The last commit makes also the Task fd_driven. It does not go to timeout exception anymore. Ready to merge.

OK, so if I get it right, what fixed your timeout is to call fd_driven after the port_driven ??????

?
Isin't the task supposed to be fd_driven OR port_driven? What am I missing?

What am I missing?

It's supposed to be port_driven AND fd_driven

OK, so if I get it right, what fixed your timeout is to call fd_driven after the port_driven ??????

Yeah, I just copy and past the way it's done here https://github.com/rock-drivers/drivers-orogen-iodrivers_base/blob/master/iodrivers_base.orogen#L45, defining fd_driven after port_driven.
Looks like doing that way, the timeout doesn't calls the exception, but instead call the updateHook and reinitialize the time counter.

The thing that doesn't feels right to me, is the io_read_timeout triggering the updateHook, what in practice turns the task periodic when there is no data (in port or in FD), but there is no documentation on that explain this behavior.
In case the io_read_tiemout > io_status_interval, the last is completely irrelevant, once the io_status port (and other status ports as well) that should have a particular periodicity, is not respected.

io_read_timeout triggers a timeout because iodrivers_base::Task is setup to time out on that (https://github.com/rock-drivers/drivers-orogen-iodrivers_base/blob/master/tasks/Task.cpp#L70). One can override this in their configureHook. I won't comment on "it's not documented".
The reason for trigger can be checked with the underlying activity's hasTimeout() call, but this should NOT be needed.
This is why processIO exists as well, to ensure that whatever triggers the task the driver won't go into exception because of missing data. Note that it is important that a particular task does not require a certain triggering behaviour, as one changes triggers on various systems (e.g. changing to pure periodic is common)

Looks like doing that way, the timeout doesn't calls the exception, but instead call the updateHook and reinitialize the time counter.

I'm going to have to verify what's really happening there ....

Looks like doing that way, the timeout doesn't calls the exception, but instead call the updateHook and reinitialize the time counter.

I'm going to have to verify what's really happening there ....

In the meantime, feel free to merge.

:+1:


nixos/systemd-oomd: avoid unintentionally creating the systemd-oomd u…

…nit if it shouldn't exist
Description of changes
i disabled systemd-oomd on a system and noticed an invalid systemd service still existed... did a quick search and found this to be the cause
haven't tested, but this is pretty simple... i assume tests will validate
inadvertently introduced in https://github.com/NixOS/nixpkgs/pull/203596

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Drive-by: Is it time that we stop supporting hybrid cgroup hierarchy by the way ? I think every major distro has dropped support

Drive-by: Is it time that we stop supporting hybrid cgroup hierarchy by the way ? I think every major distro has dropped support

This PR looks good, let's merge it. Can you open another issue about dropping unified cgroups? It might be more controversial and it makes no sense to delay this PR on the discussion.


Delete dontCacheBustUrlsMatching.html

R: @philipwalton
Deleting the lowercase version of the filename.

Whoops!
There were 1 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/tools/workbox/_shared/config/single/dontCacheBustUrlsMatching.html - Unable to read file, was it deleted?

:tada: This has been pushed live to https://developers.google.com/web/


swift: using builder APIs

part of https://github.com/envoyproxy/envoy/issues/33161

/retest

FYI my WIP "move a few other files over" PR is in the second push but I gave up on debug via CI.  May be a useful starting point for follow-ups, may not.
Generally though

add test server to buildfile
set up and tear down test server
change to http scheme, localhost:port authority
"replace config" <-- gets complicated to do right


[ESP32] Make partition name configurable for chip namespaces

Problem

Right now all the chip factory data is read from partition labeled with "nvs", no way to read factory data another partition

Change overview

Added config options to configure the partition for the chip namespaces, default is "nvs"

Testing

Manually tested, after flashing an application binary, flashed nvs binary image containing discriminator, spake2p iteration, spake2p verifier, spake2p salt. Provided the same discriminator and passcode to chip-tool for commissioning, commissioning success.

/rebase


Image latest fixes a buffer overflow

See https://metacpan.org/release/TONYC/Imager-1.025/source/Changes

Can we verify if this has a security impact somehow? If so, it should have a CVE

The delightfully complete bug-report indicates that this was over-running a
buffer in Malloc heap, not a C buffer on the main stackframes, so any RCE
exploitation will be harder than a classic C buffer overrun. (And stomping
the malloc block headers gets detected because in the versions repored it
wasn't totally optimistically optimi[zs]ed. Mac perl even had a checksum,
nice!)
I suppose there might be a FastCGI or similar web-server process somewhere
using this module that could be DDOS'd by uploading this image repeatedly,
crashing each worker. But that hypothetical DDOS isn't a great basis for a
CVE without a demonstration or actual impact?
On Sun, Nov 17, 2024, 12:23 Stig @.***> wrote:

Can we verify if this has a security impact somehow? If so, it should have
a CVE
—
Reply to this email directly, view it on GitHub
https://github.com/briandfoy/cpan-security-advisory/issues/167#issuecomment-2481391730,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABVF6CVV6KASCFRICYNYFT2BDGKFAVCNFSM6AAAAABR6BKDR6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBRGM4TCNZTGA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I don't think it's a hypothetical security impact. An image file causes it to crash, hence the bug report. Potential for Denial of Service, even if RCEs are difficult. So I think it's better to issue an advisory. I would rather err on the safe side.

Added report in fa9491e88cd704179e93aa1adc14efd3e569f3b5 . For the CVE, you'll have to talk to the CPAN Security Group.

CVE has been requested

This is CVE-2024-53901

Where do you allocate CVEs from? The  last time I requested one from mitre it took four weeks to get it.


Add code-test for reporter output

Github Markdown reporter was broken (as described at #4560) but the build was still green at PR #4559
I believe we should have a code-test that ensures generation of reporters output is not broken (process exit code is zero and a non-empty file - such as fb-report.md or fb-report.html - is created)

For "process exit code is zero" we can use --error-code-on ERROR so that we avoid getting non-zero exit codes due to non-passing checks, as we want to only detect problems on actually emitting the reporter files, regardless of the quality of the sample fonts used on the code-test.


Web WASM: "RuntimeError: illegal cast at InsertStatement.insert

I got following exception when trying to insert new item to database

Thanks for the report - this looks related to https://github.com/simolus3/drift/issues/3194. You could try using the current development version and see if that fixes the issue. I will also release a drift version with containing the fix this weekend.

Should be fixed in drift version 2.20.1.

Confirm the issue is fixed in the version 2.20.1


Configure script does not seed admin seeder

When a use runs php configure install, It is supposed to seed data for the admin users but it doesn't.

Fixed


Fix docstring to correct method parameter name

Small tweak to get the docstring to match up with the name in the parameters.

thanks!

PS: congratulations! I think yours is the first publicly contributed PR to get merged ;)

Heh, it's an honor.  I'm working on a to-be-open-sourced storybook creator tool, and I'm very excited about all this -- I've got some hacks in place for prepping blurred noise in a masked init_image for improving outpainting quality (as my tools support building out a large story landscape on an infinite fabricjs canvas), and am now getting good local visual coherence, but still lacking in overall semantic cohesion, so I'm eagerly awaiting the inpainting-optimized model version that's rumored to be in training.


Payment lib footprint

Hello,
As far as i see, the payment lib is used only for checking card type. This is done with a simple array in this lib (https://github.com/jessepollak/payment/blob/master/src/index.coffee#L5-L102). What do you think about integrating this inside `react-credit-card' ?
This would avoid the cost of QJ and payment. Currently those libs are bundled and almost not used ... tree shaking is impossible with those coffee generated files.
Cheers

It's not like new credit cards format comming out every days ? right ?


don't use zlib-ng's -Wl,--version-script in tests

lld 18 errors when a version script assigns a version to a symbol that
is not defined in the object files. Therefore configure scripts should
not use the -Wl,--version-script,zlib.map script -- all tests that create a
dynamic library will fail

@haampie Yes, I was thinking of backporting this to the 2.1.x branch.


Match catch clause in the codepath that reports the error to the worker to a clause that marks the bundle as failed.

If user code raises a BaseException during processing, bundle will be marked as failed by the SDK but will not be reported as failed to the worker harness. To fix this, match the error handling catch clause in the outer method to the error handling close where bundle is marked failed: https://github.com/apache/beam/blob/dbefe4f8b0915d4d1bd83f315705efaf0b526d3d/sdks/python/apache_beam/runners/worker/sdk_worker.py#L683

R: @robertwb

Run Python_Dataframes PreCommit


Multiarch support in upstream

Since CRW depends on DevWorkspace Operator it's needed to make sure it supports multiarch.
I assume it does not, since controller dockerfile does not have GO_ARCH, and project clone's one hardcodes amd64.

Well, the images in RHEC for the 0.8.0 release are multi-arch X, Z, and P.
https://catalog.redhat.com/software/containers/devworkspace/devworkspace-project-clone-rhel8/60ec9f47744684587e2186a1?architecture=ppc64le&container-tabs=overview&gti-tabs=registry-tokens
https://catalog.redhat.com/software/containers/devworkspace/devworkspace-rhel8-operator/60ec9f48744684587e2186a2?architecture=s390x&container-tabs=overview&gti-tabs=registry-tokens
https://catalog.redhat.com/software/containers/devworkspace/devworkspace-operator-bundle/60ec9f48744684587e2186a3?architecture=s390x&container-tabs=overview&gti-tabs=registry-tokens
But we may have to build an upstream equivalent in GH actions / travis to achieve this in Che, unless Che also depends on the RHEC released product images.

@nickboldt Are we aiming to support only the following platforms amd64, arm64, ppc64le, s390x (i.e. are those the only officially supported platforms for Che & DevSpaces) ?
It'd be nice to also support darwin/arm64 for apple silicon, but this might be a bit tricky: The ubi8/go-toolset that we're using to build DWO does not have an image available for darwin/arm64, unfortunately.

upstream: amd64 only, though some Mac users have also requested arm64 so they can run on their local M1 macs (@l0rd for example). A handful of Che containers are built for ppc64le and arm64, but as we don't have a complete set yet, only ONE arch can actually be deployed.
downstream: amd64, s390x, ppc64le - check the release notes https://access.redhat.com/documentation/en-us/red_hat_openshift_dev_spaces/3.8/html-single/release_notes_and_known_issues/index#supported-platforms

For the record I don't have a M1 Mac 😀

Just wanted to clarify some requirements for this:

We need the devworkspace-controller and project-clone images built for all platforms (this is the bare minimum)
We need the DWO index, bundle and digest images built for all platforms.
We don't need multi-arch builds to work with both Docker and podman. From my understanding, podman can't do multi-arch builds, and buildah is required instead. IMO, since multi-arch builds will generally be done by our GH workflows (which use docker), it's fine to only have multi-arch builds working when using Docker.

Point 2. is slightly complicated by the fact that opm serve binds to a port. When doing a multi-arch build with Docker buildx, each platform image is built in parallel, which leads to port-already-in-use conflicts since we're using the default port. An easy but inefficient workaround is to disable parallelism for these builds (it's not the biggest deal if builds take a bit longer on main). A better solution may be to specify a port (with opm serve -p ...) and try another port if it is already in use.
If any of my assumed requirements are incorrect, please correct me.

RN status: upstream only


bug:

Did you check docs and existing issues?

[X] I have read all the lazy.nvim docs
[X] I have searched the existing issues of lazy.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.8.0 Build type: Release LuaJIT 2.1.0-beta3
Operating system/version
MacOS Monterey
Describe the bug
Lazy window colors look weird (does not use colorscheme)
Steps To Reproduce
Using the init.lua from the 'Repro' section on a mac OS with Terminal.app the issue should be reproducible when running the command :Lazy

Expected Behavior
it should try to match my current colorscheme
Repro
Note that I needed to change the colorscheme, since it's a colorscheme related issue...

local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    'git',
    'clone',
    '--filter=blob:none',
    'https://github.com/folke/lazy.nvim.git',
    '--branch=stable', -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require('lazy').setup({
  {
    'altercation/vim-colors-solarized',
    lazy = false,
    priority = 1000,
    config = function()
      vim.cmd(
        [[
          set background=dark
          let g:solarized_termtrans=1
          let g:solarized_termcolors=256
	  colorscheme solarized
	]]
      )
    end,
  },
})

This is not a lazy.nvim bug. It's your colorscheme

@folke can you be more specific? it's not my colorscheme. It's solarized and looks good everywhere else besides lazy.

vim-solarized is not providing the highlight groups for lazy. It's a colorscheme created for vim, so won't have things like Treesitter support etc. If you want it fixed, then you'd have to ask the colorscheme dev

There's also a Neovim port, which might work better https://github.com/shaunsingh/solarized.nvim

See also https://github.com/folke/lazy.nvim#-highlight-groups

@folke got it, thanks for pointing me in the right direction 👍🏻

See also https://github.com/folke/lazy.nvim#-highlight-groups

hi! link LazyNormal ColorColumn
hi! link LazyButton VertSplit

I have managed to make the window look better by settings some highlight groups, but it seems to only be working only when lazy is triggered manually with :Lazy. When I add a new plugin to the list and then restart neovim, then the color is again messed up. Do you have an idea why that is?
with :Lazy

automatic (on startup)

when you just use those command the highlights will only be changed for the current session
when you restart neovim the changes are gone
this is just normal neovim behavior and has nothing to do with lazy

when you just use those command the highlights will only be changed for the current session
when you restart neovim the changes are gone
this is just normal neovim behavior and has nothing to do with lazy

but I have put those lines in my init.lua.
vim.cmd(
  [[
    hi! link LazyNormal ColorColumn
    hi! link LazyButton VertSplit
  ]]
)

You need to set those in a ColorScheme autocomd

You need to set those in a ColorScheme autocomd

I'm sorry, do you have any example on this?


Plugin seems not working in Bamboo 7.1

Hello,
thanks for this plug-in, this is exactly something we need from the Bamboo since we have shared test environment for running E2E tests.
However after installing the plug-in on Bamboo 7.1 and enabling the lock with exact same key name on two plans it is still possible start those two plans in parallel. Is there something else needed other than installing the plug-in and enabling the feature on the plan or is this incompatibility issue on new version of the Bamboo? Could you please assist us with the issue?
Also I have another question, please should this plug-in works for execution of the same plan for different branches? Example is the plan for Merge/Pull request as a CI, each MR/PR will create a branch in the plan and start the execution. Will those execution plans run in series, therefore planA for branch 'Devel' will wait until planA for branch 'Master' finishes?
Thank you,
Said

Hello,
please any response/comments on the matter?
S.


example OData service not available

Many thanks for the latest innovations regarding OData support.
https://abap2ui5.github.io/docs/development/model/odata.html
As an example, we will use the test OData service /sap/opu/odata/DMO/API_TRAVEL_U_V2/, which is available in most ABAP systems.
I'd like to try the sample but unfortunately in none of the (on-premises) ABAP systems I have access to the sample OData service exists.
This makes we wonder where does that OData service come from? Maybe I miss the obvious.

Maybe I miss the obvious. seems I was right. It's from here.
https://help.sap.com/docs/ABAP_PLATFORM_NEW/fc4c71aa50014fd1b43721701471913d/a9d7c7c140a0408dbc5966c52d156b49.html
https://github.com/SAP-samples/abap-platform-refscen-flight.git

thanks as always for testing and the fix in the docu. yes seems i mixed up the names of the entities.


Update README.md

removing some (unintended?) rudeness :P

Codecov Report

Merging #15 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #15   +/-   ##
=======================================
  Coverage   95.34%   95.34%
=======================================
  Files           4        4
  Lines          86       86
=======================================
  Hits           82       82
  Misses          4        4

Continue to review full report at Codecov.

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

😂
OMG! Thank you for spotting this.
Most definitely unintended!


Time snaks from Wikidata are not supported

Currently, time snaks are not supported, as there was no easy way to incorporate the precision of them.  This needs to be addressed.  See https://www.wikidata.org/wiki/Special:ListDatatypes under 'time'.

Addressed by commit https://github.com/bradleymarques/gimme_wikidata/commit/14c73efaf1fce90083407d3b627f07bfe979efa8)


SNI support for OpenSSL::SSL::Socket and HTTP::Client

I'm not sure whether / how to write specs for this :/

This looks great! Checking error messages is indeed better. The chosen method to verify the hostname seems backward compatible with at least OpenSSL 1.0.1, which is perfect.
Maybe we could test against the badssl.com domains? Thought it's only meant for manual testing.

More importantly we shouldn't make the testsuite dependent on external network calls, as quite a few (distribution) build environments disallow external network connections.

Refactored OpenSSL::SSL::Error a little.

With these changes I now get:

SSL_connect: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (OpenSSL::SSL::Error)

for this program:
require "http"

client = HTTP::Client.new "getmondo.co.uk", ssl: true
resp = client.get("/")
puts resp.body

Is this expected?

It works for me, what's your openssl version?

$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016

Hm, I also linked a newer one and still the same error:
$ openssl version
OpenSSL 1.0.2h  3 May 2016

I run 1.0.2h too, SNI was backported to 0.9.8f so it's not just lacking support. Different default ciphers perhaps? Any idea how I could reproduce locally? Or could you create a Wireshark/pcap capture of that connection?

Couldn't reproduce with

Archlinux, OpenSSL 1.0.2h
Ubuntu 12.04, OpenSSL 1.0.1
Ubuntu 16.04, OpenSSL 1.0.2g
CentOS 6, OpenSSL 1.0.1e
Debian Wheezy, OpenSSL 1.0.1e

Feel free to merge. It must be something wrong with my setup.
We could maybe later test this by starting an http server and using an http client, though maybe as an integration test.

Thanks again for adding the OpenSSL error checks. This really helps me for #2671 !
I'm adding them to OpenSSL::SSL::Context too.

This code:
require "http/client"

puts HTTP::Client.get("https://www.google.com").body

Now gives me:
SSL_shutdown: Resource temporarily unavailable (Errno)
[4349575138] *CallStack::unwind:Array(Pointer(Void)) +82
[4349575041] *CallStack#initialize<CallStack>:Array(Pointer(Void)) +17
[4349575000] *CallStack::new:CallStack +40
[4349592969] *Exception@Exception#initialize<Errno, String>:CallStack +41
[4349592899] *Errno#initialize<Errno, String>:CallStack +115
[4349592748] *Errno::new<String>:Errno +108
[4349660866] *OpenSSL::SSL::Error#initialize<OpenSSL::SSL::Error, Pointer(Void), Int32, String>:CallStack +418
[4349660426] *OpenSSL::SSL::Error::new<Pointer(Void), Int32, String>:OpenSSL::SSL::Error +138
[4349659158] *OpenSSL::SSL::Socket#close<OpenSSL::SSL::Socket>:Nil +182
[4349694554] *HTTP::Client#close<HTTP::Client>:Nil +122
[4349691540] *HTTP::Client::exec<String, String, Nil, Nil>:HTTP::Client::Response +612
[4349690911] *HTTP::Client::get<String>:HTTP::Client::Response +31
[4349502470] __crystal_main +1174
[4349545016] main +40

Seems to be just a problem with SSL_shutdown, so should be simple to fix. The docs say:
RETURN VALUES
       The following return values can occur:

       0   The shutdown is not yet finished. Call SSL_shutdown() for a second time, if a bidirectional shutdown shall be performed.  The output of SSL_get_error(3) may be misleading,
           as an erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred.

       1   The shutdown was successfully completed. The "close notify" alert was sent and the peer's "close notify" alert was received.

       <0  The shutdown was not successful because a fatal error occurred either at the protocol level or a connection failure occurred. It can also occur if action is need to
           continue the operation for non-blocking BIOs.  Call SSL_get_error(3) with the return value ret to find out the reason.

It can also occur if action is need to continue the operation for non-blocking BIOs

Maybe < 0 doesn't always mean an error.

Also found: http://stackoverflow.com/a/31613293

And also: http://stackoverflow.com/a/28056464
I don't understand why C APIs are sometimes so complex :(

@asterite can you check if d5fe700ee0dfa6856364f31650fb2331dcbfdaf2 fixed it for you?

@jhass Fixed! :-)
I left a comment about not using exceptions for control flow

Note: C may be complex sometimes, but in this case there are 2 things:

detect whether a bidirectionnal shutdown was initiated (this is a SSL/TLS complexity);
avoid blocking the whole process in case of a bidirectionnal shutdown. Since we have the SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE error codes, we could ask libevent to resume the fiber when the underlying socket is ready to read or write, then try the shutdown again

I say kudos to OpenSSL (for once) for providing an event-loop friendly API.

Yes, however in my tests those weren't actually returned, but SYSCALL was and the underlying Errno::EAGAIN was set.

Damn, I shouldn't have expected that much. Maybe we should just Fiber.yield then :D

IO::FileDescriptor has wait_readable and wait_writeable methods to do that, just that they are private. Maybe this should be public but :nodoc: or similar.


timezone parsing for native abbreviated UTC fails

My timezone is set to UTC, which means that the API (apparently) uses the usual shortened version also described in ISO 8601 or the more accessible RFC 3339 section 2, for instance: 2023-05-24T20:43:16Z.
This in turn causes issues with not just the implementation in ext/date (i.e. the std::chrono::parse polyfill due to some compilers like GCC not yet having fully implemented C++20), but the actual definition of the parser as far as I can tell from various places around the internet, among them some documents from people involved in the standards, previews of how the new API is to be used, but probably easiest the cppreference on std::chrono::parse, which describes the format as being a time offset, not mentioning the possible Z suffix for UTC at all for the %z format, which is used in the code:
https://github.com/ahodesuka/ahoviewer/blob/42e16f94b78496e3e346f0d127baa569039a6757/src/booru/site.cc#L863
Which prevents any results from being properly parsed, making all dates the unix epoch of 1970-01-01 and yielding this error message:
Failed to parse date '2023-05-24T20:43:16Z' on site Danbooru

I haven't found anything on how to properly parse RFC 3339 strings using C++ in that regard, but it seems that the corresponding parsing would've to be split into one using the above format and another fallback using something like date::parse("%FT%TZ", t); which would have to hard set the timezone for that result to UTC.
The issue seems to be specifically with the data returned from the Danbooru API, as changing the timezone in the account settings works, changing the local timezone (i.e. running as env TZ=Europe/Vienna ahoviewer) does not change the outcome.
When not using any credentials to log in (i.e. account-specific settings are not active) it works too.

I think I am having a similar issue with Gelbooru. But I get this weird output:
Rule	Mexico	1931	only	-	April	30	0:00	1:00	D
Mexico         1931    1931    Jan/01                  00:00:00       00:00:00
Failed to fetch IANA timezone database, times will be displayed in UTC

When running an image search, I just get this output in loop but no picture is displayed. Ahoviewer is just stuck in a loop and I have to kill it.
It was working fine like 2 weeks ago. Also I do not know where this "Mexico" comes from, it is not my timezone.

Both of these issues should be fixed with 4cb3fdd920ea396dce3e9e0c5166f733246659fa

The original issue is not fixed with 4cb3fdd920ea396dce3e9e0c5166f733246659fa. When trying to reproduce with the current master (7a5b88f3b1455c9f2d6b5638a11c6ca1ed0e91d7) I'm running into a hard crash which I'll try to bisect in a moment.
Considering there has been no change to the referenced line of src/booru/site.cc from the OP I doubt that master will behave any different.

Alright I've re-read the initial issue and see now that it isn't fixed, but I see how to fix it.

I can confirm that this fixes my issue, thanks!


Reopen #5158

Windows Build Number
Microsoft Windows [Version 10.0.21382.1000]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
5.10.16
Distro Version
Ubuntu 20.04
Other Software
No response
Repro Steps

Insert USB dongle (mine is z-wave.me uzb (but also USB sd reader or USB hdd mounted with --mount))
Start wsl

ls /dev

Expected Behavior
/dev/ttyACM0 should appear
(or mounted usb disk)
Actual Behavior
It does not
Diagnostic Logs
No response

Reopen #5158

The real shame here is that this works in WSL1. But then WSL1 has other limitations, so in effect I can never fully use WSL for my purposes.

/dev/ttyACM0 should appear

/dupe #2195


Added link to report outdated icon as well as compact layout

Addresses:
#17 - Compact layout
#95 - Link to outdated icons
#43 - Icon detail view
#149 - Download of color SVGs

The report button simply links to the issue template for update, and fills the title with the brand to be updated. It also includes a test in the e2e file.

The changes for the compact layout are:

Reduced gutters
Reduced width for cards
Reduced margins for card title
Changed the color button to vertical to reduce the width of the card
Removed the leading # in the color button text to reduce the width of it
Set titles to a fixed width with an ellipsis overflow to avoid multilineal titles (full title available as tooltip)
Removed guidelines and licenses from the cards.

this change should be complemented with an additional "details" button alongside the other two. In this detail view the guidelines and licenses will be shown, to avoid loss of information

Now going over the original thread, I can't find the place the toggle was discussed for dropping. Maybe it never was and I imagined the whole thing.
In any case, is a choice of layouts really necessary?

In any case, is a choice of layouts really necessary?

I think that could be great, even necessary due to a lot of things, but this would also depend on how to details view is solved.

The issue https://github.com/simple-icons/simple-icons-pdf/issues/7 could be a great addition for the website. Display new last updated date of an icon and the date of inclusion is really useful. This probably would be too much information for a details view in compact mode, but it would fit in a details view for expanded mode. Even could be added in expanded mode without "details view", I don't know because I still don't know what you mean by a detail view.
Many users could feel rejected by a compact mode as the unique option, especially non-developer users who go for simple icons to only download an icon to play with it. The first impression of such a reduced view could scare them away. Yesterday tested this compact mode with an acquaintance and it found it too overwhelming in a laptop, not tested in a mobile view though.

It would be complicating things for not a lot of improvement.

:thinking: It is just another theme with media selectors, like dark-light themes, changing 11 CSS properties. I don't think it's too much and it doesn't introduce any new patterns to the project.

In any case, is a choice of layouts really necessary?

I think that could be great, even necessary due to a lot of things, but this would also depend on how to details view is solved.

The issue Set Creation Date of PDF to date of addition / modification in main repo. simple-icons-pdf#7 could be a great addition for the website. Display new last updated date of an icon and the date of inclusion is really useful. This probably would be too much information for a details view in compact mode, but it would fit in a details view for expanded mode. Even could be added in expanded mode without "details view", I don't know because I still don't know what you mean by a detail view.
Many users could feel rejected by a compact mode as the unique option, especially non-developer users who go for simple icons to only download an icon to play with it. The first impression of such a reduced view could scare them away. Yesterday tested this compact mode with an acquaintance and it found it too overwhelming in a laptop, not tested in a mobile view though.

It would be complicating things for not a lot of improvement.

🤔 It is just another theme with media selectors, like dark-light themes, changing 11 CSS properties. I don't think it's too much and it doesn't introduce any new patterns to the project. Is not an improvement, but it would not regress at least.

Detail views ticket: #43
It's a modal / page / slide that has more details about the icons than what is shown in the card. Everything that you have can be shown in a detail view.
I wouldn't make detail view compact / comfortable. Detail view is supposed to contain everything, not just a bit of info, so making it compact kind of defeats the purpose.
I'm against the toggle between layouts. It's more code for a user feature than I'm not sure if it's going to see a lot of use. If the current compact layout is overwhelming due to having too much going on, then we can close the PR and forget about the compact layout, or we could tweak the compact layout to make it less aggressive. After all, the website, even with compact layout mode, is already very generous with the size of icon names and previews, when compared with other icon libraries.
It's not that it is not doable: it is. I just don't know if it's something we really need to have.

OK, I will not block this as the request is not clear about it, so go ahead with compact layout only :+1: We can always add the toggle if any maintainer or user asks for it.

OK, I will not block this as the request is not clear about it, so go ahead with compact layout only 👍 We can always add the toggle if any maintainer or user asks for it.

As a compromise, I'm going to try and make the changes CSS only, so the toggle can be added without much effort, as you pointed out before.
In any case, this PR is not going to be merged any time soon: I need to add the detail view first or we would be losing information. So we have time to get more feedback either way.

@mondeja Hey, so, I moved the changes in the HTML to be handled by CSS only, and it turned out to be easier than I thought. So I went ahead and added the toggle you wanted.
I still think we don't need that, but for what it's worth, is in there now.

Would you mind to resolve the conflicts @jorgeamadosoria?

done

All the conflicts are resolved. Can we get this merged or rejected before more conflicts arise, please, @mondeja ?

I'll try to merge this with master ASAP


Prepare for JOSS submission

[x]  Update performance benchmarks
[x]  Clean up docs; add a section about parallel workflows
[x] Add contributing guideline
[x]  Improve on code coverage, aim for 80%+
[x]  Draft from template
[ ]  Update to v1.0

Regarding benchmarks:
I found that LightXML is allocating quite a lot of memory in the for loop within getObjInfo:
0.000008 seconds (307 allocations: 18.859 KiB)

Now that the wave paper is accepted, we are ready to release v1.0 and submit to JOSS.

We decided to pause the 1.0 release for more spaces in refactoring.


Design: Better error when --no-appdomain is required

Help works; anything else results in this:

ef.x86.exe database update --assembly .\EFTest.exe

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidCastException: Unable to cast transparent proxy to type 'Microsoft.EntityFrameworkCore.Design.IOperationReportHandler'.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.AppDomain.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at Microsoft.EntityFrameworkCore.Tools.AppDomainOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String contentRootPath, String dataDirectory, String rootNamespace, String environment)
at Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()
at Microsoft.EntityFrameworkCore.Tools.Commands.DatabaseUpdateCommand.Execute()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.b__0()
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Exception has been thrown by the target of an invocation.

Yuck. 😄
It should tell you to add --no-appdomain and try again.

Tried again with that and some things started working. Filed #7404 #7405 #7406

Haha, we've got a bit of a problem. We can't really throw a friendlier exception because it can't cross the domain boundary. We just end up with this message instead.

Type 'Microsoft.EntityFrameworkCore.Design.OperationException' in assembly 'Microsoft.EntityFrameworkCore.Design, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=adb9793829ddae60' is not marked as serializable.

The think that can't cast is also the thing we use to communicate back to the tool, so there's really not much we can do here besides educate those few who want to use ef.exe with UAP (and possibly Xamarin) assemblies.


Add moment.fn.closest()

See requirements here
https://gist.github.com/1280098

A vote for suggested values A (if there is any vote going on ;)

For tracking, @caillou is helping with this.
https://github.com/caillou/moment/commits/relative-date


Improve article hep-lat/0309109 (epsfig.sty)

Exact location of issue
The figures are silently missing.
Problem details
We should at the least report errors for the missing figures - but ideally preserve them to HTML.

Source snippet:
\begin{figure}[tbh]
\centerline{\epsfxsize=7cm\hspace*{0cm}\epsfbox{tc_schem.eps}}
\vspace*{-0.8cm}
\caption[a]{\label{schem}

Same underlying cause as #404


Updater doesn't allow wildcard certificates

When the domain is covered by a wildcard certificate the updater fails with
Hostname example.com not verified: certificate: sha1/... DN: CN=:*.example.com subjectAltNames: [*.example.com]

A certificate for *.example.com doesn't cover example.com. It needs to have both *.example.com and example.com in subjectAltNames.
It's just the normal way certificate validation works when there aren't compatibility hacks active.

A certificate for *.example.com doesn't cover example.com

Interesting. Chromium accepts this certificate. Anyway, it's no big deal adding example.com to the names. Thanks.

Browsers have weird compatibility hacks.


Initial automation of listing schemes

Update scripts to query for schemes, in relation to this issue: https://github.ibm.com/arf/planning-sdk-squad/issues/504

Amended the script with the minor adjustments.


luci-proto-qmi: add missing mtu option

Add missing mtu option.
This dependence on https://github.com/openwrt/openwrt/pull/2176

Dependency hast ween add to openwrt master. So I will merge this.


Callback in async_connection::read() is bad

Greetings!
async_connection.hpp (with http support), line 395. Callback param list is bad in version 0.12 - this can be download from site.
Seems call to this->wrap_read_handler() is missed.
Ubuntu 14.04, gcc 4.8.4, cpp-netlib 0.12 (download from site).

To be precise - it is problem of 0.12 distribution files only.
Git files are ok.

Thanks for the report. Yes, but can you try 0.13-devel to see if this is already fixed there too?

Yes, it is fine in 0.13. Master is fine too (I switched to it after all experiments).


rename and join posts as a serie for kubernetes response engine

Signed-off-by: Issif<EMAIL_ADDRESS>
What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind user-interface

/kind content

/kind translation

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area blog

/area documentation

/area videos

What this PR does / why we need it:
Rename and join blog posts about kubernetes response engine as a serie
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign radhikapc after the PR has been reviewed.
You can assign the PR to them by writing /assign @radhikapc in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

looks good @Issif 👍

LGTM, but before approving I have a question:
Are we sure we want to change the slugs? That would break any link pointing to the current blog's URLs.
Let me know!

I wondered myself, I know it breaks SEO and links, but my guess was it's cleaner to have same patterns for all blogs posts URL. As you will.

As you will.

No problem for me, I just wanted to be sure. I'm approving :+1:

LGTM label has been added.  Git tree hash: fbb7caf1db97b3df8ab6a5313960ad68708c110d

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Restart after failing to process offer leading to force-close

This is what happened to one of our users after #760. Once the app was restarted their channel with the coordinator was force-closed:
| 2023-06-17 15:47:55.812 | LogLevel.INFO | Initialized logger
| 2023-06-17 15:47:55.867 | LogLevel.DEBUG | Database migration run - db initialized
| 2023-06-17 15:47:55.867 | LogLevel.DEBUG | Publishing event Init("Starting full ldk node")
| 2023-06-17 15:47:55.868 | LogLevel.INFO | Creating the wallet network: Bitcoin
| 2023-06-17 15:47:55.907 | LogLevel.INFO | Found channel manager data on disk. Recovering from stored state
| 2023-06-17 15:47:55.909 | LogLevel.ERROR | lightning::ln::channelmanager: A ChannelManager is stale compared to the current ChannelMonitor!
| 2023-06-17 15:47:55.909 | LogLevel.ERROR | lightning::ln::channelmanager:  The channel will be force-closed and the latest commitment transaction from the ChannelMonitor broadcast.
| 2023-06-17 15:47:55.909 | LogLevel.ERROR | lightning::ln::channelmanager:  The ChannelMonitor for channel f37c96728d86419d66412b298b6c95e3a01d7dab7dcd7236f9eef5a92af91c36 is at update_id 12 but the ChannelManager is at update_id 11.
| 2023-06-17 15:47:55.909 | LogLevel.INFO | lightning::chain::channelmonitor: Broadcasting local commitment tx with txid 67c198cdcc205c1f531562e5d0c37e9ac22156a839bff7d0a16812792ef38c17

Notably, due to #760 the app panicked just after updating the ChannelMonitor:
| 2023-06-17 15:46:33.752 | LogLevel.INFO | Accepting DLC channel offer channel_id: f37c96728d86419d66412b298b6c95e3a01d7dab7dcd7236f9eef5a92af91c36
| 2023-06-17 15:46:33.752 | LogLevel.INFO | lightning::chain::channelmonitor: Applying update to monitor f37c96728d86419d66412b298b6c95e3a01d7dab7dcd7236f9eef5a92af91c36, bringing update_id from 11 to 12 with 1 changes.
| 2023-06-17 15:46:33.770 | LogLevel.ERROR | Aborting after panic in task info: panicked at 'called `Option::unwrap()` on a `None` value', /Users/runner/.cargo/git/checkouts/rust-lightning-8ffd0e8d14b5d2cc/c65cb1c/lightning/src/ln/channelmanager.rs:1935:41

I conclude that we cannot ensure the agreement of ChannelMonitor and ChannelManager if the app can panic on an arbitrary line of code. What we can ensure is that the app doesn't panic (to a large extent). Thus, the way forward is to solve #760 and to remove incorrect unwraps and expects.

This issue didn't last very long as I have concluded that it cannot be solved directly. It's just a symptom of having code that can panic, something that can be solved on a case-by-case basis.


Support for process.stdout.columns

It seems Flow doesn't support process.stdout.columns and .rows, like so:
let screen = {
  width: process.stdout.columns,
  height: process.stdout.rows
}

Error: index.js:2
 51:     width: process.stdout.columns,
                               ^^^^^^^ property `columns`. Property not found in
 51:     width: process.stdout.columns,
                ^^^^^^^^^^^^^^ stream$Writable

Error: index.js:3
 52:     height: process.stdout.rows
                                ^^^^ property `rows`. Property not found in
 52:     height: process.stdout.rows
                 ^^^^^^^^^^^^^^ stream$Writable

Using flow 0.51.1.
This is documented in Node.js here: https://nodejs.org/api/tty.html#tty_writestream_columns

@calebmer Needs label "library definitions"

We’d love to merge a PR fixing this! 😄

I'm not much familliar with these API, but it seems that the typings are correct, since process.stdout has a row property only when it is a TTY, which is not always true. Flow's typings are correct, typing process.env as the union stream$Writable | tty$WriteStream.
This means than checking process.stdout against the tty.WriteSteam typechecks :
const tty = require('tty')

if (process.stdout instanceof tty.WriteStream) {
  const col: number = process.stdout.columns
}

However, you would expect that checking for process.stdout.isTTY would be sufficient, but flow won't be happy with that.
if (process.stdout.isTTY) {
  const col: number = process.stdout.columns
}

Since we don't have exact classes as far as I know, I'm not sure it's doable :/

Perhaps the stream$Writable class could add the following to its class definition:
isTTY?: void;

That would allow the following refinement to work:
if (process.stdout.isTTY === true) {
  const col: number = process.stdout.columns
}

I thought that having the stream$Writable.isTTY property typed as a falsy value would've allowed you to refine w/o using  === true, but apparently that is not the case (possibly a different bug?).


Improves linz modal support

This PR improves linz modal support where you can load a bootstrap modal by setting data-linz-modal="true" attribute in your html a or button tag.
linz modal also includes form validation by adding data-linz-validation="true" to the form tag in the modal HTML.
@smebberson This is ready for review

@smebberson This is ready for review!

@sandytrinh, looks good. Please merge!


Won't run in a xrdp session

VSCode Version: 1.5.1
OS Version: Lubuntu 16 LTS

Steps to Reproduce:

Activate XRDP in Lubuntu
Remote from Windows 10 1670
Run VSCode

@jtlivio what happens if you try to run?

Hi @bpasero . If you hit "code ." nothing happens, if you try to open directly from the Icon, a status bar message is fired "starting visuual studio...." for a few seconds, VSCode don't open and the status disappear.

@jtlivio can you run from the command line "code --verbose" to see if there is any output printed?

@bpasero sorry for image, I don't have Copy/Paste between host and guest yet.

Hm, the Xlib output is suspicious, are you sure everything is installed to open that window?

I was able to resolve from issue #3451 (vscode)

Ok, lets close as duplicate then.


Lock/Unlock door don’t work in HomeKit

Operating environment (Hass.io/Docker/Windows/etc.): Hassbian
Component/platform: https://www.home-assistant.io/components/homekit/
Description of problem:
Not possible to lock/unlock a Verisure doorlock in HomeKit. A option to save a Lock PIN in configuration.conf needs to be added.
Lock/Unlock works fine in the HA GUI if you add the PIN manually every time. This is not possible in HomeKit.

I just merged the fix for it. Can you confirm that it works, once you're able to test it?
The yaml syntax would be as follows:
homekit:
  entity_config:
    lock.kitchen_door:
      code: '1234'

It works great, thanks!


Clarify sentence in CONTRIBUTING

There was a missing comma, so I fixed it and updated how the sentence sounded to be a bit more natural.
Description

n/a
Checklist:

n/a

LHW95HAK #lhw 🥀 #LHW95HAK 3
24
0795959898
Day 24
Email<EMAIL_ADDRESS>

Disregard

[[[]()]()]()

[ ] I am the owner


Single-instruction pin toggling.

Use the AVR-specific output pin toggle of writing to the PINx register,
rather than relying on the default implementation based on reading the
set state first.
Closes #53.

(waiting on a new release of avr-device)

Please rebase this changeset on master to pull in the new version of avr-device.


Commands not registering with newest ESX

The following commands are no longer registered to work with the newest version of ESX:

/ban
/kick
/warn
/bwh
/assist
Possible others

However, the command /decassist DOES register.

i'm not planning to support newest ESX, works fine with 1.1.0 and below


UdpResponseTracker should not have unsafe code

There is a transmute in the implementation of UdpResponseTracker::add_response_handler:
fn add_response_handler<'a>(
    &mut self,
    msg_id: MsgId,
    msg_token: MsgToken,
    socket_addr: IC::SocketAddr,
    handler: Arc<Mutex<dyn HandleResponse<IC> + 'a>>,
) {
    let handler: Arc<Mutex<dyn HandleResponse<IC>>> =
        unsafe { std::mem::transmute(handler) };

    // ...

This transmute is a hack to coerce the lifetime 'a into (ultimately) 'static. At the time I wrote this, I felt like there must have been a way to restructure things without having to switch over to a 'static lifetime, but after 8+ hours of lifetime hell I couldn't figure it out. In order to not stay blocked I added the transmute.
While I know that this is currently safe to do, I would much rather the compiler be able to make the determination and not require an unsafe block. So, ultimately this issue needs to be revisited.

Why is there a lifetime on the trait object? I would remove it, because the Arc already ensures that its content does live until all references are dropped.


docs: add @symgryph as an author

@symgryph How should I update the author list to include you?

@symgryph FYI: I changed how the authorship is presented in 27556e015bf8edd44cc4da216d0514e9594849e7.


fork/exec /var/task/main: permission denied

I successfully deployed a golang lambda api service using sam package and sam deploy.
And when I test the lambda function, I get the error below.
{   "errorMessage": "fork/exec /var/task/main: permission denied",   "errorType": "PathError" }

@neoadventist, did you find solution for your problem? I have the same issue.

@charger88 nah, still the same issue. My code seem to work okay on my mac vs the linux/WSL environment, so i'm using that. (plus the whole lambda experiment was put on hold for now) please be sure to comment here when you've solved it!

@neoadventist I've just forgot about building step.
Run this (replace $1 to your actual filename without extension):
GOOS=linux go build -o $1 $1.go

It seems like this issue persists due to file permissions and the missing argument specified by @charger88.
GOOS=linux go build -o main main.go
as opposed to
GOOS=linux go build -o main
and Read, Write, Execute permissions instead of simply Read or Write permissions.

If anyone got here seeing the same error @neoadventist had
{
  "errorMessage": "fork/exec /var/task/main: no such file or directory",
  "errorType": "PathError"
}

Also make sure that your are building on glibc if you are using os, runtime or net.
Lambdas are executing with glibc runtime.
This could be relevant if you were building on alpine for example, which has musl instead of glibc.
This case you can also try to link your libs statically instead of dynamically.
This worked for me to build on alpine and run on aws.
(your musl-gcc might be in a different location)
CC=/usr/bin/x86_64-alpine-linux-musl-gcc GOOS=linux go build -x -ldflags '-linkmode external -extldflags "-static"' -a -tags netgo -installsuffix netgo -o main main.go

what was the actual fix for this? I'm using windows and running this:
set GOOS=linux
set GOARCH=amd64
go build -ldflags="-s -w -v" -o bin/hello hello/main.go
go build -ldflags="-s -w -v" -o bin/world world/main.go

Just leaving this here for anyone who happens to stumble across this:
My zip file had some of my full build path in it from my Makefile. I needed to add -j switch to zip to flatten out the file paths:
build:
	${GOBUILD} -ldflags="-d -s -w" -o ${BINPATH}/hello ./cmd/hello/main.go
	chmod +x ${BINPATH}/hello
	zip -j ${BINPATH}/hello.zip ${BINPATH}/hello

This works when the Lambda handler is specified as hello.

@mikeatlas That worked for me! I just added the -j flag to zip for junking the file path.

If you are still having this problem, see my case
.
# permission denied
├── bin
│   └── main
└── template
    └── template.yaml

.
# It works fine.
├── bin
│   └── main
└── template
    └── template.yaml

Just leaving this here for anyone who happens to stumble across this:
My zip file had some of my full build path in it from my Makefile. I needed to add -j switch to zip to flatten out the file path inside the archive:
build:
	${GOBUILD} -ldflags="-d -s -w" -o ${BINPATH}/hello ./cmd/hello/main.go
	chmod +x ${BINPATH}/hello
	zip -j ${BINPATH}/hello.zip ${BINPATH}/hello

This works when the Lambda handler is specified as hello.
for me it was literally just the...
zip -j
thanks mate!

@maddinek , Where did you add this ?  I am using AWS SAM hello-world application and getting. {"errorType":"exitError","errorMessage":"RequestId: 09bda008-f1ba-1f08-63cd-c9df843425e3 Error: fork/exec /var/task/hello-world: permission denied"}  .
Any idea on this .

@jkrnak . Hey. I am also facing same issue. I did not understand what did you said.

@EdisonGonzalez , Hey , Even I am facing the permission denied issue.
{"errorType":"exitError","errorMessage":"RequestId: c7306307-98aa-1690-1fe1-1e411b065441 Error: fork/exec /var/task/hello-world: permission denied"}. When I execute - sam local invoke HelloWorldFunction --no-event

build:
${GOBUILD} -ldflags="-d -s -w" -o ${BINPATH}/hello ./cmd/hello/main.go
chmod +x ${BINPATH}/hello
zip -j ${BINPATH}/hello.zip ${BINPATH}/hello

for me it was literally just the...

zip -j

thanks mate!

I am able to create the zip and upload manually through the AWS console to get the Lambda function working. However, how would one do this using sam package + sam deploy?


Ability to update version strings automatically

Implemented in https://github.com/uhe-org/uhe/commit/02aa49e4f3ae903c799cb07c13cce9bb50543561.


spirv-opt: DominatorAnalysis is not invalidated but the CFG is

MergeReturnPass invalidates CFG but doesn't invalidate dominator trees here
https://github.com/KhronosGroup/SPIRV-Tools/blob/b78f4b1518e0052491f4e7e01ace4ee915cb5de2/source/opt/merge_return_pass.cpp#L429-L431
Dominator trees depend on CFG's pseudo entry and exit blocks. When CFG is invalidated, dominator trees contain dangling pointers. This causes assertion failures later in the program.
The bug was found by inspecting an assertion failure in the attached shader. The failure happens in
https://github.com/KhronosGroup/SPIRV-Tools/blob/b78f4b1518e0052491f4e7e01ace4ee915cb5de2/source/opt/basic_block.h#L119-L120
when one tries to run spirv-opt <attached file> -o out.spv --validate-after-all --if-conversion --merge-return. --if-conversion is used only to initialize dominator trees before --merge-return is executed.
data.zip contains a GLSL shader and its compiled SPIR-V version.

@alan-baker @s-perron ping


Decide on a framework to use for the UI

https://blog.bitsrc.io/11-react-component-libraries-you-should-know-178eb1dd6aa4

Decided for now on Material UI to follow on with the Kubernetes/Google theme


Update vs2022 preview key

Update vs2022 key to a newer version

Awesome, thank you!

This should fix #14 for now.


unable to achieve the accuracy from paper

hi there
i'm interested in your CNNC model and have read your PNAS paper
but here i met some problems to reproduce the result from paper
i run the demo literally follow the readme but the result is not good.
at about 20 epoch the model start to over fitting, during the rest 180 epoch the validation loss keep increasing while validation accuracy decreasing, (the result graph is just like other issues posted), finally the peak val acc before overfitting is about 48 to 52% (for my 3 try with learning rate 0.01, 0.003, 0.001), which it's far from the paper described.
it's seems that there is something wrong with the current codes. is the demo command in readme.md up to date? is the training code fit the demo? how did you divide the test set from raw data and get the test accuracy? from current predict_no_y.py it seems that it's reading the training set to do the prediction job on a very overfitting model.
would you please check the code or upload the latest version of code? thanks very much! looking forward to your reply and your next paper of GCNG!

Hi,
Thanks for your interest.
The fact that the accuracy is about 50% is reasonable,  Please notice that

it is a three label classification with a random guess baseline of 0.33 accuracy.
figure3 is generated in a way that we first calculated the ROC area for each outgoing gene (it has outgonig edges in KEGG database), and it cotains a lot of outgoing genes. So we collected all these ROCs as the final ROC. It is possible that such ROC is very high but with a around 50% accu.  Image a binary classification, the 1st outgoing gene has prediction of [0.1, 0.2] for its label 0 and 1, while 2nd outgoing gene had prediction of [0.6, 0.7] for its label 0 and 1. So the overall accu will be 0.5, however the collected ROC will be 1, right?
I believe you used the code that train model using whole data. If you use the code "train_with_labels_three_foldx.py", you should be able to get much higher ROC results.

For the so called overfitting that validation accu and loss both increase. We also found such scenario in the three fold cross validtion that in the 1st and 2nd fold it got such scenario after around 50 epoches training, while in the 3rd fold, It will not enter such scenario unless after hundreds of epoches, which indicates that such Scenario is due to the arbitrary data separation. Even using  fold 1 and fold 2 with 50 epochs, and  fold 3 with 200 epoch, we can still reach a very high collected ROC definitely (ROC of 0.9+).
I am not sure if it is suitable to call "both accu and loss increase" as overfit considering that biological data is always very noise, becuase therotically it is possible to occur. Image a bianry classification, when the model corrects the wrong prob for label 1, say from 0.49 to 0.51, while it also give a more wrong prediction for another label 0 sample which is very similar to the above label 1 sample, say also from 0.51 to 0.53. In such case, the accuracy and loss would both increase. And such scenario may be because some samples are wrongly labelled or that the dataset is too difficult for the classifier to distinguish them.
Last, as mentioned in the paper, to avoid information leakage, we filtered the gene pair list so that there is no overlap gene pair between trainning and test set. That is to say in the test, CNNC would never see any training gene pair at all.
Thanks also for your interest in my GCNG paper.

thanks for the fast reply!
i'm now have no problem with the test set. it's actually a misunderstanding. in the readme #8.5 the command arguments 'NEPDF_data/' of predict_no_y.py is easily make first-time user pass the training set data path to do the prediction job. maybe you can change it to something like 'NEPDF_data_predict' and explicitly ask user to make a new folder and generate their new NEPDF for the gene pairs they want to predict.

for the overfitting, what i met is not 'both accu and loss increase', is 'train acc ↑ loss ↓ but val acc ↓ loss ↑', finally the peak val acc is about 50%.
yesterday i believe it's kind of overfitting so i just randomly change the model structure and unexpectedly found that by remove the last 2 conv layer and decrease all dropout to 0.2 (i think 0.5 is too high and may lead to info or feature loss), the model can reach 62% of acc in both train and val set after 30 epoch. so i just run it for 300 epoch and found the val acc reach 72% and still increasing slowly while the train acc is 79%, which is quite good result for a three labels classification task with these implicit bio data.
for this try i'm using my own generated data. i retrieve about 39000 activation edge and 11000 inhibition edge from kegg using the R package 'graphite' you mentioned in your paper. then i  randomly choose 17000 pairs of gene to generate the irrelative edges. for these irrelative edges, i make sure that for each pair the gene a and b is never co-exist in any kegg pathway to decrease the possibility of they have undetected relationship. then i specify 'irrelative' as label 0, 1 for activation and 2 for inhibition. with this gene pair list i build the nepdf to feed the model and get a satisfactory accuracy.

for the roc, i just don't understand how the final roc be counted. how to "collected all these ROCs as the final ROC", i never heard the roc can be calculate like this. could you please explain it with more details or provide me a tutorial link to learn? thanks very much!

Hi,
You are welcome.
I will think about how to make it clearer. Thanks for your suggestions.
It is very great to hear that changing model structure can improve the performance and that you got satisfactory accu with your own data.
Such ROC is inspired by the TF-target task, and then applied to the KEGG prediction. Of course you can use any evaluation strategy you prefer. Actually we discussed it in SI.  Now I copy it here:
For TF-binding prediction task, we used a binary classification. Take MESC as an example.
MESC has 38 TFs. For each TF a, the image of its target b , (a, b) was generated as input
fed to CNNC, meanwhile a negative image was also generated for TF a and randomly
selected gene, R from nontarget gene set to balance the dataset, (a, R). In three-fold CV,
the 38 TFs was divided into roughly equal 3 folds, (13, 13, 12). Two folds have 13 TFs, and
one fold has 12 TFs. CNNC was trained by any of the two folds, and tested by the left one
fold. Each test fold may contain several or dozens of TFs, so we split each fold test result
to get the score for every TF, and concatenated all TF results of the three folds as the final
result.
For KEGG pathway prediction, we used a three-category classification. We used the same
way to balance and split dataset. For each known gene pair (a, b) as label 1, where a
regulates b, we generated (b, a) as label 2, and a randomly selected gene pairs (r, s) as
label 0 from the KEGG gene set. In total KEGG dataset has 3,057 genes with outgoing
edges (gene a (regulator)), which was also divided into roughly equal 3 folds, and the same
three-fold CV was adopted. The separation is to guarantee two points: a) there is no ‘gene
pair + label’ overlap between the whole training and test dataset, which is the key to avoid20
information leakage. b) In addition, the training and test set are strictly separated by the
regulator list, so that training set has 2/3 of regulators while test set has the remaining 1/3,
and there is no overlap between the training and test regulator sets. By this way, we can
do the detailed evaluation for each regulator, like what was done for each TF. Each test
fold contains around 1,000 regulators, so we split each fold result to get the score for every
regulator, and concatenated all regulators’ AUC of the three fold as the final result.

sorry for reply late
i do read the supporting info of you paper previously but now i realize i'm not actually understand all of it due to the insufficient of my english and the lack of machine learning knowledge. i'm still very new to the machine learning and i need more time to consolidate the foundation before i can communicate with you. but i really love your CNNC model, the way it build the histogram from two genes' expression value to feed the cnn is impressive. really appreciate for teach me a lot!

Your english is very good. Thanks very much for your interest.
You are welcome.
Best


Why our current way of handling Name is broken

Broken scenarios that are expected to work
User control having different names in its own XAML file and in referencing XAML file
<UserControl x:Class="MyControl" x:Name="foo">
    ....
</UserControl>

<Window>
     <MyControl x:Name="bar" />
</Window>

what is the value of the Name property of MyControl?
where does it unregister itself once detached from the visual tree?
which name will it use to unregister itself?

Template should be able to reference elements by name from the parent scope
<Window>
    <Window.DataTemplates>
         <DataTemplate DataType="...">
                <StackPanel>
                       <TextBox x:Name="foo"/>
                       <TextBlock Text="{Binding #foo.Text}"/>
                       <TextBlock Text="{Binding #bar.Text}"/>
                </StackPanel>
         </DataTemplate>
    </Window.DataTemplate>
    <StackPanel>
        <TextBox x:Name="foo"/>
        <TextBox x:Name="bar"/>
        <Expander Header="Test" Content="{Binding Data}"/>
    </StackPanel>

</Window>

{Binding #foo.Text} should resolve the TextBox from the template itself
{Binding #bar.Text} should resolve the TextBox from the window scope
Bindings from the data template shouldn't be able to see PART_ContentPresenter from Expander.xaml

This doesn't work and can not work with our current automatic registration voodoo because controls and bindings lack the required context.
Objects outside of the visual tree

One should be able to reference objects like SolidColorBrush by name from other parts of the XAML
SolidColorBrush should be able to reference other objects of the XAML by name

Our current system uses visual tree traversal that doesn't see objects outside of it.
Proposal

Remove Name property entirely
Let XAML engine handle name scope registrations
Make bindings to get the target scope stack from the IServiceProvider passed to markup extensions by the XAML engine
"UI from code" can and should use actual C# local variables which are more suitable for the task anyway

Part №2 is implemented in https://github.com/AvaloniaUI/Avalonia/pull/2705

@grokys @Gillibald @jkoritzinsky

With no more name property how does one do the compontent-to-component binding like you listed above "{Binding #foo.Text}"?  In code when adding handlers often one is finding controls by name. What is the proposed alternative to that?

@HankG we'll keep INameScope and the corresponding registration logic. this.Find<TControl>("name") will continue to work.

I think we also decided in gitter to keep the Name property as removing it feels like a big breaking change.

https://github.com/AvaloniaUI/Avalonia/pull/2705


How to inference?

Hi, I want to know how to inference with the given weight and get the final result?

you can refer to https://github.com/JCZ404/Semi-DETR#evaluation for the details of the inference.

What I mean is, how does the input image model infer and provide annotation results?

you can refer to https://github.com/JCZ404/Semi-DETR#evaluation for the details of the inference.

Actually, I want to know how can I inference one image and get the result of detection not just getting the result of Ap

you can use the demo_image.py,and link to your checkpoint file,then you can inference on one image by give the picture to demo_image.py


export IsOpen

as mentioned in #21

can you provide some more context as to why you'd like to see this method exported?

We want to have our own healthcheck reporting and alert mechanisms, so we would like what circuits are open and show them.

+1


clang-format Format takes a long time to format the code

When I select the number of rows in visual mode, formatting will wait an equal amount of time
'clangd.main' takes up 100% of the cpu. And when I withdraw, it takes a long time.
I don't know what the problem is, I use the command line clang-format very fast.

clang-format version:
    Ubuntu clang-format version 13.0.0-++20210327080829+e5f2898bc751-1~exp1~20210327192522.3607

Here is the configuration file for my clang-format
{
  BasedOnStyle: LLVM,
  UseTab: Never,
  IndentWidth: 2,
  PointerAlignment: Left,
  IndentCaseLabels: true,
  SortIncludes: false,
  TabWidth: 0,
  BreakBeforeBraces: Allman,
  AllowShortIfStatementsOnASingleLine: false,
  IndentCaseLabels: true,
  ColumnLimit: 0,
  AccessModifierOffset: -2,
  NamespaceIndentation: All,
  FixNamespaceComments: false,
  IndentAccessModifiers: true,
}

I'm afraid I can't help you. vim-autoformat shouldn't do anything special, except calling the clang CLI. You could try following the troubleshooting steps https://github.com/vim-autoformat/vim-autoformat#help-the-formatter-doesnt-work-as-expected


fix: [#9346] Remove new line symbol from LGWidget

Addresses # 9346
#minor
Description
This PR solves part of an issue when rendering the LGWidget component (internal process to recognize language generation texts) to the Authoring Canvas UI.
Language generation texts that have multiple lines, new lines are being replaced with the ↵ symbol concatenating the texts into a single one causing the memory to increase when interacting in Composer.
By removing the new line symbol, and just leave the text as is (with the new lines only) reduced the amount of memory storage used.
Specific Changes

Removes the ↵ symbol from the useLgTemplate.ts file.
Updates unit test, removing use of the ↵ symbol.

Testing
The following image shows the before and after the applied fix, how the memory usage and the Authoring Canvas behaves.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 54.637%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
19694

Relevant Lines:
31692

💛  - Coveralls

/promoted 9435


doc: usb: Use new USB API for sample code

Replace sample code, making it use newest USB API, reading code
directly from sources, and changing to the simplest sample - loopback.
CDC ACM is quite big and modifying sample would render line change
quite often.
Signed-off-by: Andrei Emeltchenko<EMAIL_ADDRESS>

Codecov Report

Merging #10422 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #10422   +/-   ##
=======================================
  Coverage   53.14%   53.14%
=======================================
  Files         210      210
  Lines       25745    25745
  Branches     5673     5673
=======================================
  Hits        13681    13681
  Misses       9754     9754
  Partials     2310     2310

Continue to review full report at Codecov.

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


Issues with VS Code, OmniSharp, and the node_modules folder.

Version VS Code 1.28.1
I currently have a project that is a .NET Core MVC/Angular project.  Since the last update, I have been experiencing weird behavior with OmniSharp.  If I open the project without the node_module folder everything is fine and I have no namespace errors with OmniSharp.  Then, I run npm install to download the packages and everything is still ok.  Now if I restart VS Code, after OmniSharp starts up, I get a bunch of errors “Type or namespace name xxx does not exist in the namespace project_namespace.”  I am able to compile and run the project just fine.  I have tried to edit my .omnisharp.json file to include exclude node_modules directory but that does not work.  All intellisense in my project’s namespace fails, however, it works with all other namespaces (System, Microsoft.AspNetCore, etc).  If I remove the node_module folder and restart VS Code, OmniSharp works again.
Steps to reproduce.

Open project folder in VS Code without the node_modules directory.
Run npm install to download modules
Reopen VS Code.

Thanks for your help,
Bob

As a follow up I was able to replicate this behavior on another system.

I only have one Extension installed and it is the C# extension.  I guess I will have to stop using VS Code as it is too unstable for writing production code.  Microsoft needs to start supporting their open-source products better.

Pleae file this issue against the C# extension here
https://github.com/OmniSharp/omnisharp-vscode
thank you


Update stunner chart to stable version

Thank you for making MicroK8s better
Please reference the issue this PR is fixing, or provide a description of the problem addressed.
Also verify you have:

[ ] Read the contributions page.
[ ] Submitted the CLA form, if you are a first time contributor.

There is an error when checking the CLA
occurred while checking user: certificate has expired


Update change log Action failed

https://github.com/pombase/genome_changelog/actions/runs/6635033444
Hi @manulera
I think this is a temporary problem with the contig file: https://github.com/pombase/curation/issues/3597#issuecomment-1778166368
I'll check the Action works once the contig is fixed.

I think this is a temporary problem with the co

Ha! I am happy that there was an error message in place 😀

Val fixed the contig and the Action now runs without a problem.


update version for addr filtering

Codecov Report

Merging #147 (7c71616) into main (a3f095e) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #147      +/-   ##
==========================================
- Coverage   64.55%   64.44%   -0.11%
==========================================
  Files          22       22
  Lines        2415     2416       +1
==========================================
- Hits         1559     1557       -2
- Misses        671      676       +5
+ Partials      185      183       -2

Impacted Files
Coverage Δ

subscriber.go
74.06% <100.00%> (+0.04%)
:arrow_up:

test/util.go
79.39% <0.00%> (-3.02%)
:arrow_down:

mautil/mautil.go
88.88% <0.00%> (+11.11%)
:arrow_up:


[BUG] - time locality issues

Description
The time uses the users local time in both frontend and backend. This is bad. We need to standardize UTC.
Steps to Reproduce
Expected Behavior
Regardless of wherever the user is, always use NY time.
Additional Context
Enter any other details such as dependencies, environment, examples, etc.
Relevant screenshots
If applicable, add screenshots to help illustrate the bug.

Will be fixed by #38.


Blackbar detection - Letterbox/Y-direction only

Feature request
Blackbar detection mode that checks in the Y-axis only. This would thus only consider letterboxing, ignoring any pillarboxing.

What problem does this feature solve?
The existing detection modes can pick up false-positives in the X-direction in dimly-lit scenes, or where a shot has a predominantly black background. This can cause the side LEDs to rapidly change as the blackbar detection finds and then quickly loses what it perceives to be pillars.
The proposed mode would mean that actual pillars on (for example) 4:3 content would not be detected. However, I feel this is an acceptable trade-off, and of course down to personal taste.
Example screenshots - these both triggered detection in the default mode at a threshold of 5.
 "The Orville" S01E01 - Additional X-detections at top and bottom might have caught this one.
 "Shrek" - no amount of X-detections would have correctly solved this.
How should this be implemented in your opinion?
I imagine this would be a literal copy of the default mode, just without X-direction detection.
Potentially, the CPU time that has been freed up could be used to detect Y-direction at more intervals. For example, 25% intervals top and bottom.
Are you willing to work on this yourself?
Yes

Closed with PR #1063


3.7 Android-Web-View Example :

Description
How to bring webview within your android app's activity.
Domain
Android Dev (Java)
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

@VikasPandey121  please assign this issue to me as no one has started working on this issue .
I created this issue as per our roadmap.

/assign

/assign video


[PagerIndicator] I think It would be better to have an option for config max indicators, not just equal to total number of pages

The current PagerIndicator is just a basic version for now. Setting a max number of pages would be better, but it then means that we need to make it support scrolling, etc and it becomes much more complex.


stat() function on SPIFFS is too slow  (IDFGH-934)

Development Kit:      ESP32-Wrover-Kit
Kit version: v4
Module or chip used:  ESP32-WROVER
IDF version:  v4.0-dev-266-ge7f85f198
Build System: CMake
Compiler version: 1.22.0-80-g6c4433a
Operating System: Linux
Power Supply: USB

Problem Description
I my program logic I have to check file existance during config checks processing (see code in Code to reproduce this issue section). When I call is_file_exist() function during boot (before setting up Network, BLE, MQTT, etc. I've got 1,333 seconds delay for each check of file existance and when I call this function later from http handler - delay becomes terrible, about 14 seconds.
It seems to me that 1,33 for stat() - is inadmissible delay for such a function and 14 seconds - is out of my understanding.
Expected Behavior
stat() on SPIFFS must work rather faster in all circumstances.
Actual Behavior
stat() on SPIFFS tackes from 1,33 to 15 seconds acording to MCU payload or if there any other way to check file existance faster?
Steps to repropduce
call  is_file_exist() after mounting SPIFFS and enabling WiFi and/or Ethernet, BLE, MQTT ...
sdkconfig.zip
Code to reproduce this issue
bool is_file_exist(char *filename)
{
ESP_LOGI(TAG, "Enter is_file_exist()");
if (is_filesystem_mounted())
{
    char *file_path = pvPortMalloc(strlen(MOUNT_PATH) + strlen(filename) + 3);

    strcpy(file_path, MOUNT_PATH);
    strcat(file_path, "/");
    strcat(file_path, filename);

    struct stat st;
    ESP_LOGI(TAG, "Before stat()");
    if (stat(file_path, &st) == 0)
    {
       ESP_LOGI(TAG, "After stat() if file exist");
        if (file_path)
        {
            vPortFree(file_path);
            file_path = NULL;
        }
        ESP_LOGI(TAG, "Exit is_file_exist()");
        return true;
    }
    else
    {
        ESP_LOGI(TAG, "After stat() if file NOT exist");
        if (file_path)
        {
            vPortFree(file_path);
            file_path = NULL;
        }
        CONFIG_LOGI("Exit is_file_exist()");
        return false;
    }
}

ESP_LOGI(TAG, "Exit is_file_exist()");
return false;
}
Debug Logs
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6716
load:0x40078000,len:13312
load:0x40080400,len:7808
entry 0x40080780
I (28) boot: ESP-IDF v4.0-dev-266-ge7f85f198 2nd stage bootloader
I (28) boot: compile time 12:48:47
I (37) boot: Enabling RNG early entropy source...
I (38) qio_mode: Enabling QIO for flash chip WinBond
I (40) boot: SPI Speed      : 40MHz
I (44) boot: SPI Mode       : QIO
I (48) boot: SPI Flash Size : 8MB
I (52) boot: Partition Table:
I (56) boot: ## Label            Usage          Type ST Offset   Length
I (63) boot:  0 nvs              WiFi data        01 02 00009000 00004000
I (71) boot:  1 otadata          OTA data         01 00 0000d000 00002000
I (78) boot:  2 phy_init         RF data          01 01 0000f000 00001000
I (86) boot:  3 factory          factory app      00 00 00010000 001f0000
I (93) boot:  4 ota_0            OTA app          00 10 00200000 001f0000
I (100) boot:  5 ota_1            OTA app          00 11 003f0000 001f0000
I (108) boot:  6 storage          Unknown data     01 82 005e0000 00200000
I (116) boot:  7 coredump         Unknown data     01 03 007e0000 00020000
I (123) boot: End of partition table
I (127) boot: Defaulting to factory image
I (132) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x3655c (222556) map
I (207) esp_image: segment 1: paddr=0x00046584 vaddr=0x3ffbdb60 size=0x05b68 ( 23400) load
I (216) esp_image: segment 2: paddr=0x0004c0f4 vaddr=0x40080000 size=0x00400 (  1024) load
0x40080000: _WindowOverflow4 at /home/user/esp/esp-mdf/esp-idf/components/freertos/xtensa_vectors.S:1779

I (216) esp_image: segment 3: paddr=0x0004c4fc vaddr=0x40080400 size=0x03b14 ( 15124) load
I (229) esp_image: segment 4: paddr=0x00050018 vaddr=0x400d0018 size=0x105c80 (1072256) map
0x400d0018: _flash_cache_start at ??:?

I (551) esp_image: segment 5: paddr=0x00155ca0 vaddr=0x40083f14 size=0x1a2a4 (107172) load
0x40083f14: psram_spi_init at /home/user/esp/esp-mdf/esp-idf/components/esp32/spiram_psram.c:495 (discriminator 31)

I (610) boot: Loaded app from partition at offset 0x10000
I (610) boot: Disabling RNG early entropy source...
I (611) spiram: Found 64MBit SPI RAM device
I (615) spiram: SPI RAM mode: flash 40m sram 40m
I (620) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (627) cpu_start: Pro cpu up.
I (631) cpu_start: Application information:
I (636) cpu_start: Project name:     beacon
I (641) cpu_start: App version:      v.0.0.5-67-g1f08b83
I (647) cpu_start: Compile time:     Apr  8 2019 12:48:43
I (653) cpu_start: ELF file SHA256:  98aaed758a52caee...
I (659) cpu_start: ESP-IDF:          v4.0-dev-266-ge7f85f198
I (665) cpu_start: Starting app cpu, entry point is 0x4008154c
0x4008154c: call_start_cpu1 at /home/user/esp/esp-mdf/esp-idf/components/esp32/cpu_start.c:267

I (0) cpu_start: App cpu up.
I (677) heap_init: Initializing. RAM available for dynamic allocation:
I (683) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (689) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (695) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (701) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM
I (707) heap_init: At 3FFC5EB0 len 0001A150 (104 KiB): DRAM
I (713) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (719) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (726) heap_init: At 4009E1B8 len 00001E48 (7 KiB): IRAM
I (732) cpu_start: Pro cpu start user code
I (737) spiram: Adding pool of 4073K of external SPI memory to heap allocator
I (643) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (646) spiram: Reserving pool of 63K of internal memory for DMA/internal allocations
I (656) APP: Logging init completed
E (826) NVS: Error (ERROR) reading!

E (826) NVS: Error (ERROR) reading!

I (2446) FILESYSTEM: Filesystem mounted. Partition size: total: 1920401, used: 9538
I (2446) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2456) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2466) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2476) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE

I (2536) CONFIG: Checking config...
........
I (2866) CONFIG: Processing value: 'CACertPemFile'
I (2866) CONFIG: Enter is_file_exist()
I (2876) CONFIG: Before stat()
I (4206) CONFIG: After stat() if NOT exist
I (4206) CONFIG: Exit is_file_exist()
I (4206) CONFIG: Processing value: 'ClientCertPemFile'
I (4216) CONFIG: Enter is_file_exist()
I (4216) CONFIG: Before stat()
I (5556) CONFIG: After stat() if NOT exist
I (5556) CONFIG: Exit is_file_exist()
I (5556) CONFIG: Processing value: 'ClientKeyPemFile'
I (5556) CONFIG: Enter is_file_exist()
I (5556) CONFIG: Before stat()
I (6896) CONFIG: After stat() if NOT exist
I (6896) CONFIG: Exit is_file_exist()
........
I (6926) CONFIG: Processing value: 'CACertPemFile'
I (6926) CONFIG: Enter is_file_exist()
I (6936) CONFIG: Before stat()
I (6946) CONFIG: After stat() if exist
I (6946) CONFIG: Exit is_file_exist()
I (6946) CONFIG: Processing value: 'PvtKeyPemFile'
I (6956) CONFIG: Enter is_file_exist()
I (6956) CONFIG: Before stat()
I (8296) CONFIG: After stat() if exist
I (8296) CONFIG: Exit is_file_exist()
............
I (8386) CONFIG: Checking config finished.
............
I (8576) CONFIG: Config successfully saved
.............
I (8726) ETHERNET: Power On Ethernet PHY
I (8736) SNTP: Initializing SNTP...
I (8746) ETHERNET: Started
.............
I (8766) MQTT: Setting up MQTT Client...
.............
I (22746) ETHERNET: Link Up
I (22746) ETHERNET: Connected. IP: '<IP_ADDRESS>', Netmask: '<IP_ADDRESS>', Gateway: '<IP_ADDRESS>'
I (22746) SNTP: SNTP client started
.............
I (25596) MQTT: MQTT client connected
.............
W (46776) phy_init: failed to load RF calibration data (0x1102), falling back to full calibration
I (46916) phy: phy_version: 4100, 6fa5e27, Jan 25 2019, 17:02:06, 0, 2
I (47576) APP: Blink task started
I (47576) APP: Telnet task started
I (47576) APP: MQTT BLE task started
I (47586) APP: Beacons task started

<============ calling config check from http handler=========================================
I (283096) CONFIG: Checking config...
...............
I (283446) CONFIG: Processing value: 'CACertPemFile'
I (283456) CONFIG: Enter is_file_exist()
I (283456) CONFIG: Before stat()
I (298396) CONFIG: After stat() if NOT exist
I (298396) CONFIG: Exit is_file_exist()
I (298396) CONFIG: Processing value: 'ClientCertPemFile'
I (298396) CONFIG: Enter is_file_exist()
I (298406) CONFIG: Before stat()
I (322836) CONFIG: After stat() if NOT exist
I (322836) CONFIG: Exit is_file_exist()
I (322836) CONFIG: Processing value: 'ClientKeyPemFile'
I (322836) CONFIG: Enter is_file_exist()
I (322846) CONFIG: Before stat()
I (348866) CONFIG: After stat() if NOT exist
I (348866) CONFIG: Exit is_file_exist()
...............
I (348896) CONFIG: Processing value: 'CACertPemFile'
I (348906) CONFIG: Enter is_file_exist()
I (348906) CONFIG: Before stat()
I (349166) CONFIG: After stat() if exist
I (349166) CONFIG: Exit is_file_exist()
I (349166) CONFIG: Processing value: 'PvtKeyPemFile'
I (349166) CONFIG: Enter is_file_exist()
I (349166) CONFIG: Before stat()
I (376796) CONFIG: After stat() if exist
I (376796) CONFIG: Exit is_file_exist()
................
I (376886) CONFIG: Checking config finished.

Other items if possible

[x] sdkconfig file (attach the sdkconfig file from your project folder)

SPIFFS traverses the entire filesystem when doing open and stat operations, so they can take long time for larger partitions. See the issue in SPIFFS repository: https://github.com/pellepl/spiffs/issues/169, specifically:

This is due to the design goal of using as little ram as possible - compared to other fs:s, there are no index tables or file trees built in memory.

Since SPIFFS does have a cache, order of files also matters. Consider 2 cases:

Best case, files are created in the same order as stat-ed. 736 read operations in 80ms:

I (13874) spi_flash: read   count=     736  time=   80948us  bytes=  106816
I (13875) spi_flash: write  count=       0  time=       0us  bytes=       0
I (13879) spi_flash: erase  count=       0  time=       0us  bytes=       0

Worst case, reverse order. 39k read operations in 4 seconds:

I (20996) spi_flash: read   count=   39272  time= 4221830us  bytes= 4741268
I (20997) spi_flash: write  count=       0  time=       0us  bytes=       0
I (21001) spi_flash: erase  count=       0  time=       0us  bytes=       0

Code used:
    test_setup();
    int file_count = 100;
    for (int i = 0; i < file_count; ++i) {
        char name[32];
        snprintf(name, sizeof(name), "%s%d.txt", filename, i);
        test_spiffs_create_file_with_text(name, "foo\n");
    }
    test_teardown();
    test_setup();
    spi_flash_reset_counters();
    for (int i = 0; i < 100; ++i) {
        char name[32];
        snprintf(name, sizeof(name), "%s%d.txt", filename, i);
        struct stat st;
        TEST_ASSERT_EQUAL(0, stat(name, &st));
        TEST_ASSERT(st.st_mode & S_IFREG);
        TEST_ASSERT_FALSE(st.st_mode & S_IFDIR);
    }
    spi_flash_dump_counters();
    test_teardown();

and in the second test the loop is for (int i = 99; i >= 100; --i) {.
test_setup and test_teardown functions are from test_spiffs.c

In the context of IDF repository, we can't change the logic of SPIFFS. You can increase SPIFFS logical page size, which will result in fewer pages in the filesystem, and fewer read operations. With 512 byte page size, above "worst case" test results in 23k read operations. This is not orders of magnitude of improvement you are probably looking for, though.
Flash read operations are expensive on the ESP32 in dual core mode, and even more so if PSRAM support is enabled. It is possible to do some caching of flash reads, e.g. by reading whole 4kB sectors when SPIFFS only asks for 256 bytes. However this approach doesn't bring performance improvement, unfortunately. In the "worst case" test, such modification results in 13k flash read operations, but because each operation reads more data, the total time is increased to 10 seconds.
In the end, if you need better stat performance, it might make sense to either consider using FATFS, or to use a much smaller SPIFFS partition.

OK, I understand, I will try to use FATFS, but...
...my partition is about 2 Mbytes, only 5 files and only 9538 bytes used:
-rw-rw-r-- 1 user user 2780 mar 30 23:09 beacon.json
-rw-r--r-- 1 user user 1150 oct  7  2018 favicon.ico
-rw-r--r-- 1 user user 1159 nov 22 08:26 http_cert.pem
-rw-r--r-- 1 user user 1704 nov 22 08:26 http_key.pem
-rw-rw-r-- 1 user user  959 nov 27 11:03 index.html
If I'm right stat() needs to read only 5 blocks (maimum) to find a file and all information to fill stat structure. I'm really confused that reading of 5 blocks may long 15 seconds. If it is so there no ways to use SPIFFS on ESP32 at all for any purposes?
Thanks

If I'm right stat() needs to read only 5 blocks (maximum) to find a file and all information to fill stat structure. I'm really confused that reading of 5 blocks may long 15 seconds.

@no1seman Please try enabling CONFIG_SPI_FLASH_ENABLE_COUNTERS in menuconfig, call spi_flash_reset_counters() before calling stat, and call spi_flash_dump_counters() after calling stat. This will print the number of read operations performed by SPIFFS.