it does not work on windows based containers

it gets stuck

FROM mcr.microsoft.com/windows/servercore:ltsc2019
LABEL Description="IIS" Vendor="Microsoft" Version="10"
RUN powershell -Command Add-WindowsFeature Web-Server
CMD [ "ping", "localhost", "-t" ]

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

ID: 5154fa29-1cf7-a744-83b8-f4798e2b3a0e
Version Independent ID: c6781eb9-a9f8-7fbb-838d-e9f654a5cfdf
Content: Using Windows PowerShell commands in a DockerFile to set up Windows Containers (Docker standard based)
Content Source: docs/architecture/containerized-lifecycle/design-develop-containerized-apps/set-up-windows-containers-with-powershell.md
Product: dotnet-architecture
Technology: containerized-lifecycle
GitHub Login: @nishanil
Microsoft Alias: nanil

Hi @rifaterdemsahin, thanks for posting your query. I noticed that there is some issue with STEP 3 onwards, I tried replacing the commands with the below code line in dockerfile, which worked for me:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
LABEL Description="IIS" Vendor="Microsoft" Version="10"
RUN powershell Get-WindowsFeature web-server
RUN powershell Install-windowsfeature web-server
RUN powershell add-windowsfeature web-asp-net45

Let me know if this works for you.


default product ports

updated the default ports

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


.on function trigerred at wrong time

Hi there,
I just tried to play a bit with the lib and here is my setup:
In app.config I added the following custom rules:
matchmediaProvider.rules.phone = "(max-width: 799px)";
matchmediaProvider.rules.desktop = "(min-width: 800px)";

Then in my directive controller I have this:
                    matchmedia.onPhone(function() {
                            console.log("PHONE");
                        });

                    matchmedia.onDesktop(function() {
                            console.log("DESKTOP");
                        });

Result is that I get both PHONE and DESKTOP in the console at each transition between the states, meaning when I go under 800px and when I go above it. I expected to get PHONE when going under and DESKTOP when going above.
For the record, I also tried with the .on function and passing the "max-..." param and I get the same result.
There is no exception raised or errors in the console and setting the dev mode did not really gave much info besides:
["Creating matchmedia"]
["adding listener for query: (max-width: 799px)"]
["adding listener for query: (min-width: 800px)"]
I am using it wrong?
 I'm open to a PR's to clarify anything confusing in the Readme.


[WIP] Add timeoffsets inputs folder

Draft until https://github.com/bitcoin/bitcoin/pull/29623 is merged.
This fuzz target is largely the same as the timedata target, but
both are kept to allow continued testing of both for now. In the
future, the timedata input folder may be removed.

Rebased after #177 was merged.
Thanks for your comprehensive explanation, maflcko.

So I think it would be better to create a copy

Updated my approach to create a copy instead.

Moreover, better than creating a copy of a single folder would be to pick fuzz inputs from all other folders with the coverage algorithm. This way the cost is still close to zero, but you'll likely get more coverage.

I'd be happy to try this but unfortunately am a bit out of my depth here and could not find relevant instructions on the documentation in this repo, or online. If you have any pointers for me to look at that would be helpful, but also I'm happy to keep it at the current approach if that's not worth the hassle.

Moreover, better than creating a copy of a single folder would be to pick fuzz inputs from all other folders with the coverage algorithm. This way the cost is still close to zero, but you'll likely get more coverage.

I'd be happy to try this but unfortunately am a bit out of my depth here and could not find relevant instructions on the documentation in this repo, or online. If you have any pointers for me to look at that would be helpful, but also I'm happy to keep it at the current approach if that's not worth the hassle.

