MH-12826: Make workflow processing settings persistent

This PR adds “workflow properties” to events, as described here:
https://opencast.jira.com/browse/MH-12826
The idea is to store the last workflow instance’s properties using
asset manager properties and load them when the user invokes “Actions
-> Start Task”. This, of course, has to work when multiple events are
selected, which makes the code a lot more difficult.
For example, if two events are selected, both have the (boolean,
checkbox) workflow property “publish to X”, but with different
values. Then the gui now displays an indeterminate checkbox. In a
similar fashion, radio buttons are all deselected for ambiguous
values, and text fields are blanked.
The “Schedule Task” wizard also has a table at the end listing all the
selected properties. This table was changed to display an asterisk for
properties that are different for each event. When hitting the submit
button, the corresponding workflow properties are resolved for each
event separately.
There’s a new endpoint to retrieve these properties in bulk for
multiple events (for performance reasons). To accomplish that, the
AssetManager query language had to be extended.
This work is sponsored by SWITCH.

@CGreweling I have "elongified" all the short variable names. :)

Hi @pmiddend
If I understand this correctly, the Admin UI will read the workflow properties in the following places:

Events -> Add Event
Events -> Actions -> Start Task
Events -> Video Editor

In that case, please add the following line to the security configuration:

<sec:intercept-url pattern="/admin-ng/event/workflowProperties" method="POST" access="ROLE_ADMIN, ROLE_UI_EVENTS_CREATE, ROLE_UI_TASKS_CREATE, ROLE_UI_EVENTS_EDITOR_VIEW" />

@staubesv I added it to mh_default_org.xml (not the example files). Hope that's what you meant.

Hi @lkiesow
It is meant to be "the" persistence layer for processing settings and considering that aspect, it does replace those WOHs.
Reason: It is "not necessarily a best practise" to feed a front-end with data that lies on the disk (scalability, user interaction) and I don't think we should put them into a search index just to be able to access them fast enough (without an actual need for search).
I still do see a use case for the *-wf-properties WOHs at our side, though: We want continue to use WOH export-wf-properties for backup purposes. If a user accidentally deletes an event (which should cause the processing settings in the DB to be deleted), archiving the processing settings allows us to restore the last "active" (not necessarily the most recent) processing settings when doing a restore. As we backup the full "archive" folder, that comes for free.
But it certainly does make sense to remove WOH import-wf-properties and WOH export-wf-properties from the default workflows to avoid a mess when it comes to workflow settings.
Anyway, let's bring up this at the technical meeting tomorrow to see what others say about it.

@pmiddend We discussed this pull request yesterday at the technical meeting and concluded that WOH import-wf-properties should be removed from the workflow definition publish-after-cutting-process-smil.xml, publish-after-cutting.xml and publish.xml. Also WOH export-wf-properties should be removed from the workflow definition schedule-and-upload.xml.
Can you please adapt the PR?

@pmiddend @lkiesow
These changes for the payload in scheduleTaskController.js:
''' eventIds: eventIds

           configuration: $scope.processing.getWorkflowConfigs($scope.workflowProperties, $scope.getSe'''

Also needs to be done in:
bulkDeleteController.js
retractEventController.js
and mebe here, but i am not quite sure:
editStatusController.js
Otherwise retraction, deletion does not work any more.

I've posted "What shall be the future of WOH export-wf-properties and WOH import-wf-properties?" on the Opencast Users list: https://groups.google.com/a/opencast.org/forum/#!topic/users/-hwn5grJn3A
... as this contribution makes WOH import-wf-properties and WOH export-wf-properties obsolete for the use case "make processing settings persistent" so the question arose whether Opencast should still contain does WOH in the future.

I have removed the import and export WOH. I also fixed some small stylistic issues reported here.

@staubesv I've fixed the small "unused" bug in the JS file.

I've merged this into develop and tried using this but it does not seem to work at all. If I got your intention correctly then properties from a workflow should still be available in the next workflow I start on an event. At least that was the idea behind the import/export-wf-properties woh's.
To test this, I processed a couple of events. When they were done I had workflow properties which looked like this (from event details → workflows → details):

Afterward, I started a second workflow (a retract workflow in this case) but none of the old properties were available:

@lkiesow If you execute a workflow, not all stored properties for the event are applied. Only those that appear in the workflow's HTML definition. I think it would be simple to extend it so it applies all properties, if that's desired. This might, of course, lead to long tables and confusion from the user's perspective.

@pmiddend, I might have misunderstood the intention of this. You don't want to store all properties. You want to store input properties. That's fine as long as it's clear what this does.
However, grabbing the input from the HTML is not necessarily the best idea. Most input for Opencast probably comes from external systems and not at all from the admin interface. But they still may contain workflow property configuration. Not storing them would result in weird inconsistencies.
In all cases (regardless of the point of entry), you always have all input workflow properties when starting a workflow. If you just persist the properties at that point, you catch every input and it probably even drastically simplifies this patch. Furthermore, that should already catch scheduled events since they pass the input properties to the workflow.
Does that make sense (or did I miss anything else)?

@lkiesow I'm not really sure what you're referring to. The input is already grabbed from the HTML in master (see processing.js, search for getWorkflowConfig). I agree that it's really nasty, but I'm not sure how to circumvent that. I just extended this to include "tristate" input fields.
On the topic of other external inputs. The PR stores the workflow properties in applyWorkflow, just before the line that reads wfs.start(wf.getWorkflowDefinition(), mp, wf.getParameters()), so is that not the right place to do it?

Would you mind a short meeting for this next week? Might be easier to get a consensus then discussing it here.

@pmiddend & @lkiesow
When starting a workflow, all workflow properties of the event should be loaded always independent of what the configuration panel does display or not.
Seem from that point of view, it probably makes more sense to load those property into the workflow instances in the backed when starting a workflow so that it applies to all ways of starting a workflow (not just the admin UI).
"grab from HTML"
Absolutely! This is inherited from an existing design flaw: While putting the configuration panels directly into the workflow definitions as HTML/Javascript is easy to do and flexible, it wildy mixes model, view and controller.
From my personal point of view, the correct solution would be to only store the model (parameter declaration, e.g. name, type and default value)  in the workflow definitions and let "whoever is the client" do the view and the controller aspects.
That is, unfortunately, way out of scope of this PR and would likely cause all kinds of resistance (think of LTI that directly uses the configuration panels in the LMSs).
The values therefore need to be extracted from the "wild non-MVC mess". The was already done before. This PR adds the other direction: It is now also possible to display the stored values in a configuration panel.
I've created https://opencast.jira.com/browse/MH-13036 for this, but I don't think that will happen "soon" ;-)

@lkiesow @staubesv Ok, so after our meeting, I made a few changes:

The properties are now stored and retrieved in the WorkflowServiceImpl. I had to pass the AssetManager via OSGI, but there were no dependency cycles.
There's now a utility class for dealing with workflow properties, which simplifies this and the other two PRs that depend on the properties.
I added some mocks for the asset manager stuff in the main WorkflowServiceImplTest, but didn't adapt the other tests. Hope that's okay.

@pmiddend Please note that https://github.com/opencast/opencast/pull/314 has caused conflicts in this PR. Could you please fix them?

@staubesv conflict fixed.

Looks good now. Thanks for the patch and thanks for fixing the issues I raised.


[Feature Request] Exec wrapper

For short-lived progresses.

@halfcrazy We already implemented this feature. Do you have any not working cases?

I don't see an example in the docs. Could you give me an example of usage?

The latest version already supports it.


running sls offline start while compiling symlink node_module

We are running a setup where we have a serverless lambda folder and an npm folder and have a symlink setup.  It works great, but when we run tsc in the npm folder,  serverless goes into 'Compiling with Typescript...' infinitely.  Here is a screenshot of it:
https://www.evernote.com/l/ADZ0T1hOKCBG97dyqtz5qStX2_Yg0EmpxjY
I think the watch folder just needs to ignore the node_modules folder, but not sure if that is an option.

@bwship did you ever find a solution?  That recompile loop really drags us down.

Same, annoying & time consuming issue here 😞  Issuing CTRL+C won't stop that loop 🙃  so we keep on firing killall node as a workaround.
⚠ Ignoring node_modules might not be a good idea though in the context of a monorepo where Lambda & Yarn Workspaces do rely on symlinks to our packages out there.


Return the HTTP response status and headers

Callers should have access to the response headers - specifically the x-shipengine-request-id.
The significant changes are in ShipEngineClient, ShipEngineResponse and api.mustache. The rest are the result of regeneration.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

5 of 385 (1.3%)  changed or added relevant lines in 21 files are covered.
186 unchanged lines in 19 files lost coverage.
Overall coverage decreased (-0.1%) to 10.762%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

ShipEngineSDK/Api/DownloadsApi.cs
0
4
0.0%

ShipEngineSDK/Api/TokensApi.cs
0
4
0.0%

ShipEngineSDK/Api/AddressesApi.cs
0
8
0.0%

ShipEngineSDK/Api/ServicePointsApi.cs
0
8
0.0%

ShipEngineSDK/ShipEngineResponse.cs
0
8
0.0%

ShipEngineSDK/Api/TrackingApi.cs
0
12
0.0%

ShipEngineSDK/Api/CarrierAccountsApi.cs
0
16
0.0%

ShipEngineSDK/Api/InsuranceApi.cs
0
16
0.0%

ShipEngineSDK/Api/ManifestsApi.cs
0
16
0.0%

ShipEngineSDK/Api/PackagePickupsApi.cs
0
16
0.0%

Files with Coverage Reduction
New Missed Lines
%

ShipEngineSDK/Api/DownloadsApi.cs
2
0.0%

ShipEngineSDK/Api/TokensApi.cs
2
0.0%

ShipEngineSDK/Api/ServicePointsApi.cs
4
0.0%

ShipEngineSDK/Api/AddressesApi.cs
4
0.0%

ShipEngineSDK/Api/TrackingApi.cs
6
0.0%

ShipEngineSDK/Api/TagsApi.cs
8
0.0%

ShipEngineSDK/Api/RatesApi.cs
8
0.0%

ShipEngineSDK/Api/InsuranceApi.cs
8
0.0%

ShipEngineSDK/Api/CarrierAccountsApi.cs
8
0.0%

ShipEngineSDK/Api/ManifestsApi.cs
8
0.0%

Totals

Change from base Build<PHONE_NUMBER>7:
-0.1%

Covered Lines:
1224

Relevant Lines:
11608

💛  - Coveralls


time.clock() is not avaliable in Python 3.8

Suftware uses time.clock() to measure the time of computations.
This obsolete/deprecated (since Python 3.3) time.clock() method has been removed in Python 3.8. Therefore Suftware installed from PyPI need an hotfix to run - i.e. change from time.clock() to time.pref_counter() - to be compatible with Python 3.8.
See also https://github.com/wxWidgets/Phoenix/issues/1510

