NEW Page level history now links directly into an elements history view

This is a partial revert of https://github.com/dnadesign/silverstripe-elemental/pull/436
It contains a dirty hack, which works around https://github.com/silverstripe/silverstripe-admin/issues/911
Resolves https://github.com/dnadesign/silverstripe-elemental/issues/223

I've pushed a commit that resolves my comment. I've tested the auto-switching to history tab "hack" and it seems to work well. If you're happy with my changes then I think we're good to merge 🙂

Ultimately, if we're deciding between...

Adding a temporary layer of config state so we can adjust it before and after calling a method to push it into providing the right answer without context, or
Passing a flag to that method so it knows to output the right answer

...I personally feel the latter is tidier, particularly if we want to use the method in this way more widely in the future.
However, if we want to avoid flag-based methods, perhaps a third option is adding a second method that explicitly outputs the non-inline-editable URL?

CMSEditLink is a method on CMSPreviewable but BaseElement does not implement it. Maybe that's the problem? In which case @Cheddam's suggestion is probably best - we have an alternate method - then we don't break the method signature if we decide to implement the CMSPreviewalbe interface in the future.

Yeah it's also a silently accessed API in a bunch of places in the CMS that don't type check CMSPreviewable... we should tighten it up in SS5


Create database entry for Solana users & solana addresses

Users who create profiles with only a solana address will need to be registered in our database.
It will be possible that a user can only have a solana address and no ethereum address
It is also possible a user with only a solana address could add an ethereum address to their profile at a later point

Yes we can add a new column representing blockchain type whose default value is ethereum and we specify solana when required. What do you think @aminlatifi

Yes we can add a new column representing blockchain type whose default value is ethereum and we specify solana when required. What do you think @aminlatifi

By looking again at the backend source code, I noticed a one-to-one relation between the user and the ethereum address! They are deeply coupled as walletAddress is a property (column) in the user entity and it has the string type.
So, the User entity and Ethereum address are deeply coupled in our design and I am afraid that filling the wallet address with a Solana address won't cause any issue in authenticating and other processes.
I am thinking a short-term solution to meet the December 5th deadline would be defining two fields in the user Entity, ethereumWalletAddress and solanaWalletAddress, and keep the walletAddress and fill it with one of them which the user has signed in with!
I don't opt for big changes in our design and like to make it with fewer possible changes since the walletAddress is extensively used in our logic and tests, and in this way, it would be possible to meet the V1 deadline.

cc: @MoeNick

We have a problem in UX here that I shared with @divine-comedian and @mosaeedi before, the currant design is not backward compatible, it means if I go with only sign-in with Solana and I have an account on Giveth, dApp cant recognize who I am and will assume Im a new user, so I can't see my projects, profile, and transactions.
I guess we need a change to make even sign-in with Ethereum mandatory, then we ask for users to add their Solana address if they want.
@mosaeedi is thinking about it right now. It affects the current flow @aminlatifi is implementing.
So @jainkrati I need a meeting with you guys to technically review that: if we have sort of jwt tokens in explorer storage, can we use it to manage the flow, at least it reduces the pain of bad UX and make the flow shorter, in this case I think @MohammadPCh can help.

Shall I put in progress or QA @aminlatifi

Shall I put in progress or QA @aminlatifi

We agreed to do it in January. Till then, the single walletAddress field stores the user address, either Ethereum or Solana.

It's ok for now I will create another issue for second phase.


i  work on review section add  make more attractive also add stars

now this is looking verry good cheak and merge this review sectionn of customer