It’s possible to provide multiple source directories to the fuzzer. The first directory you provide is both a source and also the destination of newly added seeds. When you create a new target, you can scrounge up the seeds from all targets to see if any of them improve the coverage of your new target, e.g. like this:
FUZZ=timeoffsets src/test/fuzz/fuzz -set_cover_merge=1 -shuffle=0 -prefer_small=1 -use_value_profile=0 ../qa-assets/fuzz_seed_corpus/timeoffsets ../qa-assets/fuzz_seed_corpus/*

Thanks for the guidance @murchandamus, that was very helpful. I've updated my approach to start with seeds from all targets, then run the fuzzer on an empty dir, and then finally merge both together.
From the existing seeds, I got:
MERGE-OUTER: 109 new files with 5720 new features added; 726 new coverage edges
After merging with a fresh run, I got:
MERGE-OUTER: 37 new files with 277 new features added; 12 new coverage edges
I've summarized my actions (and outputs) below.

Starting with an empty timeoffsets dir:
$ FUZZ=timeoffsets src/test/fuzz/fuzz -set_cover_merge=1 -shuffle=0 -prefer_small=1 -use_value_profile=0 ../../bitcoin-core-qa-assets/fuzz_seed_corpus/timeoffsets ../../bitcoin-core-qa-assets/fuzz_seed_corpus/*
...
MERGE-OUTER: successful in 1 attempt(s)
MERGE-OUTER: the control file has 387517107 bytes
MERGE-OUTER: consumed 193Mb (830Mb rss) to parse the control file
MERGE-OUTER: 109 new files with 5720 new features added; 726 new coverage edges

Then, on a fresh timeoffsets-emptydir:
$ FUZZ=timeoffsets src/test/fuzz/fuzz -shuffle=0 -prefer_small=1 ../../bitcoin-core-qa-assets/fuzz_seed_corpus/timeoffsets-empty
...
#2324306	REDUCE cov: 928 ft: 5864 corp: 669/292Kb lim: 4096 exec/s: 543 rss: 4714Mb L: 201/4092 MS: 3 ChangeASCIIInt-CMP-EraseBytes- DE: "7s3\003\001\000\000\000"-
#2333777	REDUCE cov: 928 ft: 5864 corp: 669/291Kb lim: 4096 exec/s: 542 rss: 4714Mb L: 1768/4092 MS: 1 EraseBytes-
#2342448	REDUCE cov: 928 ft: 5864 corp: 669/291Kb lim: 4096 exec/s: 541 rss: 4714Mb L: 284/4092 MS: 1 EraseBytes-

And finally merging the 2 together:
$ FUZZ=timeoffsets src/test/fuzz/fuzz -set_cover_merge=1 -shuffle=0 -prefer_small=1 -use_value_profile=0 ../../bitcoin-core-qa-assets/fuzz_seed_corpus/timeoffsets ../../bitcoin-core-qa-assets/fuzz_seed_corpus/timeoffsets-empty
...
MERGE-OUTER: successful in 1 attempt(s)
MERGE-OUTER: the control file has 4547882 bytes
MERGE-OUTER: consumed 2Mb (82Mb rss) to parse the control file
MERGE-OUTER: 37 new files with 277 new features added; 12 new coverage edges

One more force-push, thanks for bearing with me here.
Turns out the timeoffsets harness had a memory leak. That's now fixed, so I've recreated the inputs folder using the same process.

Would you like me to schedule a cronjob to fuzz that for 12 hours with 12 processors early next week?

Sounds like a good initial set to me.

Would you like me to schedule a cronjob to fuzz that for 12 hours with 12 processors early next week?

Thanks for offering, that'd be very helpful but I think it's probably best to wait until the underlying pull (https://github.com/bitcoin/bitcoin/pull/29623) is merged?

Yeah, let’s first get the code in, then throw CPU at increasing the fuzz coverage. :)

I got a new computer that I’m itching to fuzz something with ;)

I wouldn't want to withhold you from that pleasure - thank you very much 🥳

Tested this locally, has a pretty good starting coverage. LGTM.


Tweak settings to prevent accidental execution of code from within a workspace

We want to prevent the chance of someone opening a fresh workspace on a repository to explore the code and then accidentally triggering the execution of code from within that repository. This is possible if you specify certain settings in a certain way, e.g.:

python.pythonPath
python.linting.pylintPath
python.formatting.blackPath
python.testing.pytestPath

The expected solution to all of this is:

Store a workspace's Python path internally and require the user to select a path/virtual environment manually if it exists within the workspace (#2125)
Make tool paths be user-only, so that installation into an environment still works, but can be overridden only system-wide

By requiring a user action to set the Python path to e.g. an virtual environment within the workspace it forces the user to choose to trust that interpreter. And by only running paths to tools as specified at the user level then it doesn't allow a repository to override that location.

One thing to figure out is how to handle python -m unittest and if someone specifies a unittest.py in the workspace (this also includes having to worry about .pth). We might need to get sys.path from the selected Python interpreter, do a search for the relevant tools that would get picked up by -m, and not use it if it lands in the workspace or at least warn about it before using it.

As a team we use a workspace relative path in python.pythonPath so that we can open any of our workspaces and run with the correct Python interpreter for that project, without any further configuration by any team member. That's one of the primary benefits of VS Code over Intellij, how simple it has been to share our configuration. It seems like you'll be taking away this very convenient feature.

@obambrough we expect to continue to automatically detect virtual environments. We would also store what environment you choose in VS Code's internal storage so it's a one-time setting. Also realize some people hate that we always set "python.pythonPath" as it isn't OS-agnostic. So this is a can't-make-everyone-happy-all-the-time situations.

@brettcannon I thought the proposed change of storing settings in internal storage was an optional feature (either opt in or opt out), giving users the ability to continue using python.pythonPath. I.e. @obambrough would be able to continue with python.pythonPath.

@DonJayamanne it's not fully spec'ed yet so I would prefer to not get into a discussion right now about this until that has occurred.

FWIW, not setting python.pythonPath in .vscode/settings.json breaks other extensions that rely on that setting, like lextudio.restructuredtext.

@kynan we already have an API that allows for extensions to retrieve the value of the selected environment, but we're making some final updates on it: https://github.com/microsoft/vscode-python/issues/12596

I mentioned this in #12313, but I figured I would also bring it up here for discussion. Regardless of the (de)merits of the proposed changes, there is a very real cost to enacting the proposed changes.
With regard to this specific issue, I believe getting user certification of to-be-used paths the first time they are encountered by the extension (per workspace) would be easier to implement and lower cost to both the project and users. Is there any reason such a solution would not be sufficient in addressing this issue?

With regard to this specific issue, I believe getting user certification of to-be-used paths the first time they are encountered by the extension (per workspace) would be easier to implement and lower cost to both the project and users. Is there any reason such a solution would not be sufficient in addressing this issue?

The problem is that the current behaviour of the extension is to store the path of the selected interpreter for a workspace in the settings.json file, so asking for permission to use that setting is weird when the default experience is to add/modify that setting on interpreter change. One key point is the extension doesn't know if, for example, the setting was changed by the person by manually typing the path or if it was changed due to a git pull operation.
However, as mentioned in https://github.com/microsoft/vscode-python/issues/12313#issuecomment-661290994,  we may have a solution to keep the python.pythonPath setting in an opt-in way while addressing security concerns.

I'm hitting this issue. I have a project I use on MacOS / Ubuntu and trying to get windows to work with it leads to an automatic change in settings.json file to use the windows path.
Here's my diff:
This is the setting:
"python.pythonPath": "${workspaceFolder}/prod_env/bin/python",
Which get's changed to
"python.pythonPath": "prod_env\bin\python.exe",
..when I select the python interpreter to enable debugging.
I want to propose a fix that should be simple and avoid the complicated architecture change.
Proposal 1: Still have the path change as it's currently doing, but add a check which only changes the path if and only if the absolute windows path is not equivalent to the absolute windows interpretation of the path which is currently set.
In python this would look like:
if (os.path.abspath(toWindowsPath(curr_path)) != os.path.abspath(toWindowsPath(new_path)):
  # set path.

Proposal 2: Add an optional windows specific python path. For example, python.pythonPath.win, which if present, would override the python.pythonPath variable.
In either of these cases the bug would effectively go away for me.

@zackees that's actually a different issue as that's a settings flip more than accidental code execution. See https://github.com/microsoft/vscode-python/issues/12313 for our long term plans to stop changing the python.pythonPath setting on your behalf.

like @obambrough said, the Python interpreter is required to be workspace dependent - it does not make any sense to change the interpreter to be user dependent with this experiment. A developer has multiple Python interpreters installed and the workspace defines which one is taken.

See #12313 for our long term plans to stop changing the python.pythonPath setting on your behalf.

@brettcannon, in my humble opinion, the python.pythonPath setting comes very handy, especially when using the Remote - Containers extension within a team.
In our team, for instance, we rely on "Remote - Containers" to obtain a fully-reproducible development environment among the members, and this setting comes handy (i.e., because the path is always the same according to the .devcontainer/devcontainer.json settings, pipenv hashes and other venv-related paths with respect to the root of the development container are also fully-reproducible and/or static). The problem with your A/B testing is as follows:

When some of our team members have python.pythonPath feature deprecated (even though it is not even documented, nor does your documentation have any clue about this A/B testing experiment), we get confused. We assume that we have fully-reproducible environments simply because we are using the same IDE version, same Docker version, and same host machines, as well as remote containers with fully-reproducible Docker image tags and Pipfile.lock files. Yet, we observe different behavior in our IDEs. Moreover (and, even worse), IDEs of those members taking part in the A/B testing experiment simply remove the setting from .vscode/settings.json, whereas those of the members not taking part in the experiment add this setting. As a result, we need to be very careful when git commit'ing the changes not to break the behavior of the IDEs for some of the team members.

Is there any place where I can share this comment as a feedback so that this is also taken into account when deciding on the long-term plans? Perhaps one of #2125 or #12313?
Cc: @baboune

@brettcannon, my comment may be moot, so if there is some place I can read about what you already have planned, I would love to.
I like the way VSCode handles the same issue for typescript, and I wish there were an equivalent of "typescript.enablePromptUseWorkspaceTsdk" for python. We use pipenv together with a .venv file containing the path to an untracked directory in our repository to ensure consistency across development environments. pipenv reads the .venv, and creates its virtual environment at the specified path when pipenv install is run. Thus, all developers are guaranteed a consistent virtual environment at a consistent path. Naturally, we specify "python.pythonPath" as a workspace setting to ensure that all VSCode users use the correct version of python. I propose continuing to allow workspaces to specify a python path, but introducing a "python.enablePromptUseWorkspacePython" setting, and ignoring the workspace python path unless the user accepts it. This simplifies the per-user workload from selecting the correct python environment from a potentially lengthy list to a binary decision of whether to trust that the workspace is configured correctly and non-maliciously.

We are starting to roll out the experiment and we plan to write a better explanation in another issue, but what we are doing is:
2. you can set python.defaultInterpreterPath and we will read it, but not write it
3. We will be no longer using python.pythonPath (I can't remember if we are updating it to python.defaultInterpreterPath or still reading it during the transition)
So people who don't want their git repos accidentally ending up with a machine-specific path can avoid it while people who generate their settings will be able to still do that.

We have rolled out the changes (see the announcement). Workspace trust also gives proper protections from not accidentally running code in an untrusted code base.

Thank you, @brettcannon, and the team for handling this in a nice and clean way. I have already been using the new python.defaultInterpreterPath setting, and I am very happy about it. Cheers!


Block sticky parameter doesn't work inside block

Description
Maybe I don't understand how the block.sticky parameter should work but it doesn't work as I expected inside a block. This sample correctly moves to the next page:
#lorem(650)

#{
  block(fill: red, sticky: true, [block1])
  block(fill: blue, [block1])
}

While this sample splits between two pages:
#lorem(650)

#block(fill: green,
  {
    block(fill: red, sticky: true, [block1])
    block(fill: blue, [block1])
  }
)

This is annoying, for example, with the gentle-clues package. I was trying to prevent the header from splitting from the content but the sticky parameter is ignored inside the wrapper block.
Reproduction URL
No response
Operating system
MacOS
Typst version

[X] I am using the latest version of Typst

Note that the obvious solution, setting breakable to false, isn't sufficient as I do want the block to break, I just don't want it to break that early (similar to how a paragraph shouldn't break after a single line).

Upon further investigation, sticky does work inside blocks, as seen here:
#set page(height: 3cm)

#block[
  abc
  #v(0.8cm)
  == H

  b

  c
]

The problem arises when the sticky block (in this case, the heading) is the first thing (more specifically, frame - ignoring spacing) in the block:
#set page(height: 3cm)

abc

#block[
  #v(0.8cm)
  == H

  b

  c
]

As it turns out, the fact that this happens within a block is a red herring. The same happens outside of blocks:
#set page(height: 3cm)
#v(1.5cm)

== A

b

This is specifically due to the stickable check in the code. By default, the distributor used to layout a flow (like the root flow of the document, or the block's flow) starts with stickable: false:
https://github.com/typst/typst/blob/521ceae889f15f2a93683ab776cd86a423e5dbed/crates/typst-layout/src/flow/distribute.rs#L12-L21
And this matters because, when distributing a frame, we only "attach" the sticky block to the next frame in the flow if stickable is set to true, as seen in the snippet below. In the same snippet, we also see the only way to change stickable to true: to place a non-sticky frame.  Therefore, any sticky blocks at the beginning of flow distribution are stripped of their sticky effect, since there are no non-sticky frames before them (because there are no frames before them).
https://github.com/typst/typst/blob/521ceae889f15f2a93683ab776cd86a423e5dbed/crates/typst-layout/src/flow/distribute.rs#L306-L324
Given that the docs for stickable describe the parameter with "Whether there was at least one proper block. Otherwise, sticky blocks are disabled (or else they'd keep being migrated).", this suggests that stickable might be too conservative as is. I believe regions.may_progress() should also be considered in the decision of whether to disable the sticky behavior for a block: in the cases shown above, moving to the next region would indeed have improved the lack of space.

Alright. It's not so simple: while checking for (self.stickable || self.regions.may_progress()) for stickiness does solve the problem in this issue (with a single sticky block before a frame), it affects multiple consecutive sticky blocks differently, since a single sticky block already turns self.regions.may_progress() true for the next blocks, so all sticky blocks but the first in the sequence become sticky, leading to multiple pages where the first sticky block is alone until either we reach a page where all of the remaining sticky blocks fit, or only one sticky block remains. This is shown by how the block-sticky-many test's output changed (left = before (current), right = after the proposed change):
#set page(height: 80pt)
#set block(sticky: true)
#block[A]
#block[B]
#block[C]
#block[D]
E
#block[F]
#block[G]

Indeed, self.stickable would become largely redundant with this change, since self.stickable already implies self.regions.may_progress() (assuming a frame with non-zero height was placed to enable stickiness).
So, we have to make a decision on what is the expected behavior here. At first, the behavior to the right doesn't seem that unreasonable from a stricter perspective where Typst should try its hardest to keep as many sticky blocks as possible in the same page as the first non-sticky block after them. However, it is not ideal because, as shown by the pre-change test result, it would already be impossible to keep all of them in the same page as the attached frame anyway, so the pagebreaks between sticky blocks are totally excessive. (Note, however, that infinite loops are still prevented, regardless of this weirdness.)
On the other hand, the current (pre-change) behavior always causes all sticky blocks before the first non-sticky frame to have stickiness disabled, so, by removing sticky block D, we end up seeing zero sticky blocks in the same page as the non-sticky frame, which is also not the best since "C" would clearly fit there, maybe even "B" as well.

Now, with the current snapshot system - where we revert to the first sticky block in a sequence of them if the region ended in the middle of or after the sequence -, it sounds like a bit of a larger challenge to determine at which sticky block we would "make the cut" and try again in the next region in the situation above, or, in other words, to determine the ideal amount of sticky blocks to migrate. We'd like to maximize the amount of sticky blocks staying with the frame, but the non-sticky frame might also be placed several pages ahead with too many sticky blocks, so that could require some annoying amount of lookahead.
With that in mind, if we agree that the new test output is not ideal, I see two possible improvements for now:

Apply the regions.may_progress() fix, but for the whole sequence of sticky blocks at once. That is, if the first sticky block is disabled, then all consecutive ones are as well. However, this still makes it possible to unnecessarily orphan the next non-sticky frame (as shown above, where you can remove D and E is orphaned). That is, it preserves the current behavior for that particular case.

Don't apply it for the whole sequence at once (so, only the first sticky block in a sequence is disabled), but apply the following heuristic: in the event of a region break after a sticky block (that is, we have a sticky snapshot), we use some form of lookahead to determine whether another sticky block is about to come (that is, if the next frame is sticky). If so, don't restore the snapshot. That way, we don't unnecessarily create pagebreaks between sticky blocks, but also allow further sticky blocks to stay with the frame. (However, it won't maximize the amount of sticky blocks together with the frame, but that's not so bad.)

The main problem with this approach is that this could potentially require an unbounded amount of lookahead on each region break, since flow children that aren't frames are irrelevant for this check, which could degrade performance particularly if, for some reason, someone places sticky blocks with a bunch of irrelevant children afterwards, such as #place or #v. Although this could potentially be mitigated with some smart caching at collection time.
In addition, it won't fully prevent orphaning if sticky + non-sticky > page height, but that's impossible to prevent anyway. (There was a recent discussion on Discord about a related situation[^1].)

I think 1 is the simplest approach for now, so, since it wouldn't regress anything, we could start with it and later experiment with more sophisticated approaches. I'll begin preparing my PR with that in mind, but I'm open to switching approaches at any time.
[^1]: Discussion about sticky + non-sticky height being larger than the page: https://discord.com/channels/1054443721975922748/1310848449671069737


DEL Key inserts question mark icon when used at the end of the page

Hit the DEL key at the end of the page
it will insert a question mark icon:

Expectation: Nothing should happen when hitting the DEL key when there is no input that could be deleted

This seems to be fixed, can you please verify @MarcelKaeding?

@MarcelKaeding is this still a bug?


Remove 3 User Guide topics, redirect to Tasks.

This is one step in a plan to move content out of the User Guides section into the Tasks, Tutorials, and Concepts sections.

This change is

/lgtm

I get what you're doing here, but it took me a few tries of walking through the content to understand the redirect.  I think you should more boldly call out the "Configuring pods and containers" section in the Tasks landing page and add a TOC to the top of the page.


Replace remaining references to TripleO images

We already replaced TripleO images by TCIB images.

/retest

/test heat-operator-build

/lgtm


Target class [notifex] does not exist.

This error is often encountered with errors in configuration files, when the framework has not yet been initialized.
It is solved by adding a condition to the app/Exceptions/Handler.php file:
public function report(Throwable $exception)
{
    parent::report($exception);

    if (app()->bound('notifex') && $this->shouldReport($e)) {
        app('notifex')->send($exception);
    }
}

This error is often encountered with errors in configuration files, when the framework has not yet been initialized.
It is solved by adding a condition to the app/Exceptions/Handler.php file:
public function report(Throwable $exception)
{
    parent::report($exception);

    if (app()->bound('notifex') && $this->shouldReport($e)) {
        app('notifex')->send($exception);
    }
}


typo(property): API -> API Key

Closing it due now is already on review. Thank you for your contribution! @k8scat


fix: dmverity and crypt disks not being preemptively closed

It has been observed in App Engine that, if Pantavisor cannot properly shutdown, it would leave remnants for the next execution. This would make Pantavisor fail unless the host machine were rebooted.
With this PR, we want to preemptively close those crypt and dmverity vols before trying to initialize them.

looks good in general. i would make the close dependent on whether the device exists and not have the || true only. Also log that this decision was taken?

looks good in general. i would make the close dependent on whether the device exists and not have the || true only. Also log that this decision was taken?

done


[Bug][Devlake] unexpected end of JSON when adding more than 31 repositories as data scope to Azure-DevOps Connection

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Hi There!
Dear Team,
I am having this issue when trying to add more than 31 repositories as data scope to an Azure-DevOps Data Connection.
The error is this:
level=error msg="HTTP 400 error\n\tcaused by: error patching the blueprint (400)\n\tWraps: (2)\n\tWraps: (3) unexpected end of JSON input\n\tWraps: (4) unexpected end of JSON input\n\tError types: (1) *hintdetail.withDetail (2) *hintdetail.withDetail (3) *hintdetail.withDetail (4) *json.SyntaxError"

I have one project, that project has an Azure-DevOps Data Connection, that Data Connection has already 31 repositories added as data scope but when I tried to add one more repository, I got the error mentioned before.

What do you expect to happen
The repository is added as data scope for an Azure-DevOps data connection.
How to reproduce
Add more than 31 repositories as data scope to an Azure-DevOps Data Connection.
Anything else
No response
Version
v1.0.0
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Please use the Go version plugin instead.


ACE.SVG adds phantom text child nodes to SVG root

Hello ACE.SVG fellows,
Here's something weird I found: ACE.SVG adds phantom text child nodes to SVG root
Steps to reproduce:
Add the following SVG code as SVG doc:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="rootSVG" style="height:100%; width:100%">     <g id="baseIndicator_0">     </g> </svg>
Put console.log(svgmap.rootSVG); as init script and let render empty.
Here's the output of my console, there's two text nodes that appeared as first and last child of the root node:

Interesting, let me look and see if that's a function of SVG.js (the library that's doing the actual SVG parsing and rendering) or some code I added that helped where there were XHTML text tags embedded in the SVG.
Andrew

also @eriklouise Thank you!


Scanpy 3k PBMCs tutorial update history and workflow links

last  minute updates for the GTA

@pavanvidem please have a look at https://training.galaxyproject.org/training-material/topics/contributing/faqs/input-and-answer-keys.html

thanks @bgruening. How to add the workflows?

I think I need to update the workflow in the workflows folder.


Removed fun calculateTotalBill() by using Kotlin fun sumBy

Removed fun calculateTotalBill() by using Kotlin fun sumBy.
Removed findViewById.

Thanks @GeorgCantor 🙂


Dnstwist whois

fixes #1137
Plan for DNSTwist and Whois for now:

Run dnstwist with tld lookup list and whois

uses python-whois through dnstwist
only the tld’s that whois supports
Report will only add domains with created dates within the two weeks period

Create a whois.ts scan that can be used on the dnstwist frontend

will use the npm whois

Looks good! I'm a bit confused as to the plan, though. It seems like the python whois module is working -- why do we need to use the npm whois now?

We can use the python module. I was just thinking it would be better to use a node library instead of spawning python, but I guess it doesn't matter?


Add some helpful tips to the README

A couple notes that tripped me up when initially trying this. I hope they can help make future journeys smoother :)

Getting the syntax of .sops.yaml wrong can cause vague errors when it comes to encrypting secrets files.
path_regex needs to include all file extensions that you intend to encrypt. sops supports YAML, JSON, ENV, INI and binary files, so suggesting that those be picked up by default seems sensible. Personally, I had trouble figuring out why sops wouldn't accept my .env file - again with a confusing error message.

Thanks for the documentation contributions!
@mergify queue


Remove version: RoyQu.RedPanda-C++ version 2.3

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://sourceforge.net/projects/redpanda-cpp/files/2.3/RedPanda.C%2B%2B.2.3.win32.MinGW-w64.i686.GCC.8.1.Setup.exe/download
OK
(Automated message - build 923)

Close with reason: Duplicate;


Add feature to search by domain

Hi :)
What do you think about search by domain (in more the feature "Search by title")?
For me, I will be usefull.
Thank you.
PS : it's very a good project! Very cool!

Is there a list anywhere that contains a common list of search functions?

@loftwah Not currently. I'm going to look into domain filtering.

Get in touch if you want any assistance. I haven't worked much with browser extensions before but would like to help if I can.

@loftwah The fuzzy search functionality is provided by fuse.js and used in main.worker.ts - it's a web worker context. The search functionality doesn't rely too much on the extension APIs. The browser doesn't have a domain property on the tab object, it's something I mutate them with in the background script. Type definitions should be complete, so hopefully that helps if you want to try to give it a shot.
I was thinking of adding a special character that would allow you to search by field - a search string starting with = would disable the default behavior, and the following property-value pair would perform an advanced search, e.g. =domain:google.com, so it could be flexible.

Cool, cheers. I'm not bad at figuring out stuff from the source. I'll submit a pull request if I can come up with something suitable.


feat(blue-green): blue green strategy guide

Resolves Jira: CDAAS-2506

Most of the original content is in tutorial form, so moved that to a separate page. Changed page to DRAFT and will finish in subsequent PR (running out of time before launch).


Added translation messages for spanish

Hello,
I made a translation set for spanish language.
Please check this and notify if there are any errors.
Thanks,

thank you very much!  I will check it out a bit later today.  There are three things that might neeed translation (and not all of them are required, they are just optional):

The code itself, changed in the translations folder (I would guess that's what you did, and that's not a light task!)
The documentation: there's a tool that I use for quick translation of the documentation.  So far, since I'm the only active developer, I've done it by myself, but I can deploy it very quickly for other translators.
A language-specific mailing list, for support, feedback and such.

As you can see I tried hard to have a system that was easy to modify and adapt in other's native language.  Thank you again for contributing, this will open the door to many users.  If you want to, I could subscribe you to the translator team (which counts exactly one member, me, for the time being) and we could talk a bit more about the need for translation.
But in any case, thank you so much for contributing.  I will definitely look at the changes.

It sounds nice.
Add me to it and I'll help with this.
Additionally I'm planning to work on random things over the code, so I will not focus only on translations.
Cheers,

Pull request checked!  There are two messages that are not translated but they're linked to the Spanish project on Planio (said project doesn't exist yet, I'll create it now).
Thank you very much again,


Camera holding on to old frames, or connection takes a while to end

This issue appeared on a Samsung Galaxy S4 running 5.0.1
Camera was set to use legacy camera
Steps:

Open app
Enable robot
Allow some time of use
Disable robot
Leave app open
Website may still be receiving data. It may be old data.

This appeared when the webpage was not opened first.

This may be because of slow internet, or just a UI issue. Needs more testing


Local config no longer fails to import silently

CATEGORY
Choose one

[] Bug Fix
[X] Enhancement (new features, refinement)
[ ] Refactor
[ ] Add tests
[ ] Build / Development Environment
[ ] Documentation

SUMMARY
Previously, local superset_config or configured (via env) file could fail to import and superset would swallow the error and continue to run.  Now, if user has provided a path or a superset_config.py and it fails to import, the exception will be clearly logged and re-raised causing superset to stop immediately.
TEST PLAN
Manually tested with both forms of config (env and superset_config), with and without various errors.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

REVIEWERS
@betodealmeida @mistercrunch @john-bodley

closes https://github.com/apache/incubator-superset/issues/8004

@betodealmeida @mistercrunch et al... can someone kick the CI, it looks like some sporadic, unrelated issues caused it to fail.


How to use OL3, center:bounds

I am currently trying to update map bounds by passing bounds available on map center using the following code:
In Controller:
this.center = {
bounds: this.mapExtents
};
here I am updating the map extent using the following logic:
this.mapExtents[0] = data[0].lat;
this.mapExtents[2] = data[0].lat;
this.mapExtents[1] = data[0].lon;
this.mapExtents[3] = data[0].lon;
Iterating through marker data and returning the this.mapExtents by following logic:
   if (data[i].lat < this.mapExtents[0]) {
                this.mapExtents[0] = data[i].lat;
            }
            if (data[i].lon < this.mapExtents[1]) {
                this.mapExtents[1] = data[i].lon;
            }
            if (data[i].lat > this.mapExtents[2]) {
                this.mapExtents[2] = data[i].lat;
            }
            if (data[i].lon > this.mapExtents[3]) {
                this.mapExtents[3] = data[i].lon;
            }

This does not seem to work throws the following error:
Failed to execute 'putImageData' on 'CanvasRenderingContext2D': The provided float value is non-finite.
Even while using the hardcoded valid bounds as following I get the same error:
this.center = {
bounds:   [
-87.865114442365922,
43.665065564837931,
-87.595394059497067,
43.823852564430069
]
};
Please let me know how to make use of these bounds available on center.

Hi @SeratFatima , I think you may have the order of coordinates wrong. It should be MinLongitude, MinLatitute, MaxLongitude, MaxLatitude.

@SeratFatima closing this issue. Please re-open it if it still persists.


refactor(service): change the rlp decode list

What this PR does / why we need it:

Refactor the decode_list method in multi-signature service. Avoid using expect.
Refactor the ServiceError return.

No Breaking Change
docs: N/A
toolchain: N/A

/lgtm


docs: add a link to Vercel Design in README

Checklist

[ ] Fix linting errors
[ ] Tests have been added / updated (or snapshots)

Change information
Hi, I think a link to Vercel Design will help people know more about the "geist" behind this project.

Hello @kidonng, insert docs before of the title your PR to pass the test.

In order not to give the wrong impression that this community project is related to Vercel, all links will only lead to the Vercel website.
This was deliberately changed earlier.


Vue is not defined

when i npm install and  import vue-qr-reader,there is a error. vue is not defined

@fanggangWeb Hello!
are you using a vue project or is codebase without vue ?
if is a vue project please use this instructions from the docs:
https://pulilab.github.io/vue-qr-reader/#/vuecomponent

I was able to run in development environment using the import VueQrReader from 'vue-qr-reader / dist / lib / vue-qr-reader.umd.js';

But when I want to generate the build for production this ' vue-qr-reader.umd.js' break the build, do you know what I should do in the webpack configuration to let vue-qr-reader.umd.js go through?


Long-running debug server

This is a feature request/discussion.
Current Usage
To perform remote debugging I need to start a debug session on the remote machine, eg.
$ dlv exec mypackage --headless --listen=<IP_ADDRESS>:1234
API server listening at: <IP_ADDRESS>:1234

Then from my client I can connect to that session.
$ dlv connect <IP_ADDRESS>:8181
Type 'help' for list of commands.
(dlv) q

Then if I want to debug again I need to go back to my remote machine and restart the server.
^C
$ dlv exec mypackage --headless --listen=<IP_ADDRESS>:1234
API server listening at: <IP_ADDRESS>:1234

Proposed Usage
I propose that it should be possible to start a long running delve server that will itself start debug sessions on behalf of clients:
$ dlv server --listen=<IP_ADDRESS>:1234 --password="password"
API server listening at: <IP_ADDRESS>:1234

And then from my client machine:
$ dlv exec mypackage --remote=<IP_ADDRESS>:1234 --password="password"
Connected to <IP_ADDRESS>:1234
Type 'help' for list of commands.
(dlv) q
$ dlv exec myotherpackage --remote=<IP_ADDRESS>:1234 --password="password"
Connected to <IP_ADDRESS>:1234
Type 'help' for list of commands.
(dlv) q

This would enable a developer to start the delve server once on the remote machine, and then to initiate and restart debug sessions on various packages all from within their development environment without having to go back to the server and restart the debugger.
I'm brand new to Go and Delve so if I've misunderstood something or there are reasons why this would be a bad idea I would be happy to be educated. - Thanks
Edit: Added password parameter as per @aarzilli's suggestion.

So you want a service for authentication-less remote execution of arbitrary executables?

Good point. I was thinking within the context of my locked down environment, but authentication would be a good idea.
$ dlv server --listen=<IP_ADDRESS>:1234 --password="password"
...
$ dlv exec mypackage --remote=<IP_ADDRESS>:1234 --password="password"

We'd have to properly encrypt the password to be worth it... IMHO a script like:
set -e
ssh user@server dlv --headless=true --listen=$hostname:$port exec $1 &
sshpid=$!
dlv connect $hostname:$port
kill $sshpid

is better.

--password on the command line is less-than-ideal: Command lines are exposed to all users on a system, which is why it's conventional to have other options -- such as passing a file name or socket (--passwordfile <(printf '%s' "password"), for example, doesn't expose your password in the same way --password password does; since printf is a shell builtin, it doesn't exec a child process with its command line arguments and thereby expose them).

Closing, doesn't seem like a good idea and it could be implemented independently of delve anyway.

@aarzilli @hrobertson Authentication implementation details aside, this seems like a great idea and totally reasonable feature request. My go development always takes place on a remote system, since the libraries I'm building against don't exist for MacOS. I'm sure I'm not the only one.
Maybe this idea is better suited as an external project... delve-server possibly? But as it stands, delve is useless for me without it (or without hacking a bunch of scripts on top of my editor).

As an embedded developer I use remote debugging all of the time. I've just started using go and I really appreciate the ease with which I can cross compile it, but it is a serious drawback not to be able to do remote debugging.


Update dependencies

This is a breaking change that updates some dependencies, including Hyper, and thereby closes #84.

@homu r+

:pushpin: Commit eb81241 has been approved by Ogeon

:zap: Test exempted - status


Question: What is/was driving idea to run multiple instances of Exhibitor ?

After playing around a bit and going through the wiki I understand that on each machine that is part of Zookeeper ensemble, we need to have an instance Exhibitor running on that machine. : -
https://github.com/soabase/exhibitor/wiki/Installing
What was the driving force of this approach ?
What if we have just one instance of exhibitor ( possibly on a machine outside of zookeeper ensemble) that does all the supervising job.  That single exhibitor instance can talk and manage( start, restart, stop, config files) remote Zookeeper instances over SSH.

When it comes to supervising ZooKeepers, the ZooKeeper Administrator's Guide states:

You will want to have a supervisory process that manages each of your ZooKeeper server processes (JVM). The ZK server is designed to be "fail fast" meaning that it will shutdown (process exit) if an error occurs that it cannot recover from. As a ZooKeeper serving cluster is highly reliable, this means that while the server may go down the cluster as a whole is still active and serving requests. Additionally, as the cluster is "self healing" the failed server once restarted will automatically rejoin the ensemble w/o any manual interaction.
Having a supervisory process such as daemontools or SMF (other options for supervisory process are also available, it's up to you which one you would like to use, these are just two examples) managing your ZooKeeper server ensures that if the process does exit abnormally it will automatically be restarted and will quickly rejoin the cluster.

So one of the jobs of the supervisor process is to quickly restart a ZooKeeper if it dies. A single instance of Exhibitor ssh'ing into 3 or 5 or however many ZooKeepers is simply untenable and also introduces a single point of failure, which is precisely what you're trying to avoid through the use of multiple ZooKeepers.

investigation complete


Request for PF1 System: Add additional "slots" to automark tokens

So in Pathfinder 1e we have 3 conditions when hitpoints reach certain numbers.

HP = 0 for disabled
HP < 0 for dying
HP <= constitution mod for dead

While it is possible to automark a token we can only choose one of them.
Would be nice if we can set at least 3 different conditions with different formulas.

This is something I would like to add when I have a fair chunk of development time to devote to it (since it would need me to learn a few new skills to implement it nicely), but that's not likely to be for a while.
In the meantime, the Combat Utility Belt module has a component called Triggler which can be used to define arbitrary numbers of triggers. https://github.com/death-save/combat-utility-belt/wiki/triggler

Yeah, totally forgot about Combat Utility Belt when I found out that the "HP <= -constitution for dead" check wasn't possible.
So I thought lets try this mod.
Found out that I sadly can't check for negative constitution here aswell because "-data.abilites.con.total" is not a valid datapath and the field doesn't accept formulas.
Setup:

Would need an extra setting to set the Static Value (B) result to a negative number while checked so a result of 10 would be -10 and the actor gets marked as dead at -10HP instead of at 10HP.


React Native Question

Would you consider react native over swift?

What's the point of doing that?
I'm developing this app for iOS and macOS. I don't have any plans nor expertise to support other platforms.


Hundreds of white dots don't help me to pick the right one

Hundreds of white dots don't help me to pick the right one. They have different functions so please color them different.

@9af4f469e851f3d5346235b179d892d0f9c63b0b


Bluetooth communication not working

Hai,
we completed this project using the USB communication but not able to do using bluetooth communication.
the data is not getting transmitted to the pc.
we are using HC-05.

For this project I used an HC-06 and that was pretty straight forward.
I never used an HC-05 so I can't help you much with that...


chore: Remove CS URL in client

Unused code. We don't use this flow anymore, looks like.
Automation
/test sanity datasource
:mag: Cypress test results

[!TIP]
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/11994211302
Commit: 519d95b55dc3214ca22a5fb8774ce8c3e52ff733
Cypress dashboard.
Tags: @tag.Sanity, @tag.Datasource
Spec:
Sun, 24 Nov 2024 08:32:09 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[x] No

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true


[Question] Is it possible that get Deleted messages back?

I recently deleted some messages, can i get them back for some reason?

No, deleted messages are and stay deleted.


See Your Books link displays all saved books ( Description | Google Books Link | Remove from account )

User Story
AS AN avid reader
I WANT to search for new books to read,
SO THAT I can keep a list of books to purchase.

Acceptance Criteria
GIVEN a book search engine,
WHEN I click on the option to see my saved books,
THEN I am presented with all of the books I have saved to my account, each featuring the book’s title, author, description, image, and a link to that book on the Google Books site and a button to remove a book from my account.

See PR https://github.com/nestibry/book-search-engine/pull/24


Some question in your paper

First of all, congratulations on your achievements！
I would like to ask some question in your paper
in fig 3(a), I understand that the point P ^ of the image path can be mapped from P, and the red line indicates that correspondence operation can obtain the points in the corresponding camera image.
But I don't know what the meaning of the blue box I draw in the figure is. What is the relationship between p ^ and M img?

First of all, congratulations on your achievements！
I would like to ask some question in your paper
in fig 3(a), I understand that the point P ^ of the image path can be mapped from P, and the red line indicates that correspondence operation can obtain the points in the corresponding camera image.
But I don't know what the meaning of the blue lines I draw in the figure is. What is the relationship between p ^ and M img?

Hi @JJBUP ， since the codes have already released, you can check it in the code.


uiua: 0.8.0 -> 0.9.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/uiua-lang/uiua/releases.
meta.description for uiua is: A stack-oriented array programming language with a focus on simplicity, beauty, and tacit code
meta.homepage for uiua is: https://www.uiua.org/
meta.changelog for uiua is: https://github.com/uiua-lang/uiua/blob/0.9.2/changelog.md
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.9.2 with grep in /nix/store/10jq7jpwiqkxh2cppx2rxbrymj0kyjb8-uiua-0.9.2
found 0.9.2 in filename of file in /nix/store/10jq7jpwiqkxh2cppx2rxbrymj0kyjb8-uiua-0.9.2

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
uiua
uiua386

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/10jq7jpwiqkxh2cppx2rxbrymj0kyjb8-uiua-0.9.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A uiua https://github.com/r-ryantm/nixpkgs/archive/f8c1a095b717bc7c82a6d869833c2ce075087673.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/f8c1a095b717bc7c82a6d869833c2ce075087673#uiua

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/10jq7jpwiqkxh2cppx2rxbrymj0kyjb8-uiua-0.9.2
ls -la /nix/store/10jq7jpwiqkxh2cppx2rxbrymj0kyjb8-uiua-0.9.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

uiua
uiua386

Maintainer pings
cc @cafkafk @TomaSajt @Defelo for testing.

Closing in favor of the other PR


Locally inference

Hi @ronibandini!
You have a very interesting project. I also have a tda4vm. Is it possible to run this model locally without an internet connection? There is one in this repository .eim application. How can I use it?
Thank you!

Sure, you can train your own model, download the eim and use it to recognize bags without Internet connection.

Thanks! Do you have any example of how to launch this application, transfer data from a webcam and output the prediction result on the board?

Here you have all the steps https://edge-impulse.gitbook.io/experts/image-projects/deter-shoplifting-with-computer-vision-ti-tda4vm


python312Packages.yalexs-ble: 2.5.1 -> 2.5.2

Diff: https://github.com/bdraco/yalexs-ble/compare/refs/tags/v2.5.1...v2.5.2
Changelog: https://github.com/bdraco/yalexs-ble/blob/v2.5.2/CHANGELOG.md

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 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.

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

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 362873

x86_64-linux

:white_check_mark: 7 packages built:

home-assistant-component-tests.august
home-assistant-component-tests.yale
home-assistant-component-tests.yalexs_ble
python311Packages.yalexs-ble
python311Packages.yalexs-ble.dist
python312Packages.yalexs-ble
python312Packages.yalexs-ble.dist


Rspec Test case for Application Mailer

As a developer, I want to create concise RSpec test cases for the Application Mailer to ensure effective testing of email generation and delivery functionalities. The test suite will cover scenarios such as sending confirmation emails, password reset instructions, and other notification emails. It will include tests for valid and invalid email content, edge cases, and proper error handling during the email sending process.


Zabbix Plugin does not load on windows

Describe the bug
When trying to create a Zabbix data source I get the prompt "plugin unavailable".  The plugin was working on older versions of Grafana but I was unable to connect to the zabbix database due to the "user" to "username" change on login with the php file. Would modifying the php file work for this or would it break things in zabbix?
I have also tried different versions of the plugin recommended by other issues on the GitHub with no luck, I installed the plugin using Grafana-cli each time
I have also tried executing gpx_zabbix-plugin_windows_amd64.exe as recommended in other posts
I have tried setting the following in defaults.ini
allow_loading_unsigned_plugins = alexanderzobnin-zabbix-app,alexanderzobnin-zabbix-datasource
enable_alpha = true
app_tls_skip_verify_insecure = true
And I restarted the server after making any changes/plugin installs
Expected behaviour
The database should test connection, so far that is not happening, it is just saving - to note the MySQL data source being used is tested and working
Screenshots

Logs
logger=context userId=1 orgId=1 uname=admin t=2024-01-24T16:05:00.2121184Z level=info msg="Request Completed" method=GET path=/api/live/ws status=-1 remote_addr=[::1] time_ms=1 duration=1.4059ms size=0 referer= handler=/api/live/ws
logger=context userId=1 orgId=1 uname=admin t=2024-01-24T16:05:05.0657805Z level=warn msg="Plugin unavailable" error="plugin unavailable" traceID=
logger=context userId=1 orgId=1 uname=admin t=2024-01-24T16:05:05.0657805Z level=error msg="Request Completed" method=POST path=/api/datasources/3/resources/zabbix-api status=503 remote_addr=[::1] time_ms=3 duration=3.2825ms size=46 referer=http://localhost:3000/datasources/edit/da3277fb-2c73-4738-a147-5fe955e9a7c8 handler=/api/datasources/:id/resources/*
Software versions
Windows 11 23H2

Grafana
Zabbix
Grafana-Zabbix Plugin

9.5.15
6.4
4.4.5

I have also tried Grafana V  10.3.1, every other version the same, and getting the same issue

hi @patokav , some ideas:
could you try to create a new plugin configuration, using the user-interface (do not use provisioning). also try to keep the configuration as simple as possible (do not use direct db connection). is the error still happening?
another idea: in the beginning you wrote:

The plugin was working on older versions of Grafana but I was unable to connect to the zabbix database due to the "user" to "username" change on login with the php file. Would modifying the php file work for this or would it break things in zabbix?"

the grafana-version should have no effect on the plugin's compatibility with Zabbix. so, if you take the Grafana version where the plugin was still working, and upgrade the plugin there to the newest plugin version, it should work. (of course, we'd like to find out why it does not work on the newest grafana-version, but we have to start somewhere). what was the last working grafana-version? could you try what i described? (upgrade the zabbix-plugin on that grafana-vserion to newest)

Hi @gabor thanks for responding,
I don't see an option to create a plugin configuration but I tried creating a new data source with the same error. I also tried disabling the direct DB connection but still the same.
The version of Grafana where the plugin would actually test for connection, was 7.5.17, unfortunately I couldn't update the plugin as they had a dependency on using Grafana 9 or newer.
After doing some research, the older versions of zabbix API expected to be sent "user" and "password" to access the API, this is what the older versions of the zabbix plugin used. When Zabbix API changed to expect "username" and "password", the older versions of the plugin stopped working on the newer versions of zabbix.
I am currently on Grafana 10.3.1 and the most up to date zabbix plugin but still no luck

hi, i tried the combination of Grafana10.3.1, the grafana-zabbix-plugin version 4.4.5, and zabbix6.4, and was able to connect to zabbix.
the error message you are getting (Plugin unavailable), usually means the plugin is not willing to work at all,  for example it's missing some of it's files, or something like that. i see this is running on windows, may i ask, is the grafana-server running on windows, and also the zabbix-server running on windows?

Hi, Thanks for the help. I figured it might be the case as well however I have tried reinstalling it and updating it both using the Grafana CLI and getting the release from GitHub. The Zabbix server is running on Linux and has been updated over the weekend to 6.4.11 (if that makes any difference)
I have reinstalled the grafana plugin but I am now getting this error

logger=context userId=1 orgId=1 uname=admin t=2024-02-21T09:29:43.2862505Z level=error msg="Internal server error" error="[plugin.downstreamError] client: failed to call resources: [plugin.unavailable] plugin unavailable" remote_addr=[::1] traceID=
logger=context userId=1 orgId=1 uname=admin t=2024-02-21T09:29:43.2862505Z level=error msg="Request Completed" method=POST path=/api/datasources/10/resources/zabbix-api status=500 remote_addr=[::1] time_ms=2 duration=2.6926ms size=116 referer=http://localhost:3000/connections/datasources/edit/a1bf383a-3cc6-4e01-a9f4-74bdcc904218 handler=/api/datasources/:id/resources/*

after more investigation, this seems to be a problem in grafana itself, and not specific to the zabbix plugin. i created a bugreport in grafana at https://github.com/grafana/grafana/issues/83416, i recommend following that issue. i will close this isuse, because the fix will probably happen in core grafana. if that's not the case, we can always reopen this issue later.
thanks for your help in investigating this 👍

hi, this is fixed now in the current zabbix plugin version (4.5.2)


Node exporter

It installs the binary and its configuration (port 9101by default). Once the package is installed, it is possible to access "http://(VMaddress):9101/metrics" from an explorer on the same network

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3092

Relevant Lines:
5618

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 55.073%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
3094

Relevant Lines:
5618

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 55.073%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
3094

Relevant Lines:
5618

💛  - Coveralls


Issue #213: Fix MRCPv2 Resource Discovery

This commit fixes the unimrcp-client resource discovery using MRCPv2.
The patch basically creates an mrcp_control_descriptor_t for each resource of an SDP m-line. If no control descriptors were added (e.g. the SDP has no resource description attached), an attempt will be made to create a control descriptor without resource description. This is needed to be able to e.g. process responses to commands (unimrcp-server).
The patch does not introduce trailing whitespace and uses tabs for indention. I tried to be consistent with the surrounding coding style. Tests are still working.

Any thoughts about this commit?

Thanks for your contribution. I unfortunately did not have the time to take a closer look and test this change, but will try to do that in upcoming two weeks. Sorry for being that late, I am too much overloaded, but in no means indifferent.

Hello Tobias,
Please excuse me for the late response. I was finally able to review and test the change.
A minor note: the patched version causes a warning/error on Visual Studio due to an unused variable mrcp_attrib_e id in function mrcp_control_medias_generate(). This variable is no longer needed.
You may have noticed that the same function mrcp_descriptor_generate_by_sdp_session() is used by the client and server stacks. While everything seems to work as intended and is in a good order, I still worry a bit about any functional changes or possible regressions this modification may introduce.
Did you consider having a separate function, which would be called from the function mrcp_sofia_on_resource_discover() only. In this way, the general offer/answer routine would remain the same for both client and server and only the client resource discovery routine will be changed. Any thoughts?
Thanks.

Hi Tobias,
It would be great, if you could update the patch accordingly. If the common offer/answer routine is not affected, then it would be easier and safer to review and push this forward.
Please let me know if you have any questions and thanks once again for your input.

Hi Arsen,
I'll be on vacation the next week. So I will update the patch after my
return.

Hi Tobias,
I have made the changes and committed to the repository: 46b5537d251682972d5410b5027bb45fe38478d7
When you are back from vacation, please take a look. Thanks.

Hi Arsen,
the commit looks good to me and seems to work correctly. I noticed that the additions are sometimes not consistent with the surrounding coding-style. However, it's your project, so if you don't mind I won't either ;-)

Hi Tobias,
Thanks for your feedback. I added you as a contributor
b402e4a63e1d57a3c1c53fd27035ec93996f6033
Please let me know if there is anything to change.


"Salcia Tudor" is listed in the drop-down menu

Description:
"Salcia Tudor" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Salcia Tudor" in the search bar.

Expected results
The location is listed in the drop-down menu as "Salcia Tudor, Brăila (Salcia Tudor)".


Bug. Big viewport

If the window size is high enough, then the objects that are in viewport will not be animated until the window size is reduced. This can be tracked if you open the site from your phone (full version of the site in your mobile browser)
Video:
https://yadi.sk/i/paifxQ7B7Xg2UQ

Hi DrKrol.
I have a similar error with Viewport here.
But solved it with 3 lines in my CSS code.
Gif One: Wow makes the page overflow in X direction.

Gif Two: Overflow-X solved.

Solution > Add this code to your style:
html, body {
	width: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
}


 It would be cool to allow for these images to be displayed asap, so that users aren't looking at placeholders until the images is downloaded.
http://www.codinghorror.com/blog/2005/12/progressive-image-rendering.html

If you have find voud a way to implement this?

Does UIL support progressive image loading now?

This project is dead

Yep

Any new link for Interlacing in android?


[FLINK-8357] Use rolling logs as default

What is the purpose of the change
This PR adds rolling logs to the default configuration.
Brief change log

Rolling logs in log4j.properties
Roll after 100MB

Verifying this change
This change is a trivial rework / code cleanup without any test coverage. I tested the change by running Flink on EMR (yarn) and local.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Things to be considered

Any opinions about the file size? What is a good size?
The max number of files could be set
OnStartupTriggeringPolicy can be used to replace the rolling on startup code in the shell scripts

Thanks a lot for your pull request. I'll soon take a look!

The change works with the web UI ✅
The rolling works (tested it with 1MB instead of 100MB 😄 ) ✅
In my opinion, we should add the rolling also to log4j-session.properties, so that YARN and K8s sessions use it as well?

I believe you also need to adopt the config.sh#rotateLogFile function, as it rotates existing logs. (basically when you run start-cluster, stop-cluster, start-cluster, the old log files will have a .1 in the end)
With your change, now the .1 file is empty on the second start.
I don't have a good idea how to solve this right away.

Let me add this to log4j-session.properties too. What do you think about the On Startup Triggering Policy? This would make log4j to roll the file on startup and the logic form the shell scripts could be removed.

That sounds like a good plan. The more complexity we can remove from the bash scripts, the better.

@rmetzger the last change adds the OnStartupTriggeringPolicy and the files roll now correctly.
I looked at the log4j-session.properties and they currently log only to the console and not to file. Therefore I didn't change it.
The log4j-cli.properties logs to a file and doesn't use a rolling policy, I can change that to rolling.
The log4j-console.properties uses the rolling policy and max files to keep is set to 10. Maybe it makes sense to do the same for log4j.properties.
Then I noticed that there is a CoreOptions.FLINK_LOG_MAX config parameter, is it save to remove it? This will not be used anymore.

The log4j-cli.properties logs to a file and doesn't use a rolling policy, I can change that to rolling.

Let's leave that as-is. The logfile is overwritten on every cli start anyways.

The log4j-console.properties uses the rolling policy and max files to keep is set to 10. Maybe it makes sense to do the same for log4j.properties.

Yes, I agree. That way, we bound the log files directory size to roughly 1GB, which is a good safety net.

Then I noticed that there is a CoreOptions.FLINK_LOG_MAX config parameter, is it save to remove it? This will not be used anymore.

@zentol are we considering these config options part of the stable API? I don't think this setting is used much, if at all.

If we are going to remove the config param: There are a few more usages of it in config.sh. But let's wait for Zentol first.

If we are going to remove the config param: There are a few more usages of it in config.sh. But let's wait for Zentol first.

I added a commit to remove it, in case we want to keep that change I will squash it into the first commit before merge.
log4j.properties now also contains the max limit of 10 files

I'm really sorry that I'm only responding to you every 5 days. I'd actually like to keep a certain momentum going with this change.  I'll try to get back faster!
I had an offline discussion with @zentol about the configuration parameter. Since it is documented, we treat it as public API, which we cannot break between minor releases.
However, he also wondered why we can't forward the configured FLINK_LOG_MAX value to the log4j settings?
appender.main.policies.type = Policies
appender.main.policies.size.type = SizeBasedTriggeringPolicy
appender.main.policies.size.size = 100MB
appender.main.policies.startup.type = OnStartupTriggeringPolicy
appender.main.strategy.type = DefaultRolloverStrategy
appender.main.strategy.max = ${env:MAX_LOG_FILE_NUMBER:-10}

I have tried this locally and it seems to work.

(Sry, hit the wrong button -- it's too late 🤕 )

So I'd say, let's re-introduce the config param, add it to the log4j.properties and then we'll finally merge this change.
I quite like this now, as it does the rotation stuff in log4j, not using some home-cooked bash stuff.

I changed it as suggested in the log4j.properties and the log4j-console.properties.
The MAX_LOG_FILE_NUMBER environment variable is not set for the started Java process, therefore I added an export to expose it, otherwise the default (10 as specified in the log4j properties) is always used.
The two defaults could be confusing, what do you think about not specifying it in the log4j properties? If there are no bugs in the shell scripts MAX_LOG_FILE_NUMBER should be used anyway (defaults to 5) or to the user configured value. If the variable fails to be set for some reason log4j defaults to 7.
I would still propose these changes before merge:

Remove the default form the log4j properties files
Increase the default from 5 to 10
Add the on startup triggering policy for the log4j-console.properties file

For some reason, the environment variable was set when I tested it, not sure what was going on (I'm on macos with bash 5.0.17), maybe different behavior?
I agree to all your proposals!

Thanks for the push. It seems that the YARN test is failing because of environment variable is not available in the tests.
It's probably easy to add to the YarnTestBase.

I guess you can set the env value here: https://github.com/apache/flink/blob/master/flink-yarn-tests/src/test/java/org/apache/flink/yarn/YarnTestBase.java#L689
Let me know if you don't have time to address this (I would also understand if you are a bit annoyed by this lengthy review) .. I can also do the last step if you want. I would like this change to be included in the Flink 1.12 release.

I didn't manage to get the flink-yarn-tests to fail with running the tests on Linux. I tried to add the env as instructed. Can you test this again and see if it helps?
Indentation was by tab, sorry for that, changed it to space now.

Thanks. The CI system should pick up your changes and verify them. Let's wait and see.

Is it possible for contributors to see the CI output?
I actually didn't manage to get every tests to run on my setup (even with
latest master and without my changes).
On Tue, Oct 27, 2020, 11:35 Robert Metzger<EMAIL_ADDRESS>wrote:

Thanks. The CI system should pick up your changes and verify them. Let's
wait and see.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/flink/pull/13457#issuecomment-717148013, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJJJ6Q7JNWX2NP6NI7TRX3SM2PAXANCNFSM4RWJQCEA
.

Yes, this comment is tracking the build results: https://github.com/apache/flink/pull/13457#issuecomment-697012704

The CI for your latest push has failed because of some transient network error in our build environment. This stuff sometimes happens. I manually triggered a re-start of the failed builds.
I've pushed your latest commit to my personal azure account, and it has passed: https://dev.azure.com/rmetzger/Flink/_build/results?buildId=8539&view=results

The Flink CI has passed as well: https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=8382&view=results

Merging ...


1d and 2d cnn embedding nets.

failing test for 1D CNN embedding, see #750
and a new implementation of the CNN embedding net including 1D and 2D convolution, and some input checks.

Codecov Report

Merging #751 (d532710) into main (fda9d4e) will increase coverage by 0.34%.
The diff coverage is 97.87%.

@@            Coverage Diff             @@
##             main     #751      +/-   ##
==========================================
+ Coverage   74.13%   74.47%   +0.34%
==========================================
  Files          78       78
  Lines        6081     6115      +34
==========================================
+ Hits         4508     4554      +46
+ Misses       1573     1561      -12

Flag
Coverage Δ

unittests
74.47% <97.87%> (+0.34%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

sbi/neural_nets/embedding_nets.py
91.46% <97.87%> (+31.04%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Load testing for email blasts

As a user, I can simulate sending thousands of emails without actually sending them so that I can understand how quickly they will be delivered and verify there aren't any technical issues that will interfere with my email blast.
Note that this will be essential for us to be able to improve the performance of the emailing engine.

This might be helpful place to start for the person who tackles this: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mailbox-simulator.html


How to use params in modalId

In my use case, I want to use modalId to differentiate multiple dialogs within the same component. I would like to pass params during this process. The Migration Guide suggests using useModal(), but I'm unsure how to use modalId in this case.

With useModal(), you don't need modalId anymore


Config option to skip downward API for some Tasks/Pipelines/Runs

Feature request
In #2080, we added a flag to skip the downward API step during TaskRun which can lead to faster startup times for TaskRuns without sidecars.
Today, the flag is for the entire Pipelines installation i.e there is no way to selectively enable it for only some Pipeline/TaskRuns.
This feature request is to allow setting this option on a per task/pipeline/run perhaps using a custom annotation.
Use case
From @pierretasci on Slack:

Several of the clusters we run selectively inject sidecars. Some of the time, some pipelines may have injected sidecars and some of the time they don’t. We don’t have an all or nothing cluster.

Would it make sense to use annotation for this on the resources ?

Would it make sense to use annotation for this on the resources ?

Yes, that's what I was thinking of too.

/remove-lifecycle stale


ABB  IRB 4600/40 arm

[x] PROTO

[x] Icon

[x] worlds + controller

[x] IK demo

[x] Documentation: Preview: https://cyberbotics.com/doc/guide/irb4600-40?version=feature-abb-arm

[x] Robot component

[x] Log

Misc small modifications, not directly related:

[x] Improve factory.wbt (texture mapping, simplify floats. )
[x] Fix and extend web component studio to support robot children.
[x] Move lady_bug.png in the common textures :-)

test me

Build Passed :ok_hand:
You can safely merge 'feature-abb-arm' into 'develop'.

Notes about this PR:

I created only one example to demonstrate inverse kinematics, as simple as possible to show IK in action.
Replacing the IPR factory by ABB arms would be welcome but it would be also good to already review this step which is already a good/releasable milestone.
I choose to set the default color of the arm to an "ABB orange" because the white was difficult to understand in icons/images/components.
I also postpone the movie creation to another PR.

👍

That looks very nice! However, it seems the limits of the C motor are wrong as the arm collisions with itself in a way that could be avoided by setting limits differently.

Good remark. I found this in the specifications, I will check this more seriously.

test me

Build Passed :ok_hand:
You can safely merge 'feature-abb-arm' into 'develop'.

The bounds were correct but the motors a, b, c axes were inverted (it was working at some point, I probably messed something).
It is now compliant with the specifications:

I fixed the alignment of the hand too.

test me

Build Passed :ok_hand:
You can safely merge 'feature-abb-arm' into 'develop'.

👍

:eyes:

Thank you for the fixes. The last axis is still rotating weirdly, better than before, but still not well centered. It looks not very precise. Such arms should have a very good precision.

This is right. I have to redo this mesh.

👍

👍

Yes, I will do a movie soon: I have funny things under the hood :-D :


Made section closer look  #42

Now the section looks closer to match the actual website.

@JhoanAlvear  you will have to  chnage whole thing as i was all integrated together with those models . when we reclick after clicking two three times it gives error . so remove other models too and add picture intead for those button also.


Some fixes

Update used swarm version
fix debug flag

maybe we can also add consul leave and consul force-leave on cluster-lab stp


Supporting pagination

While we expose arguments for pagination, how exactly does one go about doing this?
Would be good to have some examples making use of pagination.
There seems to be a performance benefit of hitting the Solr with smaller queries than doing it in-bulk.
Also, when there is a query for thousands of associations, it looks like the Solr spends a lot of time thinking (and timing out) even if we specify a rows parameter.
Example:
https://api.monarchinitiative.org/api/bioentity/phenotype/FBcv:0001347?fetch_objects=true&unselect_evidence=false&exclude_automatic_assertions=false&use_compact_associations=false&get_association_counts=true&rows=100
The term FBcv:0001347 is a 'phenotype' concept.
There are 22939 associated genes, 161977 associated genotypes and 104001 associated variants.
Thinking out loud: Can we improve the behavior?

I agree that this is critical.
In order to support software architectures that can stand a chance of taming this data-glut, such as an architecture that can interleave multiple requests from a single vendor to parallelize the task, we need pagination.


Update build fedora.md

Hey!
I've been updating the Guide to include Fedora 39.
Tested on Fedora (x86 & ARM)

This is useful, especially because we've fixed the openssl3 issues with 1.14.7.
I want to test 35-38 with the 39 instructions, because these should work uniformly now.

does this re-open #3417 ?

answered my own question by looking at the minimum version of Fedora in #3417

looking at the minimum version of Fedora in https://github.com/dogecoin/dogecoin/pull/3417

That's the minimum version used for running the release binaries though, I don't encourage going that far back in testing compiles.

The "Fedora 39" build instructions work for ALL versions since 35 thanks to #3079 and #3058.
I've tested this with the following docker template and script:
FROM fedora:VERSION
WORKDIR /build

RUN dnf install -y gcc-c++ libtool which diffutils make autoconf automake \
                openssl-devel libevent-devel boost-devel libdb-cxx-devel git

# checkout aa53a0d77c47a0b89d83a4a80fd44d917c82bd04 from 1.14.7-dev
RUN git clone https://github.com/dogecoin/dogecoin.git \
 && cd dogecoin \
 && git checkout aa53a0d77c47a0b89d83a4a80fd44d917c82bd04

WORKDIR /build/dogecoin

RUN ./autogen.sh \
 && ./configure --without-gui \
 && make -j8

for v in 35 36 37 38 39; do cat Dockerfile.template | sed s/VERSION/${v}/ | docker build -; done

@FierceSkit could you please remove the specific instructions per version and simply reduce it to only the one you created for 39? "Tested on" can be changed to "35-39"

Needs a squash - shall I do that for you?

Needs a squash - shall I do that for you?

Yep!

Contents look fine pre- and post-squash. I'm compiling and running tests before I approve.

I see one failure, but I think it's due to load on the box and not this PR:
bumpfee.py:
Initializing test directory /tmp/testzcfyax8r/482
Mining blocks...
Running tests
Assertion failed:
Stopping nodes
Not cleaning up dir /tmp/testzcfyax8r/482
Failed

stderr:
  File "/home/chromatic/dev/dogecoin/qa/rpc-tests/test_framework/test_framework.py", line 145, in main
    self.run_test()
  File "/home/chromatic/dev/dogecoin/qa/rpc-tests/bumpfee.py", line 66, in run_test
    test_segwit_bumpfee_succeeds(rbf_node, dest_address)
  File "/home/chromatic/dev/dogecoin/qa/rpc-tests/bumpfee.py", line 127, in test_segwit_bumpfee_succeeds
    assert bumped_tx["txid"] in rbf_node.getrawmempool()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I cannot reproduce that running the test directly in a loop, so I'm comfortable approving this unless you see otherwise @patricklodder.

I see one failure, but I think it's due to load on the box and not this PR

This PR does not change code, so unless you can prove that code for compilation reads this file, I think your assessment is correct.
But to entertain the bug: This is one of the tests that needs to be reworked for reliability. In this case, the test has a race condition between the bumpfee and getrawmempool calls in the context of sync processing of mempool updates (the former returns a lock, script moves on to the latter, then that locks the mempool so that the update cycle waits - perhaps it was doing a txmempool::check, which happens randomly). The latter python assertion should be replaced by a wait_until that loops through getrawmempool with a timeout until it has it.


Sik-Ho Tang | Review: GoogLeNet (Inception v1) -- Winner of ILSVRC 2014 (Image Classification).

Sik-Ho Tang. Review: GoogLeNet (Inception v1) — Winner of ILSVRC 2014 (Image Classification).

Overview
In this story, GoogLeNet [1] is reviewed, which is the winner of the ILSVRC (ImageNet Large Scale Visual Recognition Competition) 2014, an image classification competition, which has significant improvement over ZFNet (The winner in 2013) [2] and AlexNet (The winner in 2012) [3], and has relatively lower error rate compared with the VGGNet (1st runner-up in 2014) [4].
From the name “GoogLeNet”, we’ve already known that it is from Google. And “GoogLeNet” also contains the word “LeNet” for paying tribute to Prof. Yan LeCun’s LeNet [5]. This is a 2015 CVPR paper with about 9000 citations when I was writing this story.
It is also called Inception v1 as there are v2, v3 and v4 later on.

ILSVRC 2014 Error Rate (%).
The network architecture in this paper is quite different from VGGNet, ZFNet, and AlexNet.

It contains 1×1 Convolution at the middle of the network.
And global average pooling is used at the end of the network instead of using fully connected layers.

These two techniques are from another paper “Network In Network” (NIN) [6].

Another technique, called inception module, is to have different sizes/types of convolutions for the same input and stacking all the outputs.

And authors also mentioned that the idea of the name “Inception”, is coming from NIN and a famous internet meme below: WE NEED TO GO DEEPER.

WE NEED TO GO DEEPER.

Dataset
ImageNet, is a dataset of over 15 millions labeled high-resolution images with around 22,000 categories. ILSVRC uses a subset of ImageNet of around 1000 images in each of 1000 categories. In all, there are roughly 1.2 million training images, 50,000 validation images and 100,000 testing images.

The 1×1 Convolution
The 1×1 convolution is introduced by NIN [6]. 1×1 convolution is used with ReLU. Thus, originally, NIN uses it for

introducing more non-linearity to increase the representational power of the network since authors in NIN believe data is in non-linearity form.

In GoogLeNet, 1×1 convolution is used as a dimension reduction module to reduce the computation. By reducing the computation bottleneck, depth and width can be increased.
I pick a simple example to illustrate this. Suppose we need to perform 5×5 convolution without the use of 1×1 convolution as below:

Without the Use of 1×1 Convolution.
Number of operations = (14×14×48)×(5×5×480) = 112.9M
With the use of 1×1 convolution:

With the Use of 1×1 Convolution.
Number of operations for 1×1 = (14×14×16)×(1×1×480) = 1.5M
Number of operations for 5×5 = (14×14×48)×(5×5×16) = 3.8M
Total number of operations = 1.5M + 3.8M = 5.3M
which is much much smaller than 112.9M !!!!!!!!!!!!!!!
Indeed, the above example is the calculation of 5×5 conv at inception (4a).
(We may think that, when dimension is reduced, actually we are working on the mapping from high dimension to low dimension in a non-linearity way. In contrast, for PCA, it performs linear dimension reduction.)
Thus, inception module can be built without increasing the number of operations largely compared the one without 1×1 convolution!

1×1 convolution can help to reduce model size which can also somehow help to reduce the overfitting problem!!

Inception Module
The inception module (naive version, without 1×1 convolution) is as below:

Inception Module (Without 1×1 Convolution).
Previously, such as AlexNet, and VGGNet, conv size is fixed for each layer.
Now, 1×1 conv, 3×3 conv, 5×5 conv, and 3×3 max pooling are done altogether for the previous input, and stack together again at output.

When image’s coming in, different sizes of convolutions as well as max pooling are tried. Then different kinds of features are extracted.

After that, all feature maps at different paths are concatenated together as the input of the next module.
However, without the 1×1 convolution as above, we can imagine how large the number of operation is!

Inception Module (With 1×1 Convolution).
Thus, 1×1 convolution is inserted into the inception module for dimension reduction!

Global Average Pooling

Fully Connected Layer VS Global Average Pooling.
Previously, fully connected (FC) layers are used at the end of network, such as in AlexNet. All inputs are connected to each output.
Number of weights (connections) above = 7×7×1024×1024 = 51.3M.
In GoogLeNet, global average pooling is used nearly at the end of network by averaging each feature map from 7×7 to 1×1, as in the figure above.
Number of weights = 0
And authors found that a move from FC layers to average pooling improved the top-1 accuracy by about 0.6%.
This is the idea from NIN [6] which can be less prone to overfitting.

Overall Architecture
After knowing the basic units as described above, we can talk about the overall network architecture.

GoogLeNet Network (From Left to Right).
There are 22 layers in total!
It is already a very deep model compared with previous AlexNet, ZFNet and VGGNet. (But not so deep compared with ResNet invented afterwards.) And we can see that there are numerous inception modules connected together to go deeper. (There are some intermediate softmax branches at the middle, we will describe about them in the next section.)
Below is the details about the parameters if each layer. We actually can extend the example of 1×1 convolution to calculate the number of operations by ourselves. :)

Details about Parameters of Each Layer in GoogLeNet Network (From Top to Bottom).

Auxiliary Classifiers for Training
As we can see there are some intermediate softmax branches at the middle, they are used for training only. These branches are auxiliary classifiers which consist of:
5×5 Average Pooling (Stride 3)
1×1 Conv (128 filters)
1024 FC
1000 FC
Softmax

The loss is added to the total loss, with weight 0.3.

Authors claim it can be used for combating gradient vanishing problem, also providing regularization.
And it is NOT used in testing or inference time.

Testing Details
7 GoogLeNet are used for ensemble prediction. This is already a kind of boosting approach from LeNet, AlexNet, ZFNet and VGGNet.
Multi-scale testing is used just like VGGNet, with shorter dimension of 256, 288, 320, 352. (4 scales).
Multi-crop testing is used, same idea but a bit different from and more complicated than AlexNet.
First, for each scale, it takes left, center and right, or top, middle and bottom squares (3 squares). Then, for each square, 4 corners and center as well as the resized square (6 crops) are cropped as well as their corresponding flips (2 versions) are generated.
The total is 4 scales×3 squares×6 crops×2 versions=144 crops/image

Softmax probabilities are averaged over all crops.

Ablation Study.
With 7 models + 144 crops, the top-5 error is 6.67%.
Compared with 1 model + 1 crop, there are large reduction from 10.07%.
From this, we can observe that,

besides the network design, the other stuffs like ensemble methods, multi-scale and multi-crop approaches are also essential to reduce the error rate!!!

And these techniques actually are not totally new in this paper!

Comparison with State-of-the-art Approaches.
Finally, GoogLeNet outperforms other previous deep learning networks, and won in ILSVRC 2014.

References

[2015] [CVPR] [GoogLeNet] Going Deeper with Convolutions.
[2014 ECCV] [ZFNet] Visualizing and Understanding Convolutional Networks.
[2012 NIPS] [AlexNet] ImageNet Classification with Deep Convolutional Neural Networks.
[2015 ICLR] [VGGNet] Very Deep Convolutional Networks for Large-Scale Image Recognition.
[1998 Proc. IEEE] [LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4] Gradient-Based Learning Applied to Document Recognition.
[2014 ICLR] [NIN] Network in Network.
Review of LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4 (Image Classification).
Review of AlexNet, CaffeNet — Winner of ILSVRC 2012 (Image Classification).
Review of ZFNet — Winner of ILSVRC 2013 (Image Classification).
Review of VGGNet — 1st Runner-Up of ILSVLC 2014 (Image Classification).


Added Timer log from worker side

Added worker_timeset to log computation time from workers' side.
Output timeset and worker_timeset

resolved some confliction


Pick a topic

Python package called pyeasytries containing functions that efficiently store and search words passed by the user based on the trie data structure.

Python package called pyeasytries containing functions that efficiently store and search words passed by the user based on the trie data structure.


npm version is not latest

Hi, it seems the latest version I can get through npm is 0.1.6 where as bower has 1.0.7. Can the latest version be pushed to npm?

@elmerbulthuis:
The NPM Api key is out of date. Can you change it to a working one?
https://travis-ci.org/LuvDaSun/angular-hal/builds/113355662
NPM API key format changed recently. If your deployment fails, check your API key in ~/.npmrc.
http://docs.travis-ci.com/user/deployment/npm/
~/.npmrc size: 48
npm ERR! publish Failed PUT 401
npm ERR! Linux 3.13.0-63-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v5.6.0/bin/node" "/home/travis/.nvm/versions/node/v5.6.0/bin/npm" "publish"
npm ERR! node v5.6.0
npm ERR! npm  v3.6.0
npm ERR! code E401
npm ERR! You must be logged in to publish packages : angular-hal
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR!     /home/travis/build/LuvDaSun/angular-hal/npm-debug.log


We got SSL issue which seems fixed in the latest code. Could you bump up a new version including recent changes since 1.3?

We are using socket.io and its transport layer is handled by engine.io which uses Java-WebSocket as underlying websocket library. Recently we encountered an SSL issue that socket.io cannot upgrade from xhr long polling to websocket when using https while http works just fine.
After tracking down the source we found that there might be some issues in 1.3 and they were actually fixed in the latest code. We tried to replace 1.3 with the master in engine.io and our problems are gone. However, the author of socket.io cannot apply the latest master of Java-WebSocket because we don't know if it's stable or not. You can check out issue below https://github.com/nkzawa/socket.io-client.java/issues/88#issuecomment-72863135

Agree. Please upgrade to maven!!

I'm also seeing an SSL issue.. I'm seeing this in my logs which eludes to some internal isssue:
Using SSLEngineImpl.

WebsocketSelector32, SEND TLSv1.2 ALERT:  fatal, description = internal_error
WebsocketSelector32, WRITE: TLSv1.2 Alert, length = 2
I tried java 7 and 8 but have the same problem.
Any help would be great on this!
Thanks

I have a Wireshark trace of a Java Desktop app attempting an HTTPS connect to a NodeJS SocketIO server, and it shows the websocket-upgrade request is transmitted as plain-text, while XHR polling requests are encrypted.
Sadly, I don't think sharing the trace would be much help without my TLS key for decode.
However, the following ladder diagrams attempts to detail my observation:

encrypted XHR poll exchange to port 8080

[----------Client----------]    [----------Server:8080-----------]
                         SYN ->
                             <- SYN,ACK
                         ACK ->
        TLSv1.2(ClientHello) ->
                             <- ACK
                             <- TLSv1.2(ServerHello)
                             <- TLSv1.2(Certificate)
                         ACK ->
  TLSv1.2(ClientKeyExchange) ->
   TLSv1.2(ChangeCipherSpec) ->
           TLSv1.2(Finished) ->
                             <- ACK
                             <- TLSv1.2(ChangeCipherSpec,Finished)
   TLS(GET /socket.io/..etc) ->
                             <- HTTP(200 OK)
TLSv1.2(Alert,Warning:Close) ->
                     FIN,ACK ->
                             <- FIN,ACK
                         ACK ->

plain-text websocket-upgrade to port 8080

[----------Client----------]    [----------Server:8080-----------]
                         SYN ->
                             <- SYN,ACK
                         ACK ->
 PLAIN(GET /socket.io/..etc) ->
                             <- ACK
                     RST,ACK ->

Anybody else this this might be relevant?

Sadly I ended up using an haproxy front for the SSL exchange because I
couldn't get the built-in SSL stuff working properly.
I hope to be able to revisit this again soon but for now I must press
onward!
Thanks for the help though!
On Fri, Mar 6, 2015 at 1:41 PM, mhmeadows63<EMAIL_ADDRESS>wrote:

I have a Wireshark trace of a Java Desktop app attempting an HTTPS connect
to a NodeJS SocketIO server, and it shows the websocket-upgrade request is
transmitted as plain-text, while XHR polling requests are encrypted.
Sadly, I don't think sharing the trace would be much help without my TLS
key for decode.
However, the following ladder diagrams attempts to detail my observation:

encrypted XHR poll exchange to port 8080

[----------Client----------]    [----------Server:8080-----------]
SYN ->
<- SYN,ACK
ACK ->
TLSv1.2(ClientHello) ->
<- ACK
<- TLSv1.2(ServerHello)
<- TLSv1.2(Certificate)
ACK ->
TLSv1.2(ClientKeyExchange) ->
TLSv1.2(ChangeCipherSpec) ->
TLSv1.2(Finished) ->
<- ACK
<- TLSv1.2(ChangeCipherSpec,Finished)
TLS(GET /socket.io/..etc) ->
<- HTTP(200 OK)
TLSv1.2(Alert,Warning:Close) ->
FIN,ACK ->
<- FIN,ACK
ACK ->

plain-text websocket-upgrade to port 8080

[----------Client----------]    [----------Server:8080-----------]
SYN ->
<- SYN,ACK
ACK ->
PLAIN(GET /socket.io/..etc) ->
<- ACK
RST,ACK ->
Anybody else this this might be relevant?
—
Reply to this email directly or view it on GitHub
https://github.com/TooTallNate/Java-WebSocket/issues/305#issuecomment-77631711
.

Hello all, based on volume of new issues, the current master branch is more stable than the 1.3.0 snapshot.
We are pushing to fix more issues and make new contributions easier. If you have time, please test with the new code--your troubles may already be fixed. If not, there should be a new stable snapshot in the next few months.