Thanks, I know about this issue, I will fix it in a new release, soon.


Added Resources for Github in Readme

Contributing
If you want to add a project to this list, please make sure that:

[ ] You read the contributing guide
[ ] The repository has hacktoberfest as topic and counts for hacktoberfest event
[ ] The project can't be just an "add your name" or simply + 1 contribution to hacktoberfest
[ ] Place them in alphabetical order
[ ] One repository per PR/contribution - avoid conflicts and simplify review
[ ] Your pull request is not spammy just adding an empty line, otherwise it will be marked as invalid and not count to hacktoberfest.

If they meet the requirements above, feel free to create a PR. Happy Hacking! :sparkles:

Hmmmm, not sure, this seems a lot of generic, could you add an interesting video about the topic instead?


reverse clicked on tabs at design forms in right to left mode

hi, When I place the control on the form and align the control's tab layer to the right(righttoleft=true), the tabs are selected incorrectly with a mouse click, it seems like they are clicked in reverse, for example, if I have 5 tabs and they are arranged from right to left, when I click on tab 0, tab number 4 is clicked in the design, or when I click on tab 1, tab number 3 opens, which complicates the task and I cannot place the controls correctly inside the tab.

thanks,can fix these too?
just related to righttoleft mode.
Description in image:

better description:

Hello, thanks. Also fixed.


Screen first rendered after moving mouse

Hi,
after starting sway the screen is black and only the mouse cursor is visible. After moving the mouse, wallpaper and swaybar gets rendered and is working fine then.
Its not a major bug but somehow confusing.
Best regards,
Jonas

By the way, @Cloudef, you might want to do something like this in wlc. I've always felt like this was wlc's problem.

My bad - this does not seem to have been fixed by #510.

cc @mikkeloscar

For anyone where #510 doesn't fix the issue, could you please post your sway config? Also please try to launch sway from inside X and from a tty and see if that makes a difference. That will help debug the issue.
And as always, make sure wlc and sway are up to date :)

No problem

Does not occur when running sway under X.

Correction - it works for me now. The only change I've made recently is that I'm running a debug build of wlc, not sure if it's related.

@onny can you confirm if this is still an issue for you?

It still is for me.  I can upload config later if wanted.
On Wed, Mar 16, 2016 at 9:22 AM, Drew DeVault<EMAIL_ADDRESS>wrote:

@onny https://github.com/onny can you confirm if this is still an issue
for you?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/SirCmpwn/sway/issues/509#issuecomment-197352504

I think it's a race issue where swaybg starts too late in some cases, to be affected by the forced render request. I just haven't had time to look into it yet.

It looks fine now for me, thanks :)

@mikkeloscar Indeed, twice out of the ten or so times I just restarted it to see, it rendered properly from the get-go.  The other times were nothing until I moved the mouse.

Please test #512 if you can, that should be the correct fix for this issue!


Blog Website

🛠 Issue (Number) = #333

Closes #333
Description
I have made a Blog Website and the screenshot of the same has been attached for your kind reference. Please approve and merge my issue. Any suggestions will be welcome.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[x] I have made this from my own
[ ] I have taken help from some online resourses
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] The title of my pull request is a short description of the requested changes.

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

make the navbar and home page responsive.

@Vanshiii203 Ma'am this is the mobile layout of the website and the website code already includes media queries so the navbar and website layout is responsive. The screenshot above is layout of website on mobile interface. Please see to it. Thank you so much ma'am.

@TusharKesarwani Please kindly look into it and merge it.


Skip delete .plugins-ml-config system index during integ test

Description
Skip delete .plugins-ml-config system index during integ test.
This PR helps to resolve the error during k-NN build security enabled integ test in release Jenkins concurrent-search-test CI:
org.opensearch.client.ResponseException: method [DELETE], host [https://localhost:9200/], URI [/.plugins-ml-config], status line [HTTP/1.1 403 Forbidden]

    {"error":{"root_cause":[{"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[admin], requestedTenant=null]"}],"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[admin], requestedTenant=null]"},"status":403}

        at app//org.opensearch.client.RestClient.convertResponse(RestClient.java:376)

Test
With @peterzhuamazon 's help, the Jenkins’s CI build passed  with this code change. Attached logs:
knn-junqiu-lei-skip-delete-ml-config-gradle.log
2.12.0-concurrent-settings-cluster.log
Issues Resolved
https://github.com/opensearch-project/k-NN/issues/1357, https://github.com/opensearch-project/k-NN/issues/1410, https://github.com/opensearch-project/k-NN/issues/1411, https://github.com/opensearch-project/k-NN/issues/1412
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed as per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

https://github.com/opensearch-project/k-NN/issues/1357 now successfully auto closed. https://github.com/opensearch-project/k-NN/issues/1410, https://github.com/opensearch-project/k-NN/issues/1411, https://github.com/opensearch-project/k-NN/issues/1412 still pending close, checked on the Jenkkins CI, they are failed for all plugins, assume it might need some fix at Jenkins CI level. cc @peterzhuamazon


unlighthouse-ci --site  ${SITE} --static-site failes to result in a static offline site that is not root relative

Describe the bug
unlighthouse-ci --site  ${SITE} --static-site
Seems to be completely broken.
Reproduction
No response
System / Nuxt Info
No response

Hi, I'm not sure where you got this flag from --static-site, the flag should be --build-static

yah thanks for that, not sure where I got it from either


Qt: Add prune setting to OptionsDialog

This adds a prune setting to the options dialog. Backport from Bitcoin PR #13043

Thanks! This is great!
That 2Gb in your screenshot is under our minimum threshold though, so I think we need to thoroughly test the min/default parameters to reflect this: https://github.com/dogecoin/dogecoin/blob/31afd133119dd2e15862d46530cb99424cf564b0/src/validation.h#L224-L225

Should we hardcode the minimum threshold? Since the 2200MB is the minimum, we can use 3GB (rounded up).

The code right now rounds 2200MB to 2GB as shown in the screenshot.

Since the 2200MB is the minimum, we can use 3GB (rounded up).

Yes, I'd recommend doing 3GB as a minimum (and default) (that's actually how I configure my own pruned nodes too)

If we're using 1024 * 1024 instead of 1000 * 1000, we should use GiB in user-visible text. That goes for pruneSizeUnitLabel in the Qt layout. As well, the calculation of nPruneSizeMB is correct, but I'd prefer we use one base unit consistently here across the GUI and the code.
The --help text suggests MiB, so my suggestion is to change the Qt label to GiB and the variable to nPruneSizeMiB.

Bitcoin uses a constexpr in guiconstants.h so we can do the same. (3GB instead of 2GB)

If we're using 1024 * 1024 instead of 1000 * 1000, we should use GiB in user-visible text.

and

Bitcoin uses a constexpr in guiconstants.h so we can do the same. (3GB instead of 2GB)

I agree with what both of you say, in principle, but I have some more thoughts about this.
The code in question (on Bitcoin Core's master branch) is:
https://github.com/bitcoin/bitcoin/blob/e14f0fa6a346afecbb1d5470aef5226a8cc33e57/src/qt/guiconstants.h#L56-L60
/* One gigabyte (GB) in bytes */
static constexpr uint64_t GB_BYTES{1000000000};

// Default prune target displayed in GUI.
static constexpr int DEFAULT_PRUNE_TARGET_GB{2};

This leads me to think that:

Bitcoin switched from GiB to GB. I think that makes sense, because dogecoin-qt does most stuff in MB (but dogecoind does most in MiB) so it would be more consistent.
The minimum for Bitcoin using the provided calculation ( MIN_DISK_SPACE_FOR_BLOCK_FILES / GiB + abs(sign(MIN_DISK_SPACE_FOR_BLOCK_FILES % GiB)) ) would be 550MiB/1GiB + 1 = 1GiB, so it's (somewhat) understandable that they change the default to 2, also because Bitcoin Core allows for relay when pruning whereas our 1.14 does not. For our case however, I think that 2200MiB/1GiB + 1 = 3GiB is pretty good as a minimum AND a default  - but I am open to other ideas; I'm biased as I've been running it like that for a while on mainnet because I felt it simply made sense to do it like that, no science, just gut.)

I created DEFAULT_PRUNE_TARGET_GB in optionsmodel.h using this expression: MIN_DISK_SPACE_FOR_BLOCK_FILES/1GiB + 1 = 3GiB.
As of right now the nPruneSize calculates in MiB and the DEFAULT_PRUNE_TARGET_GB is calculated using MiB.
Could we convert the GB to MiB? This is what Bitcoin Core master branch using PruneGBtoMiB()

I created DEFAULT_PRUNE_TARGET_GB in optionsmodel.h using this expression: MIN_DISK_SPACE_FOR_BLOCK_FILES/1GiB + 1 = 3GiB.

I'm okay with the +1 instead of the translation of the modulus, because even if we would consider to set the value in validation.h to a MB size of a nicely rounded 1000 (which is a pretty ugly thing to do when we're setting it in the internals as MiB), we'd probably still want a +1 as both the default and the minimum, so I think that's fine.

As of right now the nPruneSize calculates in MiB and the DEFAULT_PRUNE_TARGET_GB is calculated using MiB. Could we convert the GB to MiB? This is what Bitcoin Core master branch using PruneGBtoMiB()

The PruneGBtoMiB and PruneMiBtoGB functions are imho very useful and I hope that using this would please @chromatic too, if we apply them correctly: PruneMiBtoGB on the DEFAULT_PRUNE_TARGET_GB declaration and PruneGBtoMiB when using it in SoftSetArg.
I do think we'll need to declare them not as static inline functions but as constexpr inline functions to properly work with the assignment, and perhaps we can put it all (both inline functions and the GB_BYTES and DEFAULT_PRUNE_TARGET_GB constants) in guiconstants.h for consistency with ourselves and the current Bitcoin Core implementation

I agree with Patrick; that approach sounds reasonable.

I noticed a problem:
PruneMiBtoGB(MIN_DISK_SPACE_FOR_BLOCK_FILES + 1)

returns 4, causing the UI default to 4 GB.
I played around with PruneMiBtoGB and it returns 5 GB when MIN_DISK_SPACE_FOR_BLOCK_FILES equals 3200 MiB.
Is there something wrong with calcucation? It looks like it is rounding it up no matter the number. Should we remove the +1 to get 3 GB?

