Cannot use nameof(XController) in asp-controller tag helper

Similar to issue #2586
I'm speaking specifically to tag helpers here, though, and I think this is something developers might reasonably expect to be possible:
About
The workaround of not using the Controller suffix on HomeController doesn't work, it just throws a CompilationFailedException with The name 'HomeController' does not exist in the current context
It seems wrong that C# 6 adds the nameof operator specifically to avoid magic string problems just like this one, and MVC 6 fails to take advantage of it, for what would surely be a quick check to see whether or not a string ends with "Controller".
It is also inconsistent, because the asp-action="@nameof(HomeController.Action)" works fine. The reason why may be obvious to some developers, but to many it won't be.

Technically asp-action="@nameof(HomeController.Action)" is problematic as well because you might have [ActionName("Foo")] on your action.
Using nameof in this way is may work in some cases (ex you name your controller "Home" instead of "HomeController") but nameof is not aware of the Application Model and so cannot work in all cases.
What we could do is consider providing an API that allows you to get the controller name or action name based on a type.

Another place where this would be really helpful is the asp-for attribute. For example <input asp-for="@nameof(Model.PropertyName)" />. As of rc1-final, I get the following exception when I try this.
System.InvalidOperationException: Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
   at Microsoft.AspNet.Mvc.ViewFeatures.ExpressionMetadataProvider.FromLambdaExpression[TModel,TResult](Expression`1 expression, ViewDataDictionary`1 viewData, IModelMetadataProvider metadataProvider)
   at Microsoft.AspNet.Mvc.Razor.RazorPage`1.CreateModelExpression[TValue](Expression`1 expression)
   at Asp.ASPV__Views_Xxx__YyyPartial_cshtml.<<ExecuteAsync>b__24_0>d.MoveNext() in /Views/Xxx/_YyyPartial.cshtml:line 4
--- End of stack trace from previous location where exception was thrown ---

Closing because we have no plans to support this.


replace deprecated method app.makeSingleInstance

Electron-3.x changes the way to do single instance and deprecates the old way. After upgrade from electron-2.x we get the following warning on startup:
(electron) 'app.makeSingleInstance(cb)' is deprecated. Use 'app.requestSingleInstanceLock() and app.on('second-instance', cb)' instead.
In the electron docs they give an example of how to use the new way of handling single instance:
https://electronjs.org/docs/all#apprequestsingleinstancelock

Maybe I was premature with this pull request. The Travis build system seems to use electron-2.x. Is this requested in package.json?
Anyway, fell free to dismiss this pull request.

Please, make CI green.

I am unable to fix the Travis CI issues. I've been tinkering with this branch to see if I could make it happy without success. I've even reverted all changes to match branch master and Travis CI still fails. The Travis build issues seem to have nothing to do with my changes.
With all code reverted to match master Travis CI fails with:
At least electron-updater 4.0.0 is recommended by current electron-builder version. Please set electron-updater version to "^4.0.0"
After setting electron-updater version to 4.0.0 it fails during windows build:
error output:wine: failed to initialize: dlopen(/tmp/wine-stage/wine/usr/lib/wine/ntdll.dll.so, 258): image not found
This looks like an issue with electron-builder which downloads wine-2.0.3-mac-10.13 during the windows build. This binary was released over a year ago. Looking in the electron-builder-binaries repo I see that the latest release is wine-3.0.3-mac-10.13.

I was finally able to fix the travis build. The fix required updating the node version used by travis, updating the mac container to xcode10 as suggested here, and updating the dependencies to more current versions.
I apologize for all the git churn while I debugged the issue. I have done a final rebase and force push to leave things as clean as possible.

Thanks!


Link to external documentation from problems panel

Problem you would like to solve
As a user I cannot always make sense of helpful warnings and errors shown in the problems panel. This is due to, among other things (1) messages not being able to transport full context and (2) me as a user missing context. As a user I want dig deeper into issues show so I understand what is going on and am empowered to fix things.

Proposed solution

[ ] Every issue shown in the problems panel links to concrete documentation that documents how to fix a respective issue.
[ ] Error messages are semantic, i.e. <Service Task> must have a <Task definition type> becomes <Service Task> is missing implementation.

To realize this we'd need to perform the following tasks:

[x] Decide on a space of the external documentation in the Camunda Docs; use lint rule names to address pages within that space
[ ] Scaffold documentation placeholders in the Camunda Docs; empty pages do not appear in the sidebar yet
[x] Be able to link external documentation to different places (i.e. when user manually supplies a URL)?
[x] Implement link to warning in the linter panels (https://github.com/camunda/camunda-modeler/issues/3609#issuecomment-1547466842):

[x] Desktop Modeler
[ ] Web Modeler

Alternatives considered
None.
Additional context
None.

When a user hovers over an error, a launch icon will appear with a link to external documentation. On Saas, an external link should be open in a new tab.

One thing we'd need to decide about is where to put the external documentation. I propose a dedicated section within the Modeler section called "Modeling Guidance".
These pages are not meant to be linked to from the documentation, but from the modeler apps.

Reached out internally to figure out organization of reference docs.

I'm not sure what to do about the case of non-existing docs. I see two options:
1. No placeholder docs

no placeholders
link to dedicated section about missing docs

2. Placeholder docs

placeholders for all docs
unfortunately the sidebar won't display so navigation is broken

I favor Option 2 and would love to see the following fixed:

unfortunately the sidebar won't display so navigation is broken

Alternatively there is Option 3: Only show links to actually existing documentation (to be updated with every modeler release),

If Option 3 is on the table, I'd go for it. I know we had the idea of making people contribute but I'm not sure that's going to work. If we show a documentation link in the modeler that leads to an empty page people will get frustrated and stop clicking links. I don't think they'll be like "I'm trying to fix my process and ended up on an empty documentation page so let's stop what I'm doing and figure out how to add this missing documentation.". I'd say, let's only link to existing docs. Users can still contribute if they're missing the link for a specific lint error.

@nikku @YanaSegal I'll take that as a "go for option 3" which would simplify thinks a lot.

Let's do it. Pragmatic decision that yields a simple and meaningful result.

Linked downstream web modeler issue.

Pull Requests

https://github.com/camunda/linting/pull/74
https://github.com/camunda/camunda-docs-modeler-screenshots/pull/57
https://github.com/camunda/camunda-platform-docs/pull/2359


Allow override recert image

/cc @omertuc
/cc @jeff-roche
@omertuc will this also override the version of recert used in post-pivot?
if not, do you know how can we override it there?

@omertuc will this also override the version of recert used in post-pivot?

Pretty sure, yeah, because changing the seedgen file is how I always do it


Support the latest Ignite CLI

Summary

Using the latest version of Ignite CLI (v0.25.1) doesn't work due to unable to build proto  panic: interfacetype only supports messages with exactly one oneof declaration as well as some field names are changed, such as validator to validators and staked to bonded.
References

IgniteCLI v0.25.1
Ignite Docs

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

It will be worthwhile to adopt a protobuf tool Buf. Reference https://docs.cosmos.network/main/tooling/protobuf#buf docs for a detailed information.

We can just skip the proto generation step by passing --skip-proto flag to serve command.


broken json output: strings under staticSignPaths is unclosed

Can you provide more details on how did you get the error?

I'm sorry, I'm unable to reproduce since I cannot remember the context or done steps.


Obsidian says Local REST API version 3.0.0 is available for update, yet I find no evidence it exists.

It seems the tag for a 3.0.0 exists, but there is no release for that version evident.

update failed here... the same problem.

Yeah!  I ran into a little bit of a problem publishing the latest version of this package, and can't find the time right now to fix it.  For now, just stick on the current 2.x version.

I found a little bit of time this morning, and I believe I've fixed this now.  Good luck!


unawaited with void return

The unawaited check doesn't flag calls to async methods which return plain void rather than Future<void>, ie:
void main() async {
  try {
    doThing(); // No unawaited error here
  } catch (e) {
    print("caught $e");
  }
}

// Returns void instead of Future<void>
void doThing() async {
  await Future.delayed(Duration(seconds: 1));
  throw Exception("oops");
}

I'm not really clear on the semantics of returning void instead of Future from doThing(). IIRC the compiler used to always require returning a Future from async methods and at some point changed to allow just void, but that still seems to function as an awaitable future.
In the example above, awaiting doThing() results in the exception being caught while not awaiting does not.
Seems like this should be flagged?

The ability to return void from an async method was included because it can be used to indicate that the caller should not await the returned future. That is, it is a "fire and forget" operation. It will return a Future (as all async functions do), but the type void says that it should be ignored.
It could make sense to lint this situation because it is too easy to get to such a function by editing an existing void function to make it async, and then forgetting to change the return type to Future<void>. Also, "fire and forget" functions could be so rare that it's reasonable to assume that they arise by mistake, and then the ones that should really be "fire and forget" can be marked with an 'ignore' comment, and presumably also a human-readable comment explaining that this operation should not be awaited.

There's the lint avoid_void_async to prevent void return type in async functions.

The fact that awaiting a void async function has an effect is a known issue; it would be better if it did not do anything, i.e. did not await, but that would have been a breaking change and it was deemed too hard to land.
The way to get the correct behaviour is to also enforce
https://dart-lang.github.io/linter/lints/await_only_futures.html
--which we do not yet have in the pedantic lint list, but we expect to at some point.

Thanks for all the input! avoid_void_async looks very helpful as my biggest concern is the accidental instances of returning only void as eernstg described.
For instance, in our app codebase the async method return type is split about 50-50 between Future<void> vs void, and I am very skeptical that half of our async methods were intentionally meant as fire-and-forget.
Fire-and-forget seems useful in specific circumstances, it's just terribly easy to end up doing this accidentally. Since avoid_void_async is a hard rule which eliminates this construct, it might be helpful to have a middle-ground pedantic option which forces the caller to explicitly acknowledge they are firing and forgetting (although "unawaited" may not be the best term here since it sounds like await_only_futures will render these calls unawaitable anyways).
Consider this a feature request and feel free to close it out if the team disagrees. The linter options above will help solve my immediate concern.

Hmm, that's an API design issue, though, not something on the caller.
We could have a lint that warns if an async method returns void. But, this is sometimes what you actually want. Currently pedantic only has fully enabled lints and fully disabled lints; we don't have a category for 'advice you'd like to hear'. I want to figure out a good way to do that at some point, though :)

Closed as stale, I don't think we are changing this at the moment.


Make --parameters repeatable, and merge arguments.

Fixes https://github.com/Azure/azure-cli/issues/2463

Codecov Report

Merging #2656 into master will decrease coverage by <.01%.
The diff coverage is 60%.

@@            Coverage Diff             @@
##           master    #2656      +/-   ##
==========================================
- Coverage   61.61%   61.61%   -0.01%
==========================================
  Files         515      515
  Lines       25988    25993       +5
  Branches     3890     3892       +2