mention the issue using a hashtag (#) so we can understand which issue your PR is referencing, and label your PR accordingly. Thank you!

and also update the sync fork.

@ragineedarade  changes you mentioned are not done


Added C Code for checking Prime number

Why:
Closes #29
What's being changed:
Added C Code for checking Prime number
Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Hey @NeelPatel31
Thanks for your contributions to this project
But, the folder check-prime-number is already created. Please apply changes in that folder, no need to create additional folder.

[x]  add solution.c in check-prime-number folder
[x]  update index.md
[x]  update README.md
[x]  delete Check-Prime-Number folder

Preview : https://codinasion--pr30-dev-6lg83kx6.web.app/programme/check-prime-number/
(expires Fri, 11 Mar 2022 11:33:22 GMT)

LIVE : https://codinasion.web.app/programme/check-prime-number/


Plugin doesn't work with 1.15.2 Paper/Tuinity

I getting error in the console while reloading plugin and players cant join to the server.

What is the error?


Confusion about the ImageNet-R dataset

Hi, Thanks for your nice work!
I am currently trying to follow your Split ImageNet-R benchmark but encounter some problems.
Firstly, I am not able to download the ImageNet-R dataset. I've got errors like this.
2022-10-25 16:43:39.764732: E tensorflow/core/platform/cloud/curl_http_request.cc:614] The transmission  of request 0x668a800 (URI: https://www.googleapis.com/storage/v1/b/tfds-data/o/dataset_info%2Fimagenet_r%2F0.2.0?fields=size%2Cgeneration%2Cupdated) has been stuck at 0 of 0 bytes for 61 seconds and will be aborted. CURL timing information: lookup time: 0.004201 (No error), connect time: 0 (No error), pre-transfer time: 0 (No error), start-transfer time: 0 (No error)
It seems like a networking issue, so I access the uri(https://www.googleapis.com/storage/v1/b/tfds-data/o/dataset_info%2Fimagenet_r%2F0.2.0?fields=size%2Cgeneration%2Cupdated) through my web browser, but I got such a info:
{   "error": {     "code": 404,     "message": "No such object: tfds-data/dataset_info/imagenet_r/0.2.0",     "errors": [       {         "message": "No such object: tfds-data/dataset_info/imagenet_r/0.2.0",         "domain": "global",         "reason": "notFound"       }     ]   } }
It seems that the dataset is not accessible at this time.
Secound, I tried to understand the codes you priveded in libml/input_pipeline.py and try to understand 2 things: (1) How to split the training and testing set from the original dataset. (2) What is the training order of the classes in continual learning tasks.
For (1), I found that the codes using TFDS split, in Line414-424 in input_pipeline.py.
I am not familiar with TFDS, Is this a stratified sampling (based on classes) or just a split based on the whole data?
For (2), I found that the codes permutate class order here, if the config.continual.rand_seed is set. However in configs/imr_dualprompt.py, config.continual.rand_seed is set to $-1$. Does this mean that the dualprompt conducts experiments in the order of natural numbers？ (i.e,. 0, 1, 2, 3, ...)
Hope you counld kindly help me :)
Looking forward to your early reply and thanks again!

Hi,
Thanks for your question!

To download ImageNet-R, can you try this https://github.com/hendrycks/imagenet-r ?
For the second point:

I believe no explicit stratified sampling is used.
First I map the class labels to 0-199, see here. Then you are correct, I use the natural ascending order as you mentioned to do the class split.

Best,
Zifeng

Thank you for your reply.
It really helps.


编译 http_jpg报错fatal error: mdns.h: No such file or directory  #include <mdns.h

请问怎么解决？
recipe for target 'src/scheme_softap.o' failed
make[1]: *** [src/scheme_softap.o] Error 1
recipe for target 'component-wifi_provisioning-build' failed
make: *** [component-wifi_provisioning-build] Error 2

Please try to build it again with PlatformIO.
Feel free to re-open the issue in case still does not work.


UI Architecture Refactor

UI Refactor
Build process (High Priority)
Current: Next which fails
Future: Webpack, Transpiration, Minification, Build Directory, Dockerfile with NGinx Host
Translation Of Language (Medium Priority)
Current: We don’t have it
Future: We need it
Backend (Medium Priority)
Current: Express serves 2-3 routes and writes to. .env
Future: All routes are moved to Lake and no BE code in config-ui
Styling (Low Priority)
Current: CSS modules which works
Future: SCSS which is better
Linting (Low Priority)
Current: Next js is lining for us
Future: Webpack runs lint or just eslint

Testing:
Current: We have no tests
Future: We should have tests set up


Enable race detector

Codecov Report

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

@@           Coverage Diff           @@
##           master      #76   +/-   ##
=======================================
  Coverage   75.71%   75.71%
=======================================
  Files           8        8
  Lines         535      535
=======================================
  Hits          405      405
  Misses         99       99
  Partials       31       31

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 2711e42...2721603. Read the comment docs.


Error: _RichText.value: Invalid arguments.

Thanks for the greate package
I have an error when reading excel file, And when I tried with another file such as const filePath = "../static/excel/demo.xlsx", I didn't get any errors, is that xlsx-populate issue or my excel file's issue ?
function insertData(dataObject) {
  const filePath = "../static/excel/demo.xlsx"
  XlsxPopulate.fromFileAsync(filePath)
    .then(workbook => {
      // handle logic here
      return workbook.toFileAsync(filePath);
    })
    .catch(error => {
      console.log('Error', error)
    })
}

Error:
Error Error: _RichText.value: Invalid arguments.
    at ArgHandler.handle (xxx/node_modules/xlsx-populate/lib/ArgHandler.js:50:15)
    at RichTextFragment.value (xxx/node_modules/xlsx-populate/lib/RichTextFragment.js:76:14)
    at new RichTextFragment (xxx/node_modules/xlsx-populate/lib/RichTextFragment.js:42:18)
    at new RichText (xxx/node_modules/xlsx-populate/lib/RichText.js:23:33)
    at Cell._parseNode (xxx/node_modules/xlsx-populate/lib/Cell.js:596:35)
    at Cell._init (xxx/node_modules/xlsx-populate/lib/Cell.js:541:18)
    at new Cell (xxx/node_modules/xlsx-populate/lib/Cell.js:24:14)
    at _node.children.forEach.cellNode (xxx/node_modules/xlsx-populate/lib/Row.js:352:26)
    at Array.forEach (<anonymous>)
    at Row._init (xxx/node_modules/xlsx-populate/lib/Row.js:351:29)

I also got this error from ver 1.20.0.
The RichTextFragment's constructor accepts value {string|Object}, but this.value(value) accepts only string. So an object excepting r occurs the error.
https://github.com/dtjohnson/xlsx-populate/blob/master/lib/RichTextFragment.js#L42
If I tried to add an condition (typeof value === 'string'),
then the error is gone, but some node is drop out.
(for example, rPh or phoneticPr)
demo.xlsx
demo2.xlsx

I will take a look tomorrow.

@LesterLyu Yeah sir, please take a look, I'm xlsx-poplute for my project and it works with some files and failed at some files. Kind of weird

Keep in mind this library won't generate phonetics for Kanji. Thus, whenever you modified a cell that contains phonetic nodes, they phonetic nodes will be removed.

I just tested with new code and it worked very well. Thanks for your work!


How to setup priority and resources

I tried to set up resources as follow lines, however it did not work:
var userAtDomain = '$xmppId@$xmppDomain/Android';
    xmpp.Jid jid = xmpp.Jid.fromFullJid(userAtDomain);
    print("JID resources:" + jid.resource);
    xmpp.XmppAccountSettings account = xmpp.XmppAccountSettings(
        userAtDomain, jid.local, jid.domain, password, 5222);
    account.resource = "Android";

And I did not find any methods to setup presence's priority,  do you have any ideas about it?

Feature was not implemented correctly, fixed with latest pr.
Custom resource can be set with
xmpp.XmppAccountSettings account = xmpp.XmppAccountSettings( userAtDomain, jid.local, jid.domain, password, 5222, resource: "resource");


"Sending message failed" on main branch - Cannot Upload Missions on PX4 or ArduPilot Systems

I have a CI pipeline which builds mavsdk and runs some various sitl tests, checking that I can connect to hardware, send missions etc. My runs on Wednesday were working as expected and thereafter, I have been getting lots of issues with sending missions to PX4 and ArduPilot flight controllers (see below).

Has anyone encountered this?  For those wondering why I am not using a stable release version, there are some important fixes which have not been released yet and are in main currently.
Thanks for your help and let me know if you need more detail!
Edit
When I use the below commit version on Main, my code works as before so it looks like something in the last two pull requests has caused this issue.
git checkout 76862be25267b8e1500a66223495c8cc23d7548a

When I use the below commit version on Main, my code works as before so it looks like something in the last two pull requests has caused this issue.

Oh good catch, thanks for reporting this, that's helpful!

What's the status here? Is that now fixed?

Sorry for the delay, just tested the latest main branch (debug) and the PX4 sitl environment works again i.e. mavlink messages are sending/ receiving correctly which is great.
I did also test the latest branch with ArduPilot sitl and got the following issue:

You can see that the AUTO mode change was getting rejected in flight. Happy for this issue to be closed and a new one opened for this new problem though!

There was no more follow up. I'm assuming everything is working.


See what wrong in Circle CI

What's in this PR?
This is to see more information why the task is failing.

Since there is no one helping me yet, I am gonna merge this by myself 😢

Since there is no one helping me yet, I am gonna merge this by myself 😢

In case you need help I am available, please send me an email.


fix #1110 fix InterMediateService

where is the frontend change?

You mean that the fronted should use this proxy api instead of the direct api?

yes

+1


Adding redirect from 21.1.0 GA URL for links from binary messages

Follow up on conversation with @arulajmani.
@jseldess
FYI, the cockroach binary returns links in error and warning messages to the deprecations section of our GA release notes page for major releases. In 20.2, these messages link to https://www.cockroachlabs.com/docs/releases/v20.2.0.html#deprecations. In 21.1, they link to a page that we have yet to create.
https://github.com/cockroachdb/docs/commit/33ee770b699aead65fc7c1912160236d13f9c281#diff-06124389d47e81e9751a3deb6af80c1c39185669536a72773a5b4064bc9f4b2d was pretty to the v20.2 release date, so I'm guessing we won't make the 21.1 GA page for a while. When we do, we need to remove this redirect.

This change is

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b3781ecacb0fa6b0d6840790eae4203a8447c648/
Edited pages:

releases/v21.1.0-alpha.1.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/b3781ecacb0fa6b0d6840790eae4203a8447c648/
Edited pages:

releases/v21.1.0-alpha.1.md

please add this an explicit checkbox on our GA checklist: https://cockroachlabs.atlassian.net/wiki/spaces/PROD/pages/402718726/GA+Release+Checklist.

Done.

please add this an explicit checkbox on our GA checklist: https://cockroachlabs.atlassian.net/wiki/spaces/PROD/pages/402718726/GA+Release+Checklist.

Done.


Add scripts/verify-jenkins.sh file

/assign @jkhelil @divyansh42 @apoorvajagtap @mbharatk
Please take a look at this script and try running it locally.
The script is available as a gist on my account and can be run with the following:
$ podman run -it --entrypoint /bin/bash  registry-proxy.engineering.redhat.com/rh-osbs/openshift-ose-jenkins:v4.13.0-1678301555
bash-4.4$ curl https://gist.githubusercontent.com/coreydaley/fbf11d3b1a7a567f8c494da6a07bad41/raw/1616295d21eb49372b14faf021a42ca366bb3ad5/verify-jenkins.sh | SHA=eec8e193b75fa8225d06c7cf73492fd7d22c5ab8 sh

/retest

/refresh

/label docs-approved
/label px-approved
/label qe-approved


API.request: Clone base headers to be thread safe

This PR makes cloudflare-go thread safe and fixes #88

Thanks for this!


⚠ Bofrost.lu has degraded performance

In 57d24dc, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1133 ms

Resolved: Bofrost.lu performance has improved in 7378b96 after 6 minutes.


Postfix to infix calculator

Enter calculator name -
Postfix to infix Calculator
Describe calculator functionality -
Calculator will take Infix expression from the user and Generate the Postfix expression for it.
Under which category you wish to place it -
Computer Science
[] Mathematics
[] Physics
[] Chemistry
[] Biology
[] Finance
[] Scientific
[] Health
[] Sports
[] Let project owner decide
[] Suggest a new category - (Answer here)

@SarthakKeshari I would like to work on this issue. Please assign it to me .Thankyou

@vendhan-ds,
How about postfix and/or prefix to infix?

Hey @vendhan-ds,
Assigned.
You may contribute your code under the folder path -
calc_for_everything\calculators\src\computer_science\postAndPreToInfixCalc
Issue completion deadline - 6th Oct 8:00:00 am IST
NOTE - In case the issue completion deadline is not met, the issue will be assigned to a new participant


README for the bot and commands need completed

In order to better document the bot, a README for the bot and a separate README for the commands is needed.

Closed with #14


The constant buffer displays an error problem

In a common graphics debugger, there is a problem with the display of constant buffers
eg:Renderdoc, Nsight, Pix

It's not an NRI issue. Most likely shaders do not include debug information. At least all my projects, using NRI, have debug info stripped out (it can be changed by modifying "ShaderMake" command line in the CMake files).

It's not an NRI issue. Most likely shaders do not include debug information. At least all my projects, using NRI, have debug info stripped out (it can be changed by modifying "ShaderMake" command line in the CMake files).
Maybe getting shader's PDB solves that problem?

Debug information can be embedded into a shader binary or come in a separate PDB file (recommended by MS). So, yes.

Debug information can be embedded into a shader binary or come in a separate PDB file (recommended by MS). So, yes.

I compiled the shader of NRISampler using dxc and shademake respectively, and found that this constant buffer display exception only occurs in D3D12. The following image shows some flags of dxc, which proves that it does indeed work under debug, I look forward to hearing from you

Debug information can be embedded into a shader binary or come in a separate PDB file (recommended by MS). So, yes.

I compiled the shader of NRISampler using dxc and shademake respectively, and found that this constant buffer display exception only occurs in D3D12. The following image shows some flags of dxc, which proves that it does indeed work under debug, I look forward to hearing from you

Update!!!, my doubts about FP16 have been ruled out. FP16 has nothing to do with errors -enable-16bit-types


Module fails on openSuse 12.1

Server crash on startup, can not load module:
undefined symbol: EC_KEY_set_public_key_affine_coordinates
messages:Feb 10 16:21:49 web5 start_apache2[5569]: httpd2-prefork: Syntax error on line 116 of /etc/apache2/httpd.conf: Syntax error on line 31 of /etc/apache2/sysconfig.d/loadmodule.conf: Cannot load /usr/lib64/apache2/mod_auth_openidc.so into server: /usr/lib64/apache2/mod_auth_openidc.so: undefined symbol: EC_KEY_set_public_key_affine_coordinates
messages:Feb 10 16:22:19 web5 kernel: [2223941.553834] mod_auth_openid[5802]: segfault at 1 ip<PHONE_NUMBER>000001 sp 00007fffe4aed7e8 error 14 in mod_auth_openidc.so[7f441723e000+3a000]
messages:Feb 10 16:23:32 web5 start_apache2[5818]: Module "openidc" is not installed, ignoring.

Server version: Apache/2.2.21 (Linux/SUSE)
OpenSSL 1.0.0k 5 Feb 2013

How did you produce/obtain the binary?

i downloaded the git master
web5:~/mod_auth_openidc-master # ./autogen.sh
web5:~/mod_auth_openidc-master # which apxs2
/usr/sbin/apxs2
web5:~/mod_auth_openidc-master # ./configure --with-apxs2=/usr/sbin/apxs2
web5:~/mod_auth_openidc-master # make
web5:~/mod_auth_openidc-master # make install
/usr/sbin/apxs2  -i -n mod_auth_openidc src/mod_auth_openidc.la
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' src/mod_auth_openidc.la /usr/lib64/apache2
/usr/lib64/apr-1/build/libtool --mode=install cp src/mod_auth_openidc.la /usr/lib64/apache2/
cp src/.libs/mod_auth_openidc.so /usr/lib64/apache2/mod_auth_openidc.so
cp src/.libs/mod_auth_openidc.lai /usr/lib64/apache2/mod_auth_openidc.la
PATH="$PATH:/sbin" ldconfig -n /usr/lib64/apache2
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib64/apache2

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib64/apache2/mod_auth_openidc.so

It looks like Elliptic Curve support was added in OpenSSL 1.0.0 but that specific function was added only later in 1.0.1. I'll have to patch for that, hold on.

Can you verify the latest commit?

No startup errors. Seems to work. Thanks for fixing.

ok, thanks for confirming; this will be in the next release 1.8.8


How can I disable the editing function.

Hi!! As the issue named, I want to use the same set of layout style in another view to display what I just typed in. Is there a way I can disable the cursor and toolbar, so the editor just looks like a text view?

The best way to display rich text is using WebView. Make a new WebView in 'another view', then invoke the loadData method in WebView class.
See https://developer.android.com/reference/android/webkit/WebView.html#loadData(java.lang.String, java.lang.String, java.lang.String)

Stylesheet file:
https://github.com/mr5/icarus-android/blob/master/library/src/main/assets/icarus-editor/styles/simditor.css

great! thanks! I'll have a try!


Storage pool - Tested with latest api versions

Description
Tested storage pool resource with the latest API versions 800, 1000 and 1200
Check List

[x] New functionality includes testing.

[x] All tests pass ($ rake test).

[ ] New functionality has been documented in the README if applicable.

[ ] New functionality has been thoroughly documented in the examples (please include helpful comments).

[x] Changes are documented in the CHANGELOG.

@madhav-bharadwaj , I think we don't have to update the copyright if we are not modifying the file.
Let me keep the lib file copyright as it is.
Thanks for pointing out this.


chore: update client.ts

Description
Overriden -> Overridden
Type of change

[x] Chore (non-breaking change that addresses non-functional tasks, maintenance, or code quality improvements)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[ ] Code in this PR is covered by automated tests (Unit tests, E2E tests)
[ ] My changes generate no new warnings
[ ] I have reviewed my own code
[ ] I have filled out all required sections

Thank you for your contribution. At this time, Reown does not generally accept these types of contributions for security reasons.


Two changes

Create-Style-Update atom/XBRL-feed
[https://github.com/BigGuy573/atom/new/master>(url)(url)
Create and explain doc-update template
Style layout adjustment, formality increase.

What's the feed for?


fix: [PL-31990]: Get Id field from get call and not make it null for roleAssignments

Describe your changes
Comment Triggers

PR Check triggers

Build: trigger build
Sub Category Field Check: trigger subcategoryfieldcheck

@VikasMaddukuriHarness please add changelog.


Script for "Create a policy parameter definition." is not working.

Hi,
Under the examples given script for "Create a policy parameter definition."  is not working.
Wrong part is: parameters('listOfAllowedLocations')
This is supposed to be:  parameters('allowedLocations')
az policy definition create --name allowedLocations
--rules "{ "if": { "allOf": [
{ "field": "location","notIn": "[parameters('listOfAllowedLocations')]" },
{ "field": "location", "notEquals": "global" },
{ "field": "type", "notEquals":
"Microsoft.AzureActiveDirectory/b2cDirectories"}
] }, "then": { "effect": "deny" } }"
--params "{ "allowedLocations": {
"type": "array", "metadata": { "description":
"The list of locations that can be specified when deploying resources",
"strongType": "location", "displayName": "Allowed locations" } } }"

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