Now that I look at it in more detail, I'm not sure I understand the code in PruneMiBtoGB as implemented here. I would expect multiplying mib by 1024 * 1024, then dividing by GB_BYTES (which is 1,000,000,000). I don't see the multiplication I expect here (I see it's in MIN_DISK_SPACE_FOR_BLOCK_FILES, but that makes me think the units may be misleading.)
If MIN_DISK_SPACE_FOR_BLOCK_FILES is measured in MB, then it should be multiplied in PruneMiBtoGB, but if it's measured in bytes, then it shouldn't be multiplied, but that probably means PruneMiBtoGB is implemented inconsistently with its name.
I do see adding GB_BYTES - 1 which, when divided, gives the desired rounding behavior. With that in place, I don't think DEFAULT_PRUNE_TARGET_GB needs to add another 1 to the return value; this seems like the source of the extra GB.
Is that clear at all, or am I confusing myself writing this?

Agree with both points:

that probably means PruneMiBtoGB is implemented inconsistently with its name.

The units stated in the function name are misleading because the function does BytesToGB - good catch. For consistency we may want to rename it (because we should not want it to confuse us in the future)

With that in place, I don't think DEFAULT_PRUNE_TARGET_GB needs to add another 1 to the return value; this seems like the source of the extra GB.

You're correct: I missed the rounding when I did my review, sorry for that.

Looking at the PruneMiBtoGB implementation, it indeed does BytesToGB. Looks like the 1024 * 1024 is already done in MIN_DISK_SPACE_FOR_BLOCK_FILES
I have updated the function name to PruneBytesToGB.

You're correct: I missed the rounding when I did my review, sorry for that.

No problem! I will fix this in the code.

was hoping to clarify, what am I passing for "n" if I am using dogecoin.conf
if it is prune=1 how am I setting the size for what I want to prune to?
the command line help dialog says prune=n is incompatible if I have txindex=1 is that accurate? iftxindex=1is a requirement for my use case (I am using gigawallet) do you have any suggestions on how to set the pruning?

if txindex=1 is a requirement for my use case (I am using gigawallet) do you have any suggestions on how to set the pruning?

You cannot both prune and have txindex activated because the transaction index references the file and position of the transaction on disk in the block file. So if you need txindex, you'll have to keep every historical block on disk.
Any other solution where we would store each transaction separately will have the same disk space requirement or worse, because -txindex is a global index.

Thank you for clarifying.
Sent from my iPhone

On Oct 31, 2023, at 1:44 AM, Old Dip Tracker @.***> wrote:

if txindex=1 is a requirement for my use case (I am using gigawallet) do you have any suggestions on how to set the pruning?
You cannot both prune and have txindex activated because the transaction index references the file and position of the transaction on disk in the block file. So if you need txindex, you'll have to keep every historical block on disk.
Any other solution where we would store each transaction separately will have the same disk space requirement or worse, because -txindex is a global index.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.


Add example of breadcrumbs that collapse on mobile

@timpaul ready for you to add content 👍

You can preview this change here:
Built with commit b067749391d4ed40431c2f8e5874fc0ada20d0b5
https://deploy-preview-1251--govuk-design-system-preview.netlify.app

Rebased to remove the pre-release.


DBZ-2851 Add sanitize.field.names to Vitess documentation

https://issues.redhat.com/browse/DBZ-2851
Vitess Connector already supports the sanitize.field.names configuration. I've added an integration test in other PR.

Thanks for the contribution @keweishang!

Thanks for the contribution @keweishang!


Enforce kind name pattern

Because Fortran type kinds are just native integer parameters it's all to easy to say real(i_def) or integer(r_def). If the compiler designers were on top form the day the implemented kinds then real and integer kinds will have different values so the compiler can complain when you get it wrong. Few, if any, were.
This ticket is for implementation of a style rule which takes advantage of the fact that we have a naming convention for kinds to ensure that the developer hasn't got confused. It should take a regex pattern for real and one for integer kinds. Other primitive types may also be supported.

After carefully crafting the issue text I realise I've created the issue against the wrong project...


fmriprep_singularity

Is there any interest or plan to implement a Singularity version of the fmriprep_docker wrapper? We were just about to code up our own wrapper but maybe this would be useful to others?

I did originally intend the wrapper to be for either Docker or Singularity, but Singularity is either a simpler or more complex beast, depending on how you look at it. If set up with a good configuration, the only change from the basic Python command is from fmriprep ... to singularity run <fmriprep image> .... The number of system-wide configurations that could cause that to fail, though, would make it hard to do the translation. For example, the most common thing I've seen is that directories that users expect to be visible from within the container are either not bound by default or not allowed to be bound. I'm not sure the best way to handle that in a general "this should work for everybody" sense.
In any event, we're happy to review patches or entirely new wrappers, if you like.

Ok. The way we have ended up using it is by always setting the -C flag, and using -B to bind /tmp. In this mode singularity seems to run similarly enough to docker. It wouldn't be too tricky to extend your wrapper to run singularity in that restricted mode, if that seems like a reasonable direction.

Sure. As long as it generally works and the Docker functionality isn't modified, that sounds reasonable.

@jooh did you make a functioning wrapper? I'd love to give it a test.

Sorry, not yet. I wrote a general bind mount automation tool for docker, and at some point I will find the time to extend it to singularity. From that point it should be easy to support fmriprep singularity containers.
https://bindit.readthedocs.io/en/latest/

Following up here, ran into a pitfall with singularity invocations which could be properly handled with a wrapper managing bind mounts: https://github.com/poldracklab/fmriprep/issues/1734


FreeMarker template error: Edit version history page

This bug affects any public resources already published

What steps will reproduce the problem?
1. Upgrade an IPT to v2.2
2. Open the homepage for one of the public & published resources, and try to edit the
change summary for the first version in its version history table

What version of the provider software are you using?
v2.2.1

Please provide any additional information below.

Reproduced using http://ipt.gbif.org/resource?r=cabin

The following has evaluated to null or missing:
==> history.status  [in template "WEB-INF/pages/manage/version_history.ftl" at line
42, column 32]

Original issue reported on code.google.com by kyle.braak on 2015-05-05 14:41:38

 * *Attachment: Screen Shot 2015-05-05 at 16.32.15.png![Screen Shot 2015-05-05 at 16.32.15.png](https://storage.googleapis.com/google-code-attachments/gbif-providertoolkit/issue-1161/comment-0/Screen Shot 2015-05-05 at 16.32.15.png)*

Hello kbrak any news about this issue? I'm facing the same problem

@natyoliveira this issue has been fixed. If needed, you could apply this simple fix locally. Otherwise the fix will be included in the next release.


Why there is only 1 function in ArrayHelper? Can we introduce more?

I have gone through the ArrayHelper file and found only one function.
There are multiple functions which we use in our development, which we wish to have in core helpers
Can we suggest those as well to be a part of core functionality instead of custom?
This might help all developers to get the one-stop solution

You can still extend the helpers and add what you need to it.

If you've got some useful functions ready for this helper please PR it.
We should be open minded for new ideas. :).
Please note you should provide docs/test as well , you can complete these elements later.

This isn't a bug. We use github for tracking bugs & approved work packages.
You should raise this on https://forum.codeigniter.com/forum-29.html, with suggested helper methods, thanks.


Slot is not resetting even after the submit action

Rasa version: rasa-core==0.13.7 and rasa-core==0.14.1
Python version:  Python 3.6.7
Operating system (windows, osx, ...):
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic
Issue:  Slot is not resetting even after the submit action, when using FormAction
Steps to reproduce the issue:

Add a new FormAction for a single slot
Try to ask a question without the slot value present in the user input. The utter_ask action performs and the slot filling questions is asked correctly.
Try to ask the same question again.

Expected result:

It should perform the utter_ask action for asking the slot value again, since the slot value is not present in the user input.

Actual result:

It does not perform the utter_ask action for the missing slot. It uses the slot value, which was set for the previous scenario. This is wrong.

Please note that the slot is resetting correctly, if the user asks some other questions in between and then come back and ask the slot related question again. Please see the sample scenario below to understand the issue correctly.
Sample scenario:-
User:> Could you please send me the sever url?
Bot:> Please confirm the environment? (Dev or Stg)
User:> dev
Bot:> The user has asked 'dev' environment
User:> hello
User:> Hello, how can I help?
User:> Could you please send me the sever url?
Bot:> Please confirm the environment? (Dev or Stg)
User:> dev
Bot:> The user has asked 'dev' environment
User:> Could you please send me the sever url?
Bot:> The user has asked 'dev' environment
Content of configuration file (config.yml):
language: "en"

pipeline:
- name: "nlp_spacy"                   # loads the spacy language model
- name: "tokenizer_spacy"             # splits the sentence into tokens
- name: "ner_crf"                   # uses the pretrained spacy NER model
- name: "intent_featurizer_spacy"     # transform the sentence into a vector representation
- name: "intent_classifier_sklearn"   # uses the vector representation to classify using SVM
- name: "ner_synonyms"                # trains the synonyms

Content of domain file (domain.yml) (if used & relevant):
forms:
- action_server_url
entities:
- environment
slots:
  environment:
    type: unfeaturized
    auto_fill: false

Content of stories file (stories.md):
## server url happy path
* request_server_url{"url": "url", "server": "server", "dev": "environment"}
    - action_server_url
    - form{"name": "action_server_url"}
    - form{"name": null}

Content of actions.py file (actions.py):
class ServerUrlRequestForm(FormAction):
    def name(self) -> Text:
        return "action_server_url"

    @staticmethod
    def required_slots(tracker: Tracker) -> List[Text]:
        return ["environment"]

    def slot_mappings(self) -> Dict[Text, Union[Dict, List[Dict]]]:
        return {
            "environment": [self.from_text()],
        }

    def slot_mappings(self) -> Dict[Text, Union[Dict, List[Dict]]]:
        return {
            "environment": [self.from_entity(entity="environment", intent='inform')]
        }

    def submit(
        self,
        dispatcher: CollectingDispatcher,
        tracker: Tracker,
        domain: Dict[Text, Any],
    ) -> List[Dict]:
        environment = tracker.get_slot('environment')
        dispatcher.utter_message("The user has asked '{}' environment" . format(environment))
        return []

Thanks for raising this issue, @Ghostvv  will get back to you about it soon.

the FormAction doesn't reset its slots after it is finished, otherwise all the information will be lost. So on the second call the slot is set. If you want you can manually reset it in submit method

Thank you @Ghostvv for your response.
I completely agree with your comments. However, do we need to keep those value even after the submit action, since the submit action is the final action for that conversation scenario? Also, I believe the manual slot reset in submit action option also makes the same impact as resetting the slot automatically. Isn't it?
Also, could you please advise, what can we do if we have a similar situation. which I mentioned in the description?  I think, if the user asks the same question continuously with out mentioning the slot value, the bot should again ask the slot filling question. Is that correct? Because, we can't assume the user will use the same slot value for the second time also. So, how do we achieve it?
Kindly let me know, if I am making any mistake here or if we can do it in any different way?
Thank you,
Anoop Mohan

do we need to keep those value even after the submit action - it is very much dependent on a use case, therefore reseting slots should be done manually in your custom submit method.
the same impact as resetting the slot automatically. - impact is the same
the bot behavior depends on what you want to achieve, if you want to ask the question again return [SlotSet(slot_name, None)] in your submit method


Is it possible to support attachments?

Hey, great project it's really easy to get started.
Do you think it's possible to add attachment support?
Thanks

I think that sounds awesome! Is your goal to send attachments from your slackbot? What kind of stuff would you want to send?

Yes because then one could add buttons or colored messages for better interaction and clearer info texts.
On a side note, is it currently possible to get the sender of a message?

I've got this working in my fork. I've moving things around so unless you want all my changes It'll need to be extracted. If you're interested I could make a pull request.

@senj I am still trying to understand the use case for sending atrachments. Do you have a specific example? Including the sender is a great idea! I created an issue for it: https://github.com/mattcbaker/dotnetcore-slackbot/issues/4

@dustinchilton a PR would be great! I'm curious - what are you using the attachment functionality for?

We use it to send more detailed information to the user. Attachments allow for colors and more structure

@dustinchilson ah - that makes total sense. I will check out the PR you just pushed.
@senj I closed https://github.com/mattcbaker/dotnetcore-slackbot/issues/4, resolved it with 9365d2d3ef47942fa1972f9df8c364cd9921114b

Conversation about this going on over here: https://github.com/mattcbaker/dotnetcore-slackbot/pull/5

Submitted a new pull request #10


Is this a bug?

The water reflection looks odd when it's on waterfall form (Idk how to explain it)
You can still see the sky on the water reflection when inside houses/builds

no
ah maybe I forgot about that, sorry
I will fix it in the next update
thank for report it!
On Sun, Jul 24, 2022, 10:56 PM limegd @.***> wrote:

The water reflection looks odd when it's on waterfall form (Idk how
to explain it)
You can still see the sky on the water reflection when inside
houses/builds