==========================================
+ Hits        16012    16015       +3
- Misses       9035     9036       +1
- Partials      941      942       +1

Impacted Files
Coverage Δ

...urce/azure/cli/command_modules/resource/_params.py
100% <100%> (ø)
:arrow_up:

...ource/azure/cli/command_modules/resource/custom.py
55.12% <55.55%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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

Comments addressed, please re-check.
Thanks!
--brendan


question : usefullness of the StreamFactoryInterface parameter in the constructor ?

Hi,
Why are you using as parameter a streamfactory ? the response factory should already initialise a blank and writable stream.
So instead of creating a new body and inject it in the response, you can simply use the one in the new response.
https://github.com/middlewares/error-handler/blob/master/src/ErrorHandler.php#L78
you can simply do something like :
$response->getBody()->write($formatter->format($e));

Am i missing something ?

I'm agree with you. In fact, there's a conversation about this topic: https://github.com/middlewares/error-handler/pull/5/files#r227117082

Thank you, i didn't see this PR. I have added my opinion in this topic.


Fixes Design update - secondary button with icon #9198

styled both the default secondary button with an icon and the secondary small button with an icon using CSS/SCSS
This fixes #9198
before

After

Hi @lb-, I have opened up this PR, I am sorry that I closed https://github.com/wagtail/wagtail/pull/9491, it was showing changes from many people which are already merged. So I had to drop the rebase at that point and try the process again.
However, I am not yet sure why package-lock.json keeps being tracked by git even after adding it to git ignore. I still have not figured out why some tests are failing
HI @Scotchester

@Seremba there is no need to add package lock to gitignore.
My guess is you have run npm install but probably should use npm ci. When you run the ci command it tells npm to use only the package lock. Npm install can sometimes, depending on the weather 😂, update small parts of your lock file.

LoL 😆, thank you for the suggestion, I was thinking of deleting everything and start afresh but I am scared of losing my PRs

Hi @lb- requesting for your review on my PR

You are still getting frontend CI errors that are unrelated to your changes and aren't happening on other PRs, which is very confusing. I will investigate some more.

Thanks @Scotchester, would you mind trying running the changes on your side? Maybe that way you can figure out why it is like so.
Also, I thought of deleting node_modules and run npm ci instead of npm install . Could that solve the issue?

Also, I thought of deleting node_modules and run npm ci instead of npm install . Could that solve the issue?

This would prevent you from seeing changes to the package_lock.json file, yes. But as the changes are already in place on this branch, you should undo them by reverting the commit that added them: git revert b1158574c754bdd2b5e4245ebafabd632b50e4f1.

Sorry looks like I have not gotten you well. I mean the 'why' for reverting the changes on the commit.

Sorry for the confusion, @Seremba. I was originally thinking there were two separate issues:

package-lock.json getting updated unnecessarily
CircleCI frontend tests failing

But I now realize they are actually related.
I believe the root cause is that you are trying to work on Wagtail with an older version of Node than we support.
To rectify the whole thing, you should do three things:

Run the command I mentioned earlier to undo the package-lock.json changes:git revert b1158574c754bdd2b5e4245ebafabd632b50e4f1

and push the new commit that that creates to this PR branch.
Review the instructions at the top of the Setting up the Wagtail codebase section of the docs for using nvm or fnm to ensure you are running the correct version of Node (currently 16).
Going forward, use npm ci to install your Wagtail dependencies, not npm install, as mentioned in the docs and by @lb- above.

HI @Scotchester, I am done! I have updated my node to version 18.12.0 and also deleted node_modules and ran npm ci instead of npm install.

Hi @Scotchester, thanks for reviewing my PR, let me work on the changes you have suggested.

Thanks a lot @lb-


Feature Request: Include exhaustive mapping setup in the docs.

Feature Requested
Great plugin! :sunglasses:
It would be useful to include an exhaustive keymap setup in the README/docs so that users can cherry-pick the textobjects they wanna use and adjust any keymaps. Currently there are only a number of mappings given as examples, so it takes a more effort to customize before getting it up and running.
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.

good point, added 🙂


How to insert picture from assets directorium in Vue?

i tryed like this but pictures do not show
vfImages: [
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>],

Hello, I don't recommend using the assets folder for images, but you can get how from #72
Regards!

It work, but now i found new big issue.... if i have menu over picture...the place where picture is under menu i can not click on it...because it recognize click on picture look...

i can click on "Cenovnik" and "O nama" ...but cannot click or other 2 that i selected with red color...if i remove flux ..it works OK

Don't worry, that's not a big issue :)
You just have a CSS positioning problem. Just give the menu a z-index over 100 and probably will be enough, guessing the menu position is absolute.
Regards

Working ! Ty a lot 👍

No problem :)


Add LOCATION tag to vCenter drivers

Author Name: Tino Vázquez (Tino Vázquez)
Original Redmine Issue: 3253, https://dev.opennebula.org/issues/3253
Original Date: 2014-10-20
Original Assignee: Tino Vázquez

Same as in the hybrid drivers, to allow:
PUBLIC_CLOUD=[TYPE="vcenter", LOCATION="vCenterA", VM_TEMPLATE="uuid1"]
PUBLIC_CLOUD=[TYPE="vcenter", LOCATION="vCenterB", VM_TEMPLATE="uuid2"]

This is implemented


Create binstall

[ ] I understand that this repository is auto-generated and my pull request may not be merged

Changes being requested
Additional context & links

@GrossSchmidt2007 can you share any details about this? what is it and why is it needed?


updated adding instance_format to variable query

Following the conversation here: https://github.com/nasa/python_cmr/issues/59
NASA GES DISC is releasing public zarr stores for specific variables of collections. The only way to discover what available zarr stores at variable level is via the CMR parameter instance_format. This simple PR adds this as a search parameter in VariablesQuery.
Closed last PR as it fell behind other commits: https://github.com/nasa/python_cmr/pull/60
Should encompass all feedback

Changed thank you @chuckwondo !


Update return types of IPostgrestTable from Table to IPostgrestTable

Feature request
I have recently started using this client library for doing some database operations across a series of services for a product I am making, and I would like to mock our the client and methods so that I can isolate the behaviour of my services.
I have opted to use Mock, NSubstitute, and Bogus as my mocking frameworks.
I would like to create mocks of IPostgrestTable<TModel>/Table<TModel> so that I can override/implement the desired behaviour using the above frameworks.
When reading through the codebase, I noticed that IPostgrestTable<TModel>'s methods (where applicable) return the concrete type Table<TModel> instead of IPostgrestTable<T>.
Table<TModel>'s methods are not virtual, and as a result, I can't mock out my client, as the interface has concrete return types, and the concrete type does not have methods that can be overridden.
Describe the solution you'd like
I would like for IPostgrestTable<TModel>'s methods to have their return type changed from Table<TModel> to IPostgrestTable<TModel>. This means that the interface can be implemented using NSubstitute and mocked out, successfully enabling future unit testing.
Describe alternatives you've considered
I noticed that unit testing for this package is done using a docker container. I could do this, however, I would like to separate out my integration and E2E testing from my unit testing. I would also prefer to not have to mock out quite a complex database within the container, as well as populate test data.

I also posted on Discord:
https://discord.com/channels/839993398554656828/1006358244786196510/threads/1237331814360551466

Good call! Can you check #93 and see if that's what you're looking for?

Looks good to me

Available in v4.0.1

Thanks for sorting @acupofjose! Much appreciated. When will these changes bubble through to supabase-csharp?

I’ll get to it probably this evening or tomorrow morning!

Awesome! Thanks for that. Getting this fix has been so much faster than other SDKs I've come across. I appreciate it 🙏🏼

Luckily an easy one to implement (and one that should've been implemented earlier!) - had a few minutes and went ahead and bumped the main repo. Should be seeing v1.0.1 hit nuget in a few minutes. Happy deving!

Wicked, this stuff now works with common testing frameworks like Moq and NSubstitute 😍 How good!


Write a Suite of Unit Tests

Code: tool5
Size: 2
Dependencies: tool3, form1, form2.
Write a suite of tests and run these in the build script. Also include test
coverage report if possible.

There are a couple of unit tests for the datastore but test coverage is still very low. I will work on this as the project progresses but mark this as closed for now.


Turing Awaree Information Page

we would welcome a blog post about the Turing Award given out by the ACM, along with a list of computer scientists who have won the award, in Chronological Order.

I'd be interested in contributing to this issue!

All the best!

Title: Turing Awards by ACM
Date: '2022-08-06'
Tags: [Turing Awards, media]
Description: Want to add the Oscar equivalent of Computer Science to your vision board and hopefully, to your portfolio one day? Read on to know all about it.
Name : Harini Anand
Link : https://docs.google.com/document/d/1pf7zhltQo9TA2tH9ia4WTfGXe_jENlzi9BPhYTXcxFA/edit?usp=sharing


Update README to demonstrate how to use proguard with the library

Certain generated classes will be removed by proguard. The README should be updated to mention the correct way to retain the classes during a build.

The README has been updated to mention that the generated type adapter factory must be added to proguard.


Youo

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

https://github.com/d4rken/sdmaid-public.wiki.git

@DaoWays369, could you please describe the issue that you are experiencing? Thanks!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


In Flutter 2.0, package_info_plus conflicts with Flutter_keyboard_visibility

Because flutter_keyboard_visibility >=5.0.0 depends on flutter_keyboard_visibility_platform_interface ^2.0.0 which depends on plugin_platform_interface ^2.0.0, flutter_keyboard_visibility >=5.0.0 requires plugin_platform_interface ^2.0.0.
And because url_launcher_platform_interface 1.0.9 depends on plugin_platform_interface ^1.0.1 and no versions of url_launcher_platform_interface match >1.0.9 <2.0.0, flutter_keyboard_visibility >=5.0.0 is incompatible with url_launcher_platform_interface ^1.0.9.
And because url_launcher 5.7.10 depends on url_launcher_platform_interface ^1.0.9 and no versions of url_launcher match >5.7.10 <6.0.0, flutter_keyboard_visibility >=5.0.0 is incompatible with url_launcher ^5.7.10.
So, because water_app depends on both url_launcher ^5.7.10 and flutter_keyboard_visibility 5.0.0, version solving failed.
pub get failed (1; So, because water_app depends on both url_launcher ^5.7.10 and flutter_keyboard_visibility 5.0.0, version solving failed.)
When Flutter was migrated to 2.0, Package_info_plus collided with the plugin dependent on Flutter_keyboard_visibility

@jjva-xiao Thanks for your report. For me this error message looks like a problem between url_launcher and flutter_keyboard_visibility. I don't see any mention of package_info_plus in the error message.
The error message itself should be easily solvable by updating url_launcher to the latest version (6.0.12) as this version uses plugin_platform_interface: ^2.0.0 which actually leads to the conflict.

The issue still persists @jjvu-xiao ?


Improve Mobility Scheme with travel times, infection during trip and more

Mobility/Commuting between the different counties is currently very simplified. In the future, a model should exist so that infection is also possible during the commuting process.
Also, the people are directly moved to the new region. There should be some kind of travel times where the travelers only have contact to each other or other travelers.
In addition, one could still consider the mode of travel (PT, car, ...) ,

@HenrZu Could you resolve the issue with the two open PRs and close the one that is outdated?


Grid Container children do not have consistent size.

Godot version
3.5 mono
System information
windows 10
Issue description
When a grid container has multiple columns and it is not completely filled, the children are not given a consistent amount of space to expand to. This causes jitter in game when adding or removing things to the grid container.
I expect that the grid apportions a consistent amount of space to each column regardless of it currently being occupied.
Steps to reproduce
In the example project, duplicate the button and keep a close eye on the button's size and position in relation to the grid.
Minimal reproduction project
GridContainerBug.zip

Still happening on Godot 4.0.
Gridbug.zip

Any traction on this?


Hi Everybody If somebody wants to make use of, I want to share /etc/init.d script for background processing of go-mysql-elasticsearch

#! /bin/bash
go-mysql-elasticsearch server init script - Levent ALKAN.
BEGIN INIT INFO
Provides:       syncelasticsearch
Required-Stop:
Default-Start:  2 3 4 5
Default-Stop:   0 1 6
Short-Description: go-mysql-elasticsearch
END INIT INFO
USER="root" # User we wil run Go as
GOPATH="/root/work" # GOPATH
GOROOT="/usr/local/go" # used by revel
WORKDIR="/root/work/src/github.com/siddontang"
NAME="go-mysql-elasticsearch" # app name for gme etc ...

if [ -f "$WORKDIR/$NAME.pid" ]
then
echo "Already running according to $WORKDIR/$NAME.pid"
exit 1
fi
cd "$WORKDIR"
export GOROOT="$GOROOT"
export GOPATH="$GOPATH"
export PATH="${PATH}:${GOROOT}/bin:${GOPATH}/bin"
/bin/su -m -l $USER -c "$GO_CMD" > "$WORKDIR/$NAME.log" 2>&1 &
PID=$!
echo $PID > "$WORKDIR/$NAME.pid"
echo "Started with pid $PID - Logging to $WORKDIR/$NAME.log" && exit 0
;;
stop)
echo "Stopping $NAME ..."
if [ ! -f "$WORKDIR/$NAME.pid" ]
then
echo "Already stopped!"
exit 1
fi
PID=cat "$WORKDIR/$NAME.pid"
recursiveKill $PID
rm -f "$WORKDIR/$NAME.pid"
echo "stopped $NAME" && exit 0
;;
restart)
$0 stop
sleep 1
$0 start
;;
status)
if [ -f "$WORKDIR/$NAME.pid" ]
then
PID=cat "$WORKDIR/$NAME.pid"
if [ "$(/bin/ps --no-headers -p $PID)" ]
then
echo "$NAME is running (pid : $PID)" && exit 0
else
echo "Pid $PID found in $WORKDIR/$NAME.pid, but not running." && exit 1
fi
else
echo "$NAME is NOT running" && exit 1
fi
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" && exit 1
;;
esac
exit 0