ID: 436bf02d-dfe3-ef6e-2be8-1bd7b1f39623
Version Independent ID: e8b92df3-9e3d-c4c7-1965-0b6b3f7d00ea
Content: az policy definition
Content Source: latest/docs-ref-autogen/policy/definition.yml
Service: azure-resource-manager
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

@zhoxing-ms for awareness


Svelte: Fix Node event types

Using createEventDispatcher from another imported function seems to break the svelte types and thus none of the node events where typed.
This PR fixes the issue by sharing only the types and not a create function. The NodeEventMap type was placed in the types directory to be accessible for both NodeWrapper and NodeSelection.
I noticed this when upgrading past 0.0.40 were there was a breaking change but no type errors to alert me were and what the new types were

Thanks for your PR @RedPhoenixQ we will check it next week.


Text for insufficiant funds is not displayed propperly

When I try to send a transaction that does not cover the fees the text is wrong.
When I try to send a transaction that is bigger than the balance it is OK.

This is the case when entering an amount that does not cover the fee for sending to LNURL

This is the case when entering an amount that does not cover the fee for sending to LNURL. It does not display any error

@Nackoo2000 Do you remember how you've input the amount?
Copy + Pasted, manually entered via keyboard, used currency converter dialog etc.

Entered manually in sats


Not able to read pixels from offscreen render target in filament web

I am trying to render a sample triangle to a offscreen render target and trying to use readPixels API to get the pixels buffer on the web. First thing i observed was that there was no readPixels API exposed in jsbindings for filament.js (Not sure if this is a bug or not part of roadmap). Then i tried to compile the c++ sample code directly into wasm and render it from there. I was able to successfully render the triangle on screen but doing the same to a offscreen rendertarget fails with no callback coming into PixelBufferDescriptor.
I am using the below code for offscreen rendering and reading:
using namespace filament;
filament::Texture* offscreenColorTexture = Texture::Builder()
.width(256)
.height(256)
.levels(1)
.usage(Texture::Usage::COLOR_ATTACHMENT | Texture::Usage::SAMPLEABLE)
.format(Texture::InternalFormat::RGBA8)
.build(*app.mEngine);
filament::Texture* offscreenDepthTexture = Texture::Builder()
.width(256)
.height(256)
.levels(1)
.usage(Texture::Usage::DEPTH_ATTACHMENT)
.format(Texture::InternalFormat::DEPTH24)
.build(*app.mEngine);
app.mOffscreenRenderTarget = RenderTarget::Builder()
.texture(RenderTarget::AttachmentPoint::COLOR, offscreenColorTexture)
.texture(RenderTarget::AttachmentPoint::DEPTH, offscreenDepthTexture)
.build(*app.mEngine);
const size_t byteCount = 256 * 256 * 4;
uint8_t * buf = new uint8_t[byteCount];
memset(buf, 0, byteCount);
filament::backend::PixelBufferDescriptor buffer(
buf, byteCount,
filament::backend::PixelBufferDescriptor::PixelDataFormat::RGBA,
filament::backend::PixelBufferDescriptor::PixelDataType::UBYTE,
[](void* buffer, size_t size, void* user) {
// print data here (callback not getting executed)
uint8_t * buf = (uint8_t *)buffer;
for(int i=0; i<size; i++){
printf("%hhu ", buf[i]);
}
}, nullptr);
app.theView->setRenderTarget(app.mOffscreenRenderTarget);
app.theView->setPostProcessingEnabled(false);
app.theRenderer->renderStandaloneView(app.theView);
app.theRenderer->readPixels(app.mOffscreenRenderTarget,0, 0, 256, 256, std::move(buffer));
app.theRenderer->getEngine()->execute();
app.mEngine->flush();
Desktop (please complete the following information):

OS: web
Backend: [OpenGL]

Additional context
Threading is disabled for filament on web. Hence i am calling flush API of engine and not flushAndWait API.

@romainguy @pixelflinger Can you please help ?

@prideout

@shubhamgarg21 I think you can call Engine::pumpMessageQueues() instead of flush after execute.

@pixelflinger using Engine::pumpMessageQueues() also results in same behaviour. Upon some further debug i noticed that the call to glFenceSync is returning GL_TIMEOUT_EXPIRED and hence callback registered with whenGpuCommandsComplete is not getting executed.

Ok I looked at the code and as it stands now you must call beginFrame/endFrame for the previous frames callback to trigger in the single-threaded environnement.
I'll try to see if we can provide a better way to do this.


Issue in TraceProcessing blog posts

I found library TraceProcessing via link to blog post. That blo post does not include sample, so I go to earlier blog post versions[1] . And samples was broken. Only via indirect links I reach this repository.
Can somebody update samples in blog posts or link to that repository or docs website, so it can be understood how to use package.

[1] https://blogs.windows.com/windowsdeveloper/2020/01/28/traceprocessor-0-3-0/

Thanks for your feedback. You can find guidance about using the TraceProcessing API in the docs here: https://docs.microsoft.com/en-us/windows/apps/trace-processing/overview. If you have further feedback or issues to report about this API, please file an issue in the eventtracing-processing repo. Thanks!


Launchctl "command not found: bear"

Hi,
I've made a shell script that uses Bear CLI to make custom journal entries for me, and I want to run these daily with launchctl. The script works when I run it from terminal, but when I run it with launchctl I get errors: "command not found: bear" on the lines that execute the Bear CLI commands.
It seems launchctl doesn't have permission to run Bear CLI?
The two lines in question:
noteId=$(bear create " " -n=${printDate})
noteNew=$(bear add-text ${journal} --id=${noteId} --mode=replace_all)

I tried giving Bear CLI Full Disk Acccess in System Preferences -> Security & Privacy but that didn't help. I'm quite new to scripting, terminal and launchd. Thanks for any tips.

I've seen it suggested in other threads (https://superuser.com/questions/1044228/unable-to-load-script-via-launchctl-command-not-found#1044245) that "command not found" is because if a script is run by launchctl then it needs the absolute path. In the case of Bear CLI what would that be? I tried /Users/myuser/path-to-Bear-CLI-project/bin/run but that gives the error "env: node: No such file or directory", and I tried pointing /usr/local/lib/node_modules/@sloansparger/bear and /bear/bin/ but those gave me a permissions error, even when running launchctl with sudo.

Ok it turns out adding export PATH=$PATH:/usr/local/bin to my script was able to fix the paths. Hopefully that will be useful to anyone else trying to get this to work with launchctl.

@usizu thanks for walking through the problem and solution. Like you said this isn’t the first time someone has hit this issue, so I’ll go ahead and add it to the README so other benefit!


Remove python3 from pull-security-profiles-operator-verify

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
The dependency is not directly required so we can remove it.
Which issue(s) this PR fixes:

None
Does this PR have test?
None

Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

@kubernetes-sigs/security-profiles-operator-maintainers PTAL


Pin fairseq in docs-requirements to v0.12.3 through git

What does this PR do?
Should fix #2614.
Fairseq v0.12.3 is not published on PyPI and it should resolve a docs building issue on readthedocs, as documented elsewhere. Let's see if CI passes first, though.

Before submitting

[x] Did you read the contributor guideline?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you list all the breaking changes introduced by this pull request?
[x] Does your code adhere to project-specific code style and conventions?

PR review

Reviewer checklist

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified
[ ] Confirm that the changes adhere to compatibility requirements (e.g., Python version, platform)
[ ] Review the self-review checklist to ensure the code is ready for review

Merging this since this doesn't affect user setups anyway and tests pass. Will be needed for 1.0.1 doc building.


Need to separate app space from user space.