[image: Screenshot_(163)]
https://user-images.githubusercontent.com/108045150/180655659-19a5def3-0842-4d41-9b23-7582a80bd92e.png
[image: Screenshot_(164)]
https://user-images.githubusercontent.com/108045150/180655661-1bd9435d-a661-4c3e-84e1-c1b16202223c.png
—
Reply to this email directly, view it on GitHub
https://github.com/bambosan/BSBE-Lite/issues/14, or unsubscribe
https://github.com/notifications/unsubscribe-auth/APGZAHZZESJMSVHSVQDZM3DVVVRUJANCNFSM54P3R77A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Remove variation_feature_bak

Yeah, that doesn't belong there

Coverage remained the same at 79.688% when pulling e0490f7bb1091b4bd66a9bf4efda634d805c601d on at7:clean_var_test_db into 6fd93729cc079e4ba071d7e9b2d5f4e5223eae8d on Ensembl:master.


traefik not change path/location in www-authenticate or location redirect header

Do you want to request a feature or report a bug?
feature or bug; I don't know
traefik not change the original path in www-authenticate header or location redirect header
traefikrules
[http]
#Servcies, the original servers
  [http.services]
    [http.services.Arti]
      [http.services.Arti.loadBalancer]
        [[http.services.Arti.loadBalancer.servers]]
          url = "http://asset-repository.xxx.de"

  [http.middlewares]
    [http.middlewares.Arti-header.headers]
      [http.middlewares.Arti-header.headers.customRequestHeaders]
        Host = "asset-repository.xxx.de"
        X-Forwarded-Host = "asset-repository.xxx.de"
#Aus apache. Es muss der WWW-Authenticate Header an ZWEI Stellen angepasst werden
#Header edit* WWW-Authenticate asset-repository.xxx.de:80 arti.xxx.de:80

    [http.middlewares.Arti-Replaces.redirectRegex]
      regex = "asset-repository.xxx.de"
      replacement = "arti.xxx.de"

  [http.routers]
    [http.routers.Arti_root]
      entryPoints = ["web"]
      rule = "Host(`arti.xxx.de`) || Host(`arti`)"
      middlewares = ["Arti-Replaces", "Arti-header"]
      service = "Arti"

Wrong Header:
DEBUG header = http.Header{"Content-Type":[]string{"application/json;charset=ISO-8859-1"}, "Www-Authenticate":[]string{"Bearer realm=\"http://**asset-repository.xxx.de**:80/artifactory/api/docker/docker/v2/token\",service=\"**asset-repository.xxx.de**:80\",scope=\"repository:nginx:pull\""}, "X-Artifactory-Id":[]string{"392eea59b78b0bb0:5d53ff9a:175ff425e03:-8000"}, "X-Artifactory-Node-Id":[]string{"b10d8b8b742e"}, "Content-Length":[]string{"87"}, "Date":[]string{"Fri, 22 Jan 2021 13:38:57 GMT"}, "Docker-Distribution-Api-Version":[]string{"registry/2.0"}, "Server":[]string{"Artifactory/7.7.8 70708900"}}

Hello @HalliHalloSchatz and thanks for your interest Traefik,
If I understand well your issue, you are trying to expose Artifactory through Traefik on a domain named arti.xxx.de. As Artifactory is not aware of that, the headers returned in the response have the wrong domain. In this case, it's not the responsibility of Traefik to change the domain in the response headers.
Some services allow configuring this value, for example with Artifactory maybe the following documentation could help https://www.jfrog.com/confluence/display/JFROG/HTTP+Settings#HTTPSettings-ReverseProxySettings.
Other services will use the forwarded Host or the X-Forwarded-Host header to obtain this information.
BTW in your configuration, the Arti-Replaces middleware will never be called and maybe the Arti-header is not necessary as Traefik will forward the host header.

Hello @HalliHalloSchatz and thanks for your interest Traefik,
If I understand well your issue, you are trying to expose Artifactory through Traefik on a domain named arti.xxx.de. As Artifactory is not aware of that, the headers returned in the response have the wrong domain. In this case, it's not the responsibility of Traefik to change the domain in the response headers.
Some services allow configuring this value, for example with Artifactory maybe the following documentation could help https://www.jfrog.com/confluence/display/JFROG/HTTP+Settings#HTTPSettings-ReverseProxySettings.
Other services will use the forwarded Host or the X-Forwarded-Host header to obtain this information.
BTW in your configuration, the Arti-Replaces middleware will never be called and maybe the Arti-header is not necessary as Traefik will forward the host header.

Thank you for answer.
I will try a few option in the Artifactory. Okay,
BTW in your configuration, the Arti-Replaces middleware will never be called and maybe the Arti-header is not necessary as Traefik will forward the host header.
I will change the  url = "http://asset-repository.xxx.de" into url = "http://<IP_ADDRESS>
How do I set the correct Host Herader to connect the vhost asset-repository.xxx.de?
Why is my Arti-Replaces middleware will never be called?

Thank you for answer.
I will try a few option in the Artifactory. Okay,
BTW in your configuration, the Arti-Replaces middleware will never be called and maybe the Arti-header is not necessary as Traefik will forward the host header.
I will change the  url = "http://asset-repository.xxx.de" into url = "http://<IP_ADDRESS>
How do I set the correct Host Herader to connect the vhost asset-repository.xxx.de?
Why is my Arti-Replaces middleware will never be called?

I will override the original DNS Entry in my Department with the Traefik DNS Entry. So that my Department can use the original DNS, but our own DNS-Server will present the Traefik IP, because the original IP is not available from Developer-PC.
I will change the url = "http://asset-repository.xxx.de" into url = "http://<IP_ADDRESS>
How do I set the correct Host Herader to connect the vhost asset-repository.xxx.de?

If you need more help, don't hesitate to create a post in the community forum with a description of your issue and use case.

Why is my Arti-Replaces middleware will never be called?

I mean the Arti-Replaces middleware will be called but the configured asset-repository.xxx.de regex will never match because the router is bind to the arti.xxx.de domain. Therefore, the requested URL will look like the following http://arti.xxx.de/(...).

okay, thanks.
I have set the host header and access the original Server per IP, thats working fine.
I remove the Replace and reconfigure the JFrog Proxy, so that is only set the JFrog_Base_Url Header, when it is not existing.


Calling unknown method: yii\db\Connection::apc()

I would like to use both file cache and apc cache in my application. Of course, somewhere I would use apc and somewhere file. I am not sure how to configure application to use two drivers, so I have this error when I try to use apc one.
My config file:
'cache' => [
    'class' => 'yii\caching\FileCache',
],
'apc' => [
    'class' => 'yii\caching\ApcCache',
],

Code where I want to use apc:
$result = self::getDb()->apc(function ($db) {

            return self::find()->with('post')->all();

}, 3600);

return $result;

This code gives me error Calling unknown method: yii\db\Connection::apc()
Am I doing something wrong? Maybe I misunderstood documentation ? Maybe something else is wrong ?

If I change
'cache' => [
    'class' => 'yii\caching\FileCache',
],

to
'cache' => [
    'class' => 'yii\caching\ApcCache',
],

I get this error: Call to undefined function yii\caching\apc_fetch()

Use it as Yii::$app->apc->get()

Where I should put that here ?
$result = self::getDb()->apc(function ($db) {

            return self::find()->with('post')->all();

}, 3600);

Ah! You're trying to use it with DB connection. It should be like the following:
$connection = self::getDb();
$connection->queryCache = 'apc';
$result = ->cache(function ($db) {
            return self::find()->with('post')->all();
}, 3600);

Thanks, you made a mistake, so it is like this:
$connection = self::getDb();
$connection->queryCache = 'apc';
$result = $connection->cache(function ($db) {
return self::find()->with('post')->all();
}, 3600);
I am getting some weird errors, and my apache crash. It seems that my APC is not installed properly


Decide on Either Kivy, PyQT, or StreamLit for UI / UX

we ended up shifting to using React js or native for frontend, and using Django python framework for backend.


Update regex that guesses species from query in Psychic

Description
Fixes bug that can be reproduced by the following steps:

go to home page of ensembl site
from the dropdown box (in the centre of the screen), select any species
type "amelogenin" in the search box below
Observe that the search results come for panda (because the word "amelogenin" starts with the substring "amel", which is the short code for panda).

One possible solution is to update the regex in the Psychic module that assumes that if the beginning of a query matches any species present in a species hash, then it must be a query regarding this species. The updated regex will assume that if there is a species name in the query, it will be separated from the actual query by a space.
Views affected
Search page.
Possible complications
Don't know
Related JIRA Issues (EBI developers only)
https://www.ebi.ac.uk/panda/jira/browse/ENSWEB-5134

Just to note, using word boundary matching (\b) in the regex will allow matches for punctuation characters (excluding underscores and hyphens) as well as white-space. Is that intended?

@nicklangridge I don't really know what the behaviour of the search field is intended to be. I guess we can change \b to \s or just   (/^\Q$sp\E /) if that's more appropriate?