Cool, Thanks @wistala

Cool, works really good!  Thx @wistala
Just pay some attention to markdown style when copying code from here.  cat "$WORKDIR/$NAME.pid"  should be  `cat "$WORKDIR/$NAME.pid"`

You are welcome thanks


[ios][Teams]Need to override button and text input styles.

Need to create buttons and text UX in alignment with our Teams app theme. Hence need to override the renderer with our specific styling.

Do you prefer custom styling with .xib? If that's the case, it's in the pipeline.


Feature request: Legacy sheets view

It would be awesome if there was an option for the user to always view all sheets in the old legacy view as opposed to having to change them one by one.

This is exactly what the Default Sheet control is for.

Awsome...ty!!


Update Vagrantfile to support latest FreeBSD release (11.1)

The current Vagrantfile uses FreeBSD 10.2 and has a number of problems

the FreeBSD base box does not set base_mac so you have to run vagrant up twice
the package list is outdated
the shell for vagrant is set to csh, FreeBSD comes with /bin/sh which avoids some warnings
folder sharing is based on NFS, IMHO this is not necessary for just building crystal. For example I'm not running NFSD on my workstation and starting one just for building crystal is overkill. I would propose just cloning the the upstream crystal repository to the homedir of the vagrant user.

I'm going to use the updated box for creating a FreeBSD port/package for crystal
I'm working on a PR for fixing these issues, just let me know if there is a chance of getting this merged.
thanks

It doesn't seem the Vagrantfile is used at all anymore.


chore(storefront): remove link tag, Inter is already in globals.css

Resolves #874
An import to Inter was already in globals.css, so I just removed the link tag in head.

Because you only have 1 commit, the PR title and the commit message has to match. Either edit your last commit message to match the PR title or add another commit. ( The comment in Meta.tsx might look better with a big "L" ).


Map IRIs with ncbigene namespace into biolink model

Some examples are:
http://identifiers.org/ncbigene:1482
http://identifiers.org/ncbigene:25948
http://identifiers.org/ncbigene:2626

There is a prefix for ncbigene but the format seems different. Look here: https://github.com/biolink/biolink-model/blob/master/context.jsonld#L96. context.jsonld has a '/' instead of ':'

This was fixed in the pipeline.


Entering a new name under an currently invalid parent.

I need to be able to select, as a parent, a name that is not currently treated as valid.

In the above instance, I need to enter the subspecies "obscurus" under Mirotermes (Cubitermes) natalensis, but this does not come up as a choice in the parent dropdown (as it is currently a junior synonym).

Subspecies name could be entered in the original form as an original combination. The parent of a protonym is always another valid protonym.

@hhopkins77 does this answer your question?

Haven't tried it out yet, so I am not sure. I think so!
H
On Thu, Jul 22, 2021 at 3:42 PM Debbie Paul @.***>
wrote:

@hhopkins77 https://github.com/hhopkins77 does this answer your
question?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SpeciesFileGroup/taxonworks/issues/2356#issuecomment-885184047,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOXBKTRCLFMSN3GK4CGNBITTZBYBZANCNFSM5AYL5OEQ
.

--
Heidi Hopkins, PhD
"She is not what you would call refined.  She is not what you would call
unrefined.  She is the type of woman who would keep a parrot."  ~Mark Twain


Clean up the maintainers list?

Atm, there are 31 accounts with publish access to npm package Component. That looks a bit excessive to me, and that is one of the reasons why there were at least two accounts with leaked credentials on that list.
Perhaps you could remove some accounts from that list, especially now, when the project is not maintained anymore and no updates are planned.

Sounds good, thank you. I removed most of the people, 7 have access now.
Did the people get any notification that their credentials were leaked?
Just want to be sure it wasn't me...

@timaschew Yes, they did.
Thanks, looks better now!


Cannot install in Debian Buster

I'm really a linux noob, so please pardon me if i'm doing something stupid:
I followed the instruction on how to install MakeWix on debian and i've got this error:
buster@me$ sudo dpkg -i makewiz_0.8.0_amd64.deb
Selecting previously unselected package makewiz.
(Reading database ... 35941 files and directories currently installed.)
Preparing to unpack makewiz_0.8.0_amd64.deb ...
Unpacking makewiz (0.8.0) ...
dpkg: dependency problems prevent configuration of makewiz:
 makewiz depends on libc6 (>= 2.34); however:
  Version of libc6:amd64 on system is 2.28-10+deb10u2.

dpkg: error processing package makewiz (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 makewiz

What should i do?

Hi. Thank you for taking an interest in MakeWiz!
It appears that your version of libc6 is too old. Please run sudo apt update and then sudo apt upgrade to make sure your packages are up to date. If it still doesn't work after that we will try something else.

Please run sudo apt update and then sudo apt upgrade to make sure your packages are up to date. If it still doesn't work we will try something else.

I tried that before writing here :)

Could you please try the cargo install and tell me if it works this way? I think that I had the same issue on one of my machines and managed to download MakeWiz this way. I hope this works for you for now and I will keep looking for a solution.

It appears that the bug may have occurred due to my use of an outdated version of the package for generating Debian files. I've generated a new binary file, and it resolves the issue on my machine, where I also have the bug. I've prepared a new pre-release version including this file. Could you please confirm if it also resolves the issue on your end? @parduz

I checked this on a few machines and the new binary file seems to resolve the issue. I decided that a new version is not needed for this. I added the file to the newest release version, but also left the old one there just in case.


Allow CSS filtering on the fly.

Provide syntax to allow filtering CSS files on the fly before it even enters the browser.
Just like HTML is implemented. Should speed things up.

You should provide a detailed explanation of what you request: examples, proposed syntax, etc.

Currently Adguard for Windows modifies the CSS "after" the CSS file is downloaded from the server.
I know $replace modifier exists but this is sort of hit and miss.
Hard to use that to delete/add/replace a specific CSS rule from a specific domain.


Cut v0.1.0 release

In order to be included in the k6 extensions marketplace, we need to create an initial release of xk6-coap.

This is complete! https://github.com/golioth/xk6-coap/releases/tag/v0.1.0


Dashboard: Invalid reference

What happened?
I'm trying to apply a dashboard from here - https://github.com/dotdc/grafana-dashboards-kubernetes/blob/master/dashboards/k8s-views-namespaces.json and I get an error:
Invalid reference: A reference to a resource type must be followed by at least one attribute access, specifying the resource name.: File name: main.tf.json
When using this file via terraform  - it works
What environment did it happen in?
Crossplane version: v1.6.3
Provider version: v0.1.0

we faced the same issue with var substitution ${DS_PROMETHEUS} needs to changed to $${DS_PROMETHEUS} that the var substitution is skipped
in our setup - we using flux we need also to skip var substitution with annotation
---
apiVersion: grafana.jet.crossplane.io/v1alpha1
kind: Dashboard
metadata:
  name: dashboard-flux-cluster
  annotations:
    kustomize.toolkit.fluxcd.io/substitute: disabled
spec:
  forProvider:
    folderRef:
      name: folder
    configJson: |
        {
         ....
          $${DS_PROMETHEUS}
        ....
        }
  providerConfigRef:
    name: prod

@balagurrr when you say:

When using this file via terraform - it works

what do you mean exactly?

In terraform the Dashboard is working without to disable the var substitution


Fix Typo in Recieve.md

Signed-off-by: rajivharlalka<EMAIL_ADDRESS>

[ ] I added CHANGELOG entry for this change.
[x] Change is not relevant to the end user.

Changes
Fix some typos in docs in recieve.md , rest changes belong to linting fixes due to make check-docs.

Verification

Tried fixing the CI , but aint getting the issue. make docs locally is clean
└─> make docs
all modules verified
>> building Thanos binary in /home/vijard/go/bin
 >   thanos