In an effort to modernize the general architecture, it would be wise to split actual application files from user space files.  Some of the groundwork appears to have been put in back in the port for MacOS X many years ago, but it wasn't universally utilized.
In Sage.java:
/*
    paths used by Mac OS X currently:
      "core" = server files, read-only, version dependent, not user modifiable
      "data" = settings, database, other files maintained by the server
      "tools" = helper tools used by the server (eg: ffmpeg, jpegtran, etc..)
      "logs" = where log files go
      "plugins" = third party add-ons, like IR blaster, new hardware, etc...
      "cache" - where generated thumbnail files go
    The paths are determined at startup and set when the JVM is loaded via System.setProperty.
    Each path is prepended with sage.paths. eg: "core" is specified as sage.paths.core
    In the absense of these properties, we'll always fall back on "user.dir"
   */
  public static String getPath(String which)
  {
    String defaultPath = System.getProperty("user.dir");
    String propPath = System.getProperty("sage.paths."+which, defaultPath);

    // slap a separator on the end since we'll be referencing something inside this directory
    propPath += System.getProperty("file.separator");

    return propPath;
  }

  public static String getPath(String which, String name)
  {
    return getPath(which) + name;
  }

The major issue that needs to be tackled first is that there are many places in the core of sagetv that don't use this call, and instead reference System.getProperty("user.dir") instead.
Additionally, it seems that many plugins likely also use this instead of the sage provided call.  To emulate current behavior and allow them to continue to access a writeable directory, we should be able to actually set the "data" folder as the current folder and launch the JVM from there, thus making the 'System.getProperty("user.dir")' point there.
I see this as a long-term goal, ultimately, but the internal core changes to get rig of the user.dir calls should be able to be done progressively through small fixes over time, then once we're all done with those, the launcher changes can be made, and the options to customize installations based on platform can be made in a more major version change.

The other thing to look for in SageTV are places where "new File(...)" is
being used.  If the arg passed is a "relative" path, then File() assumes
the current working directory (likely "user.dir").
On Sat, Jun 3, 2017 at 12:34 PM Christopher Piper<EMAIL_ADDRESS>wrote:

In an effort to modernize the general architecture, it would be wise to
split actual application files from user space files. Some of the
groundwork appears to have been put in back in the port for MacOS X many
years ago, but it wasn't universally utilized.
In Sage.java:
/*    paths used by Mac OS X currently:      "core" = server files, read-only, version dependent, not user modifiable      "data" = settings, database, other files maintained by the server      "tools" = helper tools used by the server (eg: ffmpeg, jpegtran, etc..)      "logs" = where log files go      "plugins" = third party add-ons, like IR blaster, new hardware, etc...      "cache" - where generated thumbnail files go    The paths are determined at startup and set when the JVM is loaded via System.setProperty.    Each path is prepended with sage.paths. eg: "core" is specified as sage.paths.core    In the absense of these properties, we'll always fall back on "user.dir"   */
public static String getPath(String which)
{
String defaultPath = System.getProperty("user.dir");
String propPath = System.getProperty("sage.paths."+which, defaultPath);
// slap a separator on the end since we'll be referencing something inside this directory
propPath += System.getProperty("file.separator");

return propPath;

}
public static String getPath(String which, String name)
{
return getPath(which) + name;
}
The major issue that needs to be tackled first is that there are many
places in the core of sagetv that don't use this call, and instead
reference System.getProperty("user.dir") instead.
Additionally, it seems that many plugins likely also use this instead of
the sage provided call. To emulate current behavior and allow them to
continue to access a writeable directory, we should be able to actually set
the "data" folder as the current folder and launch the JVM from there, thus
making the 'System.getProperty("user.dir")' point there.
I see this as a long-term goal, ultimately, but the internal core changes
to get rig of the user.dir calls should be able to be done progressively
through small fixes over time, then once we're all done with those, the
launcher changes can be made, and the options to customize installations
based on platform can be made in a more major version change.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/sagetv/issues/298, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABAfKXpkLAOTdiBccZLQ2UlVqA84as1Jks5sAYsWgaJpZM4NvIhs
.

--
Sent from Android

Also, in making these fixes, we need to determine what named location each type of item/artifact needs to live.  The 'default' for most new things seems like it'd be the data folder, but then things like cache and plugins etc. exist as well.
Honestly, I'm not really sure how much of those location names were every used by Jeff et all before.

I'm not a big fan of the getPath(String, String) method. I kind of see the intent here, but the way it's being used just gives us a method that appends a String to a constant path. Also if we want to use this, we need to create constants for the String parameter or make it an int. Otherwise usage will be harder than it really needs to be. I was trying to following the uses of this method a while ago and I think it would be a lot easier to work with if it was getPath(int) and there were well defined associated constants. I see the use of Strings just creating more room for mistakes because even with the constants someone is bound not use them and unknowingly end up in a default folder they shouldn't be in.
I would also be ok with doing away with a method for this all together in favor of String constants since these paths should never change after startup. String constants wouldn't be a problem for the API either since it doesn't appear to use this method at this time. We could just add an API method for each of the constants.
"core" and "data" are the only ones actually used in any code I could find. I think there was some intent here to aid in getting everything into proper folders, but since this is not applied consistently, I think it's equally ok to just come up with another approach. At the very least, I would prefer the use of defined static constants be it String, integer or enum that when passed through a method correlate with a real path.

How would a constant that pointed to a path be much different than a string that when referenced against a property points to a path?  Not saying one is better than the other, just not seeing how the current implementation is all that problematic.

My 2 cents... We either use getPath(Enum|Int, "path") or better still...
just use something like, getCaheDir(path), getHomeDir(path),
getPluginsDir(path), etc, since calling those tends to make things more
readable, in my mind.  Android does something similar, in that it has a
generic api for resolving files, but then it has things like
getCacheDir(path) to resolve a path against the cache, etc.
FWIW, Phoenix does this now... ie, Phoenix itself can live anywhere and the
only a PHOENIX_HOME needs to be set and everything resolves relative to
that, although it has getHomeDir() getCache(), etc, that will resolve files
relative to it's home directory, etc.
Either way, I think utilizing an approach that doesn't rely, implicitly, on
the current working directory, is a good approach.
On Sun, Jun 4, 2017 at 5:58 PM Christopher Piper<EMAIL_ADDRESS>wrote:

How would a constant that pointed to a path be much different than a
string that when referenced against a property points to a path? Not saying
one is better than the other, just not seeing how the current
implementation is all that problematic.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/sagetv/issues/298#issuecomment-306069994, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABAfKRr7QAPj5Xp7AqO1aFxcDtaF9Lyvks5sAyhngaJpZM4NvIhs
.

--
Sent from Android

@stuckless The specific methods for each path is kind of what I had in mind for the API access to the paths. I like that because it makes things more readable. I see no reason why we couldn't just do that for the Java side of things too.
@CraziFuzzy The difference is slightly better performance. The final String constants will always be marginally faster than calling a method that needs to perform a lookup.


Write company wide info around how we want to shape app-platform.

Let's start also company wide discussion about:

moving to OCI repos
moving to helm-controller
getting rid of config and Konfigure plugin

https://gigantic.slack.com/archives/C90BZMUJ1/p1683707445464159


Energy saving

The computer does not go in sleep mode anymore when screensaver is playing .

+1

Thanks for creating this issue.
Looks like this is the default with AVPlayer, and it doesn't look like there's a way to implement this normally. Found AVEnableUserIdleDisplaySleep. More research is needed.

Duplicate of issue #32

There is a possible solution proposed in the first post of issue #23 (duplicate of this one)

Thanks @alistairmcmillan for linking the original issue. I'm working on fixing this, but the solution I've found is quite complicated and will take a bit to implement.


Partially accept requests

Allow the receiver to choose a subset of files instead of all files.

Released in v1.5.0


Reading of dst files

Created dstio.py to read dst files into dl1
Created a DstioEventFileReader
Created a DstioR1Calibrator, which does nothing, except holds a staticmethod to handle the calibration into pe when dst files are read
Small optimises to hessio.py
Created empty test scripts for the new dst functionality. Before tests can be made, a test dst files needs to be generated

It would be good to also include a (small <20MB) test DST file. Is there one we could use? I can add it to ctapipe_resources and it can be used to test that this works.

To be honest I'm not sure we need a separate DST reader, by default the pyhessio code will already read Konrad style DSTs fine.

Sure, pyhessio does the reading. But DstioEventFileReader makes sure its read into the correct data level container (dl1 instead of r0).

This does imply that we need to generalize the "event source" code at some point, and probably turn it into a base class with a well-defined interface, so all event_sources have the same functionality, rather than a single function.  In any case, I think Jason's solution is ok for now, which is to use a mixture of an event_source + the EventFileReader classes to solve the problem.

But what I mean is the code (pyhessio and ctapipe) will read and work with the level 0 DSTs that Konrad produces already with no problems. The Code just treats them like an ASTRI telescope with no trace and the signal already integrated. Every result I've showed so far has been using the DST0 files with no issue whatsoever, but it's much faster as we don't have to perform the signal integration step.

Ah, ok, so I guess just running the CameraCalibrater.calibrate() basically does nothing but apply coefficients and put the final image in the right place? In that case, perhaps the DSTEventFileReader is really not needed...  Is the definition of "dst" in the monte-carlo basically just "trace-integrated"? or is there more processing applied?

Yes it all works in its current state, and you are right they are essentially treated as ASTRI data. However there are two reasons why we still need this DstioEventFileReader.
Currently the default r1 calibration applied divides the pedestal by the number of samples. Unless the number of samples is set to 1 in the dst values, this will result in an incorrect pedestal subtraction.
Secondly when performing CameraCalibrater.calibrate(), charge integration will be attempted. And I believe an integration correction (based on the reference pulse) will be applied to this "one-value" integration. If the dst is read directly into dl1, then CameraCalibrater.calibrate() will literally do nothing, it will be faster, and it won't risk a incorrect alteration to the value.
On another note, to handle ASTRI, it might be right to automatically skip the dl1 integration altogether if there is only one sample in the waveform....

Currently the default r1 calibration applied divides the pedestal by the number of samples. Unless the number of samples is set to 1 in the dst values, this will result in an incorrect pedestal subtraction