Nick's right - we don't want something like "amel.2" to redirect to panda (assuming that could be a valid gene identifier in, say, a non-vertebrate species.
I would prefer changing the \b to \s, as \E isn't even in my Perl pocket reference!

I'm not certain either. But \s might be the safer option. A contrived example: Imagine we have IDs like amel;12345. If a user tried to search for that, the colon would match the \b. Admittedly, it's unlikely we have those IDs, but I don't know for sure.

\Q and \E are used correctly there - they ensure that $sp is escaped appropriately for the regex


Autocad Crash on opening file

I'm having an issue where if I open a DXF file with dxf-rs, then save, the resulting file it crashes autocad 2016.
I'm using the latest version of dxf-rs from github.
let drawing = Drawing::load_file("input_test.dxf").unwrap();
drawing.save_file("output_test.dxf").unwrap();

Input and output test files:
test.zip

Just have a quick test. They can be loaded successfully in QCAD, LibreCAD and ODA :)

Just have a quick test. They can be loaded successfully in QCAD, LibreCAD and ODA :)


Remove readerT mechanism that uses MonadBListener from the wallet and fetches blocks through the diffusion layer

Context

In order to operate and maintain its own UTxO state, the wallet applies blocks successively and extract information from them. This current implementation has been described in:
https://github.com/input-output-hk/cardano-wallet/wiki/ApplyingBlocks-Rollback-After-Decoupling-Byron
Here, we can see how blocks are received through a shared environment mechanism between the wallet and its underlying node. This creates strong memory coupling between both processes.
Decision

We want to get rid of this shared environment (through readerT) and rely on the diffusion layer capabilities instead. This includes refactoring the current BListener, the overall block application and rollbacks mechanism. Note that the wallet currently receives Blunds from the BListener instead of mere Blocks. However, Undos from Blunds are only used to retrieve some transaction Metadata which are otherwise available in (and will have to be looked up from) the UTxO maintained by the wallet.
Acceptance Criterias

The BListener mustn't use any strong memory coupling to retrieve blocks from the node
The BListener must use the diffusion layer to receive blocks from the node
The diffusion layer interface mustn't change

Development Plan

[x] getBlocks and requestTip support is added in diffusion layer
[x] The additional thread is instantiated that is responsible for downloading blocks from the node
[x] The added mechanism is based on pull paradigm, ie., the wallet is the initiator for pulling blocks, that takes responsibility the blocks are in line with what the trusted node has
[x] The same resolved blocks are created using the added mechanism as it is in case of old mechanism
[x] apply blocks part of old mechanism is commented out
[x] All integration tests pass
[x] the pull mechanism is documented in the wiki
[x] verify if occasionally dedicated thread for applying blocks got stuck and if yes make it stable
[x] rollback mechanism is proposed and added to wiki
[x] data needed to realize pull mechanism is taken from wallet state rather than by invoke params (ie., consumed block headers can be retrieved from wallet state)
[x] simplify tickDiffusionFunction further and check processBlockTx (utxo should probably be updated from the oldest to youngest block)
[ ] document manual testing in node-attached-to-mainnet-with-wallet setup
[ ] check restoration in node-attached-to-mainnet-with-wallet setup
[ ] check backfilling  in node-attached-to-mainnet-with-wallet setup
[ ] check calculation of the time in the block - probably should be determined basing on the slotId and genesis block. Right now current time is used and we do not witness any problems with this
[ ] add a dedicated DSL extension for this expectNextEpochEventually in order to test in more than two epochs
[ ] remove reflection instance Scc
[ ] not needed old code that served readerT mechanism is removed

PR

Number
Base

#177
develop

QA

Criteria
Coverage

?
-

Retrospective

Following up on: https://github.com/input-output-hk/cardano-wallet/issues/262#issuecomment-459728814
@piotr-iohk. I am closing this. This exploratory ticket has been there for a while and @paweljakubas did achieve quite a nice job at documenting everything in the wiki and at proposing a prototype solution while also testing its correct behavior against a local cluster and mainnet.
Still remains, handling rollbacks correctly (which we need to figure out how to test: perhaps by simulating some network disconnection between local clusters), which would require to actually store the last k = 2160 blocks on disk which come with design decision, db choice, serialization representation etc.
While we could go for "duplicating" what's on sl and taking only the bits that are of interest for us, it isn't really consistent with the "getting away from the legacy codebase" approach.
So here, I am more in favor of "aborting" the end of this and rethink a bit how we want to approach this decoupling moving forward and if we want to decouple on top of the legacy codebase at all... I've merged the result in a side branch develop-decoupled to make sure not to loose it.
I'll nevertheless apply an "ABORTED" label on the ticket to clearly states that this hasn't made it to develop because of further complication.


Telnet connection error handler

this change will guide and inform the QA engineer about the 'telnet connection closed' error and how to deal with it

@wiktormowinski There is a lot of places with Telnet.<x> which could also fail.
Either this try/except would need to be put in a lot of places which uses it (and which could fail) or maybe just check Serial Connection as I said in https://github.com/Dasharo/open-source-firmware-validation/issues/377#issuecomment-2230966257 - though it would need to be tested if it fails in this particular place or not.
Another way would be to add global listener that in end_test checks if it failed and if message contains telnet error. If if does just log additional information to console.


Link missing of Dataset

Hi, I want to download the dataset from your link but get 404 FILE NOT FOUND, can you update the link please?
link: https://tumde-my.sharepoint.com/:u:/g/personal/yinyu_nie_tum_de/ESeI-yefoelJvMEaj7LGm0UB9Jq1qYraq0BtsemMxBV-DQ?e=QKjNgy

Hi,
Thanks for pointing out. We are recently moving the data source to a new drive. Will let you know when it is ready.
Best,
Yinyu

Hi, this link still cannot be opened
https://tumde-my.sharepoint.com/:f:/g/personal/yinyu_nie_tum_de/EgL3cuXA-ntHij817MTAkaABuQNcB2MEEkK_jjkJv2w39Q?e=xpGomP


Handle non-numeric tags

https://github.com/madisongh/kernel-cve-tool/blob/eb177abea3745d8576a725646effcce25f34302e/kernel_cve_tool/scripts/kernel_cve_tool.py#L60
This conversion to integer fails on tags such as v5.10.106-rt64 (which comes from the linux-stable-rt.git repository).
One possible solution is to just ignore the extra suffix:
sublevel = int(re.split('[-.]', tag)[2])

Another potential idea would be to let git sort the tags, and then just take the last one:
git tag -l --sort=version:refname v{}.{}.*

Another potential idea would be to let git sort the tags, and then just take the last one:

Great idea, thanks.  I'll also drop any hyphen-separated suffix, as you suggest.


Quick fix for Firefox 39 (Dev edition) which have offset

Hello, Videogular doesn't work on Firefox Developer Edition (39.0a2 currently).
I've done a quick fix for that. Maybe you have a more beautiful fix to replace this one, but the idea is here.
Regards & and thanks for the job,
Nainterceptor

Thanks for your PR, it's always a pleasure :)
Did you tried this in the current version 37? I don't want to add a fix for a Dev Edition and broke something in the current version.

Developer edition is just a nightly build with some addons for developpers.
In the current state, when firefox 39 will be released, We'll get this issue.
My fix works with Firefox 37. I've just tested with the beta channel (38), and it's works. According to the release notes (https://www.mozilla.org/en-US/firefox/38.0beta/releasenotes/) nothing in the 38.0 concern the event.
No release notes has been published for the 39.0, and it's an alpha.
Maybe the best choice is to wait before fix this issue ?
To sum up, this fix works for me with Firefox 36, 37, 38, 39.

No, no, if you tested and worked in those versions it's ok for me to merge it now. It will not be on bower yet, until I made a new release maybe next weekend, ok?

Oh, and welcome to the wall of fame :)
https://github.com/2fdevs/videogular/blob/master/README.md

Thanks :)


Possibility to start tracing from apache http reverse proxy.

I have a situation where:
[Apache http proxy] -> [micro-service structure**(created traceId/spanId)**].
I need to start tracing  requests from Apache server to bind logs from Apache to logs from micro-servces.
So, when request is authorized in Apache proxy, and log is created, i need to have traceId correlated to this request,:
[Apache http proxy**(created traceId/spanId)**] -> [micro-service structure**(passed tracedId from Apache)**]
Is there any possibility to force Zipkin to trace incoming requests, starting from Apache http server proxy?

I've not heard of anyone making an apache module as yet. right now, linkerd might be the only known reverse proxy that has builtin zipkin support.

We use nginx but same situation, it would be great if we could use trace_ids. Maybe this issue should be moved somewhere else thought as is not related with the ruby client.

BTW @kmalecki maybe you would be interested on this https://github.com/JordiPolo/lorekeeper
We have a middleware which takes the trace Ids and put it in here so we have nice json formatted log messages with trace_ids. It may be too much depending on how much are you building around querying your logs but it can be a life-saver.

I am also interested in an Apache module to properly start a Zipkin trace. We currently generate Apache spans quite hackily by having Apache log certain Zipkin headers and generating the spans entirely out-of-band. It is very difficult to maintain, though probably has lower in-band overhead.

I think that the only solution is to generate trace id by a module for apache and add header to request. Unfortunately there is no available module, that can generate such thing.
Thank You All for tips.
I will not close this issue yet, maybe I or someone else will find something else.

If it helps anyone, I achieved the above using mod_unique_id and mod_headers:
RequestHeader setifempty X-B3-TraceId "expr=%{md5:%{reqenv:UNIQUE_ID}}"
RequestHeader edit X-B3-TraceId "^(.{0,16}).*$" "$1"

%{reqenv:UNIQUE_ID} is a unique string generated by mod_unique_id. Then, it gets MD5-hashed and assigned to the X-B3-TraceId header. This gives a 32-character hex string = 128 bit traceId. Since my downstream libraries require the traceIds to be 64-bit, the RequestHeader edit extracts the first 16 characters (64 bit) from the value and reassigns it back to the X-B3-TraceId header which is sent downstream.

awesome thanks for sharing @adammichalik!

Does this warrant a small README.md blurb in https://github.com/openzipkin/brave/tree/master/instrumentation/apache-httpd or possibly https://github.com/openzipkin-contrib/apache-httpd ?

maybe in b3 propagation repo, I guess, as it isn't java specific?

@kmalecki were you able to find a working solution for this? I agree with you that if you want a trace span to be generated (and not just propagate the trace context) you probably need a module to handle that.

@sskilbred No, i moved to public cloud and Datadog.
I will close this thread.

Can we reopen this thread? This is a useful feature to have with an Apache DMZ like https://github.com/trajano/docker-oidc-proxy

If it helps anyone, I achieved the above using mod_unique_id and mod_headers:
RequestHeader setifempty X-B3-TraceId "expr=%{md5:%{reqenv:UNIQUE_ID}}"
RequestHeader edit X-B3-TraceId "^(.{0,16}).*$" "$1"