rm -rf mixin/vendor
cd mixin && /home/vijard/go/bin/jb-v0.5.1 install
GET https://github.com/grafana/jsonnet-libs/archive/4d4b5b1ce01003547a110f93cc86b8b7afb282a6.tar.gz 200
GET https://github.com/grafana/grafonnet-lib/archive/daad85cf3fad3580e58029414630e29956aefe21.tar.gz 200
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
        xargs -n 1 -- /home/vijard/go/bin/jsonnetfmt-v0.18.0 -n 2 --max-blank-lines 2 --string-style s --comment-style s -i
rm -rf examples/dashboards/*.json
/home/vijard/go/bin/jsonnet-v0.18.0 -J mixin/vendor -m examples/dashboards mixin/dashboards.jsonnet
examples/dashboards/bucket-replicate.json
examples/dashboards/compact.json
examples/dashboards/overview.json
examples/dashboards/query-frontend.json
examples/dashboards/query.json
examples/dashboards/receive.json
examples/dashboards/rule.json
examples/dashboards/sidecar.json
examples/dashboards/store.json
rm -rf examples/tmp/
mkdir -p examples/tmp/
/home/vijard/go/bin/jsonnet-v0.18.0 -J mixin/vendor -m examples/tmp/ mixin/separated-alerts.jsonnet | xargs -I{} sh -c 'cat {} | /home/vijard/go/bin/gojsontoyaml-v0.1.0 > {}.yaml; rm -f {}' -- {}
/home/vijard/go/bin/promdoc-v0.8.0 generate  examples/alerts/alerts.yaml -i mixin -o mixin/runbook.md
>> generating docs
PATH="/home/vijard/.yarn/bin:/home/vijard/.config/yarn/global/node_modules/.bin:/usr/share/zsh/scripts/zplug/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/var/lib/flatpak/exports/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/vijard/bin:/usr/java/jdk-15.0.1/bin:/home/vijard/go/bin:/home/vijard/go/bin" /home/vijard/go/bin/mdox-v0.9.1-0.20220713110358-25b9abcf90a0 fmt --links.localize.address-regex="https://thanos.io/.*" docs/governance.md docs/sharding.md docs/tracing.md docs/README.md docs/operating/reverse-proxy.md docs/operating/README.md docs/operating/https.md docs/operating/compactor-backlog.md docs/operating/cross-cluster-tls-communication.md docs/operating/use-cases.md docs/operating/multi-tenancy.md docs/operating/troubleshooting.md docs/operating/modify-objstore-data.md docs/operating/binary-index-header.md docs/proposals-rejected/README.md docs/proposals-rejected/201807-store-instance-high-availability.md docs/proposals-rejected/201807-config.md docs/integrations.md docs/storage.md docs/logging.md docs/proposals-accepted/202108-more-granular-query-performance-metrics.md docs/proposals-accepted/202205-vertical-query-sharding.md docs/proposals-accepted/README.md docs/proposals-accepted/202106-automated-per-endpoint-mTLS.md docs/proposals-accepted/202012-deletions-object-storage.md docs/proposals-accepted/202012-receive-split.md docs/proposals-accepted/202107-protobuf-openapi-httpapi.md docs/proposals-accepted/202206-active-series-limiting-hashring.md docs/proposals-accepted/202101-endpoint-discovery.md docs/design.md docs/service-discovery.md docs/quick-tutorial.md docs/components/query-frontend.md docs/components/README.md docs/components/receive.md docs/components/sidecar.md docs/components/store.md docs/components/compact.md docs/components/tools.md docs/components/rule.md docs/components/query.md docs/proposals-done/202004-embedd-cortex-frontend.md docs/proposals-done/README.md docs/proposals-done/202005-query-logging.md docs/proposals-done/202003-thanos-rules-federation.md docs/proposals-done/201809-gossip-removal.md docs/proposals-done/202106-proposals-process.md docs/proposals-done/202005-scalable-rule-storage.md docs/proposals-done/202005-version-documentation.md docs/proposals-done/201909-thanos-sharding.md docs/proposals-done/201912-thanos-binary-index-header.md docs/proposals-done/202203-grpc-query-api.md docs/proposals-done/201901-read-write-operations-bucket.md docs/proposals-done/201812-thanos-remote-receive.md docs/proposals-done/202001-thanos-query-health-handling.md docs/getting-started.md docs/release-process.md docs/contributing/proposal-process.md docs/contributing/coding-style-guide.md docs/contributing/README.md docs/contributing/community.md docs/contributing/how-to-change-go-version.md docs/contributing/mentorship.md docs/contributing/how-to-contribute-to-docs.md examples/alerts/alerts.md examples/dashboards/dashboards.md mixin/README.md mixin/lib/thanos-grafana-builder/README.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md MAINTAINERS.md README.md SECURITY.md
⣯ Formatting: /home/vijard/Documents/projects/thanos/docs/proposals-rejected/201807-store-instance-high-availability.
⣷ Formatting: /home/vijard/Documents/projects/thanos/docs/proposals-accepted/202108-more-granular-query-performance-m
⣾ Formatting: /home/vijard/Documents/projects/thanos/docs/proposals-accepted/202206-active-series-limiting-hashring.m
make white-noise-cleanup
make[1]: Entering directory '/home/vijard/Documents/projects/thanos'
>> cleaning up white noise
make[1]: Leaving directory '/home/vijard/Documents/projects/thanos'

but in CI it shows that there are some un commited changes.
Can anyone please help me out.

Hey @rajivharlalka, looks you made some changes that introduced extra white noise (unnecessary spaces).
What is your OS? This should work on all systems, but probably good idea to check the command behaves same everywhere. If you run make docs locally make sure you don't see any formatting changes in git.

Hi @matej-g , I use Arch Linux as my OS.
After I ran make docs , therr were a lot of white space changes, ig the command needs some update. Would try to look at it.

You should actually commit those changes, that's what should take care of removing extra whitespace etc.

I have committed them. My typo fixes were in recieve.md mainly, rest changes were through the make docs .


install nodejs/npm on workers

for Scala.js. requested by @sjrd at scala/community-builds#276

I provisionally deployed this. here's what we see now on the workers:
ubuntu@ip-172-31-12-38:~$ nodejs --version
v4.2.6
ubuntu@ip-172-31-12-38:~$ node --version
The program 'node' is currently not installed. You can install it by typing:
sudo apt install nodejs-legacy
ubuntu@ip-172-31-12-38:~$ npm --version
The program 'npm' is currently not installed. You can install it by typing:
sudo apt install npm

the node version seems a bit old

the Chef cookbook we're using supports different installation methods. the default method is to use apt, and I checked that sudo apt-get update followed by apt list --upgradable doesn't show a newer version, so I guess that's just what the version of Ubuntu we're using offers?
@sjrd is it sufficient?

also does nodejs vs node matter?
trying a new test run at https://scala-ci.typesafe.com/job/scala-2.11.x-integrate-community-build/300/console

Yes, nodejs vs node matters. By default, Scala.js looks for node, but the nodejs thing is a known issue for Ubuntu, for which we have a workaround: add jsEnv := NodeJSEnv(executable = "nodejs").value in the settings of projects that need to run with Node.js. I'll update the PR on community-builds.

merged since latest community build runs are green.
but @adriaanm, you might want to give the Chef changes a once-over and make sure I didn't cargo-cult in some nonsense

LGTM


HTTP readiness/liveness probes always fail from Windows node against container running on same node

Expected Behavior
If I configure a readiness/liveness probe for a Windows container in a pod and that container is functioning as expected, I expect the probe to succeed and the pod to continue running.
Current Behavior
Readiness/liveness probes using httpGet always seem to fail causing a never-ending loop of pods being terminated and recreated.
Steps to Reproduce

Add Windows node to a K8s cluster running in overlay mode
Create a pod with a Windows container which exposes an HTTP endpoint and a liveness/readiness httpGet probe that queries that endpoint
Grab the pod IP
Query the readiness probe target using the pod IP from a Linux node and confirm it succeeds
Query the readiness probe target using the pod IP from the Windows node and note that it times out

Context
I'm trying to migrate some legacy Windows applications into K8s and wanted to use readiness probes to confirm my pods are up and running. Unfortunately this issue means I have to use the exec form of the readiness probe instead.
Your Environment

Flannel version: 0.11.0
Backend used (e.g. vxlan or udp): vxlan
Etcd version: 3.3.10
Kubernetes version (if used): 1.15.1
Operating System and version: Windows Server 2019 1809 (17763)

I've uploaded the route table for the Windows node just in case that helps. I assume there should be routes configured for the pod network CIDR but I don't see any?
Attachments

route-table.txt
net-conf.json
cni.conf

Same here

I think this is because while https://github.com/coreos/flannel/pull/1096 has been merged, it is not part of 0.11.0. You can confirm this by running Get-HNSNetwork | ? Type -eq Overlay | Select-Object Name, Policies | ConvertTo-Json and seeing that there's no policy that looks like "@{Type=HostRoute}".
Give this a shot to see if it fixes your problem: https://github.com/benmoss/fix-houstroute-policy/blob/master/README.md
You can also use the flanneld.exe from https://github.com/benmoss/flannel/releases/download/v0.12.0-rc1/flanneld.exe, which is built from https://github.com/benmoss/flannel/commit/2140ac876ef134e0ed5af15c65e414cf26827915


Allow option to transform the response body

In some case ,the API server will give a internal code in the response body like:
{
   code:"200",
   data:{},
   msg:"xxx"
}

It's helpful if we can transform the response body into somthing we want.
useQuery('key', queryFn , {
   transform:res=>{
       if(res.code==="200")return res.data
   }
})

You can do this in your query function, no?
Tanner Linsley
On Nov 6, 2019, 9:50 PM -0700, ltm<EMAIL_ADDRESS>wrote:

In some case ,the API server will give a internal code in the response body like:
{
code:"200",
data:{},
msg:"xxx"
}
It's helpful if we can transform the response body into somthing we want.
useQuery('key', queryFn , {
transform:res=>{
if(res.code==="200")return res.data
}
})
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think unless a very strong use-case for needing this as opposed to doing something in your query function is made, we'll hold off on this.
It's also important to remember that because the query ID is derived from the string and variables, the query function does not need to be stable or memoized. This means you can do inline functions as much as your heart desires:
useQuery('key', () => queryFn().then(res => res.code === '200' ? res.data : null))

I think unless a very strong use-case for needing this as opposed to doing something in your query function is made, we'll hold off on this.
It's also important to remember that because the query ID is derived from the string and variables, the query function does not need to be stable or memoized. This means you can do inline functions as much as your heart desires:
useQuery('key', () => queryFn().then(res => res.code === '200' ? res.data : null))

Thx for the answer.


Issue with WordPress Multisite in Directory mode...

Great directive, thanks for your hard work on this!
There seems to be an issue where the cached file retrieval is incomplete for Directory sites in a Multisite environment. I can't see why because these appear like regular folders in wp-content/cache/wp-rocket/ so you would think they are handled the same way. I know I had to set WP Rocket up for each site. Maybe a permalink type confusion?
Your directive works fine for the root site. It works fine for subdomains in multisite. But when we try it on Directory sites in Multisite, it loads parts of the pages.
Any insight is greatly appreciated. Let me know if there's anything I can do to help identify the problem.

Thank you for the kind words.
Can you paste here the file structure for the cache directory of WP-Rocket for your multisite directory installation?
If you activate the debug flag in the configuration, you can see what file Rocket-Nginx is trying to serve through the headers. Can you paste it here too?

Hey maxime,
I have the same issue described above!
Here the details you asked before. ( "test.de" Domain is not the real name. It's a customer page and I don't want to paste them here ;-) )
x-rocket-nginx-file:/var/www/vhosts/test.de/httpdocs/test.de/wp-content/cache/wp-rocket/test.de//fr//index-https.html
x-rocket-nginx-reason:/wp-content/cache/wp-rocket/test.de//fr//index-https.html
x-rocket-nginx-serving-static:Yes
If you need further details, contact me.

I can revisit this issue as well. It is on hold. Admittedly, I have not upgraded to version 2 since then so you may have figured it out?

I am using version 2 already.
wilrevehl<EMAIL_ADDRESS>schrieb am Fr. 27. Okt. 2017 um 16:24:

I can revisit this issue as well. It is on hold. Admittedly, I have not
upgraded to version 2 since then so you may have figured it out?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/maximejobin/rocket-nginx/issues/33#issuecomment-339986348,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AWO77pVsAPvtkZQHL-Omj-5MXkZusz2Lks5sweeugaJpZM4J8_sY
.

--
Freundliche Grüße
Lukas Becker
Leiter Systemadministration
Lukas Becker - FIVE Marketing - Koßmannstr. 7 - 66571 Eppelborn
T: +49 6881 93629 615
<EMAIL_ADDRESS>| www.five-marketing.com

Can you post screenshots of your cache folder in wp-rocket so I can see what is the structure ?
@lbeckerfive you posted the headers showing the file retrieved by Rocket-Nginx. What was the expected file you wanted to be displayed ?
That will help for the investigation.

Normal without adding configuration: HTTP 200 - the correct page
With Rocket-Nginx Configuration: HTTP 404 - File not found
Very wired.
Attached the screenshots of my cache folder

I hope it is ok, that I have cleared the domainname and details of our customer.

This is what Plesk saying:

Hope that helps..

What I need to know is what file should be returned and what is returned instead. I don't have a multisite setup right now. That would help a lot to understand.

Hallo Maxime,
If you want, I can create an test WordPress multisite setup for you!
Main URL:
https://*.com/wp-content/themes/wcs/stylesheets/owl.carousel.css?ver=4.9.1
=> 200 OK!
Request from EN page:
https://*.com/en/wp-content/themes/wcs/stylesheets/owl.carousel.css?ver=4.9.1
=> 404 File not found!
Request from FR page
https://*.com/fr/wp-content/themes/wcs/stylesheets/owl.carousel.css?ver=4.9.1
=> 404 File not found!

Ok, I understand the problem. Yes, a setup that reproduce the problem would be nice and would help me check things faster. I cannot guarantee a result... but I will check.
I'm just unsure, at this point, if it can be solved from what I understand. I will confirm once I have your test multisite.

Here is your test page:
Main-Page: https://rocket.dev.hostpress.me/
1st Sub: https://rocket.dev.hostpress.me/en
2nd Sub: https://rocket.dev.hostpress.me/fr
It is not possible for you to update the config. Debug is enabled for you.

The 404 are for the medias (CSS, JS, images, ...). Rocket-Nginx should not impact the medias other than add headers to the request. I don't even see the headers that should be added.
Are you using the latest version of Rocket-Nginx ?
What happens if you deactivate Rocket-Nginx ? Does the multisite works correctly ?

Right.
Rocket-Nginx in the latest version -> check!
If I deactivate the config everything is ok.

Ok. I get the problem. It's because of the rewrites that are not handled correctly. Well, they are not handle, period.
Can you email me your Nginx configuration for this multisite ? There is no point to share it publicly.

Found your address on your webpage - sent

I am having similar problems with my setup. When Rocket-Nginx is enabled some static resources that are not already "cached" at Nginx lever throw 404 error. With it disabled everything works fine
I am using cPanel with Apache and Engintron that sets up Nginx as a reverse proxy

from nginx error log:
[error] 22051#22051: *3657 open() "/etc/nginx/html/wp-content/themes/swift/images/rp-dummy.png" failed (2: No such file or directory)
it seems nginx takes the root as /etc/nginx/html instead of /home/account/public_html

Any news on this?

This is a limitation from Rocket-Nginx. Directory-mode is not supported at this time.

I'm trying to reproduce the problem and can't. I know it's been a while and I'm sorry for that.
I'm using Local by Flywheel to replicate the issue and can't find any issue. Are any of you using a configuration similar to what can be found in the wordpress-ms-subdir.conf file ?
wordpress-ms-subdir.conf :
# THIS IS THE IMPORTANT PART...
if (!-e $request_filename) {
	rewrite /wp-admin$ $scheme://$host$uri/ permanent;
	rewrite ^(/[^/]+)?(/wp-.*) $2 last;
	rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}

location / {
	try_files $uri $uri/ /index.php?$args ;
}

location ~ \.php$ {
	try_files $uri =404;
	include ./fastcgi_params;
	fastcgi_index index.php;
	fastcgi_pass php;
}

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
	access_log off;	log_not_found off; expires max;
}

@maximejobin does wp-rocket work with wp multisite (subdir mode)?

We  tried and it works fine with wordpress-ms-subdir.conf

Same here works fine, WordPress Multisite (subdomains) works just out of the box
curl -I https://sub*.domain.com
HTTP/1.1 200 OK
Date: Mon, 16 Sep 2019 20:49:40 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: __cfduid=d1bf2e63889ec1aa4933604d0b51008891568666980; expires=Tue, 15-Sep-20 20:49:40 GMT; path=/; domain=.domain.com; HttpOsub*y; Secure
Last-Modified: Sat, 14 Sep 2019 13:41:21 GMT
Vary: Accept-Encoding
X-Powered-By: centminmod
Vary: Accept-Encoding, Cookie
Cache-Control: no-cache, no-store, must-revalidate
X-Rocket-Nginx-Serving-Static: Yes
X-Rocket-Nginx-Reason: /wp-content/cache/wp-rocket/sub*.domain.com///index-https.html_gzip
X-Rocket-Nginx-File: /home/nginx/domains/domain.com/public/wp-content/cache/wp-rocket/sub*.domain.com///index-https.html_gzip
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: ie=edge
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-UA-Compatible: ie=edge
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 5175b554bd53d90d-XXX


Need a way to catch DioException [request cancelled] from the caller code

Package
dio
Version
5.3.3
Operating-System
Android, iOS, Web, MacOS, Linux, Windows
Output of flutter doctor -v
[√] Flutter (Channel stable, 3.16.0, on Microsoft Windows [Version 10.0.19045.3803], locale en-US)
    • Flutter version 3.16.0 on channel stable at D:\Projects\2021\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (8 weeks ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at E:\Android\android-sdk
    • Platform android-33, build-tools 33.0.2
    • Java binary at: E:\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.5.1)
    • Visual Studio at E:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.5.33424.131
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2022.2)
    • Android Studio at E:\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-9586694)

[√] VS Code, 64-bit edition (version 1.85.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.80.0

[√] Connected device (4 available)
    • SM G935F (mobile) • ad0516024000250aa3 • android-arm64  • Android 8.0.0 (API 26)
    • Windows (desktop) • windows            • windows-x64    • Microsoft Windows [Version 10.0.19045.3803]
    • Chrome (web)      • chrome             • web-javascript • Google Chrome 120.0.6099.200
    • Edge (web)        • edge               • web-javascript • Microsoft Edge 120.0.2210.121

[√] Network resources
    • All expected network resources are available.

• No issues found!

Dart Version
3.2.0
Steps to Reproduce
Is there a way to catch the exception (DioException (DioException [request cancelled]: The request was cancelled.)) thrown from the checkCancelled method ?
It seems to be impossible to do it by using the Dio package's public API and async/await keywords since the _dispatchRequest method  is not being awaited for some reason 🤔 and the exception goes unhandled in this case.
Expected Result
Need a way to catch the DioException (DioException [request cancelled]: The request was cancelled.) exception.
Actual Result
The exception DioException (DioException [request cancelled]: The request was cancelled.) goes unhandled if the request is being cancelled using the CancelToken.

Duplicate of #1869

@AlexV525, according to the Dart SDK collaborator, there is no issue in the Dart SDK https://github.com/dart-lang/sdk/issues/47985#issuecomment-1806803466
If a Future with an error is not awaited - try/catch will not be able to catch it. As I stated in my first post - the Future returned by the catchError method  is not awaited, and therefore, there is no way to catch the error by wrapping the fetch method  in the try/catch section.
So I believe that shows that something should be done in the Dio package, don't you agree?

So I believe that shows that something should be done in the Dio package, don't you agree?

Not really. If you uncheck the debugger setting with "uncaught exception" then it'll be caught normally. No matter you enabled that feature or not it can be caught eventually.


Question about rec_gui.py "settings"?

Hello, I meet a question. Now I running rec_gui.py, "Invalid number of channels [PaErrorCode -9998]" is occurred when I  click "OK" or "Cancel"  after clicking "settings" . I didn't change any settings in “settings” button,  just click "OK" or "Cancel". But the bug has not occurred when I direct click "record" and "stop", everything is normal.

Clicking directly "record" and "stop", everything is normal.

Thanks for reporting this!
It looks like you discovered a silly mistake that I made, see #408. Can you please check if that works for you?

@mgeier Many thanks for your help, it solves my problem.

Thanks for testing this. If there are any further problems, let me know!


[How to] setup and run jekyll websites locally with docker

please double check but I think it might be solved via https://github.com/ASKnetCommunity/ASKnet.Community/blob/main/README.md
(though #145 still pending as well here?)

also done via #155


Add color to pointcloud

Hi,
Thank you for this great demo.
I have used your subscriber and publisher and have successfully subscribed and published PointCloud2 mgs. However, I am unable to visualise them in RVIZ. Is it because theres no rgba channel ?
here is my code, thank you
pt_cloud_image = np.array(list(read_points(pt_cloud_msg)))
pt_cloud_image = np.reshape(pt_cloud_image,
        (rgb_image.shape[0],rgb_image.shape[1],pt_cloud_image.shape[1]))

resized_pt_cloud = cv2.resize(pt_cloud_image, self.dim, interpolation=cv2.INTER_AREA)

for mask in masks:
            x = np.dstack([pt_cloud[:,:,0]])
            y = np.dstack([pt_cloud[:,:,1]])
            z = np.dstack([pt_cloud[:,:,2]])

            mask = mask.detach().cpu().numpy()
            x_new = np.multiply(x[:,:,0],mask)
            y_new = np.multiply(y[:,:,0],mask)
            z_new = np.multiply(z[:,:,0],mask)
            pt_cloud = np.dstack([x_new, y_new, z_new])
            pt_cloud_msg = point_cloud(pt_cloud,'zed2_base_link')
            self.object_point_pub_.publish(pt_cloud_msg)

What I am trying to do is apply a mask to the point cloud to only get the points within that mask. Thank you for any support.

Hi an99990
You have the point cloud color code. (ros2py)


add mman.h on windows. close #71

This should work well just like in RcppAnnoy.
@aadler Can you help to test this?

I should be able to, yes.

It compiles properly, but trying write_feather gives me the following error:
> A <- data.frame(L = letters[1:10], N = rnorm(10, 0, 1))
> A
   L          N
1  a -1.2891161
2  b  0.7430167
3  c  0.2887883
4  d  0.8691783
5  e  0.1244797
6  f -0.2427546
7  g  2.0343529
8  h -0.4095575
9  i -1.5355897
10 j -0.5314808
> write_feather(A, "E:/Users/Parents")
 Hide Traceback

 Rerun with Debug
 Error: IO error: error closing file
3 stop(structure(list(message = "IO error: error closing file",
    call = NULL, cppstack = NULL), .Names = c("message", "call",
"cppstack"), class = c("Rcpp::exception", "C++Error", "error",
"condition")))
2 writeFeather(x, path) at feather.R#29
1 write_feather(A, "E:/Users/Parents")

and running with debug stops at this line:
writeFeather <- function(df, path) {
    invisible(.Call('feather_writeFeather', PACKAGE = 'feather', df, path))

@aadler Maybe related to #68

@thirdwing It shouldn't; I had no empty characters in the data frame.  When I put in the path, I didn't select a file name, just a path. It works fine! @hadley and @wesm , the pull request tests out well and should be committed, IMO.

merging, thank you everyone


Change a database schema

Coverage increased (+0.7%) to 85.172% when pulling d479e6dadbb45f8b400bfa19bd09ebe375738e1d on change-database-schema into 02afad0ed701a9e44446d7a85571dfa79d6985d2 on master.


Deprecated: mavenCoordinates and plugins

Hi. I just noticed that the functions in plugin-build/plugin/build.gradle.kts, at lines 36 and 42, are deprecated:
@Deprecated
public void plugins(
     org.gradle.api.Action<org.gradle.api.NamedDomainObjectContainer<com.gradle.publish.PluginConfig>> block
)

@Deprecated
public void mavenCoordinates(
     org.gradle.api.Action<com.gradle.publish.MavenCoordinates> block
)

I've updated those here https://github.com/cortinico/kotlin-gradle-plugin-template/pull/47/files some days ago. So I believe we can close this


For 'ol-contextmenu' the 'ol/control' differs in casing

I have the following warning when importing ol-contextmenu:

There are multiple modules with names that only differ in casing.
This can lead to unexpected behavior when compiling on a filesystem with other case-semantic.

at line 9 in ol-contextmenu/src/base.js:
export default class Base extends Control {
I think should be:
export default class Base extends control {
To be compatible with all other control classes of openlayers.
Kind regards,
Stijn Vandermeulen

Any update on this? This is a problem since we created a npm package from our project and when we install it we get 'ol/control/Control dependency not found'. (should be ol/control/control)

Should be solved with #219


iPad-compatibility

Switched Devices from “iPhone” to “Universal”.  All the views resize to full-screen and scale as expected.
‣ Also enables using it in Slide Over or Split View.
Made sure iPad supports all 4 orientations (including Upside Down) while iPhone supports the same 3 as before (all but Upside Down).  This is what Apple's HIG recommends.

:white_check_mark: you have my vote (not that it counts for anything!). You tested it on all the standard devices?

I made the commit manually to pass conflics.
Thx for your suggestion !

@jankcat Yup, double-checked in the simulator.


Use struct instead openstruct in lib code

What are you trying to accomplish?

Fix showdown by using OpenStruct, especially with YJIT

https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md#code-optimization-tips
https://www.reddit.com/r/ruby/comments/11wem2c/question_does_anyone_know_why_openstruct_with/

Should eat less memory and be fast

What approach did you choose and why?

Use Struct, because it is implemented on C, while OpenStruct implemented on Ruby

Anything you want to highlight for special attention from reviewers?

I am fine to use OpenStruct in tests (that is why nothing changed in its) - it more about convenience for developers to quickly make some tests data

Before

After

@le0pard are you able to show a difference in performances with the current benchmarking and if so please post the results in the PR summary

@reeganviljoen information from CI (no yjit):
main branch:

use_struct branch:

@joelhawksley 5% seems big, what do you think ?

@le0pard sounds good, thank you!


Custom object detection model training keeps failing

Hello, I am working on my senior design project that involves object detection. I'm having some issues.I keep getting a error when I try to train a model using custom data for object detection on my jetson nano orin. Ive used the webcam to create a mini test model and I am able to train that with ~30 images. But when I try and train a custom dataset it doesn't work. Ive tried what seems everything, looked over all the posts regarding this and nothing seems to be working. Here is what I have done and tried so far.
I am using the container as i was having trouble getting torchvision to work. I have the pascal VOC directory properly set up with Annotations, JPEGImages, ImageSets, and the labels.txt file. In the ImageSets folder I have a Main folder and then train.txt, test.txt, val.txt, and trainval.txt. I have around 1300 images and 1 class and i tried messing with the workers and batch size because I though maybe I was running low on memory, I tried mounting a 4GB swap but nothing seems to be working. This is the error i keep getting. I also don't know why its not finding some images even thou I double and tripped checked that they are there.
Any help would be very much appreciated. Ive been troubleshooting for like 2 days straight now and don't know what to try now. Thank you in advance.
python3 train_ssd.py --dataset-type=voc --data=data/ambulance1 --model-dir=models/ambulance7 --batch-size=4 --workers=2 --epochs=10
2024-03-09 00:06:23 - Using CUDA...
2024-03-09 00:06:23 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=4, checkpoint_folder='models/ambulance7', dataset_type='voc', datasets=['data/ambulance1'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, log_level='info', lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=10, num_workers=2, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resolution=300, resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, validation_mean_ap=False, weight_decay=0.0005)
2024-03-09 00:06:35 - model resolution 300x300
2024-03-09 00:06:35 - SSDSpec(feature_map_size=19, shrinkage=16, box_sizes=SSDBoxSizes(min=60, max=105), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - SSDSpec(feature_map_size=10, shrinkage=32, box_sizes=SSDBoxSizes(min=105, max=150), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - SSDSpec(feature_map_size=5, shrinkage=64, box_sizes=SSDBoxSizes(min=150, max=195), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - SSDSpec(feature_map_size=3, shrinkage=100, box_sizes=SSDBoxSizes(min=195, max=240), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - SSDSpec(feature_map_size=2, shrinkage=150, box_sizes=SSDBoxSizes(min=240, max=285), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - SSDSpec(feature_map_size=1, shrinkage=300, box_sizes=SSDBoxSizes(min=285, max=330), aspect_ratios=[2, 3])
2024-03-09 00:06:35 - Prepare training datasets.
warning - could not find image 3cfdd5e2-generic-ambulance-AMR-a-05142023 - ignoring from dataset
warning - could not find image 4f8f60a7-650a52603d850 - ignoring from dataset
warning - could not find image 4f9b6b9a-Untitled-design-19 - ignoring from dataset
warning - could not find image 5b5b65ce-amr-ambulance-races-past-siren-footage-068750631_iconl - ignoring from dataset
warning - could not find image 5d7070aa-boulder-co-usa-october-13-600nw-2391689537 - ignoring from dataset
warning - could not find image 5e76d71a-ambulance-nighttime-footage-000808944_iconl - ignoring from dataset
warning - could not find image 6a8d7053-7df4093f-cfc8-47b8-b49f-4434677d94fd-ambulance - ignoring from dataset
2024-03-09 00:06:36 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-09 00:06:36 - Stored labels into file models/ambulance7/labels.txt.
2024-03-09 00:06:36 - Train dataset size: 193
2024-03-09 00:06:36 - Prepare Validation datasets.
warning - could not find image 3cfdd5e2-generic-ambulance-AMR-a-05142023 - ignoring from dataset
warning - could not find image 4f8f60a7-650a52603d850 - ignoring from dataset
warning - could not find image 4f9b6b9a-Untitled-design-19 - ignoring from dataset
warning - could not find image 5b5b65ce-amr-ambulance-races-past-siren-footage-068750631_iconl - ignoring from dataset
warning - could not find image 5d7070aa-boulder-co-usa-october-13-600nw-2391689537 - ignoring from dataset
warning - could not find image 5e76d71a-ambulance-nighttime-footage-000808944_iconl - ignoring from dataset
warning - could not find image 6a8d7053-7df4093f-cfc8-47b8-b49f-4434677d94fd-ambulance - ignoring from dataset
2024-03-09 00:06:36 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-09 00:06:36 - Validation dataset size: 193
2024-03-09 00:06:36 - Build network.
2024-03-09 00:06:36 - Init from pretrained SSD models/mobilenet-v1-ssd-mp-0_675.pth
2024-03-09 00:06:36 - Took 0.69 seconds to load the model.
2024-03-09 00:06:36 - Learning rate: 0.01, Base net learning rate: 0.001, Extra Layers learning rate: 0.01.
2024-03-09 00:06:36 - Uses CosineAnnealingLR scheduler.
2024-03-09 00:06:36 - Start training from epoch 0.
/usr/local/lib/python3.8/dist-packages/Pillow-9.5.0-py3.8-linux-aarch64.egg/PIL/Image.py:992: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
/usr/local/lib/python3.8/dist-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.
warnings.warn(warning.format(ret))
Killed

I get this error when I only included 60 pictures in the data. Same 60 picture IDs in the train.txt, val.txt test.txt, and trainval.txt just for testing, I know it should be split roughly 80/10/10. Not sure why I get a different error when there is less pictures but my final project will have 4 classes and roughly 6-8k images. It worrying me that I'm not able to even get 1 class with 1300 images to work
python3 train_ssd.py --dataset-type=voc --data=data/ambulance1 --model-dir=models/ambulance8 --batch-size=4 --workers=2 --epochs=1
2024-03-09 00:54:19 - Using CUDA...
2024-03-09 00:54:19 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=4, checkpoint_folder='models/ambulance8', dataset_type='voc', datasets=['data/ambulance1'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, log_level='info', lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=1, num_workers=2, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resolution=300, resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, validation_mean_ap=False, weight_decay=0.0005)
2024-03-09 00:54:31 - model resolution 300x300
2024-03-09 00:54:31 - SSDSpec(feature_map_size=19, shrinkage=16, box_sizes=SSDBoxSizes(min=60, max=105), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - SSDSpec(feature_map_size=10, shrinkage=32, box_sizes=SSDBoxSizes(min=105, max=150), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - SSDSpec(feature_map_size=5, shrinkage=64, box_sizes=SSDBoxSizes(min=150, max=195), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - SSDSpec(feature_map_size=3, shrinkage=100, box_sizes=SSDBoxSizes(min=195, max=240), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - SSDSpec(feature_map_size=2, shrinkage=150, box_sizes=SSDBoxSizes(min=240, max=285), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - SSDSpec(feature_map_size=1, shrinkage=300, box_sizes=SSDBoxSizes(min=285, max=330), aspect_ratios=[2, 3])
2024-03-09 00:54:31 - Prepare training datasets.
2024-03-09 00:54:31 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-09 00:54:31 - Stored labels into file models/ambulance8/labels.txt.
2024-03-09 00:54:31 - Train dataset size: 60
2024-03-09 00:54:31 - Prepare Validation datasets.
2024-03-09 00:54:31 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-09 00:54:31 - Validation dataset size: 60
2024-03-09 00:54:31 - Build network.
2024-03-09 00:54:31 - Init from pretrained SSD models/mobilenet-v1-ssd-mp-0_675.pth
2024-03-09 00:54:32 - Took 0.69 seconds to load the model.
2024-03-09 00:54:32 - Learning rate: 0.01, Base net learning rate: 0.001, Extra Layers learning rate: 0.01.
2024-03-09 00:54:32 - Uses CosineAnnealingLR scheduler.
2024-03-09 00:54:32 - Start training from epoch 0.
/usr/local/lib/python3.8/dist-packages/Pillow-9.5.0-py3.8-linux-aarch64.egg/PIL/Image.py:992: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1133, in _try_get_data
data = self._data_queue.get(timeout=timeout)
File "/usr/lib/python3.8/multiprocessing/queues.py", line 107, in get
if not self._poll(timeout):
File "/usr/lib/python3.8/multiprocessing/connection.py", line 257, in poll
return self._poll(timeout)
File "/usr/lib/python3.8/multiprocessing/connection.py", line 424, in _poll
r = wait([self], timeout)
File "/usr/lib/python3.8/multiprocessing/connection.py", line 931, in wait
ready = selector.select(timeout)
File "/usr/lib/python3.8/selectors.py", line 415, in select
fd_event_list = self._selector.poll(timeout)
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
_error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 252) is killed by signal: Killed.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "train_ssd.py", line 406, in
train(train_loader, net, criterion, optimizer, device=DEVICE, debug_steps=args.debug_steps, epoch=epoch)
File "train_ssd.py", line 139, in train
for i, data in enumerate(loader):
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 634, in next
data = self._next_data()
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1329, in _next_data
idx, data = self._get_data()
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1295, in _get_data
success, data = self._try_get_data()
File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1146, in _try_get_data
raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 252) exited unexpectedly

@olutsiv killed means that the board ran out of memory, try decreasing the --batch-size 1 and --num-workers 1 and mounting swap, ect

I have tried doing all of that with no luck. Could it be the annotation XML file that's wrong? Because I'm using my own  pictures labeled in XML format. At first the format was a little different compared to the XML files that the webcam labeling software produces but i wrote a script to edit them and now they are the exact same. Is it possible for the nano to run out of memory with only 30 pictures and --batch-size 1, --num-workers 1, and --epoch 1?
I uploaded the xml files that i was using. Maybe you can take a look at them and see if you can spot anything. I would really appreciate any help I can get, my group is kinda stuck right now and we need to get this working in order to finish our senior project.
This is the error im getting with the updated XML files, only 28 pictures and it says killed.
python3 train_ssd.py --dataset-type=voc --data=data/EMSdetect --model-dir=models/EMSdetect --batch-size=1 --workers=1 --epochs=1
2024-03-28 17:02:52 - Using CUDA...
2024-03-28 17:02:52 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=1, checkpoint_folder='models/EMSdetect', dataset_type='voc', datasets=['data/EMSdetect'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, log_level='info', lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=1, num_workers=1, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resolution=300, resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, validation_mean_ap=False, weight_decay=0.0005)
2024-03-28 17:03:00 - model resolution 300x300
2024-03-28 17:03:00 - SSDSpec(feature_map_size=19, shrinkage=16, box_sizes=SSDBoxSizes(min=60, max=105), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - SSDSpec(feature_map_size=10, shrinkage=32, box_sizes=SSDBoxSizes(min=105, max=150), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - SSDSpec(feature_map_size=5, shrinkage=64, box_sizes=SSDBoxSizes(min=150, max=195), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - SSDSpec(feature_map_size=3, shrinkage=100, box_sizes=SSDBoxSizes(min=195, max=240), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - SSDSpec(feature_map_size=2, shrinkage=150, box_sizes=SSDBoxSizes(min=240, max=285), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - SSDSpec(feature_map_size=1, shrinkage=300, box_sizes=SSDBoxSizes(min=285, max=330), aspect_ratios=[2, 3])
2024-03-28 17:03:00 - Prepare training datasets.
2024-03-28 17:03:00 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-28 17:03:00 - Stored labels into file models/EMSdetect/labels.txt.
2024-03-28 17:03:00 - Train dataset size: 28
2024-03-28 17:03:00 - Prepare Validation datasets.
2024-03-28 17:03:00 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-28 17:03:00 - Validation dataset size: 28
2024-03-28 17:03:00 - Build network.
2024-03-28 17:03:00 - Init from pretrained SSD models/mobilenet-v1-ssd-mp-0_675.pth
2024-03-28 17:03:01 - Took 0.68 seconds to load the model.
2024-03-28 17:03:01 - Learning rate: 0.01, Base net learning rate: 0.001, Extra Layers learning rate: 0.01.
2024-03-28 17:03:01 - Uses CosineAnnealingLR scheduler.
2024-03-28 17:03:01 - Start training from epoch 0.
/usr/local/lib/python3.8/dist-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.
warnings.warn(warning.format(ret))
2024-03-28 17:03:22 - Epoch: 0, Step: 10/28, Avg Loss: 8.0487, Avg Regression Losroot@oleg:/jetson-inference/python/training/detection/ssd# python3 train_ssd.py --dataset-type=voc --data=data/EMSdetect --model-dir=models/EMSdetect3 --batch-size=1 --workers=1 --epochs=1
2024-03-28 17:12:04 - Using CUDA...
2024-03-28 17:12:04 - Namespace(balance_data=False, base_net=None, base_net_lr=0.001, batch_size=1, checkpoint_folder='models/EMSdetect3', dataset_type='voc', datasets=['data/EMSdetect'], debug_steps=10, extra_layers_lr=None, freeze_base_net=False, freeze_net=False, gamma=0.1, log_level='info', lr=0.01, mb2_width_mult=1.0, milestones='80,100', momentum=0.9, net='mb1-ssd', num_epochs=1, num_workers=1, pretrained_ssd='models/mobilenet-v1-ssd-mp-0_675.pth', resolution=300, resume=None, scheduler='cosine', t_max=100, use_cuda=True, validation_epochs=1, validation_mean_ap=False, weight_decay=0.0005)
2024-03-28 17:12:15 - model resolution 300x300
2024-03-28 17:12:15 - SSDSpec(feature_map_size=19, shrinkage=16, box_sizes=SSDBoxSizes(min=60, max=105), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - SSDSpec(feature_map_size=10, shrinkage=32, box_sizes=SSDBoxSizes(min=105, max=150), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - SSDSpec(feature_map_size=5, shrinkage=64, box_sizes=SSDBoxSizes(min=150, max=195), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - SSDSpec(feature_map_size=3, shrinkage=100, box_sizes=SSDBoxSizes(min=195, max=240), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - SSDSpec(feature_map_size=2, shrinkage=150, box_sizes=SSDBoxSizes(min=240, max=285), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - SSDSpec(feature_map_size=1, shrinkage=300, box_sizes=SSDBoxSizes(min=285, max=330), aspect_ratios=[2, 3])
2024-03-28 17:12:15 - Prepare training datasets.
2024-03-28 17:12:15 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-28 17:12:15 - Stored labels into file models/EMSdetect3/labels.txt.
2024-03-28 17:12:15 - Train dataset size: 28
2024-03-28 17:12:15 - Prepare Validation datasets.
2024-03-28 17:12:15 - VOC Labels read from file:  ('BACKGROUND', 'ambulance')
2024-03-28 17:12:15 - Validation dataset size: 28
2024-03-28 17:12:15 - Build network.
2024-03-28 17:12:15 - Init from pretrained SSD models/mobilenet-v1-ssd-mp-0_675.pth
2024-03-28 17:12:16 - Took 0.68 seconds to load the model.
2024-03-28 17:12:16 - Learning rate: 0.01, Base net learning rate: 0.001, Extra Layers learning rate: 0.01.
2024-03-28 17:12:16 - Uses CosineAnnealingLR scheduler.
2024-03-28 17:12:16 - Start training from epoch 0.
/usr/local/lib/python3.8/dist-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.
warnings.warn(warning.format(ret))
Killed

I tried to train it with 1 image and it completed successfully, then 2 and it also completed successfully, 3 completed successfully as well, but once I got to 4 it either gave me the "killed" error or just froze the jetson completely. It has to do something with the pictures or labeling because I did a test with the webcam labeling software and I labeled and saved around 50 pictures and it trained those with no problems. But when I use my own pictures and data it doesn't work.

What is the resolution of your own pictures?  Maybe they are really large and it is keeping them in memory?   Did you mount enough swap?
You can also run these pytorch training scripts on another Linux/GPU machine with more memory or in Google collab I think

From: olutsiv @.>
Sent: Thursday, March 28, 2024 2:19:08 PM
To: dusty-nv/jetson-inference @.>
Cc: Dustin Franklin @.>; Comment @.>
Subject: Re: [dusty-nv/jetson-inference] Custom object detection model training keeps failing (Issue #1806)
I tried to train it with 1 image and it completed successfully, then 2 and it also completed successfully, 3 completed successfully as well, but once I got to 4 it either gave me the "killed" error or just froze the jetson completely. It has to do something with the pictures or labeling because I did a test with the webcam labeling software and I labeled and saved around 50 pictures and it trained those with no problems. But when I use my own pictures and data it doesn't work.
—
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-inference/issues/1806#issuecomment-2025838313, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVEGK4FOZQ2IWC2OOVT6OTY2RNJZAVCNFSM6AAAAABENT7LBOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRVHAZTQMZRGM.
You are receiving this because you commented.Message ID: @.***>

Hmmm, yah maybe it is the pictures, the resolutions vary, they are not all the same. What's the recommended or the max resolution of pictures I should be using?
I wasn't quite sure how much swap I can mount. What would you recommend for a nano orin?

Swap, I typically mount the same amount as the board has RAM, so 8GB swap for Orin Nano.
I would probably keep the pictures to 1920x1080 resolution or similar...the camera-capture program captures them at 1280x720.  The model downsamples them to 300x300 anyways

Ok thank you so much for that information. I believe the pictures we are using are all around that size or even smaller. I was mounting 4GB but I will try to mount 8 and see what happens. I’m just confused why it wasn’t even able to train 4 pictures.

I'm not sure either since you said it trained fine on what you captured with camera-capture, which would lead one to believe it is related to the dataset

Yeah that’s the conclusion I came to too. I think we will try and relabel some of our images with CVAT and run a test model with those and see if it trains properly. If it does then we will just have to relabel all of our images with CVAT.

OK gotcha - I have used CVAT in the past for this


Replace tests that assert on token output with auto-updatable samples

This extracts the code samples from each test that used to do assert list(lexer.get_tokens(fragment)) == tokens, puts each of them into their own file, and gives the ability to automatically update such files if there are changes to the code affecting them.
To perform such an update in-place, run pytest tests/test_lexers.py --update-goldens. The functionality comes from the 'pytest-golden' plugin (disclaimer: written by me!)
When testing without the update flag, this just asserts that the token list does not change from the stored list.
So, the tests still serve the same purpose as before (and you can see the diffs both from pytest and in code review), just that they don't need to be manually updated. One only needs to provide the interesting code sample.

Note to reviewers:
tests/test_lexers.py is the newly added file, which is the entry point for these tests.
The conversion work was mostly mechanical, but I'll make sure to look through all of it again if the overall idea is liked.

Hi, that's ... a rather huge change! Before I get into the details of this, this doesn't come with a formatter for it, unless I'm missing something. Right now use can use -f testcase to generate test case code. That is rather convenient as you can take any code snippet and turn it into a test quickly.
In general I think the idea is good, but I'm not entirely sure if that's not a bit too big of a change to take right now. I'd also like to have @birkenfeld chime in.

Haha I see, looks like I didn't realize that people normally use -f testcase to update the tests.
You're saying it doesn't come with a formatter, but a formatter would be used manually and its output would be pasted into the test file. Instead, this one does the updating itself (with one universal command), so it's not needed.

Can you please re-run this on the latest master, looks like there's a bunch of conflicts here. Regarding the formatter, I'm not sure I'm following: Today, when someone wants to test a piece of text, they run it through pygments -f testcase, and get code they can copy/paste into a unit test file. The testcase formatter produces the tokens and the token types. How do you envision this will work once your plugin is merged? I thought they'd still use testcase to produce the testcases, just in the new, more readable format.

Can you please re-run this on the latest master, looks like there's a bunch of conflicts here. Regarding the formatter, I'm not sure I'm following: Today, when someone wants to test a piece of text, they run it through pygments -f testcase, and get code they can copy/paste into a unit test file. The testcase formatter produces the tokens and the token types. How do you envision this will work once your plugin is merged? I thought they'd still use testcase to produce the testcases, just in the new, more readable format.

Can you please re-run this on the latest master, looks like there's a bunch of conflicts here.

This initial translation is partly manual and not trivial. Not worth resolving conflicts in case it's going to sit here for a while again.

I thought they'd still use testcase to produce the testcases, just in the new, more readable format.

They add a new file that looks like
input: |
  SOURCE CODE

then run pytest --update-goldens and the file gets fully populated.
If the example file already exists but needs an update, just the latter part is necessary.

Can you please re-run this on the latest master, looks like there's a bunch of conflicts here.

This initial translation is partly manual and not trivial. Not worth resolving conflicts in case it's going to sit here for a while again.

I thought they'd still use testcase to produce the testcases, just in the new, more readable format.

They add a new file that looks like
input: |
  SOURCE CODE

then run pytest --update-goldens and the file gets fully populated.
If the example file already exists but needs an update, just the latter part is necessary.

This initial translation is partly manual and not trivial. Not worth resolving conflicts in case it's going to sit here for a while again.
Well, I do want to merge it immediately, so it's not going to sit there for a while :) I just didn't want to merge ahead of a release, as we had a few PRs in flight.

They add a new file that looks like
input: |
  SOURCE CODE

then run pytest --update-goldens and the file gets fully populated.

I see. Can you please add a few lines to the docs about this?

This initial translation is partly manual and not trivial. Not worth resolving conflicts in case it's going to sit here for a while again.
Well, I do want to merge it immediately, so it's not going to sit there for a while :) I just didn't want to merge ahead of a release, as we had a few PRs in flight.

They add a new file that looks like
input: |
  SOURCE CODE

then run pytest --update-goldens and the file gets fully populated.

I see. Can you please add a few lines to the docs about this?

I do want to merge it immediately, so it's not going to sit there for a while :)

Oh sorry then, let me do that.
Has @birkenfeld checked it out? I acknowledge that this one can be controversial :D
BTW, I do recommend trying it out for yourself locally. There are various ways (gh command line is nice), the basic way is:
git fetch origin pull/1649/head
git checkout FETCH_HEAD

And yes, I'll think of a doc as well.

I do want to merge it immediately, so it's not going to sit there for a while :)

Oh sorry then, let me do that.
Has @birkenfeld checked it out? I acknowledge that this one can be controversial :D
BTW, I do recommend trying it out for yourself locally. There are various ways (gh command line is nice), the basic way is:
git fetch origin pull/1649/head
git checkout FETCH_HEAD

And yes, I'll think of a doc as well.

Yes, @birkenfeld is on board. Please let me know when you're ready, I want to merge this within a day of you being done so we can cleanly cut over to the new system going forward. Thanks for your help here!

Yes, @birkenfeld is on board. Please let me know when you're ready, I want to merge this within a day of you being done so we can cleanly cut over to the new system going forward. Thanks for your help here!

Thank you as well! I will take a detailed look over everything today and then let you know.

Thank you as well! I will take a detailed look over everything today and then let you know.

To chime in in more detail here, after having reviewed the patch more closely now: I'm in favor of the general concept, however I'm hesitant about two things:

YAML as the file format - I intensely dislike it in general, and in particular for such trivial data as two literal strings it's overkill.
The pytest plugin, while nice, is an uncommon dependency and itself has lots of transitive dependencies. This creates packaging work for distributors, while the actual provided functionality is quite modest.

We actually already have a facility for this in the test suite; the test_examplefiles can store its output and check against that (but it's not as nice, and disabled in the code).  In the course (or as a followup) of this change, I'd also like to convert the examplefiles test to this method.
So as a TLDR: excellent idea, but the implementation needs to be simplified.

To chime in in more detail here, after having reviewed the patch more closely now: I'm in favor of the general concept, however I'm hesitant about two things:

YAML as the file format - I intensely dislike it in general, and in particular for such trivial data as two literal strings it's overkill.
The pytest plugin, while nice, is an uncommon dependency and itself has lots of transitive dependencies. This creates packaging work for distributors, while the actual provided functionality is quite modest.

We actually already have a facility for this in the test suite; the test_examplefiles can store its output and check against that (but it's not as nice, and disabled in the code).  In the course (or as a followup) of this change, I'd also like to convert the examplefiles test to this method.
So as a TLDR: excellent idea, but the implementation needs to be simplified.

Hehe, maybe it's true. Having gone through several iterations of this in development, I lost the context that it is in fact just 2 string literals. But to be fair, another feature of YAML is being used: the comments.
I think I can extract the functionality to have no external dependency.
But please do tell me your suggestion regarding how the sample files should look.
An alternative to
input: |
  sample
# comment
tokens: |
  aaa      aaa
  bbb      bbb

Hehe, maybe it's true. Having gone through several iterations of this in development, I lost the context that it is in fact just 2 string literals. But to be fair, another feature of YAML is being used: the comments.
I think I can extract the functionality to have no external dependency.
But please do tell me your suggestion regarding how the sample files should look.
An alternative to
input: |
  sample
# comment
tokens: |
  aaa      aaa
  bbb      bbb

Not worth resolving conflicts

Well, I guess that was a good prediction

Not worth resolving conflicts

Well, I guess that was a good prediction

As to the file format, it could be as simple as splitting it into two files, testcase.input and testcase.expected, and .expected would be one token per line, with comment support (given that has to adhere to a format anyways.)

As to the file format, it could be as simple as splitting it into two files, testcase.input and testcase.expected, and .expected would be one token per line, with comment support (given that has to adhere to a format anyways.)

As of now, did the work purely to avoid any external deps, by re-implementing them here.
If you want a particular file format, let me know.
Regarding the suggestion about two files per case - I think that will have really bad usability.

As of now, did the work purely to avoid any external deps, by re-implementing them here.
If you want a particular file format, let me know.
Regarding the suggestion about two files per case - I think that will have really bad usability.

Pushed with new file format, one which has no invalid states.

CanonicalCanonicalw/o commentw/oinput markerw/otokens markerw/o markers

comment
---input---
input
---tokens---
tokens

---input---
input
---tokens---
tokens

input
---tokens---
tokens

---input---
input

input

3rd and 4th examples should never occur in practice. And of course, writing the files will be in the canonical form.

Pushed with new file format, one which has no invalid states.

CanonicalCanonicalw/o commentw/oinput markerw/otokens markerw/o markers

comment
---input---
input
---tokens---
tokens

---input---
input
---tokens---
tokens

input
---tokens---
tokens

---input---
input

input

3rd and 4th examples should never occur in practice. And of course, writing the files will be in the canonical form.

when an assert fails in the comparison actual/golden, there is a huge traceback with a lot of pytest internals

Done

wouldn't it be more general to use .endswith('\n') instead

Done

squash the changes a bit for the final merge, since the branch still contains the old version

Why? I see this PR as being squashed into 1 commit in the end, so you can just use GitHub's feature to squash on merge and then we don't lose the history of commits in review.

when an assert fails in the comparison actual/golden, there is a huge traceback with a lot of pytest internals

Done

wouldn't it be more general to use .endswith('\n') instead

Done

squash the changes a bit for the final merge, since the branch still contains the old version

Why? I see this PR as being squashed into 1 commit in the end, so you can just use GitHub's feature to squash on merge and then we don't lose the history of commits in review.

Ok sure, we can squash when merging.

Ok sure, we can squash when merging.

Very nice, thanks a lot! That should hopefully reduce the entry barrier a bit going forward.

Very nice, thanks a lot! That should hopefully reduce the entry barrier a bit going forward.

I see that not everything is 100% smooth. E.g. the fact that https://github.com/pygments/pygments/commit/3f78a5085415f817e4c4c4f18a206e48b9e911a4 was needed. If you have any pains with this, please poke me any time :)
E.g. if this particular example keeps re-occurring, then we should make the assertion be that the file content 100% matches, not that the values from it match