Isn't the number of samples == the shape of the array, so it would divide by 1? That is a bit slower than reading it directly, but we should err on the side of less code to maintain for now...  We should not trust the num_samples value given by pyhessio.get_num_samples(), since it must by definition be equal to the shape of the array read out (if not there is an inconsistency). I think we had talked before about just getting rid of adc_sums altogether and just read everything in to adc_samples, which may have a single sample (like with ASTRI). I think right now, astri files get read into adc_sums (just because that's how they are stored in the MC), but that can be corrected in hessio_event_source.
The whole event reading system is going to  need a review and refactoring soon, and already several of the event sources are broken as far as I can tell, so perhaps adding another is not useful at this point.  What do you think? Can we get away with sticking with hessio_event_source and just applying the calibration (perhaps modifying it so that it doesn't apply a crazy value?)

Okay. I feel a litle nervous about it, in case something is applied to the data because it assumes it is a lower level than dl1. But the time being we could get away with it with some minor alterations to the code.
I will create a new PR where no integration or integration correction is applied if there is only 1 sample. Currently ASTRI is read into adc_sums and then in the r1 calibration, if there is nothing in adc_samples, it looks in adc_sums. I will change this logic to occur in hessio_event_source, effectively removing the need for adc_sums. Agreed?

There is one more consideration:
pyhessio.get_run_number() crashes on some dst files. @ParsonsRD believes this occurs if the dst file consists of multiple combined runs. But I guess the fix should exist in pyhessio perhaps?

The changes we have talked about in this PR are handled in #489


Updated substring (end & start) params from string to int

End and start params for substring were defined as string type. This is causing errors at design time

@fm-tibco : Please review


Add is_complete property to tomes

Should we just make them check instead? Just doing
completed = loader.manifest["isComplete"]

will throw a file not found error. They'd have to do something like this:
if loader.exists:
    completed = loader.manifest["isComplete"]

or wrap it in a try-except block

Having interfaces like this is a good thing. You do need to add a line to this calling _load though

Having interfaces like this is a good thing. You do need to add a line to this calling _load though

would self.manifest work instead?

Yea. Probably better to prefer the public property over the internal one anyway


problem z dronekit

Traceback (most recent call last):
File "D:\cheaty\Bocik\arduino 1.py", line 5, in
from dronekit import connect, VehicleMode
File "D:\cheaty\Bocik\Bocik\Lib\site-packages\dronekit_init_.py", line 2689, in
class Parameters(collections.MutableMapping, HasObservers):
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'collections' has no attribute 'MutableMapping'

Hi, my work around for this was:
open your file: "D:\cheaty\Bocik\Bocik\Lib\site-packages\dronekit_init_.py"
replace "import collections" with "import collections.abc as collections"
Hope this fixes your error.
Best regards
Phil

Just for a bit of semi-closure on this: it looks like a commit was merged into master a while back that should solve this issue (1d89e82) however there has not been a pip/pypi release since then.
For people coming to this issue in the future, you might have luck by installing dronekit directly from source (until the next release...):
pip install git+https://github.com/dronekit/dronekit-python.git

That's great to know. @morzack Are you planning a release, and do you have enough information to do so?
It might be good to automate this in CI too.
I have never done one of this project. If you don't have enough information, we can ask Peter.

@hamishwillee I suspect that we should make a patch release at some point once the most common issues have been resolved. I'm not entirely sure how to do that (and would defer to Peter regardless of if I knew how :) )

@morzack I tried installing using above command on windows, (all of python toolchain is already there) but it gives me an error:
C:\Users\darshit>pip install git+https://github.com/dronekit/dronekit-python.git
Collecting git+https://github.com/dronekit/dronekit-python.git
  Cloning https://github.com/dronekit/dronekit-python.git to c:\users\darshit\appdata\local\temp\pip-req-build-ri7slywv
  Running command git clone --filter=blob:none --quiet https://github.com/dronekit/dronekit-python.git 'C:\Users\darshit\AppData\Local\Temp\pip-req-build-ri7slywv'
  Resolved https://github.com/dronekit/dronekit-python.git to commit 3ee89b7d83ba1fe676f0b2980a7774b052c29c2f
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [10 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\darshit\AppData\Local\Temp\pip-req-build-ri7slywv\setup.py", line 7, in <module>
          LongDescription = f.read()
                            ^^^^^^^^
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\encodings\cp1252.py", line 23, in decode
          return codecs.charmap_decode(input,self.errors,decoding_table)[0]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 1037: character maps to <undefined>
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

I will try the same command on a fresh ubuntu install

Hmm, I wonder if this has anything to do with the "⚠" that was recently added to the README. It looks like setup.py reads that file and so the encoding used for the read in windows might be unhappy with that character.
This isn't entirely conjecture -- I did a quick bisect to check and the commit that updated the README seems to be the bad one.
I assume that we can can either change setup.py to use the correct encoding on read, or update README.md to not use that character.
cc @darshit-desai

Ok so the command pip install git+https://github.com/dronekit/dronekit-python.git did work on ubuntu. I guess I installed the dronekit before using pip install dronekit from the docs and than removed it after encountering this issue #1183. Followed the above command and it didn't work for windows.


fixes blueprint typo on azure

Blueprint typo causes spruce merge to reference /operations/azure-availability_sets.yml instead of the intended file /operations/azure_availability_sets.yml

You will need PR against develop, then it can be merged, pipeline will run and then concourse is the one merge things from develop to main


What

[TODO: Short statement about what is changing.]
Why
[TODO: Why this change is being made. Include any context required to understand the why.]
Known limitations
[TODO or N/A]

miscreated from the wrong branch


MAINT - Enable license check pre-commit hook

Closes #484
This PR adds the license check hook with a start year of 2022 per the release of 1.0. Run locally it passes with no changes, and if I remove a header it adds it back.

This isn't enabled because there seem to be an issue with the tool. Kerry is aware of it

This isn't enabled because there seem to be an issue with the tool. Kerry is aware of it

It's fixed in a recently merged PR, we're just waiting for a release


Default values for parameters in API Browser

If we have rather complex JSON-RPC call with lot's of even more complex parameters, it would be convenient to have ability to auto-fill example parameters in this form:

This would make new/outsourced developers to become familiar with API easier.
Not sure where these defaults could be placed... Maybe Angular could try to fetch functionname.defaults.json file, and if it exists, fill it's contents. Or maybe view decorator to bridge documentation with some more detailed description object?

I would like to use the Browser annotation instead of using the method's default parameter, because sometimes we don't want to have a default parameter, but we want to have a default Browser documentation parameter.
Something like that: https://drf-spectacular.readthedocs.io/en/latest/readme.html#customization-by-using-extend-schema

because sometimes we don't want to have a default parameter

Yes, good point. I'd say most of  the time...
Defaults could be shown in the signatures in the Browser, but that's probably for other issue, but examples probably should be specifically crafted, with all values (default or not).


Default setup should ensure a seemles first start

When using vagrant-spk as described in the README the following will be the result after launching the first instance of the test app:
...** SANDSTORM SUPERVISOR: Starting up grain.
Installing MySQL system tables...
150416  8:21:48 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
OK
Filling help tables...
150416  8:21:49 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h sandbox password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

150416  8:21:49 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

I will fork the repo and try to make it self configurable if possible.

The problem is startup time. After waiting 5 seconds it is working. Basically you need to start the grain, see a bad gateway message, reload it and it's working.
Maybe it's a good idea to check if the mysql setup in the package can be optimized e.g. by applying tweaks @jparyani already found while optimizing mysql for his app porting process via docker. He used to set it up like follows and I also implemented it for an app and it worked pretty well. Also the initial grain size was lower (23MB instead of 30 MB now with vagrant-spk).
# Install Mysql
RUN apt-get -y install mysql-server

# Install php
RUN apt-get -y install php5 php5-mysql

# Install nginx
RUN apt-get -y install php5-fpm nginx

# minimize mysql allocations
RUN echo '[mysqld]\ninnodb_data_file_path = ibdata1:10M:autoextend\ninnodb_log_file_size = 10KB\ninnodb_file_per_table = 1' > /etc/mysql/conf.d/small.cnf
RUN sed -i 's_^socket\s*=.*_socket = /tmp/mysqld.sock_g' /etc/mysql/*.cnf && ln -s /tmp/mysqld.sock /var/run/mysqld/mysqld.sock
RUN rm -rf /var/lib/mysql/* && mysql_install_db && chown -R mysql: /var/lib/mysql

# Setup mysql//mysql user
RUN /usr/sbin/mysqld & \
    sleep 10s &&\
    echo "GRANT ALL ON *.* TO mysql@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION; FLUSH PRIVILEGES; CREATE SCHEMA app;" | mysql

(from https://github.com/jparyani/Tiny-Tiny-RSS/blob/sandstorm/Dockerfile)
I will work on that and let you know the result.

I applied the hack but I cannot see any big change.
Furthermore is the described issue only present when running vagrant-spk dev. When the app is packed it is running smoothly.
So I guess this was a bunch of hot air and the issue can be closed without any further steps. Anyway I have send a PR. You can decide yourself whether to take it or discard it.

Sorry for confusion. It's getting weird for me. Somehow mysql is nit starting at all.
When starting the app (no matter if DEV or in a package) I see that the mysql demo calculation 1+1 is returning an error.
When I ssh into the vagrant machine and try to access mysql it's not running and it can also not be started. dmesg shows:
[  543.299687] init: mysql main process (7821) terminated with status 1
[  543.299716] init: mysql main process ended, respawning
[  543.307192] init: mysql post-start process (7822) terminated with status 1
[  543.320993] type=1400 audit(1429179746.426:17): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7837 comm="apparmor_parser"
[  543.347234] init: mysql main process (7849) terminated with status 1
[  543.347253] init: mysql main process ended, respawning
[  543.353097] init: mysql post-start process (7850) terminated with status 1
[  543.364855] type=1400 audit(1429179746.470:18): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7865 comm="apparmor_parser"
[  543.383385] init: mysql main process (7877) terminated with status 1
[  543.383448] init: mysql respawning too fast, stopped
[  634.052310] type=1400 audit(1429179837.158:19): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7923 comm="apparmor_parser"
[  634.076569] init: mysql main process (7935) terminated with status 1
[  634.076589] init: mysql main process ended, respawning
[  634.083636] init: mysql post-start process (7936) terminated with status 1
[  634.097558] type=1400 audit(1429179837.202:20): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7951 comm="apparmor_parser"
[  634.123165] init: mysql main process (7963) terminated with status 1
[  634.123183] init: mysql main process ended, respawning
[  634.131160] init: mysql post-start process (7964) terminated with status 1
[  634.143563] type=1400 audit(1429179837.246:21): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7979 comm="apparmor_parser"
[  634.161650] init: mysql main process (7991) terminated with status 1
[  634.161669] init: mysql respawning too fast, stopped

Any ideas from your side? I have to postpone working on that issue as I had other plans today (port of ownCloud with sqlite and not mysql).
JJ

Okay. My fault. It's working now after having destroyed everything and set it up from scratch.
Key take away: when you are running vagrant-spk devyou can get a 502 Bad Gatewayerror. reload the page and you are fine.

I'm not totally sure it's your fault. Either way, we should make sure this is smoother. Thanks a great deal for testing out this preliminary version!

Hey, thanks for testing this all out!  I'm glad to hear that you got it slightly working, despite the lack of polish. :)
You've rightly discovered that the launcher.sh script has a race condition in which nginx is up and accepts requests before php5-fpm and/or mysql are necessarily up and listening on their sockets, and I can confirm that I also sometimes hit 502's on the first pageload after launching the grain (and this is true in both dev mode and with the packed app).  It should certainly be fixed before using vagrant-spk to publish an official app package.
I can think of doing some bash hackery to wait for those sockets to be created before starting nginx (which is the signal to sandstorm that the grain is ready).  Another approach would be to run something like systemd in the container, which will create all the sockets in advance and hand them off to the processes started, so there's no gap between "nginx listening on socket" and "requests will reliably be delivered", as there is with the current launcher script.
Regarding the large grain size: I'm happy to merge pull requests for getting the default mysql table size down; this is a great idea!

I will investigate more during working on the port. Status:
https://github.com/JamborJan/vagrant-spk
https://github.com/JamborJan/owncloud-sandstorm
Nothing is working so far. When you build the app it actually wants to download the index php and the database is not up and running, I think I screwed up the vagrant-spk fork. I will check this in more detail later.
Anyway: this issue is closed. More about the mysql optimization will be mentioned in the two repos when I find something.


Added Ohms Law Calculator

Fixes Issue🛠

Closes #871
Description👨💻
Issue: The calculator needed dynamic computation for missing values, an updated result section, and basic styling for improved user experience.
Resolution:
1.Implemented dynamic computation: The calculator now computes missing values when at least two input values are provided.
2.Enhanced result display: The result section updates in real-time to show the calculated values in a clear and formatted manner.
3.Added basic styling: Applied basic CSS styling to improve the visual appeal and user-friendliness of the page.
Type of change📄

[x] Added JavaScript functionality to dynamically compute and update missing values based on provided inputs.
[x] Updated the result section to ensure it displays calculated values clearly and in a formatted way.
[x] Incorporated basic CSS styling to make the interface more visually appealing and user-friendly.

How this has been tested✅

Checklist✅

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added demonstration in the form of GIF/video file
[ ] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/CalcDiverse/assets/149524873/4b409432-7155-49c1-a041-b7182c71d4d4

Why have you created the PR if you are not assigned to an issue @mdjalal07

please assign me to this issue


an example of how YUV colorspace can be implemented

The cool thing is that the GPU code doesn't change for "subsampled" colorspaces.
This also introduces how one can sample from multiple grids to create color at a single point.
cc: @kingbedjed

i admit my creativity is really lacking for this example.

Would be nice if we could stream from an actual video file, so we can also comparethe performance of a shader-based approach with just reading frames as rgb.
Here's a little code that gives easy access to a yuv420p video:

import os

import numpy as np
import imageio
import av

def get_video_pix_fmt(filename):
    container = av.open(filename)
    return container.streams.video[0].codec_context.pix_fmt

def convert_to_yuv420(filename1, filename2):
    input_container = av.open(filename1)
    input_stream = input_container.streams.video[0]

    output_container = av.open(filename2, mode='w')
    output_stream = output_container.add_stream('libx264', rate =input_stream.base_rate)
    output_stream.width = input_stream.width
    output_stream.height = input_stream.height
    output_stream.pix_fmt = 'yuv420p'

    for frame in input_container.decode(video=0):
        frame = frame.reformat(width=input_stream.width, height=input_stream.height, format='yuv420p')
        packet = output_stream.encode(frame)
        output_container.mux(packet)

    output_container.mux(output_stream.encode(None))
    input_container.close()
    output_container.close()

# Get a video file (a standard video from imageio)
filename = imageio.core.Request("imageio:cockatoo.mp4", "r?").filename

if get_video_pix_fmt(filename) != "yuv420p":
    filename_yuv420 = filename.replace(".mp4", "_yuv420.mp4")
    if not os.path.isfile(filename_yuv420):
        print(f"Converting video from {get_video_pix_fmt(filename)} to yuv420p ... ", end="")
        convert_to_yuv420(filename, filename_yuv420)
        print("done")
    filename = filename_yuv420

assert get_video_pix_fmt(filename) == "yuv420p"

I made an attempt to load the data into an texture with two layers. Basically this:
   ________
  |         |
  |  y      |
  |_________|
  | u  |    |
  |---------|
  |_v__|____|

So half of the second layer is empty, but in total the texture is still half the size of an rgba texture (rgb textures don't really exist).
The 'problem' with this approach is that the image must be padded, and the u and v images are copied in non-contiguous blocks:
uv_shape = height //2, width // 2
image_2layer = np.zeros((2, height, width), np.uint8)
image_2layer[0,] = image_yuv420[:height]
image_2layer[1, :height//2, :width//2] = image_yuv420[height : height + u_height].reshape(uv_shape)
image_2layer[1, height//2:, :width//2] = image_yuv420[height + u_height :].reshape(uv_shape)

I've got this working (image is rendered in color) locally.

It would also be possible to keep the data as-is, with u and v "stretched":
   ________
  |         |
  |  y      |
  |         |
  |_________|
  |_u_______|
  |_v_______|
  |         |
  |_________|

Then the u and v must be sampled using textureLoad, i.e. without interpolation. But maybe that looks good enough.
In this approach, we could skip any padding and data copies, by creating a Texture with no representation on the GPU, and then uploading the data in two chunks (one for y, one for uv). This would require some changes to the Texture implementation, but I see no technical hurdles.

just for your nerdy pleasure, not all yuv returned from libav is "contiguous" when they come out of ffmpeg. PyAV invokes a copy to return them to you.
https://github.com/PyAV-Org/PyAV/pull/1393#issuecomment-2098276096
However, you can play with the memory allocator to make sure they are.... we haven't gone that far yet.
Ps feel free to push to my branch changes to the shader, i won't mind ;)

padding

repeatedly padding is pretty disastrous for "4k" or "larger" video.
I think this format that I have focused on is called "YUV420_I420". I am under the impression that it is one of the "native" formats that comes our of both software accelerated and hardware accelerated decoders.
I wonder if we can:

Internally model things as a single in a 1D the buffer to the GPU.
Split it into separate Y, U, and V views, each a 2D view of a portion of the array.
pass it to the shader.

All to avoid a copy

If you intend to merge this I can try to create videos with both limited range and full range YUV. I think it is important to have that option, mostly for documenting what the difference between the two is.

I can try to create videos with both limited range and full range YUV. I think it is important to have that option, mostly for documenting what the difference between the two is.

Sounds like a good idea; I am curious to what it means :)

I did some benchmarks:

saved-format
read-format
FPS

yuv444p (cockatoo.mp4)
rgb24
85

yuv444p (cockatoo.mp4)
rgba
135

yuv444p (cockatoo.mp4)
yuv420p
165

yuv420p (cockatoo_yuv420.mp4)
rgb24
100

yuv420p (cockatoo_yuv420.mp4)
rgba
220

yuv420p (cockatoo_yuv420.mp4)
yuv420p
250

Interesting observations:

Switching from rgb to rgba already gives a huge performance benefit!
The performance difference between rgb and yuv420 is massive when the video is stored as yuv420p!
I imagine that at these frame-rates, we're also measuring overhead, so the real benefit is likely higher than what we see here.

BTW: for those who, like me, wondered what p means in yuv420p: it means planar. So we can also have rgbp, which would have the colors in planes instead of pixel-tuples. Isn't that how tiff stores images?

Isn't that how tiff stores images?

typically this is how the multichannel scientific images are stored.
I’ve never seen planar planar RGB

Do you mind listing the resolution next to your benchmark numbers?

I love that I got you hooked on this performance deep dive.

Hehe. This turned out to be very interesting and insightful.

This is ready from my end.
BTW: this PR also makes it easier to use multi-layer textures for other things, like #882.

As for full range and limited color range, the first few sections of this wiki article explain it well
https://trac.ffmpeg.org/wiki/colorspace
It should be something that we can read in from the metadata and apply the appropriate math in the shader.
Not that ffmpeg bused to call full range yuvj420p but they recently deprecated it. I think we should follow their new best practices and use a separate property to specify the range for yuv.

BTW: this PR also makes it easier to use multi-layer textures for other things, like #882.

@almarklein perhaps we can split off the important parts for #882 separately from this?
I think there are still a few design concerns that have to do with:

Correctness of interpolations.
A few performance benchmarks accross differrent OS/hardware combinations.

I generally think a YUV object is really important base object to build out.
Personally, we have found it difficult to find a "frame by frame" video player that allows you to "zoom in and out" of videos. I think that would be a cool small application to build out with PyGFX as a demo (one day you know).

Ok. Here is a radical idea….
Can each of the arrays have multiple MIP levels, making it so that we can write to MIP levels 0 in the case of native resolution subtextures. Such as Y.
Then we can write to MIP levels 1 for substances textures.

@almarklein perhaps we can split off the important parts for https://github.com/pygfx/pygfx/issues/882 separately from this?

To be honest I'd rather wrap up this PR, and improve on it in future PR's. I think that if we only merge the multi-layer texture stuf, and someone would contribute something with that, we'd get into merge conflicts because we both touch the image wgsl. So I think its better to have the base version for yuv support in place, and then add to it where necessary (e.g. fix the interpolation).

Can each of the arrays have multiple MIP levels, making it so that we can write to MIP levels 0 in the case of native resolution subtextures. Such as Y. [...] Then we can write to MIP levels 1 for substances textures.

I think that can work, using textureSampleLevel() in the shader. The downside is that we than create 3 layers, times 1.25, so it allocates nearly twice the amount of memory on the GPU, and over half of it is not used.
The advantages are that it avoid that u and v then are discontiguous, and that the interpolation at their boundary. I'm not sure it's worth it, because we can fix the interpolation and I doubt that the contiguousness affects performance.

To be honest I'd rather wrap up this PR

Alright, please take a look at the latest commit. It provides an option to use 3 different grids instead of a single one. I'm really interested in benchmarking the different options but I won't really have time to do so for a few (working) days at least.

I think that can work, using textureSampleLevel() in the shader. The downside is that we than create 3 layers, times 1.25, so it allocates nearly twice the amount of memory on the GPU, and over half of it is not used.

Are you sure this is the case, or are the "3 layers" only created "if they are used". So that would be "3 layers  * 1.25 in virtual memory", but then in resident GPU memory, only "3 * 1 + 2 * 0.25" would be used? However, this is definitely more effort than I have today (and in the coming weeks) to explore so I won't be able to act on much.
Thank you for the reference to the function that one would use!
Regarding the contiguous source + destination. To my knowledge, PCIe transfers MUST be done on aligned memory, both on the HOST (CPU) and the TARGET (GPU). This is often NOT a requirement for shared memory integrated GPUs (intel or apple M1-M4).
Ultimately, there aren't many good ways to write heuristics that will work in all cases. Here I use cupy to transfer some data FROM the GPU to the CPU (the other way seems to happen asyncronously and I seem to not be able to get it to do it in a blocking fashion to complete my timing correctly).

This is the main finding one should take:  above 1MB transfer size, it seems that we can saturate the bandwidth of PCIe gen3. Why does this matter, well a 1080p stream is 2Megapixels. so the Y component is 2MB, and the UV are each 0.5MB. if you make 3 BIG transfers, then you are pretty close to your max theoretical speed on PCIe Gen3. But if you transfer UV in 540 different transfers (even if each are aligned), then you are getting really close to 1/5th of the performance. I don't think this is python limited, but maybe.
In either case, these kinds of performance numbers are often the ones we see, keeping things in "1MB chunks"  is good for image transfers. Smaller than that you are hurting modern hardware.

To my knowledge, PCIe transfers MUST be done on aligned memory, both on the HOST (CPU) and the TARGET (GPU).

Ah, I had no idea ... nice to see the option added, so we can actually benchmark it. I wonder how much it further improves performance. Though I guess to benchmark it well, you'd need to stream multiple video's :)

To my knowledge, PCIe transfers MUST be done on aligned memory, both on the HOST (CPU) and the TARGET (GPU).

BTW, for reference, apple basically removed the NVME controller from their SSDs likely to get around these kinds of limitations. Most SSDs have a controller on them (see https://www.tomshardware.com/news/samsung-launches-ssds-based-on-5nm-ssd-controller)  whereas MAC seems to have completely removed them. Their new SSDs just have the storage chips on them https://youtu.be/cJPXLE9uPr8?t=996 The controller was just an other ARM processor, and thus all your system is doing is:

Packetizing things into a format that PCIe can send.
The arm processor receives it and puts it into a format those storage chips can hold.....

Why have a middle man...

Though I guess to benchmark it well, you'd need to stream multiple video's :)

I'm trying to see if I can get meaningful measurements to appear on some GPU enabled systems I have. But right now, they are on the other side of the world and I did alot of work to disable the GPU from getting used by PyGFX by default lol....

Oh man, I'm so sad, I can't see any difference on a GPU powered device:
my sad sad benchmark on an NVIDIA GPU + offscreen + large 4k video
$ python examples/feature_demo/video_yuv.py --offscreen --three-grid-yuv --filename bbb_sunflower_2160p_60fps_normal.mp4
pygfx version from git (0.4.1) and __version__ (0.6.0) don't match.
Reading video in yuv420p format: 198.53 frames per second
No windowing system present. Using surfaceless platform
No config found!
No config found!
Max vertex attribute stride unknown. Assuming it is 2048
Time to first draw: 0.64
FPS: 89.1
FPS: 92.7
FPS: 84.4
FPS: 65.6
FPS: 60.4
FPS: 56.1
FPS: 52.4
FPS: 52.2
FPS: 52.3

██ pygfx_adapter_info:

      vendor:  NVIDIA
architecture:
      device:  NVIDIA GeForce RTX 4090
 description:  550.107.02
   vendor_id:  4.31K
   device_id:  9.86K
adapter_type:  DiscreteGPU
backend_type:  Vulka

$ python examples/feature_demo/video_yuv.py --offscreen --no-three-grid-yuv --filename bbb_sunflower_2160p_60fps_normal.mp4
pygfx version from git (0.4.1) and __version__ (0.6.0) don't match.
Reading video in yuv420p format: 199.73 frames per second
No windowing system present. Using surfaceless platform
No config found!
No config found!
Max vertex attribute stride unknown. Assuming it is 2048
Time to first draw: 0.64
FPS: 86.3
FPS: 91.2
FPS: 76.9
FPS: 65.3
FPS: 74.9
FPS: 63.2
FPS: 51.4
FPS: 52.1
FPS: 51.5

██ pygfx_adapter_info:

      vendor:  NVIDIA
architecture:
      device:  NVIDIA GeForce RTX 4090
 description:  550.107.02
   vendor_id:  4.31K
   device_id:  9.86K
adapter_type:  DiscreteGPU
backend_type:  Vulkan

I can't see any difference on a GPU powered device

You can also see this as good news 🤷

Some tests:
Doing this
diff --git a/examples/feature_demo/video_yuv.py b/examples/feature_demo/video_yuv.py
index 2e02017..d36e2fd 100644
--- a/examples/feature_demo/video_yuv.py
+++ b/examples/feature_demo/video_yuv.py
@@ -348,6 +348,8 @@ def animate():
         rgba[:, :, :3] = data
         tex.send_data((0, 0, 0), rgba)

+
+def animate():
     with stats:
         renderer.render(scene, camera, flush=False)
     stats.render(

Do not load data, do not send data, just animate
git/pygfx$ python examples/feature_demo/video_yuv.py --offscreen --three-grid-yuv --filename ../../bbb_sunflower_2160p_60fps_normal.mp4
pygfx version from git (0.4.1) and __version__ (0.6.0) don't match.
Reading video from ../../bbb_sunflower_2160p_60fps_normal.mp4
Format: yuv420p
Color range: limited
Offscreen: True
Three grid YUV: True
Reading video in yuv420p format: 200.45 frames per second
No windowing system present. Using surfaceless platform
No config found!
No config found!
Max vertex attribute stride unknown. Assuming it is 2048
Time to first draw: 0.63
FPS: 208.6
FPS: 214.7
FPS: 210.8
FPS: 160.9
FPS: 147.3
FPS: 146.4
FPS: 145.7
FPS: 145.3
FPS: 144.7

██ pygfx_adapter_info:

      vendor:  NVIDIA
architecture:
      device:  NVIDIA GeForce RTX 4090
 description:  550.107.02
   vendor_id:  4.31K
   device_id:  9.86K
adapter_type:  DiscreteGPU
backend_type:  Vulkan

Experimental Condition
FPS

Just render the same old scene
200 -> 144 fps

Just render the same, but keep transfering data
180 fps (flat????)

Just render the same old, do not transfer data, load next frame
93 fps -> 50 fps

Basically, I guess the slowdowns are at the interplay between reading in the next frame which seems to be causing the frame rate to drop very fast.

@hmaarrfk ready?

Ready on my end

ping @Korijn 😄


Edwina Asiedu Anderson

Please "drag & drop" exercise 1 file below.

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

If
Practice One-WS2_M1E1_Submission.docx
you haven't done so, please go back to Module 1 and make sure to take
the post-training survey.

Thank you for your successful submission to the practice exercise! Please be sure to fill out the post-Module survey.


Back To Top Button

Adding A Back to Top Button In a proper Responsive manner as No of Questions Are lot Then it will definitely become hard to again back to the top manually.
Screenshots

@klaus78 Assign this to me under Hacktoberfest, Already Ready just have to open the PR

@klaus78 ?

@Kapileswar-Moharana at the moment if you double click on the bar on top, you go to the start of the page.
I did some experiments with buttons in the past but never found a good solution, also consider how a button would look like on mobile devices, thanks.

@Kapileswar-Moharana at the moment if you double click on the bar on top, you go to the start of the page.
I did some experiments with buttons in the past but never found a good solution, also consider how a button would look like on mobile devices, thanks.

Ok then M trying my best to do sir...

thanks for your efforts

thanks for your efforts

Should I left that bug on clicking h1 tag taking to top or fix it ?

@klaus78 ok sirr I am opening a pr check it thenn in 5 minutes just writing the pr tamplates


Add man page in scdoc format

Hello, I have added a man page in scdoc format for shlide. It is modeled after the readme and is nearly a copy/paste plus some formatting changes to make it look nice.
scdoc is an extremely lightweight man page generator. To make the man page:
$ scdoc < shlide.1.scd > shlide.1

Then to view it:
$ man -l shlide.1

I would also like to make a PKGBUILD for shlide in the AUR, and the man page would be a part of the installed package. Other packages I maintain: https://aur.archlinux.org/packages/?K=krathalan&SeB=m
Please let me know of any adjustments that need to be made. I am also willing to be contacted in the future<EMAIL_ADDRESS>02AA A23A BDF1 D538 BD88 9D25 1AAD E5E7 28FF C667) to make future updates to the man page.

Hey, thanks for this. Writing a manpage is something I'd been meaning to
get around to. I have one gripe though -- I feel it would be better to
just include the .1 file, as opposed to having to rely on scdoc to
generate the manpage.
The reason is simple -- one less dependency for the end-user. In fact,
for KISS Linux packages using scdoc (I maintain a few), we render them
locally and include the plain roff files in the package.
Let me know what you think.
Anirudh Oppiliappan
https://icyphox.sh

It's your choice since you're the author, but it's mostly a matter of flavor. I find scdoc to be easier to write man pages in. It was difficult for me to find easily accessible information about how to write roff for a man page; conversely it was easy for me to find easily accessible information about how to write scdoc for a man page. I think the biggest benefit to using scdoc over roff is being able to quickly glance at part of the man page and immediately know exactly what it's going to look like. Maybe I just need more roff experience, but it seems a little cluttered and arcane to me.
scdoc itself has no dependencies, and the download/install size on Arch are both under 50 KB. I don't see foresee scdoc breaking even if it's abandoned, as the roff output from it should continue to work indefinitely.
There may be a happy middle ground -- keeping the man page as scdoc, but maybe making a git hook that regenerates the man page on the committer's machine when the scdoc source file is changed? That way users don't have to install scdoc as a make dependency, and the man page can still be in scdoc format. However, if one updates the raw roff, then the scdoc file would be "out of sync".
Like I said, it's up to you -- feel free to just use the roff output from the scdoc source file if you wish. At the end of the day, it's still a man page :)

Apologies for the late reply -- been busy with uni. Sure yeah, I'll
merge this. I think I'll just add a roff manpage as well, later.
Thanks.


Show Injected variables component only when catalog is present

Description
Changes proposed in this pull request:

Show Injected variables component only when catalog is present

Related issue(s)

/test pre-busola-integration-test-k3s


Adds ListReleaseContents

Towards https://github.com/giantswarm/giantswarm/issues/4326

@giantswarm/sig-content ignore, misclick

@kopiczko mind having another look? i think we're good to go here

@kopiczko ptala


show current location in search-box

This change shows the current location in the search box when switching tabs.
This means you can always copy the id of a message or feed from here,
which means message-id can be removed, which looks much cleaner.
I just added a feature to hypertabs to take a listener called when a new tab is selected.

merged into 1.6.0


Problem with Laravel 5.2 Service Provider

I see that @olsgreen has written the Laravel service provider, so this might be something he can help debug. I'm using Laravel 5.2 and I've followed the docs on Laravel usage but get an error that "validateNotThrowAway" is not a valid method when using the "not_throw_away" validation rule. Could something have changed in Laravel since the service provider was written?
Managed to manually implement the functionality pretty easily, and if I find time I'll take a look to see if I can figure out what's going on.

@suth It could quite possibly be a minor change in architecture, I think I originally tested with 5.0. It should be a trivial fix, I'll take a look when I can. Thanks for reporting.

@suth I've tested with 5.2.32 following the instructions & code samples without a problem. You may have missed a step? Which version of PHP are you using?

It's a Homestead box with PHP 7. Just tested on a clean install of 5.2.31 and had the same issue until I changed protected $defer = true; to false. Looked it up and the docs say to only use defer if the provider is only registering bindings in the service container.
If I add $checker = app()->make('email.checker'); somewhere before using the not_throw_away validation rule, the boot method on the provider gets called and the validator rule is properly registered.

@suth An oversight on my behalf, thanks! @MattKetmo Can you merge and close, cheers.


Conectys - Check result when the name of the company is entered in the search bar

Description : After entering the company Conectys in the search bar and entered to search it, you will be redirected to the company's website
Precondition : The website (https://peviitor.ro) is up and running

Step 1: Open the URL in the browser (https://peviitor.ro/)
Expected result : you can see the homepage of the website and you can see the search bar

Step 2 : Go to the search bar and see if it is editable by clicking inside of it.
Expected result : The search bar is editable and functional and you can write any text inside it.

Step 3: Type "Conectys" (the name of the company) inside the search bar and press enter or on the button "Cauta"
Expected result: You should be redirected on the page where you can see all the jobs of the company.

All tests passed


enable to fetch JWKs immediately on dynamic JwkResolver after system started

Fix a bug described here. https://github.com/istio-ecosystem/authservice/issues/34#issuecomment-923350828
The cause of this bug is not to be invoked immediately after the system started. The default timer is 20min so that JWKs will be empty after 20min elapsed after the system started in the previous implementation. This PR fixes this unexpected behavior.

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

Needs approval from an approver in each of these files:

OWNERS

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

sorry somehow this slipped my task list. just took another pass.

@incfly @lizan Could you approve this?


HDDS-5609. Document CI workflow

What changes were proposed in this pull request?
Document CI workflow
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-5609
How was this patch tested?
No source code changes

@fapifta This is my attempt at the doc you requested.  Would you mind reviewing?

/label documentation

Thanks for writing this @GeorgeJahad, it was a very interesting read!

it was a very interesting read!
Thanks to @adoroszlai for doing all the hard work.

FYI: @swagle asked me to add a wiki page: https://cwiki.apache.org/confluence/display/OZONE/Ozone+CI+with+Github+Actions

@fapifta This is my attempt at the doc you requested. Would you mind reviewing?

@fapifta Please let us know if you have any comments, or if I can merge this.  Thanks.

Thanks @GeorgeJahad for the contribution, @errose28 for the review.


Issue with this existing

So what possible use case on this earth would require this and do you realize the performance bottleneck doing this would cause?  Electron is a wrapper for javascript applications to run as desktop applications...

See this was made to make life easier for php developers. People can't change their whole php code into JS just to for electron. This is just there as an Option. If you don't Like then please don't use it. For you there is Electron. This for people who were searching for an option and i provided them.  This is just for Solution for now, for performance, we will see later. As per now, Performance is also not an issue as it works with PHP 7.2
Thanks.

No this is not closed! "Performance is also not an issue as it works with PHP 7.2" is completely false! You are still basically running an entire instance of a PHP server for zero reason. Using Electron in this way is like using a screwdriver to smash a nail into the wall. Also I know of no competent PHP developers that can't code Javascript.

AJ-TechSoul and userabuser, I totally agree with both of you.
Thanks a lot for this interesting repository!
Regards
Joachim

I congratulate and thanks for this awesome library. There are several reasons to have this.

Wordpress, drupal, yii, laravel, joomla and thousands of awesome php libraries/frameworks are there which could be easily ported to the desktop app (including power of the Nodejs).
We can re-write and can do everything in Nodejs but is it worth to re-invent all those popular solutions available in the market just for the sake of some performance benefit?
I have a very big project (coded in years in Php) which I ported to the desktop app in few days. My client (paying client) is happy with the performance so I am.
We can create a good project in a few days (using Yii) which others can't do in months in Nodejs.
And last, why we are afraid of experiment new things?

Thanks again AJ AJ-TechSoul keep working on this.


Heartbeat fails in some tests

The nightly tests were sometimes failing by test timeout and aborting the build. It happened during ClientExpirationListenerTest.notified_afterExpirationOfEntries test (e.g. https://hazelcast-l337.ci.cloudbees.com/job/cpp-linux-nightly-32-STATIC-Release/94/console). The output was:
06:25:22 [ RUN      ] ClientExpirationListenerTest.notified_afterExpirationOfEntries
06:25:22 May 03, 2016 1:11:51 PM com.hazelcast.nio.tcp.SocketAcceptorThread
06:25:22 INFO: [<IP_ADDRESS>]:5701 [dev] [3.7-SNAPSHOT] Accepting socket connection from /<IP_ADDRESS>:34592
06:25:22 May 03, 2016 1:11:51 PM com.hazelcast.nio.tcp.TcpIpConnectionManager
06:25:22 INFO: [<IP_ADDRESS>]:5701 [dev] [3.7-SNAPSHOT] Established socket connection between /<IP_ADDRESS>:5701 and /<IP_ADDRESS>:34592
06:25:22 May 03, 2016 1:11:51 PM com.hazelcast.client.impl.protocol.task.AuthenticationMessageTask
06:25:22 INFO: [<IP_ADDRESS>]:5701 [dev] [3.7-SNAPSHOT] Received auth from Connection [/<IP_ADDRESS>:5701 -> /<IP_ADDRESS>:34592], endpoint=null, alive=true, type=CPP_CLIENT, successfully authenticated, principal : ClientPrincipal{uuid='1e87189e-2467-4b40-a6b4-2a12863634d0', ownerUuid='ff709d7b-086d-4c71-9fbb-b1e287c89c14'}, owner connection : false
06:25:22 May 03, 2016 01:11:51 PM INFO: [HazelcastCppClient3.7-SNAPSHOT] [dev] [-134727984] Connected and authenticated by Address[<IP_ADDRESS>:5701]. Connection id:3 , socket id:10.
06:26:05 May 03, 2016 01:13:01 PM WARNING: [HazelcastCppClient3.7-SNAPSHOT] [dev] [-522855536] Heartbeat to connection  Address[<IP_ADDRESS>:5702] is failed.
06:30:56 May 03, 2016 1:17:51 PM com.hazelcast.client.impl.ClientHeartbeatMonitor
06:30:56 WARNING: Client heartbeat is timed out , closing connection to Connection [/<IP_ADDRESS>:5701 -> /<IP_ADDRESS>:34592], endpoint=Address[<IP_ADDRESS>]:34592, alive=true, type=CPP_CLIENT
06:30:56 May 03, 2016 1:17:51 PM com.hazelcast.nio.tcp.TcpIpConnection
06:30:56 INFO: [<IP_ADDRESS>]:5701 [dev] [3.7-SNAPSHOT] Connection [Address[<IP_ADDRESS>]:34592] lost. Reason: Socket explicitly closed
06:31:06 May 03, 2016 1:18:01 PM com.hazelcast.client.impl.ClientHeartbeatMonitor
06:31:06 WARNING: Client heartbeat is timed out , closing connection to Connection [<IP_ADDRESS>/<IP_ADDRESS>:5701 -> null], endpoint=Address[<IP_ADDRESS>]:34592, alive=false, type=CPP_CLIENT
06:31:16 May 03, 2016 1:18:11 PM com.hazelcast.client.impl.ClientHeartbeatMonitor
06:31:16 WARNING: Client heartbeat is timed out , closing connection to Connection [<IP_ADDRESS>/<IP_ADDRESS>:5701 -> null], endpoint=Address[<IP_ADDRESS>]:34592, alive=false, type=CPP_CLIENT
06:31:26 May 03, 2016 1:18:21 PM com.hazelcast.client.impl.ClientHeartbeatMonitor
This indicated that the heartbeat thread was frozen could not send any heartbeat to the remote.
When the case is examined, i found out that we were trying to send ClientRemoveAllListenersCodec Request on heartbeat failure on the failed connection and this request shall be put at the very back of the connection message queue. It shall wait until all the messages in the queue before this message are consumed. This invocation was not correct. It does not exist at the Java client. Furthermore, the listeners are being re-registered on connection close to another node, hence this was totall wrong.
I increased the number of puts in the ClientExpirationListenerTest.notified_afterExpirationOfEntries so that we can observe this at local OSX machine as well.
Furthermore, the time_t was being cast to int which was incorrect, changed this as well.

Test PASSed.

Test PASSed.