%{reqenv:UNIQUE_ID} is a unique string generated by mod_unique_id. Then, it gets MD5-hashed and assigned to the X-B3-TraceId header. This gives a 32-character hex string = 128 bit traceId. Since my downstream libraries require the traceIds to be 64-bit, the RequestHeader edit extracts the first 16 characters (64 bit) from the value and reassigns it back to the X-B3-TraceId header which is sent downstream.

Hi, really useful thanks. Based on this, I've attempted to do a w3c traceparent header - not sure it is exact as it is intended to be but may be of use. Horribly inefficient though, should really be written as a module!
# Header injection of w3c compliant "traceparent" distributed tracing header, using mod_unique_id
# to get uuid for the trace id, and the client ip address as the span/parent id
# Then use sha1 to covert both to 40 char hex. NB the SHA is not necessary, we just want to hex
# encode - but haven't come up with any other way to do this using Apache directives.
# Some concerns around resource utilisation of SHA1 under high volumes  - tbc
# https://www.w3.org/TR/trace-context/
RequestHeader setifempty traceparent "expr=%{sha1:%{reqenv:UNIQUE_ID}}-%{sha1:%{REMOTE_ADDR}}"
# w3c traceparent standard is for a 16 char hex id (128 bit) for trace and 8 char for span, so
# edit to use first 16 chars and 8 chars, respectively, of originally generated ids, plus other required elements
RequestHeader edit traceparent "^(.{16}).*-(.{8}).*$" "00-$1-$2-01"


Added typings to the module, fixed some typos and return types

Some default arguments are missing, can easily add them, but shouldn't really be needed tbh.

damn thank you very much :)


Andrew7234/api tests

https://app.clickup.com/t/861md6gue
Test flow:

make dump-state: dumps consensus node state requests to file using pogreb
make test-api: runs a fresh indexer according to the params in api-dev.yml using the file-based consensus node state created in the previous step. Then runs the e2e api tests to find the diff between the expected responses (generated previously and checked into github) and the actual responses from the indexer.

The initial idea of this PR is to

Update the indexer to be able to read node data from a file to facilitate e2e testing offline or in CI without access to a node
To support ^, add a tool to dump node state into a file
Add api tests that utilize the existing run.sh tool to verify both analyzer and indexer api functionality

Open questions/todos:

Runtime support in this PR? or a later one [added]
Add to CI [deferring to later pr]
rip out the hacky config stuff and replace with a custom file config after 352 goes in [done]

Reviewing the code made me wonder if it can be written with less repetition. My proof of concept ended up working out; I pushed it to this PR as three additional commits. Benefits of the slight refactor:

less code + less repetition
for calls where the value is not yet in the cache, avoids deserialization
Downside: Potentially hared-to-understand code?

I only made the changes on the consensus side; I feel the runtime side has too few methods to warrant generalizing them. Although I guess the whole getFromCacheOrCall() could be moved into a new KVStore struct that is an abstraction over pogreb; a good idea regardless in case we want to mock or replace pogreb later.
Disclaimer: This is untested beyond satisfying the compiler. And we don't have the habit of slipping into each other's PRs. So I'm happy to submit this as a follow-up PR too, or we can leave it as a part of this one, whichever you prefer.

Uh a pretty big problem I noticed: the docs for pogreb.Open() state: "opens or creates a new DB. The DB must be closed after use, by calling Close method."
We'll have to give a Close() or Shutdown() method to ApiLite structs and analyzers and pipe that through to pogreb :/. Otherwise, it sounds like we're risking data corruption.

submit this as a follow-up PR too, or we can leave it as a part of this one, whichever you prefer.

Thanks for the commits! I'm good with keeping them in this PR

pipe that through to pogreb
Hrm we have quite a few layers to get through :\ I can get a commit in later today for this as well if you'd prefer, just lmk!

We'll have to give a Close() or Shutdown() method to ApiLite structs and analyzers and pipe that through to pogreb

Hrm we have quite a few layers to get through :\ I can get a commit in later today for this as well if you'd prefer

I've actually already implemented it, but haven't pushed it to github yet. Let's not block this PR further, and do that in a separate PR; it won't be tiny either. In my early experiments, pogreb often (always?) recovered a not-cleanly-closed DB on the next start.

nice, thanks!


learn --fail-fast does not work

learn --fail-fast should mimic rspec --fail-fast but these flags don't work right now. Also, when this is added back, documentation for it should be added to learn help test.
If students want to only see one spec at a time, they now use rspec --fail-fast which will end up leaving heartbeat with less data.

@ktravers ^^

++


Move variable initializations from MK class constructor to declarations.

Hi,
This PR moves variable initialization in mkblctrl.cpp from a class constructor list to the variable declarations and initializes previously uninitialized variables.  It also standardizes comment formats and organizes/alphabetizes method and variable declarations.
Please let me know if you have questions on this PR.  Thanks!
-Mark

Might as well close this until we decide what to do (deprecate or fully support with testing).


Provider: vpsAdmin

Provider Repository
vpsfreecz/terraform-provider-vpsadmin

Sorry, but I dont understand.
vpsAdmin is only in original terraform registry, but canot be found in https://search.opentofu.org/providers


Which .cfg you use？

Hi ,
I want to convert my cfg file to prototxt format.
I use one of this dir's file(http://github.com/pjreddie/darknet/cfg/yolov1).,
then I use xingwangsfu's tools(https://github.com/xingwangsfu/caffe-yolo),but the result is not good.
Can you tell me which cfg you used?
Thanks

@wuqi930907, try to look at older revisions of darknet repo. Some of older YOLOv1 was replaced by v2 cfgs. I posted somewhere revision number I used.

Thank you very much for your help @gudovskiy

I can't find any older visions of darknet.
May you help me get those cfgs that can be converted to caffe'prototxt format correctly?
Can you upload those cfgs you used or give me the suitable vision of darknet's link?
Thank you very much ！ @gudovskiy

I have sloved this problem,thanks again!  @gudovskiy


Can't map struct

I copied example code
struct Temperature: Mappable {
    var celcius: Double?
    var fahrenheit: Double?

    required init?(_ map: Map){

    }

    mutating func mapping(map: Map) {
        celcius     <- map["celcius"]
        fahrenheit  <- map["fahrenheit"]
    }
}

It says  'required' initializer in non-class type 'Temperature'

Try removing the required keyword ?

Yeah I believe @Glagnar is correct. I will make sure to update the same code.


Cannot link to Boost 1.72 on Windows

Describe the bug
Some of the Boost 1.72 libraries cannot be opened when the linker wants to link against them.
Since I didn't change any of the CMakeLists.txt from the last successful build, I think it might be a bug of the virtual environment.
Area for Triage: C/C++

Question, Bug, or Feature?: Bug

Virtual environments affected

[ ] macOS 10.15
[ ] Ubuntu 16.04 LTS
[ ] Ubuntu 18.04 LTS
[ ] Windows Server 2016 R2
[x] Windows Server 2019

Expected behavior
The libraries of Boost can be linked
Actual behavior
Linker reports that these libraries cannot be opened
Detailed information

Hello @HenryAWE,
It seems you have faced the same issue as describe here . Could you please try the same fix?
We are looking forward to your reply.

Hello @HenryAWE,
It seems you have faced the same issue as describe here . Could you please try the same fix?
We are looking forward to your reply.

I don't think I'm facing a same issue like that. My situation is that the Boost can be found by the CMake and the codes which only depends on the header-only part of the Boost can be successfully compiled. But the libraries, such as libboost_locale-vc142-mt-x64-1_72.lib or libboost_serialization-vc142-mt-x64-1_72.lib, cannot be opened by linker.

@HenryAWE, thank you for provided details. I'm checking the issue to figure out a root cause.
We will keep you posted.

@HenryAWE let me provide you with details of the investigation:

First of all, we have reproduced the issue on our side.

Tried to add some new variables to cmake command like BOOST_LIBRARYDIR, but with no luck.

Then, we turned on verbose logging and tried to perform cmake again. During cmake command we can see, that cl command executes to compile the code. After that, we tried to compile some sample code, with missed libraries to get real problem details. It was the issue:

LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'
It means that LIBPATH variable is not defined, due to fact that BOOST_ROOT environment variable is absent.
Solution:
In order to fix the issue, we need to specify BOOST_ROOT variable right before build command.
#cmd
set BOOST_ROOT=%BOOST_ROOT_1_72_0%
$powershell
$env:BOOST_ROOT=$env:BOOST_ROOT_1_72_0

Please add this step to your workflow file, and let us know if anything else is required.
We are looking forward to your reply.

Thanks,  it solved my problem.


file extension problem

First of all, Thanks. This is an amazing work. My problem is that When a file is uploaded the extension is removed. Why is that? I can see from the source code that it uses formidable. Making the keepExtensions: true inside the IncomingForm options makes it work. if we could set the keepExtensions field like the uploadDir filed it would be awesome.

Glad you found this package helpfull 🙂
For the answer to your question, please see https://github.com/jaydenseric/apollo-upload-server/issues/14#issuecomment-334436357.


How to track local state changes?

Anyway for this to work with Apollo Client local state? If anyone has any ideas on how or where to start with this I'd love to take a look and spend some time on it.

It seems that queries and mutations with the @client directive are not handled through the composed links.  However, Apollo developer tools for Chrome does keep track of locally applied queries and mutations.


Motion notification

Hi guys, motion notification works, if I use only esp32cam?

Only DCS 960L knows ftp! Da huta C46 not supported ftp. This is new config pls chek.

Assuming that <IP_ADDRESS> is where your Homebridge is running, the only issue I see is that ‘Path’ on your camera should be ‘Nappali’.

it is my synology nas <IP_ADDRESS> patch is my nas file system home-kamera-napalli. When I tested dcs settings succsessfull save test image.

This plugin requires that you upload images to it. If you’re using the FTP upload feature of your camera to save images already, you’ll need to either need to wait for me to write support for that into this plugin, or wait until I finish the SMTP plugin so that you can use the Email ability of your camera instead.

Ok. I will be wait. Thx

I've added a plugin for using the email functionality, if you aren't currently using that feature of the camera, maybe this would be a better fit: https://github.com/Sunoo/homebridge-smtp-motion

FTP upload support has been added to this plugin. The information on configuration is on the main page.

I now sent new ftp motion settings for new version. I will see how to work...


NC DataPalooza press post to WRAL Techwire

Brent and Natalie to work on this with a goal of T/W

Brent completed initial draft, sent to @natalienoel1 at 10.10.17. Please review and add any further details @natalienoel1 @jhibbets @zachambrose

I just did. @jhibbets?
On Tue, Oct 10, 2017 at 2:37 PM, wildca01t<EMAIL_ADDRESS>wrote:

Brent completed initial draft, sent to @natalienoel1
https://github.com/natalienoel1 at 10.10.17. Please review and add any
further details @natalienoel1 https://github.com/natalienoel1 @jhibbets
https://github.com/jhibbets @zachambrose
https://github.com/zachambrose
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/codeforraleigh/NCOpenPass/issues/861#issuecomment-335567937,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQ6Ixs1h6ouHOLcK8udhVoMMwJlBPc4Qks5sq7lvgaJpZM4PzKRL
.

--
Zach Ambrose
<EMAIL_ADDRESS>919-438-2752 (office)
919-616-9969 (cell)
www.AmbroseStrategy.com
https://www.linkedin.com/in/zambrose


[GH-680] Make bots do not follow invisible players

Motivation
Bots are able to track players that are not in their field of vision and creating and unfair gameplay for testers
Closes #680
Summary of changes

code: add logger for bots game socket handler  Needed because if the bot application crashes, it did not popped out any errors
feat: make bot take into account only visible players

How to test it?
Play a match and hide within bushes
Checklist

[x] Tested the changes locally.
[ ] Reviewed the changes on GitHub, line by line.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Closed because it is being added in #1007


Proposal: show/hide dropdown menus on mouseenter / mouseleave

Especially when using dropdowns in a navbar as a site navigation element I would like to show the dropdown menu on "mouseenter" events without requiring the users to click on the split toggle.
I think this could be an optional feature and would require only a small amount of extra code; cf. my minimal test implementation at
https://github.com/heikojansen/bootstrap/commit/7ff501a314a9c4eb47a9e1db69ed2c9ea6a7a69a
This does require scripted initialization (the data api as currently implemented wouldn't suffice) and a special config flag but I would consider that a feature...
You can test it here: https://jsbin.com/caciqujudi/edit?output
(Note that I also need a small css modification to close a gap between the parent .nav-item and the dropdown which would trigger "mouseleave" events.)
I wonder if you would be willing to add this as an official feature to bootstrap?
If yes, I'd try to put together a proper pull request on the js source file.
If not, I am interested in the reasons, e.g. if you think that this has accessibility issues.

I don't see how the extra trigger events would degrade the experience for keyboard and touchscreen users?! Clicking/touching should just continue to work as before? Or am I overlooking a certain usage scenario?
Admittedly, im my JSBin, the ".btn-group" on the ".nav-item" apparently influences the width of the dropdown elements so they do not appear full width below the main nav item (on narrow screens when the navbar isn't expanded). But that should be easy to work around (and maybe it's even a separate bug?). Updated JSBin: https://jsbin.com/qejijujuki/2/edit?output

sorry, missed the jsbin link when skimming the issue. i'd say this is up to @mdo to make a decision.

#23743


Improve accessibility of resize actions in Datagrid

The original accessibility guidance for resizable columns was shared as follows:

Keyboard navigation

[ ] Tab: navigates the user to the different interactive elements

[ ] Space or Enter: triggers the selected element

[ ] Left & Right arrow keys: resize column left or right

[ ] Tab order
- First interactive element in the body area
- Proceed left to right and top to bottom through the rest of the body elements.
- Primary cell
- Secondary resize handle
- Secondary cell

Mike Gower brought up a number of concerns on resizing columns based on pointer accessibility and screen reader accessibility.
We should work with IBM Accessibility on this based on a number of comments from Mike Gower in #1923.
In summary, the suggestions from Mike include

Using a menu

Imagine if [row height settings] name was "Table properties" and one section or submenu inside it was "row height" (to keep providing your existing function). We could have another section or submenu for "column width" and it could contain things like "minimum", "reset", "maximum","resize to fit data", and "set to...". It could also potentially have its own submenu for each of the columns.

Incorporating keyboard interaction into the column headers
Expect this approach to be closest to our originally intended design, but does have its own challenges and potential conflicts with other extensions / Datagrid functionality.
Using header cell actions

I thought I'd mention this potential approach. The user activates a header cell, at which point all the potential functions of the cell are revealed. There are a few ways to provide this. One would be making each cell effectively a menu button.
You could potentially treat your header row as a single complex component. The whole row might only need to take one tab stop, with the user navigating into it to activate different cells. I'm not going to go into this in detail, since it's obviously quite a departure. But wanted to flag that there might be other ways to approach.

Of course, a number of these do begin teetering into the business logic / product implementation side but we should be able to support these as intended behaviors if we suggest them as alternatives.

@vsnichols This might be something we need to re-evaluate if you can rally some designers to help review these considerations.


LSP performance issues

I'm not sure if this is just a me problem, but the LSP is an absolute performance hog, to the point of becoming unusable, even on a small solution (5k LOC). Every time I edit the buffer, the CPU usage goes up to 100% and stays there for a few seconds, as if the LSP was reindexing everything on every keystroke.
When trying it in Vscode with the C# Dev Kit, it runs perfectly smooth.
I've looked through my nvim config and found out some plugins were bombarding the LSP with requests. Disabling these helped somewhat, but it's still nowhere near ideal.
I wonder, am I the only one having this problem? I'd appreciate any pointers.

Set filewatching = false in the setup method


DAG for running and storing results of long queries

Problem

While Grafana (and other tools like it) provide good interfaces for visualising data, they are not good for long queries. Those tools rely on reasonable time outs configured for their data sources to prevent inexpert (or unaware) users of the tools from taking down a database or Elasticsearch cluster (for example) with a big query.
Description

Instead, let's create a DAG for running these long queries. The DAG should start by being able to run queries against the catalog database, and it should be restricted to non-destructive queries. To that end, we can use a separate user to execute the query against the database (a user with readonly permissions).
The DAG should accept a string for the query and a note explaining the purpose of the query, and under what circumstances it can or cannot be terminated.
Basically, this would just be the "select_query" part of the batched update DAG.
Alternatives

Maybe there are better ways for long running queries? I see some mention of using materialized views for them, but I can't find anything super clear on the matter.
@AetherUnbound @stacimc y'all's advice here would be helpful. The main thing I want to solve is not needing to open direct connections to the databases for long queries, with the understanding that some long queries are necessary and unavoidable.

This definitely seems reasonable, especially with all the other qualifiers/requirements you've mentioned. Given that we have some interest in deploying Metabase, would this be supplanted by that in your mind? The advantage of having this in Airflow is that we can manage the timeouts a little better I imagine. We may also be able to trigger this DAG from other DAGs that need it and use the result in downstream DAGs, etc.

Metabase has similar problems with long queries, namely that you have leave your browser open (at least from what I understand) for the duration of the question execution: https://discourse.metabase.com/t/metabase-timeout-configuration/10302/4. That thread is about a reverse proxy connection timeout issue but you can see that closing the connection from the browser to Metabase also seems to prevent the query from completing. I can't really find a straight answer about it.
Metabase could be useful if for some reason Grafana isn't able to give us what we want, otherwise I think we can hold off deploying it so long as this problem of intentionally long queries is solved in a manageable way.

Ahh that's disappointing, thanks for sharing that!

Metabase has similar problems with long queries

What a bummer! I was hoping that could be the solution. Although having Grafana is great for short queries, I was fiddling with it the last few days and couldn't get the data for a query like this:
SELECT identifier FROM image WHERE license = 'pdm' AND license_version = '4.0';

I knew there were only 43 rows for it. It is understandable that Grafana cannot finish it since it has to scan the whole table and has a time limit. The DAG could help, but a tool that can export the result in formats like CSV or TSV would be ideal. We can also implement this on the DAG, of course. I just thought that if there are tools for it, then it is better to choose them than reinvent the wheel.

If the DAG produces a materialized view, that view can in turn be used in Grafana for visualisation. Support DAGs can be written to update such views as needed.
That being said, @krysal for that particular query you might be able to get the same information from Elasticsearch much faster than from the catalog DB.

Gotcha. That's a good feature requirement. The DAG could definitely upload a TSV to S3, either instead of or in addition to a materialised view for use in visualisations? It would depend on the purpose of the query, but a materialized view is a good intermediate step regardless, I believe, instead of e.g. streaming the output into memory in Airflow and uploading it, especially if that would just make the query dependent on the Airflow task capturing the output, making it non-resilient to redeployments or failures. The AWS S3 utilities may be useful for exporting the materialized view directly to S3?

@sarayourfriend One thing to note about materialized views is that they also take up space in the database, so queries that could double in size need to be monitored/cleaned. But yes, it is a good option, too.

The AWS S3 utilities may be useful for exporting the materialized view directly to S3?

Yes, there is a aws_s3.query_export_to_s3 function to export to S3 😁

Good point too there, on the size of views. The DAG can have a "clean view after query" option if we just need the exported values.


Opcode 0000 halts without displaying breakpoint

All 0NNN opcodes (except 00E0 and 00EE of course) set a haltBreakpoint, which sets a breakpoint that halts Octo and displays an error message saying that machine code isn't supported.
However, the opcode 0000 is (intentionally?) handled differently: It explicitly halts Octo first, and then does the same thing as for other 0NNN opcodes: Sets a breakpoint, halts, and displays an error message. However, since Octo is already halted at that point, it just hangs and the error message is not displayed.
I'm not sure if this is intentional or not, but it does look intentional?
I'm not sure why 0000 is handled differently here; ETI-660's CHIP-8 interpreter does actually exit and return to the monitor if it encounters a 0000, so that might be what Octo's inspired by? However, there are more interpreters that interpret 0000 as a NOP (DREAM 6800, Microbee, Amiga, CHIP-8 Classic Computer), so if it were to be handled differently I think it'd make more sense to treat it as a NOP than a non-breakpoint halt.

This behavior is entirely intentional.
The purpose is to make it so that the most trivial programs one might write, like
: main
  i := hex v0
  sprite v0 v0 5

Will do something intuitive for beginners: draw on the display, show the results, and then stop.
If this showed a breakpoint and the register monitor, it would a little overwhelming, or even imply that they'd done something wrong.
If it quit immediately, it would also be confusing: there wouldn't be an opportunity to see the results of their sprite drawing unless they terminated it with loop again or similar.
This is a quality-of-life choice that is not based on the behavior of any other development tool or interpreter.

That makes sense! Thanks for the info.


renames relations route to relationships. Add TabId constant for Heal…

…th route

Coverage remained the same at 27.757% when pulling 72af38edb140fb7cb2a502d5eb3bc9eb7277d7d3 on theseyi:dataset-relationsips into 13a3e48397804a346b96fed620ef79a5c5433c16 on linkedin:master.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1267   +/-   ##
=======================================
  Coverage   16.43%   16.43%
=======================================
  Files          28       28
  Lines         645      645
  Branches      138      138
=======================================
  Hits          106      106
  Misses        539      539

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 13a3e48...386b065. Read the comment docs.


Add Security Configs to .env

Fix missing .env security config

[x] Securely signed commits

Done


Does mxnet support total variation?

I know tensorflow support it (tf.image.total_variation). But I can't find it in mxnet's APIs. I wonder if total variation is also supported in mxnet？

You are welcome to contribute one.

@apache/mxnet-committers: This issue has been inactive for the past 90 days. It has no label and needs triage.
For general "how-to" questions, our user forum (and Chinese version) is a good place to get help.


feat: skip k3s node type EtcdIsVoter

Closes  https://github.com/k8sgpt-ai/k8sgpt/issues/1166
📑 Description

Skip k3s node Condition EtcdIsVoter Status reported as an error.
✅ Checks

[x] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[x] All the tests have passed

ℹ Additional Information

does this error is only specific to k3s?

Yes, it's only for k3s

I am inclined to agree that if this unblocks errors in k3s then we should add it.
Anyone else @k8sgpt-ai/k8sgpt-maintainers  ?

no objections from my side, looks safe :) @AlexsJones


New Abacus SLP module implemented

@repo-2017 Apart from the code comments, it is important to create a minimum set of tests for the new parser. You can take drawio as a reference. Usually, we create a couple of integration tests with relevant use cases (basically a happy path) and then unit tests for all the classes with the slp logic. In this case, as you have copied some classes from drawio (DefaultMappingTransformer, DiagramMapper, etc.), you can simply copy the tests as well. For those new classes (AbacusParser, for example), you should create some minimum unit tests.


Using batch-wise maximum sequence lengths for padding

If you open a GitHub issue, here is our policy:
It must be a bug, a feature request, or a significant problem with the documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
Here's why we have that policy:.
Keras developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.
System information.
TensorFlow version (you are using): 2.7.0
Are you willing to contribute it (Yes/No) : No
Describe the feature and the current behavior/state.
In NLP, padding and truncation are common tasks in order to have sequences inside a batch to be of uniform lengths. A common practice is to pad all the shorter sequences in a dataset to the maximum allowable sequence length by a model (for BERT, it's usually 512) and truncate the sequences that are shorter than that maximum length.
But this leads to a lot of compute waste since not all batches will have a maximum sequence length of 512, for example. The batch-wise maximum sequence length may very well be shorter than 512. So, it's a better practice to pad with respect to min(batchwise_max_seq_len, max_seq_len_for_the_model). This article details this practice. The figure below (taken from the article) beautifully depicts this approach:

My question is how do we do this in Keras particularly for models where we want to use simpler techniques in the preprocessing pipeline? The model could be a shallow MLP and let's say we are presented with a text classification problem. For tokenization, we have TF+IDF (doable via keras.layers.preprocessing) but I haven't been able to figure a way out to do the padding and truncation using the compute-efficient approach I described above.
bucket_by_sequence_length() seems like a promising approach but I am not sure how it would fit in with the preprocessing layers offered off-the-shelf by Keras. I did start some work but couldn't make much progress. Here's my starter Jupyter Notebook.
@mattdangerw any ideas?
Will this change the current api? How?
It probably won't change the API if we can figure a way out with the existing methods.
Who will benefit from this feature?
NLP practitioners.
Contributing

Do you want to contribute a PR? (yes/no): No. I can contribute an example for keras.io.
If yes, please read this page for instructions
Briefly describe your candidate solution(if contributing):

P.S.: At my organization (Carted), we have figured a way out to prepare the sequences using the compute-efficient padding approach but it's very specific for a type of BERT model we are using. We are currently working on a blog post to share our approach with the community.

This can be done quite elegantly if you cast your batch to a tf.RaggedTensor.
batch = [
    ["a", "b", "c"],
    ["a", "b", "c", "d", "e"],
    ["a", "b"]
]
ragged_batch = tf.ragged.constant(batch)

pad_value = tf.constant("[PAD]")
shape = ragged_batch.bounding_shape()
ragged_batch = ragged_batch.to_tensor(default_value=pad_value, shape=shape)

This gives
<tf.Tensor: shape=(3, 5), dtype=string, numpy=
array([[b'a', b'b', b'c', b'[PAD]', b'[PAD]'],
       [b'a', b'b', b'c', b'd', b'e'],
       [b'a', b'b', b'[PAD]', b'[PAD]', b'[PAD]']], dtype=object)>

@chjort this is not padding to the maximum sequence length present in a batch. All the batches (in your example) still have uniform sequence lengths. Consider the following figure to understand what I am trying to mean:

On the left-hand side, we have a bunch of sequences. After batching, we can notice that a batch of sequences has been padded (when necessary) to the maximum sequence length particular to that batch.

Well this can easily be achieved using my first suggestion with the tf.RaggedTensor and a tf.data.Dataset:
data = [
    [1, 2, 3, 4, 5],
    [1, 2, 3],
    [1, 2, 3, 4, 5, 6],
    [1, 2, 3, 4, 5],
    [1, 2],
    [1, 2, 3, 4],
    [1, 2, 3, 4, 5, 6, 7],
    [1, 2, 3],
    [1],
    [1, 2, 3],
    [1, 2, 3, 4, 5, 6],
    [1, 2, 3, 4, 5],
    [1, 2],
    [1, 2, 3, 4, 5, 6, 7],
    [1, 2, 3, 4, 5],
]
data_ragged = tf.ragged.constant(data)
dataset_ragged = tf.data.Dataset.from_tensor_slices(data_ragged)
dataset_ragged = dataset_ragged.batch(5)

def batch_pad(batch: tf.RaggedTensor):
    pad_value = 0
    return batch.to_tensor(default_value=pad_value)

dataset_padded = dataset_ragged.map(batch_pad)

for batch in dataset_padded:
    print(batch.shape)

yielding the following batch shapes:
(5, 6)
(5, 7)
(5, 7)

exactly like in your above figure.

summary: what is the most elegant way to pad sequences with to max len of each batch instead of the global max len.

@haifeng-jin,
@Nilabhra and I have worked on a series of blog posts that discuss this issue in detail and propose different solutions. We haven't yet published those blog posts (pending approval from the company). As soon as they are published we will let you all know here.

@mattdangerw @haifeng-jin
We have open-sourced our repository that dives deep into handling variable-sized sequences lengths in TensorFlow and Keras: https://github.com/carted/handling-variable-length-text-tf
Cc: @Nilabhra


Added support for Atrous Conv2D batch normalization folding

Added support for Atrous Conv2D batch normalization folding to handle the BatchToSpace and SpaceToBatch properly in tensorflow/contrib/quantize/python/fold_batch_norm.py
Also added unit tests for future development of bn folding for Atrous Conv2D in fold_batch_norm_test.py
The existing _TestFoldAtrousConv2d test was testing batch normalization folding for Depthwise Atrous Conv2D, hence renamed that test to a relevant name _TestFoldDepthwiseAtrousConv2d. All BN folding unit tests are passing locally on my machine.

gentle ping for request to review this.

Can one of the admins verify this patch?

closing this PR as contrib folder will be depricated in 2.0, thank you.
CC @mihaimaruseac


2nd Table level RBAC example looks wrong

In the second example, the user should only have access to SecurityBaseline. It looks like that Actions and NotActions are reversed.

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

ID: c62e3725-b0dc-5ce5-c049-70fd3ae106e3
Version Independent ID: 9c0c5ef7-bd49-cb39-ca10-d98386004975
Content: Manage Log Analytics workspaces in Azure Monitor
Content Source: articles/azure-monitor/platform/manage-access.md
Service: log-analytics
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@Cepheus0815 Thanks for the comment! We have shared your feedback with the content owner to review further and update as appropriate.

@Cepheus0815 - After reviewing this, as the RBAC information was added by a colleague on my team, I agree the syntax was flip-flopped.  I've opened a PR to correct this and the change will go live tomorrow. Thanks for bringing this to our attention.  #please-close


[magnum-plugins] fix build of features

Fixes:
-- Performing post-build validation
warning: Import libraries were not present in G:\v\vcpkg1\packages\magnum-plugins_x64-windows\debug\lib.
If this is intended, add the following line in the portfile:
set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)
warning: Import libraries were not present in G:\v\vcpkg1\packages\magnum-plugins_x64-windows\lib.
If this is intended, add the following line in the portfile:
set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)
warning: There should be no empty directories in G:\v\vcpkg1\packages\magnum-plugins_x64-windows. The following empty directories were found:

  G:\v\vcpkg1\packages\magnum-plugins_x64-windows\debug\lib
  G:\v\vcpkg1\packages\magnum-plugins_x64-windows\lib

warning: If a directory should be populated but is not, this might indicate an error in the portfile.
If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them:
    file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib" "${CURRENT_PACKAGES_DIR}/lib")

error: Found 3 post-build check problem(s). To submit these ports to curated catalogs, please first correct the portfile: G:\v\vcpkg1\ports\magnum-plugins\portfile.cmake
error: building magnum-plugins:x64-windows failed with: POST_BUILD_CHECKS_FAILED
Elapsed time to handle magnum-plugins:x64-windows: 2.2 s
Total install time: 2.3 s

The following problem occurs when using the command .\vcpkg.exe install magnum-plugins[*] locally to test.

Yeah that is intended

Compile test pass with following triplets:
x86-windows
x64-windows
x64-windows-static


[bug] Smart Mode doesn't detect changes in a fresh repo

git init
myks init
myks all
# No changes

This happens because git status --porcelain doesn't show separate paths for files in a new directory.

I can't reproduce this anymore, closing.


Fields not picked up when @QueryModel with allFields = true

DBFlow Version: 4.0.0-beta5
Issue Kind (Bug, Question, Feature): Bug
Description:
I have a class:
@QueryModel(database = AppDatabase.class, allFields = true)
public class AverageCar {
    String model;
}

I expect the generated code to be equivalent with generated code from:
@QueryModel(database = AppDatabase.class)
public class AverageCar {
    @Column
    String model;
}

But the model field is not being picked up in the first example.

good catch. let me look into it. sorry for long delay...

this also affected ModelView so good find, thank you. in develop.


Update HISTORY.md for v1.9.0

Hi Tom, looking forward to a v1.9.0 release including the recent changes listed in the HISTORY.md update here.

Ping

Ping


Support CoreOS rkt as alternative runtime engine to docker

It looks like k8s v1.6 finally will bring rkt support (beta), would be nice to have it as an option.

I think this will be included as part of the CRI work as that matures. I believe that will also make a debut in 1.6

Do you really want more coreOS?

heh, rkt is way better than docker as kube runtime engine

I think we'll tackle adding RKT support when CRI lands as beta. CRI abstracting the container runtime would be a good vector to deprecate the Docker layer that we have based the k8s charm layers on and can instead refactor to CRI, and then make that model pluggable.
This seems like post 1.6 work, potentially into the 1.7/1.8 cycle depending on how quickly the Container Runtime Interface stabilizes.

CRI should land as beta in k8s v1.6

I've read the same, but we wont be able to ship it with the 1.6 release, so it's likely to be a post 1.6 release or 1.7 depending on time/effort it takes to gut layer-docker and re-focus around layer-cri.

We have no plans to offer rkt as a configurable container runtime option. Containerd will be next.